:root{color-scheme:light;--bg: #f7f9fc;--surface: #ffffff;--surface-2: #f1f5f9;--surface-3: #e7edf5;--border: #e3e8ef;--border-strong: #cbd5e1;--text: #0f172a;--text-muted: #64748b;--text-faint: #94a3b8;--primary: #0f172a;--primary-hover: #1e293b;--primary-contrast: #ffffff;--accent: #f59e0b;--accent-contrast: #1a1205;--focus: #2563eb;--danger: #dc2626;--danger-bg: #fef2f2;--danger-border: #fecaca;--danger-text: #991b1b;--success: #16a34a;--success-bg: #f0fdf4;--success-border: #bbf7d0;--success-text: #166534;--warning: #d97706;--warning-bg: #fffbeb;--warning-border: #fde68a;--warning-text: #92400e;--info: #2563eb;--info-bg: #eff6ff;--info-border: #bfdbfe;--info-text: #1e40af;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .05);--shadow: 0 1px 2px rgb(15 23 42 / .06), 0 8px 24px rgb(15 23 42 / .06);--shadow-lg: 0 10px 15px -3px rgb(15 23 42 / .1), 0 24px 48px -12px rgb(15 23 42 / .18);--touch: 44px;--header-h: 56px;--sticky-top: calc(var(--header-h) + 60px)}[data-theme=dark]{color-scheme:dark;--bg: #0b1220;--surface: #121a2b;--surface-2: #19233a;--surface-3: #212e49;--border: #243149;--border-strong: #35466a;--text: #e8eef7;--text-muted: #9fb0c7;--text-faint: #6e819a;--primary: #f8fafc;--primary-hover: #e2e8f0;--primary-contrast: #0b1220;--accent: #fbbf24;--accent-contrast: #1a1205;--focus: #60a5fa;--danger: #f87171;--danger-bg: #2b1515;--danger-border: #7f2d2d;--danger-text: #fecaca;--success: #4ade80;--success-bg: #0f2419;--success-border: #236b42;--success-text: #bbf7d0;--warning: #fbbf24;--warning-bg: #2a2010;--warning-border: #7c5e14;--warning-text: #fde68a;--info: #60a5fa;--info-bg: #111e38;--info-border: #2a4a86;--info-text: #bfdbfe;--shadow-sm: 0 1px 2px rgb(0 0 0 / .5);--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px rgb(0 0 0 / .35);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5), 0 24px 48px -12px rgb(0 0 0 / .6)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Sarabun,Noto Sans Thai,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}:where(a,button,select,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}h1{font-size:1.35rem;margin:0}h2{font-size:1.1rem;margin:0}.muted{color:var(--text-muted)}.small{font-size:.82rem}.center{text-align:center}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.break-all{word-break:break-all}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.btn{min-height:var(--touch);padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:transform .06s ease,background .15s ease}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-contrast);border-color:transparent}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:transparent}.btn-danger:hover:not(:disabled){background:var(--danger);filter:brightness(1.08);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:transparent}.btn-danger{background:var(--danger);color:#fff;border-color:transparent}.btn-ghost{background:transparent;border-color:transparent;font-weight:500}.btn-sm{min-height:34px;padding:0 12px;font-size:.85rem}.btn-lg{min-height:52px;font-size:1.02rem}.btn-block{width:100%}.link-button{background:none;border:none;padding:0;font:inherit;color:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.input{min-height:var(--touch);width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:16px;font-family:inherit}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input-sm{min-height:34px;font-size:14px;width:auto}.field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--text-muted)}.field-row{flex-direction:row;align-items:center;justify-content:space-between}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 18px;margin:4px 0}.checkbox{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted)}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.app-shell{min-height:100%;display:flex;flex-direction:column}.app-header{height:var(--header-h);padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;box-shadow:var(--shadow-sm);gap:12px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{background:var(--accent);color:var(--accent-contrast);font-weight:800;border-radius:8px;padding:4px 8px;letter-spacing:.5px}.brand-mark-lg{font-size:1.2rem;padding:8px 12px}.brand-store{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-box{display:flex;align-items:center;gap:10px}.user-name{font-size:.85rem;display:flex;align-items:center;gap:6px;min-width:0}.user-display{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14ch}@media (max-width: 560px){.user-display{display:none}}.role-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:.7rem;color:var(--text-muted)}.app-nav{display:flex;gap:4px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--header-h);z-index:19}.app-nav::-webkit-scrollbar{display:none}.app-nav a{padding:8px 14px;border-radius:999px;text-decoration:none;color:var(--text-muted);font-weight:600;font-size:.9rem;white-space:nowrap}.app-nav a:hover{background:var(--surface-2);color:var(--text)}.app-nav a.active,.app-nav a.active:hover{background:var(--primary);color:var(--primary-contrast)}.app-main{flex:1;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}@media (min-width: 760px){.app-main{padding:22px 24px}}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.section-title{margin:24px 0 12px;font-size:1rem}.modal-body>.section-title{margin:10px 0 0;padding-top:16px;border-top:1px solid var(--border)}.modal-body>.section-title:first-child{margin-top:0;padding-top:0;border-top:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.page-loading{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{display:block;width:40px;height:40px;margin:0 auto 10px;color:var(--text-faint)}.empty-state{padding:32px 16px;text-align:center;color:var(--text-muted)}.empty-title{font-weight:600;margin:0 0 4px}.empty-hint{margin:0;font-size:.85rem}.error-bar,.success-bar,.notice-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius-sm);margin-bottom:12px;font-size:.92rem}.error-bar{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border);border-left-color:var(--danger)}.success-bar{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border);border-left-color:var(--success)}.notice-bar{background:var(--surface);border-left-color:var(--border-strong);flex-wrap:wrap}.notice-warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border);border-left-color:var(--warning)}.notice-text{flex:1;min-width:200px}.notice-actions{display:flex;gap:8px;margin-left:auto}.bar-icon{flex:none;width:20px;height:20px}.bar-icon svg,.toast-icon svg,.empty-icon svg,.fatal-icon svg,.icon-btn svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bar-text{flex:1;min-width:0}.bar-actions{display:flex;align-items:center;gap:6px;flex:none}.bar-close{width:30px;height:30px;flex:none;padding:6px;border:none;border-radius:50%;background:transparent;color:inherit;opacity:.65;cursor:pointer}.bar-close svg,.toast-close svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.bar-close:hover,.toast-close:hover{opacity:1;background:#64748b38}.receipt-cta{margin-left:10px;vertical-align:middle}.profit-hint{font-style:normal;opacity:.75}.toaster{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 12px 0;pointer-events:none}.toast{pointer-events:auto;width:min(520px,100%);display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;border:1px solid var(--border);border-left-width:5px;border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}}.toast-error{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border);border-left-color:var(--danger)}.toast-warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border);border-left-color:var(--warning)}.toast-success{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border);border-left-color:var(--success)}.toast-info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border);border-left-color:var(--info)}.toast-icon{flex:none;width:22px;height:22px;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-title{margin:0;font-weight:700;font-size:.95rem}.toast-detail{margin:3px 0 0;font-size:.85rem;opacity:.85}.toast-action{margin-top:10px;min-height:36px;background:var(--surface);border-color:currentColor;color:inherit}.toast-close{flex:none;width:30px;height:30px;padding:7px;border:none;border-radius:50%;background:transparent;color:inherit;opacity:.6;cursor:pointer}.conn-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:.76rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.conn-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex:none}.conn-pill-good .conn-pill-dot{background:var(--success)}.conn-pill-warn{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}.conn-pill-warn .conn-pill-dot{background:var(--warning);animation:pulse 1.6s ease-in-out infinite}.conn-pill-bad{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text)}.conn-pill-bad .conn-pill-dot{background:var(--danger)}.conn-pill-retry{border:none;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0 0 0 2px}@media (max-width: 760px){.conn-pill-text,.conn-pill-retry{display:none}.conn-pill{padding:6px}}.icon-btn{width:40px;height:40px;flex:none;padding:8px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-muted);cursor:pointer;display:inline-grid;place-items:center;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.fatal-screen{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.fatal-card{width:min(520px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px 24px;text-align:center}.fatal-icon{display:inline-block;width:44px;height:44px;color:var(--danger);margin-bottom:8px}.fatal-card h1{margin-bottom:8px}.fatal-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}.fatal-detail{margin-top:18px;text-align:left;font-size:.82rem;color:var(--text-muted)}.fatal-detail pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:var(--radius-sm);padding:10px;margin:8px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.login-page{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:14px}.login-page{position:relative}.login-topbar{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:4px}.login-subtitle{margin:2px 0 0;font-size:.82rem;color:var(--text-muted)}.pos-layout{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}@media (max-width: 900px){.pos-layout{grid-template-columns:1fr}}.pos-menu-toolbar{margin-bottom:12px}.category-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tabs-sticky{position:sticky;top:var(--sticky-top);background:var(--bg);z-index:5;padding-top:8px}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 14px;min-height:38px;font:inherit;font-size:.9rem;font-weight:600;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip-active{background:var(--primary);color:var(--primary-contrast);border-color:transparent}.chip-count{opacity:.6;font-weight:500;font-size:.78rem}.chip-channel{font-size:.72rem;padding:2px 8px;min-height:auto}.chip-qr{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:6px;cursor:pointer;font:inherit;color:inherit;text-align:left;box-shadow:var(--shadow)}.product-card:active{transform:scale(.98)}.product-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2)}.product-image-placeholder{display:grid;place-items:center;font-size:1.3rem;font-weight:700;color:var(--text-muted)}.product-name{font-weight:600;line-height:1.3}.product-price{color:var(--text-muted);font-size:.9rem}.pos-cart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;position:sticky;top:var(--sticky-top);max-height:calc(100vh - var(--sticky-top) - 24px)}.cart-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.cart-close{display:none}.cart-controls{padding:12px 14px 0}.cart-lines{flex:1;overflow-y:auto;padding:8px 14px;min-height:80px}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.cart-line-main{display:flex;flex-direction:column;min-width:0}.cart-line-name{font-weight:600}.cart-line-options{font-size:.78rem;color:var(--text-muted)}.cart-line-total{font-variant-numeric:tabular-nums;font-weight:600}.qty-control{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;overflow:hidden}.qty-control button{width:34px;height:34px;border:none;background:var(--surface-2);color:var(--text);font-size:1.1rem;cursor:pointer}.qty-control span{min-width:32px;text-align:center;font-weight:600}.cart-summary{border-top:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.summary-row{display:flex;justify-content:space-between;font-size:.92rem}.summary-discount{color:var(--danger)}.summary-total{font-size:1.15rem;font-weight:700}.summary-hint{margin:0;font-size:.75rem;color:var(--text-muted)}.cart-actions{display:grid;grid-template-columns:auto 1fr;gap:8px;margin-top:4px}.cart-fab{position:fixed;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:30;min-height:54px;border:none;border-radius:999px;background:var(--primary);color:var(--primary-contrast);font:inherit;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 22px;box-shadow:var(--shadow);cursor:pointer}@media (min-width: 901px){.cart-fab:not(.cart-fab-customer){display:none}}@media (max-width: 900px){.pos-cart{position:fixed;inset:auto 0 0 0;max-height:85dvh;padding-bottom:max(12px,env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0;transform:translateY(100%);transition:transform .25s ease;z-index:40}.pos-cart-open{transform:translateY(0)}.cart-close{display:inline-flex}}.incoming-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.badge{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;font-size:.85rem;margin-left:8px}.badge-alert{background:var(--danger);color:#fff;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.order-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}.order-card-pending{border-left:4px solid var(--accent)}.order-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.order-no{font-weight:700;margin-right:8px}.order-table{font-size:.85rem;color:var(--text-muted)}.order-items{margin:0;padding-left:18px;font-size:.9rem;color:var(--text)}.order-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.order-meta{display:flex;flex-direction:column}.order-actions{display:flex;gap:8px}.order-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:var(--surface-2)}.data-table tbody tr:last-child td{border-bottom:none}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.row-inactive{opacity:.55}.detail-row td{background:var(--surface-2)}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.diff-grid h4{margin:0 0 4px;font-size:.8rem;color:var(--text-muted)}.diff-grid pre{margin:0;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.78rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}@media (max-width: 640px){.diff-grid{grid-template-columns:1fr}}.status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--surface-2);border:1px solid var(--border)}.status-pending{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.status-accepted,.status-inkitchen{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.status-ready{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.status-rejected,.status-cancelled{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.action-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;font-size:.85rem}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:14px}.modal-backdrop,.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:grid;z-index:50;padding:16px}.modal-backdrop{place-items:center}.sheet-backdrop{align-items:end;padding:0}.modal{width:min(520px,100%);max-height:88vh;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.modal-narrow{width:min(360px,100%)}.modal-header,.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-subtitle{margin:2px 0 0;color:var(--text-muted);font-size:.85rem}.modal-body,.sheet-body{padding:18px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.modal-footer,.sheet-footer{padding:14px 18px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sheet-footer{flex-direction:column;align-items:stretch;gap:8px}.modal-total{font-weight:700}.modal-warning{color:var(--danger);font-size:.88rem}.sheet{width:100%;max-height:85vh;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;display:flex;flex-direction:column;overflow:hidden;animation:slide-up .22s ease}@keyframes slide-up{0%{transform:translateY(100%)}}.option-group{border:none;padding:0;margin:0}.option-group legend{font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px}.required-tag,.hint-tag{font-size:.7rem;font-weight:500;padding:1px 8px;border-radius:999px}.required-tag{background:var(--danger-bg);color:var(--danger-text)}.hint-tag{background:var(--surface-2);color:var(--text-muted)}.option-list{display:grid;gap:8px}.option-item{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:var(--touch);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.option-item-checked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.option-item-disabled{opacity:.45;cursor:not-allowed}.option-name{flex:1}.option-price{color:var(--text-muted);font-size:.88rem}.bill-summary{margin:0;display:grid;gap:6px}.bill-summary>div{display:flex;justify-content:space-between;font-size:.92rem}.bill-summary dt,.bill-summary dd{margin:0}.bill-total{font-weight:700;font-size:1.05rem!important;border-top:1px solid var(--border);padding-top:6px}.bill-profit{color:var(--success)}.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.table-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.table-card header{display:flex;align-items:center;justify-content:space-between}.table-occupied{border-left-color:var(--accent)}.table-available{border-left-color:var(--success)}.table-disabled{border-left-color:var(--text-muted);opacity:.6}.table-number{font-weight:700;font-size:1.05rem}.table-status{font-size:.78rem;color:var(--text-muted)}.table-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.qr-preview{align-items:center;text-align:center}.qr-preview img{width:100%;max-width:260px;image-rendering:pixelated;background:#fff;padding:12px;border-radius:var(--radius-sm)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}.stat-card-primary{border-left:4px solid var(--accent)}.stat-label{font-size:.8rem;color:var(--text-muted)}.stat-value{font-size:1.4rem;font-variant-numeric:tabular-nums}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}@media (max-width: 900px){.dashboard-columns{grid-template-columns:1fr}}.activity-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:420px;overflow-y:auto}.activity-list li{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px;font-size:.85rem}.activity-time{color:var(--text-muted);font-size:.75rem}.create-store-form{margin-bottom:16px}.customer-page{max-width:640px;margin:0 auto;padding:16px 16px calc(96px + env(safe-area-inset-bottom))}.customer-header{padding:8px 0 16px}.customer-header h1{font-size:1.25rem}.customer-menu{display:flex;flex-direction:column;gap:10px;margin-top:12px}.menu-row{display:flex;align-items:center;gap:12px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;font:inherit;color:inherit;cursor:pointer;box-shadow:var(--shadow)}.menu-row:disabled{opacity:.5}.menu-row-image{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-2);flex-shrink:0}.menu-row-placeholder{display:grid;place-items:center;font-weight:700;color:var(--text-muted)}.menu-row-body{flex:1;display:flex;flex-direction:column;min-width:0}.menu-row-name{font-weight:600}.menu-row-desc{font-size:.82rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-row-price{font-weight:600;font-variant-numeric:tabular-nums}.status-steps{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column}.status-step{display:flex;gap:14px;padding-bottom:18px;position:relative;color:var(--text-muted)}.status-step:not(:last-child):before{content:"";position:absolute;left:9px;top:22px;bottom:0;width:2px;background:var(--border)}.status-step>div{display:flex;flex-direction:column}.status-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);background:var(--surface);flex-shrink:0;z-index:1}.status-step.done .status-dot,.status-step.active .status-dot{background:var(--accent);border-color:var(--accent)}.status-step.active{color:var(--text)}.status-step.active .status-dot{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent)}.status-rejected{background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius);padding:16px;margin-bottom:16px}.status-rejected h2{margin-bottom:6px}.customer-bill{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:14px}.bill-lines{list-style:none;margin:10px 0;padding:0}.bill-lines li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.bill-lines li>div{display:flex;flex-direction:column}@media print{.app-header,.app-nav,.btn,.cart-fab,.toaster{display:none!important}body{background:#fff}}.store-switcher{display:flex;align-items:center;gap:6px}.store-switcher-label{font-size:.75rem;color:var(--text-muted)}.store-switcher select{max-width:180px}.branch-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:500;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.branch-tag-parent{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.store-branch-name{padding-left:18px;position:relative}.store-branch-name:before{content:"↳";position:absolute;left:2px;color:var(--text-muted)}.access-chips{display:flex;flex-wrap:wrap;gap:6px}.access-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border:1px solid var(--border);border-radius:999px;font-size:.8rem;background:var(--surface)}.access-store{font-weight:600}.access-role{padding:0 8px;border-radius:999px;font-size:.7rem;background:var(--surface-2);color:var(--text-muted)}.role-owner{background:var(--warning-bg);color:var(--warning-text)}.role-manager{background:var(--info-bg);color:var(--info-text)}.access-remove{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.8rem;line-height:1;padding:4px 6px;border-radius:999px}.access-remove:hover{background:var(--danger-bg);color:var(--danger-text)}.kitchen-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kitchen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.kds-card{background:var(--surface);border:1px solid var(--border);border-left:6px solid var(--success);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column}.kds-warn{border-left-color:var(--accent)}.kds-late{border-left-color:var(--danger);animation:kds-pulse 2s ease-in-out infinite}@keyframes kds-pulse{50%{box-shadow:0 0 0 3px #dc26262e}}.kds-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.kds-order-no{font-size:1.2rem;font-weight:800;margin-right:8px}.kds-table{font-size:.9rem;color:var(--text-muted)}.kds-wait{display:flex;flex-direction:column;align-items:flex-end;font-size:.9rem}.kds-note{margin:0;padding:8px 14px;background:var(--warning-bg);color:var(--warning-text);font-size:.88rem}.kds-items{list-style:none;margin:0;padding:0;flex:1}.kds-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.kds-item:last-child{border-bottom:none}.kds-item-preparing{background:color-mix(in srgb,var(--accent) 10%,transparent)}.kds-item-ready,.kds-item-served{opacity:.45}.kds-item-main{display:flex;align-items:flex-start;gap:12px;min-width:0}.kds-qty{min-width:34px;height:34px;border-radius:8px;background:var(--primary);color:var(--primary-contrast);display:grid;place-items:center;font-weight:800;font-size:1.05rem;flex-shrink:0}.kds-item-text{display:flex;flex-direction:column;min-width:0}.kds-item-name{font-weight:700;font-size:1.02rem;line-height:1.3}.kds-item-options{font-size:.85rem;color:var(--text-muted)}.kds-item-note{font-size:.85rem;color:var(--warning-text);font-weight:600}.kds-item-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.kds-void:hover{background:var(--danger-bg);color:var(--danger-text)}.kds-done{font-size:.85rem;color:var(--success);font-weight:700}.open-bills{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:12px}.open-bills-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.open-bills-label{font-size:.8rem;color:var(--text-muted)}.open-bills-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.open-bills-list::-webkit-scrollbar{display:none}.open-bill{flex-shrink:0;min-width:140px;text-align:left;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:inherit;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px}.open-bill-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.receipt{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;color:#000;background:#fff;padding:12px;border-radius:var(--radius-sm)}.receipt-head{text-align:center;display:flex;flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:1px dashed #999}.receipt-store{font-size:1.05rem}.receipt-meta{padding:8px 0;border-bottom:1px dashed #999;display:grid;gap:2px}.receipt-meta>div{display:flex;justify-content:space-between}.receipt-lines{width:100%;border-collapse:collapse;margin:8px 0}.receipt-lines td{padding:3px 0;vertical-align:top}.receipt-qty{width:28px}.receipt-amount{text-align:right;white-space:nowrap}.receipt-option{font-size:.75rem;color:#555;padding-left:6px}.receipt-totals{border-top:1px dashed #999;padding-top:8px;display:grid;gap:3px}.receipt-totals>div{display:flex;justify-content:space-between}.receipt-grand{font-weight:800;font-size:1rem;border-top:1px solid #000;border-bottom:1px solid #000;padding:4px 0;margin:4px 0}.receipt-footer{text-align:center;margin:10px 0 0}@media print{body *{visibility:hidden}#receipt-print-area,#receipt-print-area *{visibility:visible}#receipt-print-area{position:absolute;left:0;top:0;width:76mm;padding:0;font-size:11px}.no-print,.modal-backdrop{background:none!important}}.settings-page form{display:flex;flex-direction:column;gap:16px}.mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:12px}.mode-card{border:2px solid var(--border);border-radius:var(--radius);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:6px;background:var(--surface-2)}.mode-card input{position:absolute;opacity:0;pointer-events:none}.mode-card-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.mode-card-title{font-weight:800;font-size:1.05rem}.mode-card-hint{font-size:.84rem;color:var(--text-muted)}.mode-card-flow{font-size:.78rem;color:var(--text-muted);border-top:1px solid var(--border);padding-top:6px;margin-top:auto}.settings-toggles{display:grid;gap:4px;margin-top:8px}.toggle-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;cursor:pointer}.toggle-row input{margin-top:3px;width:18px;height:18px;flex-shrink:0}.toggle-row>div{display:flex;flex-direction:column}.menu-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.menu-admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.menu-admin-card-off{opacity:.62}.menu-admin-image{position:relative;aspect-ratio:16 / 10;background:var(--surface-2);display:grid;place-items:center}.menu-admin-image img{width:100%;height:100%;object-fit:cover;display:block}.menu-admin-badge{position:absolute;top:8px;left:8px;padding:3px 10px;border-radius:999px;background:var(--danger);color:#fff;font-size:.72rem;font-weight:700}.menu-admin-body{padding:12px 14px;display:flex;flex-direction:column;gap:2px;flex:1}.menu-admin-name{font-size:1rem}.menu-admin-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.menu-admin-numbers>div{display:flex;flex-direction:column}.menu-admin-numbers strong{font-size:.95rem}.menu-admin-actions{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-2)}.menu-admin-actions .btn{flex:1}.image-picker{margin-bottom:14px}.field-label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}.image-picker-row{display:flex;gap:14px;align-items:flex-start}.image-preview{width:108px;height:108px;flex:none;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.image-preview img{width:100%;height:100%;object-fit:cover}.image-preview-empty{width:34px;height:34px;color:var(--text-faint)}.image-preview-empty svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.image-picker-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}label.btn{cursor:pointer}.btn-busy{opacity:.6;pointer-events:none}.recipe-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.recipe-row{display:grid;grid-template-columns:minmax(140px,1.6fr) 90px 44px 80px auto auto;gap:8px;align-items:center}.recipe-row .input-sm{width:100%}.recipe-qty{text-align:right}.recipe-unit,.recipe-cost{white-space:nowrap}@media (max-width: 760px){.recipe-row{grid-template-columns:1fr 86px 40px;grid-template-areas:"ingredient qty unit" "cost optional remove"}.recipe-row>select{grid-area:ingredient}.recipe-row>.recipe-qty{grid-area:qty}.recipe-row>.recipe-unit{grid-area:unit}.recipe-row>.recipe-cost{grid-area:cost;text-align:left}.recipe-row>.checkbox{grid-area:optional}.recipe-row>.btn{grid-area:remove}}.cost-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.cost-summary>div{display:flex;flex-direction:column}.cost-summary strong{font-size:1.05rem}.checkbox-row{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0}.option-group-picker{display:flex;flex-direction:column;gap:8px}.option-group-choice{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);align-items:flex-start}.price-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto}.price-history li{padding:8px 10px;border-radius:var(--radius-sm)}.price-history li:nth-child(odd){background:var(--surface-2)}.price-history-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.price-history-delta{font-size:.82rem;font-weight:600}.chip-plain{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-weight:500;padding:1px 8px;min-height:0}.modal-wide{width:min(880px,100%)}.ingredient-row-image{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-2)}.ingredient-name-cell{display:flex;align-items:center;gap:10px}.stock-warning{color:var(--danger);font-weight:600}.option-editor{display:flex;flex-direction:column;gap:10px}.option-item-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 100px 100px auto auto;gap:8px;align-items:center}.option-item-row .input-sm{width:100%}@media (max-width: 760px){.option-item-row{grid-template-columns:1fr 1fr}}.promo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.promo-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px}.promo-card-off{opacity:.6;border-left-color:var(--border-strong)}.promo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.promo-value{font-size:1.3rem;font-weight:800;color:var(--accent)}.promo-kind{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.promo-conditions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.promo-condition{font-size:.76rem;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-muted)}.promo-actions{display:flex;gap:6px;margin-top:auto;padding-top:10px}.day-picker{display:flex;flex-wrap:wrap;gap:6px}.day-toggle{min-width:42px;min-height:38px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font:inherit;font-size:.85rem;cursor:pointer}.day-toggle-on{background:var(--primary);border-color:transparent;color:var(--primary-contrast);font-weight:700}.combo-picker{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px}.combo-pick-row{display:grid;grid-template-columns:1fr auto 80px;gap:8px;align-items:center}.modal-checkout{width:min(560px,100%)}.checkout-lines{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:2px}.checkout-lines li,.bill-items li{display:grid;grid-template-columns:2.6rem 1fr auto;align-items:baseline;gap:8px;padding:8px 6px;border-radius:var(--radius-sm)}.checkout-lines li:nth-child(odd),.bill-items li:nth-child(odd){background:var(--surface-2)}.checkout-qty{font-weight:700;font-variant-numeric:tabular-nums}.checkout-name{display:flex;flex-direction:column;min-width:0}.checkout-options{font-style:normal;font-size:.8rem;color:var(--text-muted)}.checkout-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.checkout-totals{margin:0;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.checkout-totals>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.checkout-totals dt,.checkout-totals dd{margin:0}.checkout-grand{margin-top:8px;padding-top:10px!important;border-top:1px solid var(--border-strong);font-size:1.25rem;font-weight:800}.method-picker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.method-picker .day-toggle{flex:1 1 auto;min-height:var(--touch)}.input-money{font-size:1.5rem;font-weight:700;text-align:right;min-height:56px;font-variant-numeric:tabular-nums}.quick-cash{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.quick-cash .btn{flex:1 1 70px;min-height:46px;font-variant-numeric:tabular-nums}.change-line{margin:12px 0 0;font-size:1.15rem;font-weight:700}.modal-footer-split{display:grid;grid-template-columns:auto 1fr;gap:10px}.modal-footer-split .btn-primary{font-variant-numeric:tabular-nums}.vat-toggle{margin:8px 0 4px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.bill-list{display:flex;flex-direction:column;gap:10px}.bill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.bill-card-open{border-color:var(--border-strong);box-shadow:var(--shadow)}.bill-card-head{width:100%;display:grid;grid-template-columns:1fr auto 1.5rem;align-items:center;gap:12px;padding:14px 16px;min-height:64px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.bill-card-head:hover{background:var(--surface-2)}.bill-card-id,.bill-card-amount{display:flex;flex-direction:column;min-width:0}.bill-card-id strong{font-size:1.05rem}.bill-card-amount{text-align:right;font-variant-numeric:tabular-nums}.bill-card-amount strong{font-size:1.1rem}.bill-card-caret{color:var(--text-faint);font-size:.7rem}.bill-preview{margin:-6px 16px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bill-card-body{padding:0 16px 16px;border-top:1px solid var(--border)}.bill-items{list-style:none;margin:12px 0;padding:0}.bill-items li{grid-template-columns:2.6rem 1fr auto auto}.bill-item-void{opacity:.5;text-decoration:line-through}.bill-card-total{display:flex;justify-content:space-between;padding:10px 6px;border-top:1px solid var(--border);font-size:1.1rem}.bill-card-actions{display:flex;gap:8px;margin-top:12px}.bill-card-actions .btn{flex:1;min-height:48px}.prepared-toggle{margin:14px 0 8px;padding:12px;border:1px solid var(--warning-border);border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning-text);align-items:flex-start}.prepared-effect{margin:0 0 10px;font-size:.88rem;font-weight:600}@supports (height: 100dvh){html,body,#root{height:100dvh}.modal{max-height:calc(100dvh - 32px)}}button,a,label,summary,.chip,.product-card,.day-toggle{-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (pointer: coarse){.input-sm,select.input-sm,textarea{font-size:16px}}@media (max-width: 760px){.modal-backdrop{padding:0;align-items:end}.modal,.modal-narrow,.modal-wide,.modal-checkout{width:100%;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:sheet-rise .2s ease-out}.modal-footer{padding-bottom:max(14px,env(safe-area-inset-bottom))}.bill-card-head{grid-template-columns:1fr auto 1.2rem}.bill-card-actions{flex-direction:column}.modal-footer-split{grid-template-columns:1fr}.modal-footer-split .btn-primary{order:-1}}@keyframes sheet-rise{0%{transform:translateY(16px);opacity:0}}.modal-body,.sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-backdrop,.sheet-backdrop{overscroll-behavior:contain}.app-header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.app-nav{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.app-main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}:root{--tab-bar-h: 58px}.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tab-bar,.header-menu-btn{display:none}@media (min-width: 760px) and (max-width: 1023px){.header-wide-only{display:none}.header-menu-btn{display:inline-grid}}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tab-bar-h);padding:6px 2px;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:.68rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer}.tab-item>span{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tab-item .icon{width:22px;height:22px;padding:3px 16px;box-sizing:content-box;border-radius:999px;transition:background .15s ease,color .15s ease}.tab-item.active{color:var(--text)}.tab-item.active .icon{background:var(--primary);color:var(--primary-contrast)}.tab-item-open .icon{background:var(--surface-3);color:var(--text)}.nav-sheet{max-height:88dvh}.nav-sheet-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--border)}.nav-sheet-group{display:flex;flex-direction:column;gap:8px}.nav-sheet-title{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--text-faint)}.nav-sheet-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.nav-sheet-link{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-weight:600;font-size:.92rem}.nav-sheet-link:hover{background:var(--surface-2)}.nav-sheet-link.active{background:var(--primary);color:var(--primary-contrast)}.install-btn{gap:6px}@media (max-width: 759px){:root{--sticky-top: var(--header-h)}.app-nav,.header-wide-only{display:none}.tab-bar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;inset:auto 0 0 0;z-index:35;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px #0f172a0f}.app-main{padding-bottom:calc(var(--tab-bar-h) + env(safe-area-inset-bottom) + 16px)}.cart-fab{z-index:36;bottom:calc(var(--tab-bar-h) + env(safe-area-inset-bottom) + 12px)}.app-header{gap:8px}.brand-mark{padding:3px 7px;font-size:.85rem}}[data-theme=dark] .tab-bar{box-shadow:0 -2px 10px #0006}@media (pointer: coarse){.app-nav a{min-height:44px;display:inline-flex;align-items:center}}@media (min-width: 1280px){.pos-layout{grid-template-columns:1fr 400px}}@supports (height: 100dvh){.pos-cart{max-height:calc(100dvh - var(--sticky-top) - 24px)}}.category-tabs{scroll-snap-type:x proximity;scroll-padding-left:4px}.category-tabs>*{scroll-snap-align:start}@media (pointer: coarse){.chip{min-height:44px}.product-card:active{transform:scale(.97);border-color:var(--border-strong)}}@media (max-width: 900px){.pos-cart-open:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:40px;height:4px;border-radius:999px;background:var(--border-strong)}.pos-cart{padding-top:10px;box-shadow:var(--shadow-lg)}.cart-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#0f172a73;border:none;animation:scrim-in .18s ease}.pos-cart{z-index:40}}@keyframes scrim-in{0%{opacity:0}}@media (min-width: 901px){.cart-scrim{display:none}}.cart-actions .btn-lg{min-height:54px;font-size:1.05rem}.cart-fab{font-variant-numeric:tabular-nums}@media (max-width: 759px){.table-cards,.table-cards tbody,.table-cards tr,.table-cards td{display:block;width:auto}.table-cards thead{display:none}.table-cards tr{margin-bottom:10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.table-cards td{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;border:none;text-align:right}.table-cards td[data-label]:before{content:attr(data-label);flex:none;font-size:.8rem;font-weight:600;color:var(--text-muted);text-align:left}.table-cards td:first-child{display:block;text-align:left;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--border)}.table-cards td:first-child:before{display:none}.table-cards .row-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;margin-top:4px;border-top:1px solid var(--border)}.table-cards .row-actions .btn{flex:1 1 auto;min-height:44px}.table-cards .row-actions:before{display:none}.order-table-wrap:has(.table-cards){overflow-x:visible}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active,.product-card:active{transform:none}}.cart-fab-count{animation:fab-bump .25s ease-out}@keyframes fab-bump{40%{transform:scale(1.18)}}.open-bills-link{flex:none;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.82rem;font-weight:600;text-decoration:none;white-space:nowrap}.open-bills-link:hover{background:var(--surface);color:var(--text)}.unit-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(130px,1.4fr);gap:10px}.unit-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:14px 16px;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface-2)}.unit-summary>div{display:flex;flex-direction:column;gap:2px;min-width:0}.unit-summary strong{font-size:1rem;font-variant-numeric:tabular-nums}.chip-group{display:inline-flex;align-items:center;gap:2px}.chip-remove{min-height:44px;padding:0 8px;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:.8rem;cursor:pointer;border-radius:var(--radius-sm)}.chip-remove:hover{background:var(--danger-bg);color:var(--danger-text)}.chip-ghost{background:transparent;border:1px dashed var(--border-strong);color:var(--text-muted)}.chip-ghost:hover{background:var(--surface-2);color:var(--text)}.section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.section-head .section-title{margin-bottom:0}.sort-toggle{display:flex;gap:6px}.hour-chart{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;align-items:end;height:150px;padding:10px 8px 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.hour-col{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}.hour-bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.hour-bar{width:100%;min-height:2px;border-radius:3px 3px 0 0;background:var(--border-strong);transition:height .2s ease}.hour-bar-peak{background:var(--accent)}.hour-label{font-size:.6rem;color:var(--text-faint);font-variant-numeric:tabular-nums}.trend{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.compare-note{margin:-8px 0 12px}
