: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-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:28px;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{background:var(--color-primary);color:#fff;z-index:100;border:none;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;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #456d8f59}.floating-cart-btn:hover{background:var(--color-primary-hover);box-shadow:0 6px 20px #385d7a66}.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)}}.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-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:1fr 1.5fr .75fr auto;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:.375rem;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{align-items:baseline;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}.items-empty{color:var(--color-text-secondary);font-size:.8125rem;font-style:italic}.order-col--meta{text-align:right;flex-direction:column;gap:.25rem;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-col--actions{flex-direction:column;gap:.375rem;min-width:max-content;display:flex}.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)}@media (width<=768px){.order-grid{grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:.75rem}.order-col--info{grid-area:1/1}.order-col--meta{grid-area:1/2}.order-col--items{grid-area:2/1}.order-col--actions{flex-flow:wrap;grid-area:2/2;justify-content:flex-end;align-self:end}}@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:row;grid-area:3/1;align-items:baseline;gap:.75rem}.order-col--actions{flex-flow:wrap;grid-area:4/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 h2{margin-bottom:.75rem;font-size:1rem}.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-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-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}.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}.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}.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)}.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}@media (width<=768px){.summary-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.summary-cards{grid-template-columns:1fr}.range-tabs{width:100%}.range-tab{text-align:center;flex:1}.range-select{width:100%}.col-rank{display:none}}
