:root{--bg:#f4f4f5;--surface:#fff;--border:#e4e4e7;--text:#18181b;--muted:#71717a;--accent:#c2410c;--accent-hover:#9a3412;--accent-soft:#fff7ed;--danger:#b91c1c;--canvas-bg:#d4d4d8;--radius:8px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:#f4f4f5}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{color:var(--danger)}button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}button.link{color:var(--accent);background:0 0;border:none;padding:0;font-weight:600}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:0;padding:6px 8px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #fed7aa}.muted{color:var(--muted)}.small{font-size:12px}.hint{color:var(--muted);margin:0;font-size:12px}.error{color:var(--danger);margin:0}.spacer{flex:1}.centered{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;display:flex}.brand{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.auth-page{background:linear-gradient(160deg,#fff7ed,#f4f4f5 60%);place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:28px;display:flex;box-shadow:0 10px 30px #0000000f}.auth-card h1{font-size:22px}.auth-card label{flex-direction:column;gap:4px;font-weight:500;display:flex}.auth-card .primary{padding:10px}.switch{text-align:center;color:var(--muted);margin:0}.menus-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 24px;display:flex}.menus-main{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:28px 16px;display:flex}.menus-title{justify-content:space-between;align-items:center;display:flex}.empty{text-align:center;border:2px dashed var(--border);border-radius:12px;padding:48px}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.menu-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.menu-thumb{background:#e4e4e7;border:none;border-radius:0;place-items:center;height:220px;padding:12px;display:grid}.menu-thumb img{max-width:100%;max-height:196px;box-shadow:0 2px 8px #00000026}.menu-info{flex-direction:column;gap:2px;padding:10px 12px 4px;display:flex}.menu-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-actions{flex-wrap:wrap;gap:4px;padding:8px 12px 12px;display:flex}.menu-actions button{padding:4px 8px;font-size:12px}.dialog-backdrop{z-index:20;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:24px;display:flex}.dialog label{flex-direction:column;gap:4px;font-weight:500;display:flex}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.segmented{display:flex}.segmented button{border-radius:0;flex:1;margin-left:-1px}.segmented button:first-child{border-radius:6px 0 0 6px;margin-left:0}.segmented button:last-child{border-radius:0 6px 6px 0}.segmented button.active{position:relative}.editor{grid-template:"top top top""tools canvas props"1fr"pages pages pages"/92px 1fr 300px;height:100vh;display:grid;overflow:hidden}.top-bar{background:var(--surface);border-bottom:1px solid var(--border);grid-area:top;align-items:center;gap:10px;padding:8px 12px;display:flex}.menu-name{border-color:#0000;width:240px;font-size:15px;font-weight:600}.menu-name:hover{border-color:var(--border)}.save-status{color:var(--muted);font-size:12px}.save-status.offline{color:var(--danger)}.button-group{display:flex}.button-group button{border-radius:0;margin-left:-1px}.button-group button:first-child{border-radius:6px 0 0 6px;margin-left:0}.button-group button:last-child{border-radius:0 6px 6px 0}.zoom-level{min-width:62px}.dropdown{position:relative}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:10;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 30px #0000001f}.dropdown-menu button{text-align:left;border:none;justify-content:space-between;gap:12px;display:flex}.dropdown-menu button span{color:var(--muted)}.dropdown-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.left-toolbar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;grid-area:tools;gap:6px;padding:10px 8px;display:flex;overflow-y:auto}.toolbar-heading{text-transform:uppercase;color:var(--muted);text-align:center;letter-spacing:.05em;font-size:11px;font-weight:600}.tool{border-color:#0000;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;display:flex}.tool:hover:not(:disabled){border-color:var(--border)}.canvas-area{background:var(--canvas-bg);grid-area:canvas;min-width:0;min-height:0;position:relative;overflow:hidden}.text-editor{transform-origin:0 0;resize:none;white-space:pre-wrap;overflow-wrap:break-word;background:#ffffffd9;border:1px dashed #2563eb;border-radius:0;outline:none;margin:0;padding:0;position:absolute;overflow:hidden}.properties{background:var(--surface);border-left:1px solid var(--border);grid-area:props;padding-bottom:24px;overflow-y:auto}.panel-title{justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 10px;display:flex}.panel-title h2{font-size:16px}.panel-title-actions{gap:4px;display:flex}.panel-title-actions button{padding:4px 8px;font-size:12px}.panel-hint{padding:0 16px 6px}.panel-section{border-top:1px solid var(--border);padding:12px 16px}.panel-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:10px;font-size:11px;font-weight:600}.fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field{flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.field>span{color:var(--muted)}.field-wide,.fields>.checkbox,.fields>.segmented{grid-column:1/-1}.field select,.field input,.field textarea{width:100%}.number-input{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;display:flex}.number-input input{border:none;outline:none;padding:5px 6px}.number-input .suffix{color:var(--muted);padding-right:8px;font-size:11px}.color-input{align-items:center;gap:8px;display:flex}.color-input input[type=color]{cursor:pointer;width:44px;height:30px;padding:2px}.color-input input.is-none{opacity:.3}.checkbox{cursor:pointer;align-items:center;gap:6px;display:flex}.checkbox input{width:auto;margin:0}.toggle-row{gap:4px;display:flex}.toggle-row>button{width:34px;padding:6px 0}.toggle-row .segmented button{padding:6px 8px;font-size:12px}.button-row{flex-wrap:wrap;gap:4px;display:flex}.button-row button{padding:4px 8px;font-size:12px}.page-strip{background:var(--surface);border-top:1px solid var(--border);grid-area:pages;align-items:center;gap:16px;min-width:0;padding:8px 12px;display:flex}.pages{flex:1;align-items:center;gap:10px;padding:2px;display:flex;overflow-x:auto}.page-thumb{background:0 0;border:2px solid #0000;flex-shrink:0;padding:3px;line-height:0;position:relative}.page-thumb canvas{box-shadow:0 1px 4px #0003}.page-thumb.active{border-color:var(--accent);background:0 0}.page-thumb span{color:#fff;background:#18181bbf;border-radius:4px;padding:3px 5px;font-size:10px;line-height:1;position:absolute;bottom:6px;right:6px}.add-page{height:72px;color:var(--muted);border-style:dashed;flex-shrink:0}.page-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.page-actions button{padding:4px 8px;font-size:12px}.notices{z-index:30;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}.notice{color:#fff;cursor:pointer;background:#18181b;border-radius:8px;max-width:480px;padding:10px 16px;box-shadow:0 6px 20px #0003}.notice.error{background:var(--danger)}@media (width<=900px){.editor{grid-template-columns:76px 1fr 260px}.menu-name{width:140px}.save-status{display:none}}.icon-row{gap:4px;display:flex}.icon-row button{flex:1;place-items:center;padding:5px 0;display:grid}.dialog-wide{max-width:760px}.template-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.template{white-space:normal;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:8px;display:flex}.template span{color:var(--muted);font-size:11px}.template-preview{background:#f4f4f5;border-radius:4px;place-items:center;width:100%;height:120px;margin-bottom:4px;display:grid}.template-preview canvas{box-shadow:0 1px 4px #0003}.template-preview.blank{color:var(--muted);font-size:32px}.left-toolbar{position:relative}.popover{z-index:15;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;box-shadow:0 10px 30px #00000026}.icon-picker{width:300px}.text-presets{gap:4px;width:240px;position:fixed;top:60px;left:98px}.text-presets button{text-align:left;border-color:#0000;padding:8px 10px}.text-presets button:hover{border-color:var(--border)}.preset-heading{font-family:Playfair Display,serif;font-size:24px}.preset-subheading{font-family:Lato,sans-serif;font-size:15px;font-style:italic}.preset-section{font-family:Playfair Display,serif;font-size:18px;font-weight:700}.preset-body{font-family:Lato,sans-serif;font-size:13px}.swatches{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.swatches button{border:1px solid #00000026;border-radius:4px;width:18px;height:18px;padding:0}.swatches button.current{outline:2px solid var(--accent);outline-offset:1px}.icon-picker.from-toolbar{position:fixed;top:60px;left:98px}.icon-picker.from-panel{top:calc(100% + 4px);right:0}.icon-tabs{flex-wrap:wrap;gap:4px;display:flex}.icon-tabs button{padding:3px 8px;font-size:12px}.icon-grid{grid-template-columns:repeat(6,1fr);gap:4px;max-height:260px;display:grid;overflow-y:auto}.icon-grid.wide{grid-template-columns:1fr}.icon-grid button{border-color:#0000;place-items:center;padding:6px;display:grid}.icon-grid button:hover{border-color:var(--border)}.icon-grid img{width:26px;height:26px}.icon-grid.wide img{width:240px;height:24px}button.link-muted{color:var(--muted);background:0 0;border:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dialog-subheading{font-size:14px}a.button{border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:6px;padding:6px 12px;text-decoration:none;display:inline-block}.share-link{gap:6px;display:flex}.share-link input{flex:1}.share-qr{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:16px;padding:12px;display:flex}.share-qr-actions{flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;display:flex}.viewer{background:#e4e4e7;flex-direction:column;align-items:center;gap:16px;min-height:100vh;padding:16px 0 24px;display:flex}.viewer-page{line-height:0;position:relative;box-shadow:0 4px 20px #00000026}.viewer-page-number{color:#fff;background:#18181b99;border-radius:4px;padding:4px 6px;font-size:11px;line-height:1;position:absolute;bottom:8px;right:8px}.viewer-message{text-align:center;margin-top:30vh;padding:0 16px}.viewer-footer{color:var(--muted);margin:0;font-size:12px}.badge{background:var(--accent-soft);color:var(--accent);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.panel-tabs{border-bottom:1px solid var(--border);background:var(--surface);z-index:1;display:flex;position:sticky;top:0}.panel-tabs button{color:var(--muted);border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:10px;font-weight:600}.panel-tabs button.active{color:var(--text);border-bottom-color:var(--accent);background:0 0}.layers{flex-direction:column;gap:2px;margin:0;padding:8px;list-style:none;display:flex}.layer{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.layer:hover{background:#f4f4f5}.layer.selected{background:var(--accent-soft);border-color:#fed7aa}.layer.is-hidden .layer-name,.layer.is-hidden .layer-type{opacity:.4}.layer.drop-target{border-top:2px solid var(--accent)}.layer-type{text-align:center;width:20px;color:var(--muted)}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.layer-toggle{color:var(--muted);padding:2px 6px;font-size:11px}.layer-toggle.on{color:var(--accent);border-color:#fed7aa}.range-value{float:right;color:var(--text)}input[type=range]{accent-color:var(--accent);border:none;padding:0}.price-row{align-items:center;gap:8px;display:flex}.price-row input{width:90px}.price-preview{border:1px solid var(--border);border-radius:var(--radius);background:#fafafa;max-height:220px;padding:8px 12px;overflow-y:auto}.price-preview table{border-collapse:collapse}.price-preview td{padding:2px 8px 2px 0}.shortcuts{border-collapse:collapse;width:100%}.shortcuts td{vertical-align:top;padding:4px 8px 4px 0}kbd{border:1px solid var(--border);white-space:nowrap;background:#f4f4f5;border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:12px}.icon-button{width:32px;padding:6px 0}.library-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:340px;display:grid;overflow-y:auto}.library-grid button{background:#f4f4f5;place-items:center;height:100px;padding:4px;display:grid}.library-grid img{object-fit:contain;max-width:100%;max-height:90px}.quick-text{resize:vertical;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.quick-options{align-items:center;gap:12px;display:flex}.quick-options .segmented{flex-shrink:0;width:220px}code{background:#f4f4f5;border-radius:4px;padding:0 4px}.canvas-area.dropping{outline:3px dashed var(--accent);outline-offset:-3px}.drop-hint{background:var(--accent);color:#fff;z-index:5;pointer-events:none;border-radius:8px;padding:8px 14px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.brand-colors{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.brand-color{border:1px solid #00000026;border-radius:6px;width:32px;height:32px;padding:0}.brand-color:hover{outline:2px solid var(--danger)}.brand-add-color{align-items:center;gap:4px;display:flex}.brand-add-color input{width:40px;height:32px;padding:2px}.brand-fonts{grid-template-columns:1fr 1fr;gap:10px;display:grid}.brand-logo{align-items:center;gap:8px;display:flex}.brand-logo img{object-fit:contain;background:#f4f4f5;border-radius:4px;max-width:160px;max-height:56px;padding:4px}.swatch-sep{background:var(--border);width:1px;height:18px;margin:0 2px}.shape-menu{grid-template-columns:repeat(4,64px);gap:4px;display:grid;position:fixed;top:140px;left:98px}.shape-menu button{border-color:#0000;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;font-size:11px;display:flex}.shape-menu button:hover{border-color:var(--border)}.danger-zone{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}button.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.empty-page-hint{z-index:2;pointer-events:none;place-items:center;padding:24px;display:grid;position:absolute}.empty-page-hint div{text-align:center;max-width:280px;color:var(--muted);border:2px dashed var(--border);background:#ffffffb3;border-radius:12px;flex-direction:column;gap:6px;padding:20px;display:flex}.empty-page-hint strong{color:var(--text)}.small-screen{text-align:center;padding:24px}.small-screen p{margin:0}@media (width<=640px){.menus-header{flex-wrap:wrap;padding:10px 16px}}.menus-tools{gap:8px;display:flex}.menus-tools input{flex:1;max-width:360px}.dietary-toggles{flex-wrap:wrap;gap:4px;display:flex}.dietary-toggles button{padding:4px;line-height:0}.dietary-toggles img{width:20px;height:20px}.dialog-form{flex-direction:column;gap:14px;display:flex}.dialog-form label{flex-direction:column;gap:4px;font-weight:500;display:flex}.history{grid-template-columns:200px 1fr;gap:16px;min-height:320px;display:grid}.history-list{flex-direction:column;gap:4px;max-height:360px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.history-list button{text-align:left;width:100%}.history-preview{border-radius:var(--radius);background:#f4f4f5;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.history-preview canvas{box-shadow:0 2px 8px #00000026}.group-member{gap:8px;display:grid}.group-member+.group-member{border-top:1px solid var(--border);padding-top:10px}.layer-folder{flex-direction:column;gap:2px;display:flex}.layer-group-row .layer-name{font-weight:600}.layer-children{border-left:1px solid var(--border);margin-left:16px;padding:0 0 0 18px}.layer-chevron{width:18px;color:var(--muted);background:0 0;border:none;padding:0 2px}.layer-count{color:var(--muted);font-size:11px}.layer-rename{min-width:0;font:inherit;flex:1;padding:1px 4px}.layer-end{border-top:2px solid #0000;min-height:16px}.layer-end.drop-target{border-top-color:var(--accent)}
