:root{--radius:16px;--radius-sm:10px;--max-width:1280px;--font:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--qr-paper:#fff;--qr-ink:#111827}:root,:root[data-theme=dark]{--bg:#0f1115;--bg-page-start:#0c0f14;--bg-page-end:#11141b;--bg-elevated:#171a21;--bg-soft:#1d212b;--border:#2b3240;--border-strong:#3a4457;--text:#e8ecf3;--text-soft:#a7b0c0;--primary:#7c9cff;--primary-hover:#94afff;--primary-contrast:#0f1420;--danger:#ff6b6b;--danger-text:#ffd4d4;--danger-text-strong:#ffd7d7;--success:#58c27d;--success-text:#b7efc8;--warning:#fc6;--warning-text:#ffe3a1;--accent-text:#c8d5ff;--link-text:#d7e0ff;--shadow:0 10px 30px #00000059;--shadow-modal:0 28px 90px #00000073;--page-aura:#7c9cff14;--surface-sheen-top:#ffffff08;--surface-sheen-bottom:#ffffff04;--surface-subtle:#ffffff05;--surface-hover:#ffffff08;--surface-card-top:#ffffff05;--surface-card-bottom:#ffffff03;--surface-modal-start:#171a21fa;--surface-modal-end:#0f1115fa;--overlay:#070a10b8;--divider:#ffffff0f;--focus-ring:#7c9cffe6;--focus-shadow:#7c9cff1f;--primary-soft:#7c9cff1f;--primary-soft-strong:#7c9cff2e;--primary-border:#7c9cff38;--primary-border-strong:#7c9cff66;--primary-border-muted:#7c9cff29;--primary-outline:#7c9cff24;--primary-empty-bg:#7c9cff0f;--primary-empty-border:#7c9cff47;--danger-soft:#ff6b6b1f;--danger-soft-muted:#ff6b6b1a;--danger-border:#ff6b6b47;--danger-border-muted:#ff6b6b38;--success-soft:#58c27d1f;--success-border:#58c27d47;--warning-soft:#ffcc661f;--warning-border:#ffcc6647;--button-bg:#252b38;--button-bg-hover:#2c3444}:root[data-theme=light]{--bg:#eef1f4;--bg-page-start:#f8fafc;--bg-page-end:#e7ebf0;--bg-elevated:#fff;--bg-soft:#f3f6f9;--border:#cfd6df;--border-strong:#aeb8c5;--text:#1f2327;--text-soft:#66717f;--primary:#355fdb;--primary-hover:#254cc1;--primary-contrast:#fff;--danger:#c43c3c;--danger-text:#7d1f1f;--danger-text-strong:#771b1b;--success:#23844f;--success-text:#145c35;--warning:#b7791f;--warning-text:#6f4a10;--accent-text:#24459f;--link-text:#274797;--shadow:0 18px 42px #1f232721;--shadow-modal:0 28px 90px #1f232742;--page-aura:#355fdb1f;--surface-sheen-top:#ffffffeb;--surface-sheen-bottom:#ffffffb8;--surface-subtle:#ffffffbd;--surface-hover:#ffffffe6;--surface-card-top:#fffffff5;--surface-card-bottom:#ffffffd1;--surface-modal-start:#fffffffa;--surface-modal-end:#eef1f4fa;--overlay:#1f23276b;--divider:#1f23271a;--focus-ring:#355fdbd9;--focus-shadow:#355fdb29;--primary-soft:#355fdb1c;--primary-soft-strong:#355fdb2b;--primary-border:#355fdb38;--primary-border-strong:#355fdb6b;--primary-border-muted:#355fdb2e;--primary-outline:#355fdb29;--primary-empty-bg:#355fdb12;--primary-empty-border:#355fdb42;--danger-soft:#c43c3c1a;--danger-soft-muted:#c43c3c14;--danger-border:#c43c3c3d;--danger-border-muted:#c43c3c2e;--success-soft:#23844f1a;--success-border:#23844f38;--warning-soft:#b7791f1f;--warning-border:#b7791f3d;--button-bg:#fff;--button-bg-hover:#eef3fb}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);background:radial-gradient(circle at top left, var(--page-aura), transparent 30%), linear-gradient(180deg, var(--bg-page-start) 0%, var(--bg-page-end) 100%);color:var(--text);margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}img{max-width:100%;display:block}hr{border:1px solid var(--border);width:100%}.app-shell{min-height:100vh}.page{width:100%;max-width:var(--max-width);margin:0 auto;padding:32px 20px 40px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.page-title{letter-spacing:0;margin:0;font-size:32px;line-height:1.05}.page-subtitle{color:var(--text-soft);margin:8px 0 0;font-size:14px}.page-subtitle-badges{flex-wrap:wrap;gap:5px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.stack-tight{gap:8px}.stack-compact{gap:6px}.row{align-items:center;gap:12px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:14px;display:flex}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:1fr 1fr}.grid-editor{grid-template-columns:minmax(320px,1.05fr) minmax(320px,.95fr);gap:20px;display:grid}.flex-fill{flex:1}.block-gap{margin-bottom:16px}.helper-text{color:var(--text-soft);font-size:13px}.muted{color:var(--text-soft)}.login-shell{flex-direction:column;justify-content:center;align-items:center;gap:3rem;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:460px}.login-title{letter-spacing:0;margin:0;font-size:28px}.login-copy{color:var(--text-soft);margin:10px 0 0;font-size:14px}.auth-mode-switch{border:1px solid var(--border);background:var(--bg-soft);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.auth-mode-option{min-height:38px;color:var(--text-soft);background:0 0;border:0;border-radius:10px;font-weight:700;transition:background .18s,color .18s,box-shadow .18s}.auth-mode-option-active{background:var(--button-bg-hover);color:var(--text);box-shadow:0 8px 18px #00000029}.login-submit{min-width:142px}@media (width<=980px){.grid-2,.grid-editor,.page-header{grid-template-columns:1fr;display:grid}}.card{background:linear-gradient(180deg, var(--surface-card-top), var(--surface-card-bottom));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-attached-top-left{border-top-left-radius:0}.card-body{padding:20px}.error-box{background:var(--danger-soft-muted);border:1px solid var(--danger-border-muted);color:var(--danger-text-strong);white-space:pre-wrap;border-radius:12px;padding:12px 14px}.error-box-inset{margin-inline:1rem}.btn{background:var(--button-bg);min-height:44px;color:var(--text);border:1px solid var(--border);border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:0 16px;transition:transform .12s,background .18s,border-color .18s;display:inline-flex}.btn:hover{background:var(--button-bg-hover);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.68;transform:none}.btn-primary{background:var(--primary);color:var(--primary-contrast);border-color:#0000;font-weight:700}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger-text)}.btn-ghost{background:0 0}.theme-toggle{width:44px;padding:0}.label{color:var(--text-soft);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.input,.textarea,.select{border:1px solid var(--border);background:var(--bg-soft);width:100%;color:var(--text);border-radius:12px;outline:none;padding:12px 14px;transition:border-color .18s,box-shadow .18s,transform .12s}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--focus-shadow)}.textarea{resize:vertical;min-height:420px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5}.form-actions{justify-content:flex-end;gap:12px;display:flex}.checkbox-field{cursor:pointer}.color-input{background:0 0;border:none;width:48px;height:44px;padding:0}.badge{background:var(--primary-soft);border:1px solid var(--primary-border);min-height:28px;color:var(--accent-text);border-radius:999px;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);border-color:var(--success-border);color:var(--success-text)}.badge-warning{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning-text)}.editor-tabs{flex-wrap:wrap;display:flex}.editor-tabs-inline{margin-bottom:0}.editor-tab{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-sheen-top), var(--surface-sheen-bottom));min-width:85px;color:var(--text);flex-direction:column;align-items:center;gap:4px;padding:14px 16px;transition:transform .12s,border-color .18s,background .18s,box-shadow .18s;display:flex}.editor-tab:hover{border-color:var(--border-strong);background:linear-gradient(180deg, var(--surface-hover), var(--surface-subtle));transform:translateY(-1px)}.editor-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.editor-tab-active{border-color:var(--primary-border-strong);background:linear-gradient(180deg, var(--primary-soft-strong), var(--primary-soft));box-shadow:inset 0 0 0 1px var(--primary-outline)}.editor-tab-label{font-size:14px;font-weight:700;line-height:1.2}.editor-tab-panel,.editor-fade-content{min-width:0}.fade-switch{min-width:0;display:grid;position:relative}.fade-switch-layer{grid-area:1/1;min-width:0}.fade-switch-enter{animation:fade-switch-in var(--fade-switch-duration,.18s) ease both;z-index:1}.fade-switch-exit{animation:fade-switch-out var(--fade-switch-duration,.18s) ease both;pointer-events:none}@keyframes fade-switch-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-switch-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.form-section{min-width:0}.preview-frame{border:1px solid var(--border);background:var(--qr-paper);border-radius:16px;width:100%;min-height:720px}.code-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px;padding:1rem 1rem 0;display:flex}@media (width<=980px){.editor-tab{flex:220px;min-width:0}}.qr-panel{border-top-left-radius:0}.qr-panel-body{gap:20px;display:grid}.qr-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.qr-panel-title{letter-spacing:0;margin:12px 0 0;font-size:24px;line-height:1.12}.qr-panel-disabled{border-style:dashed}.qr-layout{grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:stretch;gap:20px;display:grid}.qr-preview-frame{border:1px solid var(--qr-paper);background:var(--qr-paper);min-height:280px;color:var(--qr-ink);border-radius:16px;place-items:center;padding:18px;display:grid}.qr-preview{aspect-ratio:1;width:100%;max-width:280px}.qr-url-block{border:1px solid var(--border);background:var(--surface-subtle);border-radius:14px;align-content:start;gap:10px;min-width:0;padding:16px;display:grid}.qr-url-value{overflow-wrap:anywhere;color:var(--link-text);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5}@media (width<=720px){.qr-layout{grid-template-columns:1fr}}.menu-list{gap:14px;display:grid}.menu-item{border:1px solid var(--border);background:var(--surface-subtle);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.menu-item:hover{border-color:var(--border-strong);background:var(--surface-hover)}.menu-item-title{margin:0 0 6px;font-size:16px;font-weight:700}.menu-item-meta{color:var(--text-soft);font-size:13px}.create-menu-dialog{max-width:760px;height:auto;max-height:min(760px,100dvh - 24px)}.template-selector{border:1px solid var(--border);background:var(--surface-subtle);border-radius:16px;min-width:0;margin:0;padding:16px}.template-selector legend{color:var(--text);padding:0 8px;font-size:14px;font-weight:800}.template-selector-grid{grid-auto-flow:column;gap:12px;margin-top:12px;display:grid}.template-option{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-sheen-top), var(--surface-sheen-bottom));cursor:pointer;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:12px;min-width:0;padding:14px;transition:border-color .16s,background .16s,transform .12s;display:grid}.template-option:hover{border-color:var(--border-strong);background:var(--surface-hover)}.template-option-selected{border-color:var(--primary-border);background:var(--primary-soft)}.template-option input{accent-color:var(--primary);margin-top:3px}.template-option-main,.template-option-title,.template-option-badges{min-width:0;display:flex}.template-option-main{flex-direction:column;gap:8px}.template-option-title{color:var(--text);align-items:center;gap:8px;font-weight:800}.template-option-description{color:var(--text-soft);font-size:13px;line-height:1.45}.template-option-badges{flex-wrap:wrap;gap:6px}.menu-empty-state{overflow:hidden}.menu-empty-title,.modal-title{letter-spacing:0;margin:0;font-size:24px;line-height:1.1}.menu-empty-copy{max-width:60ch;color:var(--text-soft);margin:0}.menu-sections-tabs{align-items:flex-start;display:flex}.menu-sections-tabs .btn-primary{margin:4px}.menu-sections-tabs .editor-tabs{background:var(--surface-hover);border-radius:18px;margin-bottom:0;padding:4px}.menu-sections-tabs .editor-tab{align-items:flex-start}.menu-section-header{justify-content:space-between;gap:20px;display:flex}.menu-section-heading{flex-direction:column;gap:10px;min-width:0;display:flex}.menu-section-actions{align-items:center;gap:5px;display:flex}.menu-section-display-mode{width:160px}.menu-section-display-mode .label{margin-bottom:4px;font-size:11px}.menu-section-display-mode .select{padding:9px 12px}.menu-section-title-input{letter-spacing:0;font-size:24px;font-weight:800}.menu-section-empty{border:1px dashed var(--primary-empty-border);background:var(--primary-empty-bg);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.menu-dish-list{gap:14px;display:grid}.menu-dish-list-item{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-sheen-top), var(--surface-sheen-bottom));border-radius:16px;flex-direction:column-reverse;justify-content:space-between;gap:18px;padding:18px;display:flex}.menu-dish-list-item-unavailable{border-color:color-mix(in srgb, var(--warning) 34%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--surface-sheen-top) 82%, transparent), color-mix(in srgb, var(--surface-sheen-bottom) 72%, transparent));opacity:.76}.menu-dish-list-item-unavailable .input,.menu-dish-list-item-unavailable .menu-dish-currency-chip{color:var(--text-soft)}.menu-dish-list-main{flex:1;grid-template-columns:minmax(0,1.3fr) minmax(180px,.6fr);gap:16px;min-width:0;display:grid}.menu-dish-price-group{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.menu-dish-currency-chip{border:1px solid var(--primary-border);background:var(--primary-soft);min-width:62px;min-height:48px;color:var(--accent-text);border-radius:12px;justify-content:center;align-items:center;padding:0 14px;font-weight:700;display:inline-flex}.menu-dish-list-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.menu-dish-availability{border:1px solid var(--border);background:var(--surface-subtle);min-height:48px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:10px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.menu-dish-availability input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.menu-dish-availability-track{background:color-mix(in srgb, var(--text-soft) 36%, transparent);width:34px;height:20px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 18%, transparent);border-radius:999px;flex:none;transition:background .16s,box-shadow .16s;position:relative}.menu-dish-availability-thumb{background:var(--surface);width:14px;height:14px;box-shadow:0 2px 6px color-mix(in srgb, var(--text) 22%, transparent);border-radius:999px;transition:transform .16s;position:absolute;top:3px;left:3px}.menu-dish-availability input:checked+.menu-dish-availability-track{background:var(--primary);box-shadow:inset 0 0 0 1px var(--primary-border)}.menu-dish-availability input:checked+.menu-dish-availability-track .menu-dish-availability-thumb{transform:translate(14px)}.menu-dish-availability input:focus-visible+.menu-dish-availability-track{outline:2px solid var(--focus-ring);outline-offset:3px}.menu-dish-availability-label{min-width:82px}.asset-uploader{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.asset-uploader-input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.asset-field{min-width:0}.asset-field .toolbar{justify-content:center;align-items:center}.asset-grid{gap:12px;display:grid}.asset-thumb{border:1px solid var(--border);background:var(--surface-subtle);border-radius:12px;gap:8px;padding:8px;display:grid}.asset-thumb img{aspect-ratio:4/3;object-fit:cover;background:var(--bg-soft);border-radius:8px;width:100%;display:block}@media (width<=980px){.menu-dish-list-item,.menu-section-empty{flex-direction:column;align-items:stretch}.menu-dish-list-main{grid-template-columns:1fr}.menu-dish-list-actions{justify-content:flex-start;align-items:stretch}.menu-dish-availability{justify-content:space-between;width:100%}}.modal-backdrop{z-index:30;background:var(--overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.modal-card{border:1px solid var(--primary-border-muted);background:radial-gradient(circle at top right, var(--primary-soft), transparent 28%), linear-gradient(180deg, var(--surface-modal-start), var(--surface-modal-end));width:100%;max-width:none;height:100%;min-height:0;max-height:none;box-shadow:var(--shadow-modal);border-radius:24px;flex-direction:column;margin:auto;display:flex;overflow:hidden}.modal-card-compact{width:min(100%,28rem);max-width:28rem;height:auto;max-height:min(32rem,100dvh - 24px)}.modal-header,.modal-footer{justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.modal-header{border-bottom:1px solid var(--divider)}.modal-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.modal-tabs-shell{flex-direction:column;flex:1;min-height:0;display:flex}.modal-tabs-bar{border-bottom:1px solid var(--divider);padding:18px 24px 0}.modal-editor-tabs{flex-wrap:nowrap;margin-bottom:0;padding-bottom:10px;overflow-x:auto}.modal-editor-tabs .editor-tab{white-space:nowrap;min-width:max-content}.modal-body{flex:1;padding:24px;overflow:auto}.modal-footer{border-top:1px solid var(--divider);justify-content:flex-end}@media (width<=980px){.modal-header,.modal-footer,.modal-header-actions{flex-direction:column;align-items:stretch}}@media (width<=720px){.modal-backdrop{padding:10px}.modal-card{border-radius:20px}.modal-body,.modal-header,.modal-footer,.modal-tabs-bar{padding-left:18px;padding-right:18px}}.i{width:1.5em;height:1.5em;-webkit-mask:var(--i) no-repeat center/contain;mask:var(--i) no-repeat center/contain;-webkit-mask:var(--i) no-repeat center/contain;background:currentColor;display:inline-block}.i-back-chevron{--i:url(/admin/icons/back-chevron.svg)}.i-plus{--i:url(/admin/icons/plus.svg)}.i-return{--i:url(/admin/icons/return.svg)}.i-cross{--i:url(/admin/icons/cross.svg)}.i-edit{--i:url(/admin/icons/edit.svg)}.i-trash{--i:url(/admin/icons/trash.svg)}.i-standby{--i:url(/admin/icons/standby.svg)}.i-clipboard{--i:url(/admin/icons/clipboard.svg)}.i-uploadCloud{--i:url(/admin/icons/uploadCloud.svg)}.i-spinner{--i:url(/admin/icons/spinner.svg)}.i-expand{--i:url(/admin/icons/expand.svg)}.i-code{--i:url(/admin/icons/code.svg)}.i-altLeftAlign{--i:url(/admin/icons/altLeftAlign.svg)}.i-qr{--i:url(/admin/icons/qr.svg)}.i-sun{--i:url(/admin/icons/sun.svg)}.i-moon{--i:url(/admin/icons/moon.svg)}.spin{animation:1s linear infinite rotate}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
