:root{--color-bg:#faf6f0;--color-surface:#fff;--color-border:#d2c4b4;--color-text:#3d3029;--color-text-secondary:#8a7e74;--color-primary:#456d8f;--color-primary-hover:#385d7a;--color-primary-light:#81a6c6;--color-success:#48855c;--color-danger:#b74444;--color-warning:#b58a30;--color-accent:#aacddc;--color-cream:#f3e3d0;--color-taupe:#d2c4b4;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--radius:10px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 2px 8px #456d8f1a, 0 1px 2px #0000000a}@media (prefers-color-scheme:dark){:root{--color-bg:#1a1614;--color-surface:#2a2420;--color-border:#4a3f37;--color-text:#f3e3d0;--color-text-secondary:#d2c4b4;--color-primary:#81a6c6;--color-primary-hover:#aacddc;--color-primary-light:#aacddc;--color-success:#6ebb84;--color-danger:#e07070;--color-warning:#e0b950;--color-accent:#81a6c6;--color-cream:#3a3028;--color-taupe:#4a3f37}}*,:before,:after{box-sizing:border-box}body{font-family:var(--sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}#root{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3{margin:0;font-weight:600;line-height:1.3}p{margin:0}button{cursor:pointer;font-family:inherit;font-size:inherit}a{color:var(--color-primary);text-decoration:none}.home-page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:3rem 1rem;display:flex}.home-emoji{margin-bottom:.5rem;font-size:4rem;line-height:1}.home-title{color:var(--color-primary);font-size:1.75rem}.home-subtitle{color:var(--color-text-secondary);font-size:1.125rem;font-style:italic}.home-menu-btn{color:#fff;background:var(--color-primary);border-radius:50px;margin-top:1.5rem;padding:.875rem 2.5rem;font-size:1.0625rem;font-weight:700;text-decoration:none;transition:background .15s,transform .1s,box-shadow .15s;display:inline-block;box-shadow:0 4px 12px #456d8f4d}.home-menu-btn:hover{background:var(--color-primary-hover);color:#fff;box-shadow:0 6px 16px #385d7a59}.home-menu-btn:active{transform:scale(.97)}.menu-page{flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto;padding:0 16px 80px;display:flex}.menu-loading,.menu-error{text-align:center;color:var(--color-text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 16px;display:flex}.menu-error h1{color:var(--color-text);margin-bottom:8px;font-size:24px}.menu-header{text-align:center;padding:28px 0 20px}.menu-header h1{color:var(--color-primary);font-size:24px;font-weight:800}.menu-week{color:var(--color-text-secondary);margin-top:6px;font-size:14px;font-weight:500}.menu-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.menu-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:16px;transition:box-shadow .15s;display:flex}.menu-item:hover{box-shadow:var(--shadow)}.menu-item-image{object-fit:cover;border-radius:8px;flex-shrink:0;width:64px;height:64px}.menu-item-info{flex:1;min-width:0}.menu-item-name{font-size:16px;font-weight:700}.menu-item-desc{color:var(--color-text-secondary);margin-top:2px;font-size:14px}.menu-item-price{color:var(--color-primary);margin-top:6px;font-size:15px;font-weight:700}.menu-item-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.qty-btn{border:2px solid var(--color-primary);width:36px;height:36px;color:var(--color-primary);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;transition:background .15s,color .15s;display:flex}.qty-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.qty-btn:disabled{opacity:.3;cursor:not-allowed}.qty-value{text-align:center;min-width:28px;font-size:17px;font-weight:700}.add-btn{background:var(--color-primary);color:#fff;border:none;border-radius:50px;padding:8px 22px;font-size:14px;font-weight:700;transition:background .15s,transform .1s}.add-btn:hover{background:var(--color-primary-hover)}.add-btn:active{transform:scale(.95)}.cart-summary{background:var(--color-surface);border:2px solid var(--color-accent);border-radius:var(--radius);margin-top:100px;padding:20px}.cart-title{color:var(--color-primary);margin-bottom:12px;font-size:18px;font-weight:800}.cart-items{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.cart-line{justify-content:space-between;font-size:15px;display:flex}.cart-line-name{color:var(--color-text)}.cart-line-price{color:var(--color-text);font-weight:700}.cart-total{border-top:2px solid var(--color-border);color:var(--color-primary);justify-content:space-between;padding-top:12px;font-size:18px;font-weight:800;display:flex}.name-input{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;color:var(--color-text);margin-top:16px;padding:12px;font-family:inherit;font-size:16px;transition:border-color .15s;display:block}.name-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.name-input:disabled{opacity:.6}.submit-error{color:var(--color-danger);margin-top:8px;font-size:14px;font-weight:500}.submit-btn{background:var(--color-primary);color:#fff;border:none;border-radius:50px;width:100%;margin-top:12px;padding:14px;font-size:16px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:block;box-shadow:0 4px 12px #456d8f40}.submit-btn:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 6px 16px #385d7a4d}.submit-btn:active:not(:disabled){transform:scale(.98)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.floating-cart-btn{color:#fff;letter-spacing:.01em;z-index:100;background:linear-gradient(135deg,#12715f 0%,#1f8f77 100%);border:1px solid #ffffffb3;border-radius:50px;padding:14px 28px;font-size:15px;font-weight:700;transition:background .15s,transform .15s,box-shadow .15s;animation:.25s ease-out float-in,1.8s ease-in-out infinite cart-pulse;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #12715f4d,0 0 0 4px #1f8f7729}.floating-cart-btn:hover{background:linear-gradient(135deg,#0f5f50 0%,#197863 100%);box-shadow:0 14px 28px #0f5f5057,0 0 0 5px #1f8f7733}.floating-cart-btn:active{transform:translate(-50%)scale(.96)}@keyframes float-in{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes cart-pulse{0%,to{box-shadow:0 10px 24px #12715f4d,0 0 0 4px #1f8f7729}50%{box-shadow:0 14px 30px #12715f5c,0 0 0 8px #1f8f771a}}.review-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.review-modal{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:400px;max-height:90dvh;padding:24px;animation:.25s ease-out slide-up;overflow-y:auto;box-shadow:0 8px 32px #0003}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.review-title{text-align:center;color:var(--color-primary);margin-bottom:20px;font-size:20px;font-weight:800}.review-customer{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:12px;display:flex}.review-label{color:var(--color-text-secondary);font-size:14px;font-weight:500}.review-value{font-size:16px;font-weight:600}.review-items{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.review-line{justify-content:space-between;align-items:baseline;font-size:15px;display:flex}.review-line-name{color:var(--color-text)}.review-line-qty{color:var(--color-text-secondary);font-size:13px}.review-line-price{white-space:nowrap;font-weight:700}.review-total{border-top:2px solid var(--color-border);color:var(--color-primary);justify-content:space-between;margin-bottom:16px;padding-top:12px;font-size:18px;font-weight:800;display:flex}.review-actions{gap:10px;display:flex}.review-back-btn{border:2px solid var(--color-border);color:var(--color-text);background:0 0;border-radius:50px;flex:1;padding:14px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s}.review-back-btn:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-text-secondary)}.review-back-btn:disabled{opacity:.5;cursor:not-allowed}.review-confirm-btn{background:var(--color-primary);color:#fff;border:none;border-radius:50px;flex:2;padding:14px;font-size:15px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 4px 12px #456d8f40}.review-confirm-btn:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 6px 16px #385d7a4d}.review-confirm-btn:active:not(:disabled){transform:scale(.98)}.review-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.order-status-page{flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto;padding:0 16px 32px;display:flex}.order-loading,.order-error{text-align:center;color:var(--color-text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 16px;display:flex}.order-error h1{color:var(--color-text);margin-bottom:8px;font-size:24px}.order-header{text-align:center;padding:24px 0 16px}.order-number{color:var(--color-text-secondary);margin-bottom:4px;font-size:14px}.order-customer{font-size:22px;font-weight:700}.order-status-badge{text-align:center;border-radius:var(--radius);margin-bottom:20px;padding:16px;font-size:18px;font-weight:700}.status-new{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.status-ready{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;animation:2s ease-in-out infinite pulse-ready}.status-complete{color:#6b7280;background:#f9fafb;border:1px solid #e5e7eb}.status-cancelled{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}@keyframes pulse-ready{0%,to{opacity:1}50%{opacity:.8}}@media (prefers-color-scheme:dark){.status-new{color:#60a5fa;background:#1d4ed826;border-color:#3b82f64d}.status-ready{color:#34d399;background:#05966926;border-color:#10b9814d}.status-complete{color:#9ca3af;background:#6b72801a;border-color:#6b72804d}.status-cancelled{color:#f87171;background:#dc262626;border-color:#ef44444d}}.order-details{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.order-details h2{margin-bottom:12px;font-size:16px;font-weight:700}.order-items{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.order-line{justify-content:space-between;font-size:15px;display:flex}.order-line-name{color:var(--color-text)}.order-line-price{color:var(--color-text);font-weight:600}.order-total{border-top:1px solid var(--color-border);justify-content:space-between;padding-top:12px;font-size:17px;font-weight:700;display:flex}.order-live-note{text-align:center;color:var(--color-text-secondary);margin-top:16px;font-size:13px}.not-found-page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 16px;display:flex}.not-found-page h1{color:var(--color-text-secondary);font-size:64px}.not-found-page p{color:var(--color-text-secondary);margin-top:8px;font-size:18px}.login-page{--color-bg:#f1f5f9;--color-surface:#fff;--color-border:#cbd5e1;--color-text:#0f172a;--color-text-secondary:#64748b;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-danger:#dc2626;--shadow:0 2px 8px #0f172a14, 0 1px 2px #0000000a;background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}@media (prefers-color-scheme:dark){.login-page{--color-bg:#0f172a;--color-surface:#1e293b;--color-border:#334155;--color-text:#e2e8f0;--color-text-secondary:#94a3b8;--color-primary:#818cf8;--color-primary-hover:#a5b4fc;--color-danger:#f87171;--shadow:0 2px 8px #0000004d, 0 1px 2px #0003}}.login-loading{color:var(--color-text-secondary);font-size:1rem}.login-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:2rem}.login-title{text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.login-error{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);margin-bottom:1rem;padding:.625rem .75rem;font-size:.875rem}.login-label{color:var(--color-text-secondary);margin-bottom:1rem;font-size:.875rem;font-weight:500;display:block}.login-input{width:100%;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;margin-top:.375rem;padding:.625rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s;display:block}.login-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)}.login-input:disabled{opacity:.6}.login-btn{color:#fff;background:var(--color-primary);border-radius:var(--radius);border:none;width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem;font-weight:600;transition:background .15s;display:block}.login-btn:hover:not(:disabled){background:var(--color-primary-hover)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.admin-layout{--color-bg:#f1f5f9;--color-surface:#fff;--color-border:#cbd5e1;--color-text:#0f172a;--color-text-secondary:#64748b;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-light:#818cf8;--color-success:#16a34a;--color-danger:#dc2626;--color-warning:#ca8a04;--color-accent:#818cf8;--color-cream:#e2e8f0;--color-taupe:#cbd5e1;--shadow:0 2px 8px #0f172a14, 0 1px 2px #0000000a;background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}@media (prefers-color-scheme:dark){.admin-layout{--color-bg:#0f172a;--color-surface:#1e293b;--color-border:#334155;--color-text:#e2e8f0;--color-text-secondary:#94a3b8;--color-primary:#818cf8;--color-primary-hover:#a5b4fc;--color-primary-light:#a5b4fc;--color-success:#4ade80;--color-danger:#f87171;--color-warning:#facc15;--color-accent:#818cf8;--color-cream:#1e293b;--color-taupe:#334155;--shadow:0 2px 8px #0000004d, 0 1px 2px #0003}}.admin-loading-page{background:#f1f5f9;justify-content:center;align-items:center;min-height:100dvh;display:flex}@media (prefers-color-scheme:dark){.admin-loading-page{background:#0f172a}}.admin-loading{color:#64748b;font-size:1rem}@media (prefers-color-scheme:dark){.admin-loading{color:#94a3b8}}.admin-nav{background:#1e293b;border-bottom:1px solid #334155;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.admin-nav-brand{color:#f1f5f9;margin-right:.5rem;font-size:1.125rem;font-weight:700}.admin-nav-links{flex:1;gap:.25rem;display:flex}.nav-link{border-radius:var(--radius);color:#94a3b8;padding:.375rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{color:#e2e8f0;background:#334155}.nav-link.active{color:#fff;background:#4f46e5}@media (prefers-color-scheme:dark){.admin-nav{background:#020617;border-bottom-color:#1e293b}.nav-link.active{color:#0f172a;background:#818cf8}}.admin-nav-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.admin-nav-role{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;background:#334155;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.admin-nav-signout{color:#f87171;border-radius:var(--radius);background:0 0;border:1px solid #f87171;padding:.375rem .75rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.admin-nav-signout:hover{color:#fff;background:#f87171}.admin-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1rem}.orders-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.orders-page{flex-direction:column;gap:1rem;display:flex}.orders-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.orders-header h1{font-size:1.5rem}.week-select{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;min-width:180px;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.week-select:focus{border-color:var(--color-primary)}.week-closed-banner{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-warning) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.orders-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.orders-stats{flex-wrap:wrap;gap:.5rem;display:flex}.stat{background:var(--color-border);color:var(--color-text-secondary);border-radius:999px;padding:.25rem .625rem;font-size:.8125rem;font-weight:500}.stat-new{background:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary)}.stat-ready{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.stat-complete{background:var(--color-border);color:var(--color-text-secondary)}.stat-cancelled{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.stat-unpaid{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning)}.orders-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.orders-tabs{background:var(--color-border);border-radius:var(--radius);gap:.25rem;width:fit-content;padding:.1875rem;display:flex}.orders-tab{border-radius:calc(var(--radius) - 2px);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:.4375rem 1rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s}.orders-tab:hover{color:var(--color-text)}.orders-tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.orders-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.order-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s;overflow:hidden}.order-card:hover{box-shadow:var(--shadow)}.order-card--new{border-left:3px solid var(--color-primary)}.order-card--ready{border-left:3px solid var(--color-success)}.order-card--cancelled{border-left:3px solid var(--color-danger);opacity:.7}.order-card--complete{border-left:3px solid var(--color-border);opacity:.8}.order-grid{grid-template-columns:minmax(170px,1fr) minmax(220px,1.45fr) minmax(120px,.8fr) auto minmax(230px,1fr);align-items:start;gap:1rem;padding:.875rem 1rem;display:grid}.order-col--info{flex-direction:column;gap:.25rem;min-width:0;display:flex}.order-number{font-family:var(--mono);font-size:.875rem;font-weight:600}.order-customer{text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:500;overflow:hidden}.order-badges{flex-wrap:wrap;gap:.375rem;margin-top:.125rem;display:flex}.order-col--items{flex-direction:column;gap:.25rem;min-width:0;display:flex}.order-items-list{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.order-item-row{justify-content:space-between;align-items:center;gap:.375rem;font-size:.8125rem;display:flex}.item-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-qty{color:var(--color-text-secondary);flex-shrink:0;font-size:.75rem}.items-count{color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.order-items-summary{align-items:center;gap:.375rem;margin-top:-.0625rem;display:flex}.items-empty{color:var(--color-text-secondary);font-size:.8125rem;font-style:italic}.order-col--meta{text-align:right;flex-direction:column;gap:.5rem;display:flex}.order-date{color:var(--color-text-secondary);font-size:.75rem}.order-total{font-family:var(--mono);font-size:.9375rem;font-weight:600}.order-note-card{text-align:left;background:color-mix(in srgb, var(--color-bg) 55%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);border-radius:calc(var(--radius) - 2px);flex-direction:column;gap:.375rem;min-height:100%;padding:.625rem;display:flex}.order-note-label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.6875rem;font-weight:700}.order-note-input{resize:vertical;width:100%;min-height:4.5rem;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) - 4px);padding:.55rem .625rem}.order-note-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);outline:none}.order-note-input:disabled{opacity:.7}.order-note-footer{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.order-note-count{color:var(--color-text-secondary);font-size:.6875rem}.order-note-save{border-radius:calc(var(--radius) - 4px);background:var(--color-primary);color:#fff;cursor:pointer;border:none;padding:.375rem .625rem;font-size:.6875rem;font-weight:700;transition:opacity .15s}.order-note-save:hover:not(:disabled){opacity:.9}.order-note-save:disabled{opacity:.5;cursor:not-allowed}.order-note-error{color:var(--color-danger);font-size:.75rem}.order-col--actions{flex-direction:column;gap:.375rem;min-width:max-content;display:flex}.order-col--note{min-width:0}.badge{text-transform:capitalize;border-radius:999px;padding:.1875rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-new{background:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary)}.badge-ready{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.badge-complete{background:var(--color-border);color:var(--color-text-secondary)}.badge-cancelled{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.badge-unpaid{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning)}.badge-paid{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.badge-refunded{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.act-btn{border-radius:var(--radius);color:#fff;cursor:pointer;white-space:nowrap;border:none;padding:.4375rem .875rem;font-size:.75rem;font-weight:600;transition:opacity .15s}.act-btn:disabled{opacity:.5;cursor:not-allowed}.act-btn:hover:not(:disabled){opacity:.88}.act-ready{background:var(--color-success)}.act-complete{background:var(--color-primary)}.act-cancel{background:var(--color-danger)}.act-paid{background:var(--color-success)}.act-edit{background:var(--color-primary)}.edit-items-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.375rem;display:flex}.edit-items-label{color:var(--color-primary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.edit-items-actions{gap:.25rem;display:flex}.edit-save-btn,.edit-cancel-btn{border-radius:var(--radius);cursor:pointer;border:none;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;transition:opacity .15s}.edit-save-btn{background:var(--color-success);color:#fff}.edit-cancel-btn{background:var(--color-border);color:var(--color-text-secondary)}.edit-save-btn:disabled,.edit-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.edit-error{color:var(--color-danger);margin-bottom:.25rem;font-size:.75rem}.edit-qty-controls{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.edit-qty-btn{border:1px solid var(--color-border);background:var(--color-bg);width:22px;height:22px;color:var(--color-text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.875rem;font-weight:700;transition:background .15s;display:flex}.edit-qty-btn:hover:not(:disabled){background:var(--color-border)}.edit-qty-btn:disabled{opacity:.3;cursor:not-allowed}.edit-qty-value{text-align:center;min-width:1.25rem;font-size:.75rem;font-weight:700}.order-item-row.item-removed{opacity:.4;text-decoration:line-through}.edit-preview-total{color:var(--color-primary);font-weight:600}@media (width<=768px){.order-grid{grid-template-rows:auto auto auto;grid-template-columns:1fr 1fr;gap:.75rem}.order-col--info{grid-area:1/1}.order-col--meta{grid-area:1/2;align-items:flex-end}.order-col--items{grid-area:2/1}.order-col--actions{flex-flow:wrap;grid-area:2/2;justify-content:flex-end;align-self:end}.order-col--note{grid-area:3/1/auto/-1}}@media (width<=480px){.order-grid{grid-template-columns:1fr;gap:.625rem}.order-col--info{grid-area:1/1}.order-col--items{grid-area:2/1}.order-col--meta{text-align:left;flex-direction:column;grid-area:3/1;align-items:stretch;gap:.75rem}.order-col--actions{flex-flow:wrap;grid-area:4/1}.order-col--note{grid-area:5/1}}.detail-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.detail-error-page{text-align:center;padding:3rem 1rem}.detail-error{color:var(--color-danger);margin-bottom:1rem}.detail-back-btn{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);background:0 0;padding:.5rem 1rem;font-size:.875rem}.detail-page{flex-direction:column;gap:1rem;display:flex}.detail-back-link{color:var(--color-primary);background:0 0;border:none;align-self:flex-start;padding:0;font-size:.875rem}.detail-back-link:hover{text-decoration:underline}.detail-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.detail-order-number{font-family:var(--mono);font-size:1.25rem}.detail-customer{margin-top:.25rem;font-size:1.125rem;font-weight:500}.detail-time{color:var(--color-text-secondary);margin-top:.25rem;font-size:.8125rem}.detail-total{font-family:var(--mono);font-size:1.5rem;font-weight:700}.detail-badges{flex-wrap:wrap;gap:.5rem;display:flex}.detail-badge{border-radius:999px;padding:.25rem .75rem;font-size:.8125rem;font-weight:600;display:inline-block}.detail-badge-new{background:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary)}.detail-badge-ready{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.detail-badge-complete{background:var(--color-border);color:var(--color-text-secondary)}.detail-badge-cancelled{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.detail-badge-unpaid{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning)}.detail-badge-paid{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.detail-badge-refunded{background:color-mix(in srgb, var(--color-danger) 15%, transparent);color:var(--color-danger)}.detail-badge-closed{background:var(--color-border);color:var(--color-text-secondary)}.detail-action-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.detail-actions{flex-wrap:wrap;gap:.5rem;display:flex}.action-btn{border-radius:var(--radius);color:#fff;border:none;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:opacity .15s}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn-ready{background:var(--color-success)}.action-btn-ready:hover:not(:disabled){opacity:.9}.action-btn-complete{background:var(--color-primary)}.action-btn-complete:hover:not(:disabled){opacity:.9}.action-btn-cancelled{background:var(--color-danger)}.action-btn-cancelled:hover:not(:disabled){opacity:.9}.action-btn-paid{background:var(--color-success)}.action-btn-paid:hover:not(:disabled){opacity:.9}.detail-items{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}.detail-items-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.detail-items-header h2{margin:0;font-size:1rem}.detail-edit-btn{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.375rem .875rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s}.detail-edit-btn:hover{background:var(--color-primary);color:#fff}.detail-edit-actions{gap:.375rem;display:flex}.detail-save-btn{color:#fff;background:var(--color-success);border-radius:var(--radius);cursor:pointer;border:none;padding:.375rem .875rem;font-size:.8125rem;font-weight:600}.detail-save-btn:disabled{opacity:.5;cursor:not-allowed}.detail-cancel-edit-btn{color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.375rem .875rem;font-size:.8125rem;font-weight:600}.detail-cancel-edit-btn:disabled{opacity:.5;cursor:not-allowed}.detail-item-edit-controls{align-items:center;gap:.375rem;display:flex}.detail-qty-btn{width:1.75rem;height:1.75rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent);border:1px solid var(--color-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1rem;font-weight:600;line-height:1;display:flex}.detail-qty-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.detail-qty-btn:disabled{opacity:.35;cursor:not-allowed}.detail-qty-value{text-align:center;min-width:1.5rem;font-weight:600;font-family:var(--mono)}.detail-item-removed{opacity:.45}.detail-item-removed-label{color:var(--color-danger);font-size:.75rem;font-style:italic;font-weight:400}.detail-items-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.detail-item-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.detail-item-info{flex-direction:column;gap:.125rem;display:flex}.detail-item-name{font-weight:500}.detail-item-qty{color:var(--color-text-secondary);font-size:.8125rem}.detail-item-total{font-family:var(--mono);white-space:nowrap;font-weight:600}.detail-subtotal{border-top:1px solid var(--color-border);justify-content:space-between;align-items:baseline;margin-top:.75rem;padding-top:.75rem;font-size:1.0625rem;font-weight:700;display:flex}.detail-week-info{color:var(--color-text-secondary);font-size:.8125rem}.menu-mgmt-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.menu-mgmt-page{flex-direction:column;gap:1rem;display:flex}.menu-mgmt-denied{color:var(--color-text-secondary);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:3rem 1rem}.menu-mgmt-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.menu-mgmt-header h1{font-size:1.5rem}.menu-mgmt-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.menu-mgmt-add-btn{color:#fff;background:var(--color-primary);border-radius:var(--radius);padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.menu-mgmt-add-btn:hover{background:var(--color-primary-hover)}.menu-mgmt-close-btn{color:#fff;background:var(--color-danger);border-radius:var(--radius);cursor:pointer;border:none;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:opacity .15s;display:inline-block}.menu-mgmt-close-btn:hover:not(:disabled){opacity:.88}.menu-mgmt-close-btn:disabled{opacity:.5;cursor:not-allowed}.menu-mgmt-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.menu-mgmt-empty{text-align:center;color:var(--color-text-secondary);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius);padding:3rem 1rem}.menu-mgmt-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.menu-mgmt-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:.75rem;padding:.75rem 1rem;transition:opacity .15s;display:flex}.menu-mgmt-item.inactive{opacity:.55}.menu-mgmt-item-reorder{flex-direction:column;flex-shrink:0;gap:.125rem;display:flex}.menu-mgmt-item-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:48px;height:48px}.reorder-btn{width:28px;height:24px;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.8125rem;transition:background .15s,color .15s;display:flex}.reorder-btn:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.reorder-btn:disabled{opacity:.3;cursor:not-allowed}.menu-mgmt-item-info{flex:1;min-width:0}.menu-mgmt-item-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.menu-mgmt-item-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.menu-mgmt-item-price{font-family:var(--mono);white-space:nowrap;font-size:.875rem;font-weight:600}.menu-mgmt-item-desc{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:.125rem;font-size:.8125rem;overflow:hidden}.menu-mgmt-item-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.375rem;display:flex}.toggle-btn{border:none;border-radius:999px;padding:.25rem .625rem;font-size:.75rem;font-weight:600;transition:background .15s}.toggle-active{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.toggle-active:hover:not(:disabled){background:color-mix(in srgb, var(--color-success) 25%, transparent)}.toggle-inactive{background:var(--color-border);color:var(--color-text-secondary)}.toggle-inactive:hover:not(:disabled){background:color-mix(in srgb, var(--color-text-secondary) 20%, transparent)}.toggle-btn:disabled{opacity:.6;cursor:not-allowed}.edit-link{color:var(--color-primary);font-size:.8125rem;font-weight:500;text-decoration:none}.edit-link:hover{text-decoration:underline}.menu-form-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.menu-form-page{flex-direction:column;gap:1rem;display:flex}.menu-form-denied{color:var(--color-text-secondary);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:3rem 1rem}.menu-form-back-link{color:var(--color-primary);background:0 0;border:none;align-self:flex-start;padding:0;font-size:.875rem}.menu-form-back-link:hover{text-decoration:underline}.menu-form-page h1{font-size:1.5rem}.menu-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:1rem;max-width:480px;padding:1.5rem;display:flex}.menu-form-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.menu-form-back{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);background:0 0;padding:.5rem 1rem;font-size:.875rem}.menu-form-label{color:var(--color-text-secondary);flex-direction:column;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}.menu-form-input{color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;padding:.625rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s}.menu-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)}.menu-form-textarea{color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;outline:none;padding:.625rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .15s}.menu-form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)}.menu-form-input:disabled,.menu-form-textarea:disabled{opacity:.6}.menu-form-actions{gap:.75rem;margin-top:.5rem;display:flex}.menu-form-submit{color:#fff;background:var(--color-primary);border-radius:var(--radius);border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s}.menu-form-submit:hover:not(:disabled){background:var(--color-primary-hover)}.menu-form-submit:disabled{opacity:.6;cursor:not-allowed}.menu-form-cancel{color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius);background:0 0;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:background .15s}.menu-form-cancel:hover:not(:disabled){background:var(--color-border)}.menu-form-cancel:disabled{opacity:.6;cursor:not-allowed}.menu-form-image-section{flex-direction:column;gap:.5rem;display:flex}.menu-form-image-label{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.menu-form-image-preview{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);width:120px;height:120px;overflow:hidden}.menu-form-image{object-fit:cover;width:100%;height:100%;display:block}.menu-form-image-actions{align-items:center;gap:.5rem;display:flex}.menu-form-image-upload-btn{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;transition:background .15s;display:inline-block}.menu-form-image-upload-btn:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.menu-form-image-delete-btn{color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;transition:background .15s}.menu-form-image-delete-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.menu-form-image-delete-btn:disabled{opacity:.5;cursor:not-allowed}.menu-form-image-upload-btn:has(input:disabled){opacity:.5;cursor:not-allowed}.menu-form-image-error{color:var(--color-danger);font-size:.8125rem}.menu-form-image-help{color:var(--color-text-secondary);margin:0;font-size:.8125rem}.reports-page{flex-direction:column;gap:1.25rem;display:flex}.reports-page h1{font-size:1.5rem}.reports-controls{flex-direction:column;gap:.75rem;display:flex}.reports-controls-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.export-actions{flex-wrap:wrap;gap:.5rem;display:flex}.range-tabs{background:var(--color-border);border-radius:var(--radius);gap:.25rem;width:fit-content;padding:.1875rem;display:flex}.range-tab{border-radius:calc(var(--radius) - 2px);color:var(--color-text-secondary);background:0 0;border:none;padding:.4375rem 1rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s}.range-tab:hover{color:var(--color-text)}.range-tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.export-button{color:#fff;background:var(--color-primary);border-radius:var(--radius);cursor:pointer;border:none;padding:.5625rem .875rem;font-size:.8125rem;font-weight:600;transition:background .15s,opacity .15s}.export-button:hover:not(:disabled){background:var(--color-primary-hover)}.export-button:disabled{opacity:.6;cursor:not-allowed}.export-button-secondary{background:color-mix(in srgb, var(--color-surface) 20%, var(--color-primary))}.export-button-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--color-surface) 8%, var(--color-primary-hover))}.range-select{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;min-width:220px;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.range-select:focus{border-color:var(--color-primary)}.reports-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem}.reports-loading{text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.report-label{color:var(--color-text-secondary);font-size:1rem;font-weight:600}.report-empty{color:var(--color-text-secondary);padding:1rem 0;font-size:.875rem}.summary-cards{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:1rem;display:flex}.summary-value{font-size:1.5rem;font-weight:700;font-family:var(--mono);color:var(--color-text)}.summary-label{color:var(--color-text-secondary);font-size:.8125rem;font-weight:500}.summary-sub{color:var(--color-danger);font-size:.75rem;font-weight:400}.report-section{flex-direction:column;gap:.5rem;display:flex}.report-section h2{align-items:center;gap:.5rem;font-size:1.125rem;display:flex}.unpaid-count{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning);border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.report-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;overflow:hidden}.report-table th,.report-table td{text-align:left;padding:.625rem .75rem;font-size:.875rem}.report-table thead{background:color-mix(in srgb, var(--color-border) 40%, transparent)}.report-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.report-table tbody tr{border-top:1px solid var(--color-border)}.report-table tbody tr:first-child{border-top:none}.col-rank{width:3rem;color:var(--color-text-secondary);text-align:center!important}.col-qty{width:5rem;font-family:var(--mono);font-weight:600;text-align:right!important}.col-revenue{width:6rem;font-family:var(--mono);font-weight:600;text-align:right!important}.unpaid-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.unpaid-card{background:var(--color-surface);border:1px solid color-mix(in srgb, var(--color-warning) 30%, var(--color-border));border-left:3px solid var(--color-warning);border-radius:var(--radius);padding:.75rem 1rem}.unpaid-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.unpaid-info{flex-direction:column;gap:.125rem;display:flex}.unpaid-name{font-weight:600}.unpaid-order-num{font-family:var(--mono);color:var(--color-text-secondary);font-size:.8125rem}.unpaid-total{font-family:var(--mono);font-size:1rem;font-weight:700}.unpaid-items{border-top:1px solid var(--color-border);flex-direction:column;gap:.125rem;margin:0;padding:.5rem 0 0;list-style:none;display:flex}.unpaid-item{justify-content:space-between;align-items:baseline;font-size:.8125rem;display:flex}.unpaid-item-qty{color:var(--color-text-secondary);font-size:.75rem}.unpaid-item-price{font-family:var(--mono);font-size:.8125rem;font-weight:600}.unpaid-header-right{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.unpaid-status-badge{text-transform:capitalize;border-radius:999px;padding:.125rem .375rem;font-size:.6875rem;font-weight:600;display:inline-block}.unpaid-status-new{background:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary)}.unpaid-status-ready{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.unpaid-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.375rem;margin-top:.5rem;padding-top:.5rem;display:flex}.unpaid-act-btn{border-radius:var(--radius);color:#fff;cursor:pointer;white-space:nowrap;border:none;padding:.3125rem .625rem;font-size:.6875rem;font-weight:600;transition:opacity .15s}.unpaid-act-btn:disabled{opacity:.5;cursor:not-allowed}.unpaid-act-btn:hover:not(:disabled){opacity:.88}.unpaid-act-paid,.unpaid-act-ready{background:var(--color-success)}.unpaid-act-complete{background:var(--color-primary)}.unpaid-act-cancel{background:var(--color-danger)}@media (width<=768px){.summary-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.reports-controls-row{align-items:stretch}.summary-cards{grid-template-columns:1fr}.range-tabs{width:100%}.range-tab{text-align:center;flex:1}.range-select,.export-button,.export-actions{width:100%}.col-rank{display:none}}
