:root{color-scheme:dark;--bg: oklch(.145 0 0);--card: oklch(.205 0 0);--tile: oklch(.24 0 0);--field: oklch(.18 0 0);--ink: oklch(.985 0 0);--muted: oklch(.708 0 0);--line: oklch(1 0 0 / 12%);--cash: oklch(.62 .14 150);--bank: oklch(.62 .14 250);--credit: oklch(.65 .2 25);--nav: oklch(.175 0 0);--accent: oklch(.922 0 0);--accent-ink: oklch(.205 0 0);--free: oklch(.22 .028 150);--seated: oklch(.24 .028 78);--pending: oklch(.24 .03 250);--alert: oklch(.25 .04 25);--shadow: none;--radius: .625rem;font-family:ui-sans-serif,system-ui,sans-serif}@font-face{font-family:Faruma;src:url(/fonts/Faruma.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}html[lang=bn]{font-family:Noto Sans Bengali,ui-sans-serif,system-ui,sans-serif}html[lang|=dv]{font-family:Faruma,Noto Sans Thaana,ui-sans-serif,system-ui,sans-serif;font-synthesis:none}html[lang=bn] body,html[lang|=dv] body{font-family:inherit}html[lang|=dv] .bill-no,html[lang|=dv] .price,html[lang|=dv] .count,html[lang|=dv] .sales-amt,html[lang|=dv] .sales-kpi strong,html[lang|=dv] .sales-pay-card strong,html[lang|=dv] .sales-part strong,html[lang|=dv] .check-line em,html[lang|=dv] .check-line>.qty-side+.check-main>b,html[lang|=dv] .slip-item>b,html[lang|=dv] .slip-pair .bill-no{direction:ltr;unicode-bidi:isolate}*{box-sizing:border-box}html{touch-action:manipulation;-webkit-text-size-adjust:100%}html,body,#root{margin:0;height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--ink);overscroll-behavior:none}body{width:100%;user-select:none;-webkit-user-select:none}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:16px;user-select:text;-webkit-user-select:text;appearance:none}button,a,img{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button,.nav a{-webkit-user-select:none;user-select:none;touch-action:manipulation}button{cursor:pointer}button:active,.nav a:active,.table:active,.order-item:active{opacity:.72}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.stage{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:calc(52px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(46px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));-webkit-overflow-scrolling:touch}.stage::-webkit-scrollbar,.menu-grid::-webkit-scrollbar,.chips::-webkit-scrollbar,.check::-webkit-scrollbar{display:none}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}h1{font-size:26px;margin:0;letter-spacing:-.03em}h2{font-size:16px;margin:18px 0 8px}.muted{color:var(--muted);font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.table,.tile,.row{border:1px solid var(--line);border-radius:16px;background:var(--tile)}.table,.tile{padding:14px;text-align:start;width:100%;margin-bottom:8px;min-height:92px}.grid .table{margin-bottom:0}.table strong,.tile strong,.table span{display:block;font-size:16px}.table span{font-size:13px;margin-top:4px}.table.free{background:var(--free);border-color:#34563b}.table.seated,.busy{background:var(--seated);border-color:#7b5d33}.table.waiting{background:var(--alert);border-color:#a45953}.table .act{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:750;line-height:1.3}.langs{display:flex;gap:4px}.langs button{min-height:32px;min-width:36px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--tile);color:var(--ink);font-weight:750;font-size:12px}.langs button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.login .langs{justify-content:center;margin:10px 0 4px}.top-actions .langs button{min-height:28px;padding:0 6px}.lang-menu{position:relative;flex:none}.lang-current{min-width:40px;min-height:32px;padding:0 8px;border-radius:999px;border:1px solid var(--line);background:var(--tile);color:var(--ink);font-weight:750;font-size:12px}.lang-pop{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:8;display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px}.lang-pop button{min-height:36px;min-width:72px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font-weight:750}.lang-pop button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.nav a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer{font-size:20px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.send{margin-bottom:8px}.kot{margin:0}.kot.flash{border-color:var(--cash)}.kot-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.kot-head p{margin:2px 0 0}.kot .line{align-items:center}.kot-actions{display:flex;align-items:center;gap:8px;flex:none}.kot-done,.kot-all{width:auto;min-height:40px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--field);font-weight:750}.kot-all{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.kitchen-board{display:grid;gap:10px}.bulletin{display:flex;flex-direction:column;gap:6px}.bulletin-item{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 12px;border-radius:12px;background:var(--tile);border:1px solid var(--line);animation:bulletin-in .28s ease}.bulletin-item.new,.bulletin-item.add{border-color:var(--cash)}.bulletin-item.change{border-color:#dca331}.bulletin-item span{min-width:0}.bulletin-item time{flex:none;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}@keyframes bulletin-in{0%{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.bulletin-item{animation:none}}@media(min-width:768px)and (min-height:600px){.kitchen-board{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{min-height:96px;display:flex;flex-direction:column;justify-content:space-between}.order-item{position:relative;display:block;align-self:start;width:100%;height:auto;padding:0 0 8px;text-align:start;border:1px solid var(--line);border-radius:14px;background:var(--tile);overflow:hidden}.order-item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;font-weight:750;line-height:1.2;padding:6px 8px 0;min-height:2.4em}.order-item .price{display:block;margin:2px 0 0;padding:0 8px;font-size:13px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.order-item .price i{font-style:normal;color:var(--muted);font-size:11px;font-weight:650}.item-frame{position:relative;display:block;width:100%;aspect-ratio:1;height:auto;overflow:hidden;background:var(--field)}.item-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:var(--field)}.item-frame .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:22px;font-weight:750}.menu-panel{display:block;overflow:visible;background:var(--bg)}.menu-stick{flex:none;position:relative;z-index:2;background:var(--bg);padding-bottom:4px}.menu-search{position:relative}.menu-search .field{margin:0 0 8px;padding-block:10px;padding-inline:12px 40px}.menu-search button{position:absolute;inset-inline-end:2px;top:2px;width:44px;height:44px;border:0;background:transparent;font-size:22px;color:var(--muted)}.menu-chips{overflow-anchor:none;margin-bottom:8px}.menu-chips button{touch-action:manipulation;min-height:36px}.menu-grid{display:grid;overflow:visible;align-content:start;align-items:start;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;gap:8px;padding-bottom:8px}.photo-pick{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:center;margin-bottom:8px}.photo-pick img,.photo-pick span{width:72px;height:72px;border-radius:14px;object-fit:contain;object-position:center;background:var(--field);display:grid;place-items:center;color:var(--muted);font-size:12px}.photo-pick .ghost{width:auto;margin:0;padding:10px 12px}.order-item.hit{background:#3a3120;border-color:var(--accent)}.order-item .count{position:absolute;top:6px;inset-inline-end:6px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:12px;font-weight:800}.order-item .pin{position:absolute;top:6px;inset-inline-start:6px;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 88%,transparent);border:1px solid var(--line);font-size:14px;padding:0}.ticket{display:flex;gap:8px;overflow:auto;padding-bottom:8px}.check{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;min-height:0;overflow:auto;overscroll-behavior:contain}.stage:has(.order-work)>.order-head{margin-bottom:0}.order-head{background:#fff;color:#141416;border:1px solid #e4e4e7;border-bottom:0;padding:14px 14px 0;font-variant-numeric:tabular-nums}.order-head .slip-kicker{letter-spacing:.14em;text-transform:uppercase;font-size:11px;margin:0;text-align:center;color:#525252}.order-head-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:8px}.order-head h1{font-size:22px;line-height:1.1;min-width:0;margin:0;color:#141416}.order-head-main strong{font-size:20px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#141416}.order-head .muted,.order-head .bill-who{margin:2px 0 0;line-height:1.35;color:#525252}.order-head .pill{background:transparent;border:0;padding:0;color:#525252;font-size:inherit}.bill-no{font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.order-head h1.bill-id{font-size:28px;line-height:1;margin:6px 0 0;color:#141416}.bill-label{display:block;margin-bottom:2px;font-size:12px;font-weight:800;line-height:1.2;letter-spacing:.01em}.bill-place{font-size:18px;font-weight:650;color:#141416}.receipt .bill-no{display:block;text-align:center;font-size:26px;color:#141416;margin:0}.slip-actions{display:grid;grid-template-columns:1fr;gap:0;margin-top:10px;border-top:1px dashed #c4c4c8}.slip-actions button{width:100%;min-height:44px;margin:0;padding:8px 6px;border:0;border-radius:0;background:transparent;color:#141416;font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slip-actions button+button{border-inline-start:1px dashed #c4c4c8}.stage:has(.order-work)>.error,.stage:has(.order-work)>.muted{flex:none}.order-work{display:flex;flex-direction:column;gap:0}.order-work>.menu-panel{margin-top:12px}.ticket-panel{display:flex;flex-direction:column;overflow:visible;background:#fff;color:#141416;border:1px solid #e4e4e7;border-top:1px dashed #c4c4c8;padding:8px 12px 10px;margin-bottom:0}.ticket-panel>:not(.check){flex:none}.ticket-panel .check{flex:1 1 auto;min-height:0;max-height:0;margin:0;overflow:hidden}.ticket-panel.bill-open{max-height:68%}.ticket-panel.bill-open .check{max-height:168px;min-height:64px;margin-bottom:8px;overflow:auto}.bill-sum{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:40px;margin:0 0 6px;padding:8px 2px;border-radius:0;border:0;border-bottom:1px dashed #e4e4e7;background:transparent;color:#141416;text-align:start}.bill-sum span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.bill-sum b{flex:none;color:var(--muted);font-size:13px}.bill-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.bill-actions .pay,.bill-actions .ghost,.bill-actions .slip-actions{margin:0}.ticket-panel .slip-actions{grid-template-columns:1fr 1fr}.ticket-panel .save{width:100%;min-height:44px;border-radius:12px;border:1px solid #d4d4d8;background:#f4f4f5;color:#141416;font-weight:750}.ticket-panel .pay button{min-height:48px;padding:8px;flex-direction:row;gap:6px;font-size:15px}.ticket-panel .send,.ticket-panel .ghost{padding:8px 10px;min-height:44px}.order-work>.menu-panel{display:block}.check-line{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;align-items:stretch;border:0;border-bottom:1px dashed #e4e4e7;background:transparent;border-radius:0;padding:3px 0;width:100%;color:#141416}.check-line .qty-side{border:0;border-radius:12px;background:#f4f4f5;color:#141416;font-size:22px;font-weight:750;min-height:44px}.ticket-panel .check-main,.ticket-panel .check-line em,.ticket-panel .check-line strong,.ticket-panel .ghost,.ticket-panel .line{color:#141416}.ticket-panel .ghost{background:transparent;border-color:#d4d4d8}.check-main{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:start;border:0;background:transparent;min-width:0;padding:4px 6px}.check-line b{font-size:18px}.check-line strong,.check-line small{display:block}.check-line small{color:var(--muted);font-weight:500}.check-line em{font-style:normal;font-weight:750}.check-line.comp{opacity:.72}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-grid .ghost{margin:0}.chip-bill{flex:0 0 auto;border:1px solid var(--line);background:var(--seated);color:var(--ink);border-radius:999px;padding:8px 12px;font-weight:650}.chip-bill b{color:var(--accent);margin-inline-end:4px}.chip-bill small{display:block;color:var(--muted);font-weight:500}.ticket-panel .pay{position:static;margin:0}.ticket-panel .bill-actions .ghost{margin:0}.price{color:var(--accent);margin-top:8px;font-weight:700}.rail{position:fixed;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:8px;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));background:var(--nav);border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:row;align-items:center;gap:8px;line-height:1.05;min-width:0;flex:1;overflow:hidden}.brand img{width:28px;height:28px;border-radius:8px;background:#fff;flex:none;object-fit:cover}.live{display:inline-block;width:8px;height:8px;margin-inline-end:5px;border-radius:99px;background:#a1a1aa}.live.on{background:#22c55e}.brand span{display:flex;flex-direction:column;min-width:0;max-width:100%}.brand strong,.brand time{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand strong{font-size:13px;font-weight:750;letter-spacing:-.03em}.brand time{color:var(--muted);font-size:11px}.top-actions{display:flex;align-items:center;gap:8px}.top-actions .me{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);background:var(--tile);border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 4px}.top-actions .me.on{border-color:var(--accent)}.top-actions .me b,.top-actions .me small{display:block}.top-actions .me b{font-size:13px;font-weight:650}.top-actions .me small{color:var(--muted);font-size:11px;text-transform:capitalize}.avatar{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-weight:750}.logout{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;padding:0}.nav{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:stretch;height:calc(46px + env(safe-area-inset-bottom));padding:0 max(2px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(2px,env(safe-area-inset-left));background:var(--nav);border-top:1px solid var(--line);z-index:4}.nav a{position:relative;color:var(--muted);text-decoration:none;background:none;border:0;flex:1;min-width:0;height:100%;padding:5px 2px 3px;border-radius:0;font-size:10px;font-weight:650;line-height:1.05;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.nav a.on{color:var(--ink);background:transparent}.nav a.on:after{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;border-radius:0 0 2px 2px;background:var(--accent)}.nav a:active{background:var(--tile);opacity:1}.nav svg{display:block;width:20px;height:20px}.pay{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;position:sticky;bottom:54px;z-index:3}.pay:has(>button:nth-child(2):last-child){grid-template-columns:1fr 1fr}.pay button,.primary,.ghost{border:0;border-radius:14px;padding:14px 10px;font-weight:750;min-height:48px}.pay button{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:64px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.cash{background:var(--cash);color:#fff}.bank{background:var(--bank);color:#fff}.credit{background:var(--credit);color:#fff}.primary{background:var(--accent);color:var(--accent-ink);width:100%}.ghost{background:transparent;border:1px solid var(--line);width:100%}.field{width:100%;background:var(--field);border:1px solid var(--line);border-radius:14px;padding:13px;margin:8px 0;min-height:48px}.ticket-panel .send,.ticket-panel .bill-actions .ghost,.ticket-panel .save{min-height:44px;padding:8px 10px}button:disabled{opacity:.55}label.file-btn{display:grid;place-items:center;text-align:center;cursor:pointer;margin:0}.bank-amount{font-size:28px;font-weight:750;text-align:center;margin:0 0 8px;letter-spacing:-.03em}.bank-qr{width:min(320px,80vw);height:auto;aspect-ratio:1;object-fit:contain;display:block;margin:8px auto 12px;background:#fff;border-radius:16px;padding:10px}.proof-preview{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:12px;background:#111;margin:8px 0}.line{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.qty{display:flex;gap:8px;align-items:center}.qty button,.step button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--field);font-size:18px}.error{background:#3a1616;color:#ffd0d0;padding:10px 12px;border-radius:12px;margin-bottom:10px}.chips{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;margin:0 0 12px;padding-bottom:2px;scrollbar-width:none}.chips button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;min-height:36px;white-space:nowrap}.chips button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.admin-page{min-width:0}.admin-nav{position:sticky;top:0;z-index:3;background:var(--bg);margin:0 -16px 12px;padding:6px 16px 8px}.admin-nav button{display:inline-flex;align-items:center;gap:6px}.manage{display:flex;align-items:center;gap:10px;width:100%;text-align:start;border:1px solid var(--line);background:var(--tile);border-radius:14px;padding:8px 10px;margin:0 0 8px;min-height:56px}.manage.static{cursor:default}.manage img,.manage .ph{width:42px;height:42px;border-radius:12px;object-fit:contain;object-position:center;background:var(--field);color:var(--muted);display:grid;place-items:center;flex:none;font-weight:750}.manage .grow{flex:1;min-width:0}.manage .grow strong,.manage .grow .muted{display:block}.manage .grow strong{font-size:15px}.manage b{font-size:14px;white-space:nowrap}.manage b.role{text-transform:capitalize;color:var(--muted);font-weight:650}.month-bar button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--field);flex:none}.chips button{display:inline-flex;align-items:center;gap:6px}.pair{display:grid;grid-template-columns:1fr 92px;gap:8px;align-items:center}.pair .field{margin:4px 0}.admin-block{margin-top:12px}.stat-btn{text-align:start;width:100%}.stock-figure{font-size:28px;font-weight:750;margin:4px 0;letter-spacing:-.03em}.pill.low,strong.thin{color:var(--credit)}.pill.low{border-color:var(--credit)}.tabs button.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.app-icon{width:72px;height:72px;border-radius:18px;display:block;margin:0 auto 8px;background:#fff}.pill{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;background:var(--tile);color:var(--ink);border:1px solid var(--line)}.summary{display:flex;gap:8px;margin-bottom:12px}.summary .card{flex:1;padding:10px 12px;box-shadow:none}.summary .card span,.summary .card strong{display:block}.summary strong{font-size:20px}.receipt{width:min(320px,100%);margin:0 auto 12px;padding:18px 16px 20px;font-variant-numeric:tabular-nums;background:#fff;color:#141416;border:1px solid #e4e4e7}.receipt img.mark{width:56px;height:56px;border-radius:0;display:block;margin:0 auto 6px;background:transparent;object-fit:contain}.slip-pair{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.slip-pair .bill-no{display:block;font-size:22px;text-align:start}.slip-pair .bill-label{font-size:11px}.slip-pair span,.slip-item>div{min-width:0}.slip-item b{flex:none;white-space:nowrap}.receipt.paper-58{width:58mm}.receipt.paper-80{width:80mm}.receipt.paper-a4{width:min(180mm,100%)}.receipt h1,.receipt p{text-align:center;margin:0;color:#141416}.receipt h1{font-size:22px;letter-spacing:-.03em}.receipt .slip-kicker{letter-spacing:.14em;text-transform:uppercase;font-size:12px;margin-top:2px;color:#525252}.receipt .muted,.receipt .slip-item span{color:#525252}.slip-rule{border-top:1px dashed #c4c4c8;margin:10px 0}.slip-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:4px 0}.slip-item strong,.slip-item span,.slip-item b{display:block}.slip-item span{font-size:12px;font-weight:500}.slip-item b{font-weight:700;color:#141416}.receipt .total-row{font-size:18px;margin-top:4px}.receipt .total-row strong{color:#141416}.receipt .slip-pay{margin-top:8px;font-weight:700}.receipt .thanks{margin-top:2px;font-weight:700}.receipt-slip{position:fixed;left:-10000px;top:0;width:72mm;pointer-events:none}.change{font-size:28px;margin:8px 0}.pin{align-self:flex-end;border:0;background:transparent;color:var(--muted);padding:0}.pin.on{color:var(--accent)}html.light{color-scheme:light;--bg: oklch(1 0 0);--card: oklch(1 0 0);--tile: oklch(.97 0 0);--field: oklch(1 0 0);--ink: oklch(.145 0 0);--muted: oklch(.556 0 0);--line: oklch(.922 0 0);--nav: oklch(1 0 0);--accent: oklch(.205 0 0);--accent-ink: oklch(.985 0 0);--free: oklch(.96 .02 150);--seated: oklch(.96 .02 80);--shadow: none}html.light .mark{background:var(--tile);color:var(--ink)}@media print{body *{visibility:hidden}.receipt,.receipt *{visibility:visible}.receipt,.receipt-slip{position:absolute;left:0;top:0;width:80mm;border:0;box-shadow:none;background:#fff;color:#000}.receipt.paper-58,.receipt-slip.paper-58{width:58mm}.receipt.paper-a4,.receipt-slip.paper-a4{width:190mm}.receipt .slip-rule{border-color:#000}.receipt .slip-item span,.receipt .muted{color:#000}}.sheet{position:fixed;inset:0;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;z-index:6}.sheet .card{width:100%;border-radius:22px 22px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));max-height:min(88dvh,100%);overflow:auto;scrollbar-width:none;animation:sheet-up .22s cubic-bezier(.2,.8,.2,1)}.sheet .card::-webkit-scrollbar{display:none}.sheet .card:before{content:"";display:block;width:36px;height:5px;border-radius:99px;background:var(--line);margin:4px auto 12px}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sheet .card{animation:none}}.login{height:100%;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--bg)}.login .card{width:min(420px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;border:0;background:transparent;box-shadow:none}.login input{scroll-margin:0}.login h1{font-size:28px;text-align:center;margin:0;letter-spacing:-.03em}.login-sub{text-align:center;margin:4px 0 0}.login .langs{display:flex}.login .langs button{flex:1;min-height:40px}.pass-row{position:relative}.pass-row .field{padding-inline-end:76px}.pass-row>button{position:absolute;top:8px;inset-inline-end:6px;height:48px;min-height:48px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:13px;font-weight:750}.method-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}.method-row .card{margin:0;padding:8px;min-height:72px;width:100%;text-align:start;color:inherit}.method-row .card strong,.method-row .card span{display:block}.method-row .card strong{font-size:14px;letter-spacing:-.03em}.method-row .on{outline:2px solid var(--accent)}.tone-cash{border-inline-start:3px solid var(--cash)}.tone-bank{border-inline-start:3px solid var(--bank)}.tone-credit{border-inline-start:3px solid var(--credit)}.trend{display:flex;align-items:flex-end;gap:4px;height:112px;overflow-x:auto;margin:0 0 12px}.trend button{flex:1 0 22px;min-width:22px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;border:0;background:transparent;padding:0;color:var(--muted)}.trend button:disabled{opacity:1}.trend i{display:block;width:100%;max-width:16px;background:var(--accent);border-radius:4px 4px 0 0}.trend small{font-size:9px;line-height:1}.badge{display:inline-block;margin-inline-end:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:750;line-height:1.45}.badge.paid{background:color-mix(in srgb,var(--cash) 24%,transparent);color:var(--cash)}.badge.open{background:color-mix(in srgb,oklch(.75 .14 80) 28%,transparent);color:#e8be62}.badge.credit{background:color-mix(in srgb,var(--credit) 24%,transparent);color:var(--credit)}.badge.bank{background:color-mix(in srgb,var(--bank) 24%,transparent);color:var(--bank)}.badge.void{background:var(--tile);color:var(--muted)}html.light .badge.paid{color:#005e27;color:oklch(.42 .12 150)}html.light .badge.open{color:#6d4200;color:oklch(.42 .1 70)}html.light .badge.credit{color:#a52b1e}html.light .badge.bank{color:#004f8b;color:oklch(.42 .12 250)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.stats .card strong{font-size:18px}.stats .card span,.stats .card strong{display:block}.stats .card{box-shadow:none}html.light .table.free{background:#ecf9ee;border-color:#a8c7ad}html.light .table.seated{background:#fcf4e6;border-color:#d8c0a1}html.light .table.waiting{background:#fff1f0;background:oklch(.97 .02 25);border-color:#dc9a94}html.light .order-item.hit{background:#fff4df}html.light .order-item .pin{background:#fff}@media(min-width:768px)and (min-height:600px){.app{display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.rail{position:static;grid-column:1;grid-row:1;height:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:calc(16px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));border-bottom:0;border-inline-end:1px solid var(--line)}.brand{flex:none;padding:4px 8px 16px}.brand img{width:36px;height:36px;border-radius:10px}.brand strong{font-size:18px}.brand time{font-size:13px}.nav{position:static;flex:1;width:auto;height:auto;left:auto;right:auto;bottom:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;padding:0;border-top:0;background:transparent;overflow:auto}.nav a{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;height:auto;min-height:48px;padding:0 12px;border-radius:12px;font-size:15px;line-height:1.2}.nav a.on:after{display:none}.nav a:active{background:transparent;opacity:.72}.nav a.on{background:var(--tile)}.nav a.on:before{content:"";position:absolute;inset-inline-start:0;top:10px;bottom:10px;width:3px;border-radius:99px;background:var(--accent)}.nav svg{width:22px;height:22px}.top-actions{flex-direction:column;align-items:stretch;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.top-actions .langs{justify-content:space-between}.top-actions .langs button{flex:1;min-height:36px}.top-actions .me{padding:8px 10px 8px 8px;border:1px solid var(--line);background:var(--tile)}.top-actions .me b,.top-actions .me small{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.logout{width:100%;height:44px;border-radius:12px}.stage{grid-column:2;padding:20px 24px 24px}.stage:has(.order-work){display:flex;flex-direction:column;overflow:hidden}.stage:has(.order-work)>.order-head{margin-bottom:12px;border-bottom:1px solid #e4e4e7}.stage:has(.order-work)>.order-work{flex:1;min-height:0}.order-work>.menu-panel{margin-top:0}.admin-nav{top:0;margin:0 -24px 12px;padding:4px 24px 8px}.floor{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,240px))}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;flex:1;min-height:0;overflow:auto}.item-frame{aspect-ratio:1;height:auto}.order-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);grid-template-rows:minmax(0,1fr);gap:16px;align-items:stretch;height:100%}.menu-panel{grid-column:1;grid-row:1;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px}.ticket-panel{grid-column:2;grid-row:1;background:#fff;color:#141416;border:1px solid #e4e4e7;border-radius:0;padding:12px}.ticket-panel,.menu-panel{height:100%;max-height:none;overflow:hidden;display:flex;flex-direction:column}.ticket-panel .check,.ticket-panel:not(.bill-open) .check{max-height:none;min-height:0;flex:1;margin-bottom:8px;overflow:auto}.bill-sum{display:none}.ticket{flex-direction:column}.login .card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px}.sheet{align-items:center;padding:24px}.sheet .card{width:min(520px,100%);border-radius:20px;max-height:min(80dvh,720px);padding:8px 20px 20px}.sheet .card:before{display:none}}@media(min-width:1100px)and (min-height:600px){.app{grid-template-columns:248px minmax(0,1fr)}.floor{grid-template-columns:repeat(4,minmax(0,1fr))}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.order-work{grid-template-columns:minmax(0,1fr) 420px}}@media(min-width:1400px)and (min-height:600px){.floor{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(orientation:landscape)and (max-height:520px){.stage{padding-top:calc(52px + env(safe-area-inset-top));padding-bottom:calc(46px + env(safe-area-inset-bottom))}.floor{grid-template-columns:repeat(4,minmax(0,1fr))}.order-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,34%);grid-template-rows:minmax(0,1fr);height:100%;gap:8px}.order-work>.menu-panel{margin-top:0}.menu-panel{grid-column:1}.ticket-panel{grid-column:2;border-top:1px solid #e4e4e7}.stage:has(.order-work)>.order-head{margin-bottom:8px;border-bottom:1px solid #e4e4e7}.ticket-panel .check,.ticket-panel:not(.bill-open) .check{max-height:none}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));flex:1;min-height:0;overflow:auto}.stage:has(.order-work){display:flex;flex-direction:column;overflow:hidden}.stage:has(.order-work)>.order-work{flex:1;min-height:0}.ticket-panel,.menu-panel{height:100%;max-height:none;overflow:hidden;display:flex;flex-direction:column}.ticket-panel{display:flex;flex-direction:column}.ticket-panel .pay button{min-height:44px;padding:6px}.bill-sum{display:none}.login{padding:8px}.login h1{font-size:22px}.app-icon{width:48px;height:48px;margin-bottom:4px}.login .field{margin:4px 0;padding:10px}.login .primary{padding:10px}}@media(max-width:767px),(max-height:599px){h1{font-size:22px}.order-head h1.bill-id{font-size:28px}.top,.summary{margin-bottom:8px}.table{padding:10px;min-height:80px}.top-actions{gap:6px}.top-actions .me{padding:0;border:0;background:transparent}.top-actions .me b,.top-actions .me small{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.logout{width:40px;height:40px}}.credit-person{background:var(--tile);border:1px solid var(--line);border-radius:16px;padding:12px;margin:0 0 10px}.credit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.credit-head span{display:flex;flex-direction:column;min-width:0}.credit-head strong{font-size:16px}.credit-head .muted{font-size:13px}.credit-head b{font-size:16px;font-variant-numeric:tabular-nums;color:var(--credit);white-space:nowrap}.credit-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.credit-facts span{font-size:12px;color:var(--muted);background:var(--field);border-radius:999px;padding:4px 8px}.credit-facts .warn{color:var(--credit)}.credit-bill{display:flex;flex-direction:column;gap:2px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.credit-bill-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.credit-bill-top strong{font-variant-numeric:tabular-nums}.credit-item{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0}.credit-item span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}.health-banner{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:12px;border-radius:16px;background:var(--tile);border:1px solid var(--line)}.health-banner strong{font-size:18px}.health-banner .muted{margin-inline-start:auto}.health-dot{width:10px;height:10px;border-radius:999px;background:var(--cash);flex:none}.health-banner.warn .health-dot{background:#e0af3b}.health-banner.down .health-dot{background:var(--credit)}.attention{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}.attention li{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--tile)}.attention li.warn{border-color:#e0af3b}.attention li.down{border-color:var(--credit)}.stat-btn.on{border-color:var(--accent)}.sales{display:flex;flex-direction:column;gap:12px}.sales .top{margin-bottom:0}.sales-spans{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.sales-span{display:grid;gap:2px;justify-items:start;width:100%;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--tile);text-align:start}.sales-span.on{border-color:var(--accent)}.sales-span strong{font-size:18px;font-variant-numeric:tabular-nums}.sales-span-label{font-size:12px;color:var(--muted)}.sales-pace{font-size:12px;color:var(--cash)}.recipe-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:16px}.recipe-box{display:flex;flex-direction:column;align-items:stretch;padding:0;overflow:hidden}.recipe-box.empty{border-style:dashed}.recipe-box.on{border-color:var(--accent);grid-column:1 / -1}.recipe-summary{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;width:100%;margin:0;padding:14px;border:0;background:transparent;color:inherit;text-align:start}.recipe-photo{width:72px;height:72px;border-radius:14px;overflow:hidden;background:var(--field);display:grid;place-items:center}.recipe-photo img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:var(--field)}.recipe-photo .ph{color:var(--muted);font-size:22px;font-weight:750}.recipe-copy{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}.recipe-summary .top{margin:0}.recipe-open{margin:0 14px 14px;width:auto}.recipe-editor{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px;padding-top:12px;border-top:1px solid var(--line)}.recipe-edit-line{display:grid;grid-template-columns:minmax(0,1fr) 88px 76px auto;gap:8px;align-items:center}.recipe-edit-line .field{margin:0;min-height:44px}.recipe-edit-line button{min-height:44px}.recipe-lines{list-style:none;margin:0;padding:0;display:grid;gap:4px}.recipe-lines li{display:flex;justify-content:space-between;gap:8px}@media(max-width:640px){.recipe-edit-line{grid-template-columns:1fr 1fr auto}.recipe-edit-line>span{grid-column:1 / -1}}.sales-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}.sales-card>header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}.sales-card h2{margin:0;font-size:15px;letter-spacing:-.02em}.sales-period .chips{margin:0 0 10px}.sales-period .top{align-items:center}.sales-period .top strong{font-size:18px;letter-spacing:-.03em}.sales-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sales-kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.sales-kpi{background:var(--tile);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}.sales-kpi span,.sales-kpi strong{display:block}.sales-kpi .muted{font-size:12px;line-height:1.3}.sales-kpi strong{margin-top:4px;font-size:18px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.sales-kpi.up strong{color:var(--cash)}.sales-kpi.down strong{color:var(--credit)}html.light .sales-kpi.up strong{color:#005e27;color:oklch(.42 .12 150)}html.light .sales-kpi.down strong{color:#a52b1e}.sales-pay{display:grid;gap:8px}.sales-pay-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label amount" "count amount";align-items:center;column-gap:12px;width:100%;min-width:0;text-align:start;color:inherit;background:var(--tile);border:1px solid var(--line);border-inline-start-width:3px;border-radius:12px;padding:12px;min-height:64px}.sales-pay-card .label{grid-area:label}.sales-pay-card .count{grid-area:count}.sales-pay-card strong{grid-area:amount;font-size:18px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.sales-pay-card.on{box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--tile))}.sales .trend{height:136px;margin:0;overflow-y:hidden}.sales-subhead{margin:14px 0 8px;font-size:13px;font-weight:650;color:var(--muted)}.sales-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sales-part{display:flex;flex-direction:column;gap:2px;min-width:0;background:var(--tile);border:1px solid var(--line);border-radius:12px;padding:10px}.sales-part.on{border-color:var(--cash);box-shadow:inset 0 0 0 1px var(--cash)}.sales-part strong{font-size:16px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.sales-part-meta{display:flex;flex-wrap:wrap;gap:4px}.sales-peak{min-height:14px;font-size:11px;font-weight:750;color:var(--cash)}html.light .sales-peak{color:#005e27;color:oklch(.42 .12 150)}html.light .sales-part.on{border-color:#005e27;border-color:oklch(.42 .12 150);box-shadow:inset 0 0 0 1px #005e27;box-shadow:inset 0 0 0 1px oklch(.42 .12 150)}.sales .trend i{background:var(--cash);max-width:18px}.sales-list{display:flex;flex-direction:column}.sales-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.sales-list .sales-row:first-child{padding-top:0}.sales-list .sales-row:last-child{border-bottom:0;padding-bottom:0}.sales-who{display:flex;flex-direction:column;min-width:0}.sales-who strong{font-size:15px}.sales-amt{font-variant-numeric:tabular-nums;letter-spacing:-.03em;white-space:nowrap}.sales-meter{display:block;height:4px;margin-top:6px;border-radius:99px;background:var(--line);overflow:hidden}.sales-meter i{display:block;height:100%;border-radius:99px;background:var(--cash)}.sales-empty{margin:0;color:var(--muted);font-size:13px}.sales-people{display:flex;flex-direction:column;gap:8px}.sales-customer{background:var(--tile);border:1px solid var(--line);border-inline-start:3px solid var(--credit);border-radius:12px;padding:10px 12px;color:inherit;text-decoration:none}a.sales-customer,.sales-who-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.sales-sub{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);text-decoration:none;color:inherit;font-size:13px}.sales-sub strong{font-variant-numeric:tabular-nums;white-space:nowrap}.sales-pair{display:flex;flex-direction:column;gap:12px}@media(min-width:768px)and (min-height:600px){.sales-spans{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-grid{grid-template-columns:1fr 1fr}.sales-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.sales-kpis.two{grid-template-columns:1fr 1fr}.sales-kpis.three,.sales-pay{grid-template-columns:repeat(3,minmax(0,1fr))}.sales-pay-card{grid-template-columns:1fr;grid-template-areas:"label" "amount" "count";align-content:start;min-height:108px}.sales-pay-card strong{margin-top:8px;font-size:22px}.sales-pair{display:grid;grid-template-columns:1fr 1fr;align-items:start}}
