:root{color-scheme:light;--paper: #f4f2ec;--surface: #ffffff;--surface-2: #edeae2;--ink: #171d1a;--ink-2: #4e5a54;--ink-3: #7c8781;--line: #ddd8cd;--line-2: #c9c3b5;--brand: #0c4f3d;--brand-soft: #e2efe8;--brand-ink: #0c4f3d;--on-brand: #f4f2ec;--clay: #a2402f;--clay-soft: #f6e5e0;--amber: #b87708;--amber-soft: #fbedd3;--teal: #0e7490;--teal-soft: #dcf0f5;--teal-ink: #0e7490;--blue: #2b5eab;--blue-soft: #e2eaf7;--blue-ink: #2b5eab;--violet: #6b46a8;--violet-soft: #ece4f7;--violet-ink: #6b46a8;--shadow: 0 1px 2px rgb(23 29 26 / 6%), 0 8px 24px -12px rgb(23 29 26 / 24%);--shadow-lg: 0 2px 6px rgb(23 29 26 / 8%), 0 30px 60px -30px rgb(23 29 26 / 45%);--r-sm: 10px;--r: 14px;--r-lg: 18px;--font: "Be Vietnam Pro", "Segoe UI", system-ui, sans-serif;--font-num: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--font-display: Newsreader, Georgia, serif;--tap: 56px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper: #0e1412;--surface: #18211e;--surface-2: #212c28;--ink: #eaf0ed;--ink-2: #a3b0aa;--ink-3: #7a8781;--line: #2a3833;--line-2: #3a4a44;--brand: #4cc9a0;--brand-soft: #12312a;--brand-ink: #8fe6c6;--on-brand: #08211b;--clay: #e58a72;--clay-soft: #33201b;--amber: #e5a93c;--amber-soft: #332612;--teal: #4bb8d4;--teal-soft: #102c33;--teal-ink: #8ed8e8;--blue: #7aa4e8;--blue-soft: #16202f;--blue-ink: #a9c6f2;--violet: #b294e0;--violet-soft: #241c33;--violet-ink: #cbb4ee;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 8px 24px -12px rgb(0 0 0 / 70%);--shadow-lg: 0 2px 6px rgb(0 0 0 / 50%), 0 30px 60px -30px rgb(0 0 0 / 90%)}}:root[data-theme=dark]{color-scheme:dark;--paper: #0e1412;--surface: #18211e;--surface-2: #212c28;--ink: #eaf0ed;--ink-2: #a3b0aa;--ink-3: #7a8781;--line: #2a3833;--line-2: #3a4a44;--brand: #4cc9a0;--brand-soft: #12312a;--brand-ink: #8fe6c6;--on-brand: #08211b;--clay: #e58a72;--clay-soft: #33201b;--amber: #e5a93c;--amber-soft: #332612;--teal: #4bb8d4;--teal-soft: #102c33;--teal-ink: #8ed8e8;--blue: #7aa4e8;--blue-soft: #16202f;--blue-ink: #a9c6f2;--violet: #b294e0;--violet-soft: #241c33;--violet-ink: #cbb4ee;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 8px 24px -12px rgb(0 0 0 / 70%);--shadow-lg: 0 2px 6px rgb(0 0 0 / 50%), 0 30px 60px -30px rgb(0 0 0 / 90%)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}#root{height:100%}.screen{display:flex;flex-direction:column;height:100dvh;max-width:1100px;margin:0 auto;background:var(--paper)}.body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.body.center{justify-content:center;align-items:center}.appbar{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}.appbar-title{flex:1;min-width:0}.appbar-title h1{margin:0;font-size:19px;font-weight:700;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-title p{margin:0;font-size:12.5px;color:var(--ink-3);font-weight:500}.icon-btn{width:42px;height:42px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2);font-size:19px;flex:none}.icon-btn:active{background:var(--line)}.btn{min-height:48px;padding:12px 20px;border-radius:var(--r);font-size:16px;font-weight:700;letter-spacing:-.01em;text-align:center;transition:transform .12s ease}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-lg{min-height:var(--tap);font-size:17px}.btn-sm{min-height:38px;padding:8px 16px;font-size:14px}.btn-brand{background:var(--brand);color:var(--on-brand)}.btn-ghost{background:var(--surface-2);color:var(--ink)}.btn-danger-ghost{background:var(--clay-soft);color:var(--clay)}.btn.wide,.wide{width:100%}.grow{flex:1}.link-btn{align-self:center;padding:10px;font-size:14px;font-weight:600;color:var(--brand);text-decoration:underline;text-underline-offset:3px}.dock{flex:none;display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.tile-key{font-size:12px;color:var(--ink-3);font-weight:600}.tile-val{font-size:18px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis}.tile.in .tile-val{color:var(--brand)}.tile.out .tile-val{color:var(--clay)}.big-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.big-btn{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:15px 14px;min-height:108px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:10px;text-align:left;transition:transform .12s ease}.big-btn:active{transform:scale(.98)}.big-btn b{display:block;font-size:16px;font-weight:700;letter-spacing:-.01em}.big-btn small{display:block;font-size:12px;color:var(--ink-3);font-weight:500}.big-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px}.ic-brand{background:var(--brand-soft)}.ic-clay{background:var(--clay-soft)}.ic-amber{background:var(--amber-soft)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px 14px 0;flex:none}.tabs::-webkit-scrollbar{height:0}.tabs button{flex:none;white-space:nowrap;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:600}.tabs button[aria-selected=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{min-height:48px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);font-size:14.5px;font-weight:600}.seg-lg button{min-height:var(--tap);font-size:16px}.seg button[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}.floor{position:relative;width:100%}.floor.is-editing{background-image:radial-gradient(circle,var(--line-2) 1.2px,transparent 1.2px);background-position:-1px -1px;border-radius:var(--r)}.floor-slot{position:absolute;top:0;left:0;transition:transform .14s cubic-bezier(.2,.9,.3,1);touch-action:none}.floor-slot.is-dragging{z-index:5;transition:none;filter:drop-shadow(0 12px 20px rgb(0 0 0 / 25%))}.table-card{width:100%;height:100%;border:1.5px solid var(--line);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;gap:6px;text-align:left;overflow:hidden}.table-card.is-editing{cursor:grab}.floor-slot.is-dragging .table-card{cursor:grabbing;transform:scale(1.04)}.table-card.is-selected{outline:2px solid var(--brand);outline-offset:2px}.table-head{display:flex;align-items:center;gap:6px;min-width:0}.table-icon{font-size:16px;line-height:1;flex:none}.table-name{font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-flag{margin-left:auto;font-size:13px}.table-foot{min-width:0}.table-amount{font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--amber);line-height:1.1}.table-card.is-long .table-amount{color:var(--clay)}.table-time{font-size:11.5px;font-weight:600;color:var(--amber);display:flex;align-items:center;gap:3px}.table-time.warn{color:var(--clay)}.table-reserved{font-size:13px;font-weight:700;color:var(--violet-ink);line-height:1.2}.table-sub{font-size:11.5px;font-weight:500;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-card.is-reserved .table-sub{color:var(--violet-ink)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}.product{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}.product-main{flex:1;min-height:76px;padding:12px 11px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;text-align:left}.product-main:active{background:var(--surface-2)}.product-name{font-size:14.5px;font-weight:600;line-height:1.25}.product-price{font-size:15px;font-weight:700;color:var(--brand);letter-spacing:-.01em}.product-badge{position:absolute;top:6px;right:6px;min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:var(--brand);color:var(--on-brand);font-size:13px;font-weight:800;display:grid;place-items:center;z-index:1}.product-opts{display:flex;border-top:1px solid var(--line)}.product-opts button{flex:1;min-height:40px;font-size:13px;font-weight:700;color:var(--ink-2);border-left:1px solid var(--line)}.product-opts button:first-child{border-left:none}.product-opts button:active{background:var(--brand-soft);color:var(--brand-ink)}.cart{flex:none;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px #0006}.cart-lines{max-height:0;overflow-y:auto;transition:max-height .22s ease}.cart.is-open .cart-lines{max-height:46dvh}.cart-line{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line)}.cart-line-name{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.25}.cart-line-name em{font-style:normal;color:var(--ink-3);font-weight:500}.cart-line-name small{display:block;font-size:11.5px;color:var(--ink-3);font-weight:500}.cart-line-total{min-width:72px;text-align:right;font-weight:700;font-size:14px}.stepper{display:flex;align-items:center;gap:8px}.stepper button{width:34px;height:34px;border-radius:var(--r-sm);background:var(--surface-2);font-size:19px;font-weight:700;color:var(--ink-2);display:grid;place-items:center}.stepper span{min-width:26px;text-align:center;font-weight:700;font-size:15px}.cart-bar{display:flex;align-items:center;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}.cart-sum{flex:1;text-align:left;min-width:0}.cart-count{display:block;font-size:11.5px;color:var(--ink-3);font-weight:600}.cart-total{display:block;font-size:22px;font-weight:800;letter-spacing:-.025em}.pay-total,.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}.pay-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;font-size:14px;color:var(--ink-2)}.pay-row b{font-size:15px;font-weight:700;color:var(--ink)}.pay-row.big{font-size:15px;font-weight:600;color:var(--ink)}.pay-row.big b{font-size:27px;font-weight:800;letter-spacing:-.03em;color:var(--brand)}.pay-row.divider{border-top:1px solid var(--line);margin-top:6px;padding-top:9px}.pay-row.change b{font-size:21px;font-weight:800;color:var(--clay)}.pay-row.change.short b{color:var(--ink-3)}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip-cash{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr))}.chip{min-height:44px;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);font-size:14px;font-weight:700}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.numpad button{min-height:var(--tap);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);font-size:21px;font-weight:700}.numpad button:active{background:var(--surface-2)}.numpad-del{color:var(--clay)}.qr-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0}.qr-canvas{border-radius:var(--r);border:1px solid var(--line);background:#fff;padding:8px}.qr-info{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:13.5px;color:var(--ink-2)}.qr-info b{font-size:15px;color:var(--ink)}.qr-note,.note{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin:0;text-align:center;max-width:42ch}.note{text-align:left}.center-text{text-align:center}.qr-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 12px;text-align:center;color:var(--ink-2)}.qr-empty .btn{text-decoration:none;display:grid;place-items:center}.done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.done-mark{width:70px;height:70px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font-size:34px;margin-bottom:8px}.done h2{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em}.done p{margin:0;color:var(--ink-2)}.done-change b{color:var(--clay);font-size:20px}.expense-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.expense-btn{min-height:84px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 6px}.expense-btn:active{background:var(--surface-2)}.expense-emoji{font-size:23px;line-height:1}.expense-name{font-size:12px;font-weight:600;text-align:center;line-height:1.2}.amount-readout{font-size:34px;font-weight:800;letter-spacing:-.03em;text-align:right;padding:4px 2px 12px;border-bottom:2px solid var(--brand)}.section-label{margin:6px 2px 0;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.list-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:none}.list-emoji{font-size:18px}.list-name{flex:1;min-width:0;font-weight:600;font-size:14px}.list-name small{display:block;font-weight:500;font-size:11.5px;color:var(--ink-3)}.list-qty{font-size:12.5px;color:var(--ink-3);font-weight:600}.list-amount{font-weight:700;font-size:14px}.list-amount.out{color:var(--clay)}.row-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:12px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-align:left;color:var(--ink-3)}.list .row-btn{border:none;border-bottom:1px solid var(--line);border-radius:0}.list .row-btn:last-child{border-bottom:none}.row-icon{font-size:19px}.row-text{flex:1;min-width:0;color:var(--ink)}.row-text b{display:block;font-size:14.5px;font-weight:600}.row-text small{display:block;font-size:12px;color:var(--ink-3);font-weight:500}.bars{display:flex;align-items:flex-end;gap:10px;height:130px;margin-top:14px}.bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar{width:100%;border-radius:7px 7px 3px 3px;background:var(--brand);min-height:4px}.bar.is-running{background:var(--brand-soft);border:1px solid var(--brand)}.bar-val,.bar-label{font-size:11px;font-weight:600;color:var(--ink-3)}.bar-val{color:var(--ink-2)}.meter{height:9px;border-radius:5px;background:var(--surface-2);overflow:hidden;margin:9px 0 6px}.meter i{display:block;height:100%;border-radius:5px;background:var(--amber)}.warn-card{background:var(--amber-soft);border-color:var(--amber)}.warn-card p{margin:0;font-size:13.5px;color:var(--ink)}.plan-card{display:flex;flex-direction:column;gap:6px}.overlay{position:fixed;inset:0;background:#0a100e73;display:flex;align-items:flex-end;justify-content:center;padding:12px;z-index:40;animation:fade .16s ease}.sheet{width:100%;max-width:480px;max-height:92dvh;background:var(--surface);border-radius:22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:rise .2s cubic-bezier(.2,.9,.3,1)}.sheet-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px}.sheet-head h2{flex:1;margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em}.sheet-body{overflow-y:auto;padding:4px 14px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet-note{margin:0;font-size:13px;color:var(--ink-3)}.sheet-actions{display:flex;gap:8px;padding-top:4px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(16px);opacity:0}}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:12.5px;font-weight:600;color:var(--ink-3)}.field input,.field select{min-height:50px;padding:12px 13px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);font-size:16px;font-weight:500}.field input:focus,.field select:focus{border-color:var(--brand);outline:none}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pick-row{display:flex;flex-wrap:wrap;gap:7px}.pick-icon,.pick-color{width:46px;height:46px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);font-size:20px;display:grid;place-items:center}.pick-icon[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft)}.pick-color{font-size:16px;font-weight:800;color:var(--ink)}.pick-color[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}.weigh-readout{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:2px solid var(--brand)}.weigh-main{font-size:30px;font-weight:800;letter-spacing:-.03em;text-align:right}.weigh-sub{font-size:15px;font-weight:600;color:var(--ink-3);text-align:right}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.login-card h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.03em}.login-mark{width:46px;height:46px;border-radius:14px;background:var(--brand);position:relative}.login-mark:after{content:"";position:absolute;inset:13px 12px auto;height:4px;border-radius:2px;background:var(--on-brand);box-shadow:0 9px 0 var(--on-brand),0 18px 0 var(--on-brand)}.login-lede{margin:0;color:var(--ink-2);font-size:14.5px}.dev-hint{font-style:normal;color:var(--brand);font-weight:600}.login-error{margin:0;padding:10px 12px;border-radius:var(--r-sm);background:var(--clay-soft);color:var(--clay);font-size:13.5px;font-weight:600}.template-list{display:flex;flex-direction:column;gap:7px}.template{padding:11px 13px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);text-align:left}.template[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft)}.template b{display:block;font-size:15px;font-weight:700}.template small{display:block;font-size:12.5px;color:var(--ink-3)}.template em{font-style:normal;font-size:11.5px;font-weight:600;color:var(--brand-ink)}.hint{margin:0;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:13px;line-height:1.5}.empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 16px;color:var(--ink-3);text-align:center}.empty-icon{font-size:40px}.foot-note{margin:0;font-size:12.5px;color:var(--ink-3);text-align:center}.sync-badge{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:600;white-space:nowrap}.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-3)}.sync-badge.is-offline{background:var(--amber-soft);color:var(--amber)}.sync-badge.is-offline .sync-dot{background:var(--amber)}.sync-badge.is-error{background:var(--clay-soft);color:var(--clay)}.sync-badge.is-error .sync-dot{background:var(--clay)}.sync-badge.is-syncing .sync-dot{background:var(--brand);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;max-width:min(92vw,420px);padding:12px 16px;border-radius:var(--r);background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);animation:rise .2s ease}@media(min-width:760px){.big-btns{grid-template-columns:repeat(4,1fr)}.tiles{gap:12px}.tile-val{font-size:22px}}.storage-warning{position:fixed;top:0;left:0;right:0;z-index:70;padding:calc(9px + env(safe-area-inset-top)) 14px 9px;background:var(--clay);color:#fff;font-size:13px;font-weight:600;line-height:1.4;text-align:center}.seg-3{grid-template-columns:repeat(3,1fr)}.seg-3 button{font-size:13.5px;padding:0 6px}.bill-preview{display:block;width:100%;max-width:300px;margin:10px auto 0;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);image-rendering:pixelated}.row-btn input[type=checkbox]{width:26px;height:26px;accent-color:var(--brand);flex:none}.row-price{font-weight:700;font-size:15px;color:var(--brand);white-space:nowrap}.tag-scan{font-size:10px;letter-spacing:-1px;color:var(--ink-3);flex:none}.tabs-inline{padding:0;margin:0 -14px;padding-inline:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.table-grid{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:10px}.table-grid .table-card{min-height:96px}@media(min-width:760px){.table-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}.mode-box{display:flex;flex-direction:column;gap:12px;padding:13px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.shift-strip{display:flex;align-items:center;gap:10px;width:100%;min-height:58px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-align:left}.shift-strip.is-open{border-color:var(--brand);background:var(--brand-soft)}.shift-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);flex:none;animation:pulse 2.4s ease-in-out infinite}.shift-text{flex:1;min-width:0}.shift-text b{display:block;font-size:14.5px;font-weight:700}.shift-text small{display:block;font-size:12px;color:var(--ink-3);font-weight:500}.shift-strip.is-open .shift-text small{color:var(--brand-ink)}.shift-go{font-size:13px;font-weight:700;color:var(--brand);white-space:nowrap}.counter{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.counter-row{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line)}.counter-row:last-of-type{border-bottom:none}.counter-row.has{background:var(--brand-soft)}.counter-note{flex:1;font-size:14.5px;font-weight:600}.counter-row .stepper input{width:52px;height:36px;text-align:center;font-size:15px;font-weight:700;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface)}.counter-row .stepper input:focus{outline:none;border-color:var(--brand)}.counter-sub{min-width:78px;text-align:right;font-size:13px;font-weight:600;color:var(--ink-3)}.counter-total{display:flex;justify-content:space-between;align-items:baseline;padding:12px;background:var(--surface-2);border-top:1px solid var(--line);font-size:14px;font-weight:600}.counter-total b{font-size:22px;font-weight:800;letter-spacing:-.025em}.diff-short,.pay-row.big.short b{color:var(--clay)}.diff-over{color:var(--amber)}.diff-ok{color:var(--brand)}.diff-tag{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.diff-tag.ok{background:var(--brand-soft);color:var(--brand-ink)}.diff-tag.short{background:var(--clay-soft);color:var(--clay)}.diff-tag.over{background:var(--amber-soft);color:var(--amber)}.done-mark.is-short{background:var(--clay-soft);color:var(--clay)}.pay-mark{font-size:11px;opacity:.7}.bill-row.is-void{opacity:.62}.row-price.struck{text-decoration:line-through;color:var(--ink-3)}.void-banner{padding:10px 13px;border-radius:var(--r-sm);background:var(--clay-soft);color:var(--clay);font-size:13px;font-weight:600;line-height:1.45}.group-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.group-row:last-child{border-bottom:none}.group-move{display:flex;flex-direction:column;gap:2px;flex:none}.group-move button{width:30px;height:22px;border-radius:6px;background:var(--surface-2);color:var(--ink-2);font-size:13px;line-height:1}.group-move button:disabled{opacity:.3;cursor:not-allowed}.group-name{flex:1;min-width:0;text-align:left;padding:4px 0}.group-name b{display:block;font-size:14.5px;font-weight:600}.group-name small{display:block;font-size:12px;color:var(--ink-3)}.group-input{flex:1;min-width:0;height:40px;padding:0 11px;border-radius:var(--r-sm);border:1.5px solid var(--brand);background:var(--surface);font-size:15px;font-weight:600}.group-input:focus{outline:none}.group-del{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--clay-soft);font-size:15px;flex:none}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px}.role-tag{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);white-space:nowrap}.role-tag.owner{background:var(--amber-soft);color:var(--amber)}.me-tag{font-style:normal;font-weight:500;color:var(--ink-3)}.pseudo-input{min-height:50px;display:flex;align-items:center;padding:12px 13px;border-radius:var(--r-sm);border:1.5px dashed var(--line);background:var(--surface-2);color:var(--ink-3);font-size:15px;font-weight:600}.perm-list{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}.perm{position:relative;padding-left:24px;font-size:13.5px;line-height:1.45}.perm:before{position:absolute;left:0;font-weight:800}.perm.yes:before{content:"✓";color:var(--brand)}.perm.no{color:var(--ink-3)}.perm.no:before{content:"✕";color:var(--clay)}.scan-tips{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.tip{padding:11px 13px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);font-size:13.5px;line-height:1.4}.scan-preview{width:100%;max-width:260px;border-radius:var(--r);border:1px solid var(--line);object-fit:contain}.reading{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.reading-text{margin:0;font-size:16px;font-weight:700;color:var(--brand)}.draft-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}.draft-row:last-child{border-bottom:none}.draft-row.is-off{opacity:.45}.draft-row input[type=checkbox]{width:26px;height:26px;accent-color:var(--brand);flex:none}.draft-main{flex:1;min-width:0;text-align:left;padding:3px 0}.draft-main b{display:block;font-size:14.5px;font-weight:600}.draft-main small{display:block;font-size:12px;color:var(--ink-3)}.waiting{display:flex;align-items:center;justify-content:center;gap:9px;padding:14px;font-size:14px;font-weight:600;color:var(--brand)}.sw-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-lg);animation:rise .22s ease}.sw-banner.is-ready{background:var(--brand);color:var(--on-brand)}.sw-text{flex:1;min-width:0}.sw-text b{display:block;font-size:14px;font-weight:700}.sw-text small{display:block;font-size:12px;opacity:.75}.sw-later,.sw-now{flex:none;min-height:38px;padding:8px 14px;border-radius:var(--r-sm);font-size:13.5px;font-weight:700}.sw-later{color:var(--paper);opacity:.7}.sw-now{background:var(--brand);color:var(--on-brand)}.sw-now:disabled{opacity:.5}
