:root{--bg: #070B14;--panel: #0D1322;--panel-2: #111930;--ink: #E6ECFF;--muted: #9AA3C2;--faint: #6C7694;--line: rgba(79, 216, 235, .09);--line-strong: rgba(79, 216, 235, .18);--accent: #4FD8EB;--accent-ink: #070B14;--accent-tint: rgba(79, 216, 235, .08);--violet: #8B7CFF;--violet-tint: rgba(139, 124, 255, .12);--ok: #63E6A4;--ok-tint: rgba(99, 230, 164, .1);--warn: #FF7A93;--warn-tint: rgba(255, 122, 147, .1);--glow-a: rgba(79, 216, 235, .055);--glow-b: rgba(139, 124, 255, .06);--mono: "JetBrains Mono", ui-monospace, monospace;--disp: "Space Grotesk", system-ui, sans-serif;--r: 10px;--ease: cubic-bezier(.22, 1, .36, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}:root[data-mode=day]{--bg: #EEF2F8;--panel: #FFFFFF;--panel-2: #F5F8FC;--ink: #0B1220;--muted: #56607A;--faint: #8A93A8;--line: rgba(11, 30, 62, .1);--line-strong: rgba(11, 30, 62, .22);--accent: #0C7A8B;--accent-ink: #FFFFFF;--accent-tint: rgba(12, 122, 139, .09);--violet: #5B49CC;--violet-tint: rgba(91, 73, 204, .1);--ok: #12805A;--ok-tint: rgba(18, 128, 90, .1);--warn: #C0304C;--warn-tint: rgba(192, 48, 76, .09);--glow-a: rgba(12, 122, 139, .05);--glow-b: rgba(91, 73, 204, .05)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--disp);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden;transition:background .3s var(--ease),color .3s var(--ease)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(900px 520px at 12% -8%,var(--glow-a),transparent 60%),radial-gradient(1000px 600px at 95% 105%,var(--glow-b),transparent 60%)}.app{position:relative;height:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;padding-top:var(--safe-top)}.strip{display:flex;align-items:center;gap:7px;padding:15px 15px 10px;border-bottom:1px solid var(--line)}.chip{font-family:var(--disp);font-size:11px;font-weight:500;letter-spacing:.03em;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer;transition:border-color .18s var(--ease),color .18s var(--ease)}.chip:hover,.chip:focus-visible{border-color:var(--line-strong);color:var(--accent)}.chip .dim{color:var(--faint)}.chip.icon{font-size:13px;padding:4px 9px}.chip.push{margin-left:auto}.numbers{padding:13px 15px 15px;border-bottom:1px solid var(--line)}.label{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}.today-row{display:flex;align-items:baseline;gap:8px;margin-top:4px}.today-big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:33px;font-weight:700;letter-spacing:-.02em;line-height:1}.today-big.over{color:var(--warn)}.today-of{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--faint)}.pending{margin-left:auto;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--accent);opacity:0;transition:opacity .2s var(--ease)}.pending.on{opacity:1}.bar{height:4px;border-radius:2px;background:var(--panel-2);margin-top:10px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .35s var(--ease),background .25s var(--ease)}.bar>i.over{background:var(--warn)}.month-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:11px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted)}.month-row b{color:var(--ink);font-weight:500}.grid-wrap{flex:1;overflow-y:auto;padding:13px 15px 8px;-webkit-overflow-scrolling:touch}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:8px;min-height:92px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);font-family:var(--disp);font-size:11.5px;font-weight:500;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;transition:transform .12s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}.tile:hover,.tile:focus-visible{border-color:var(--line-strong);background:var(--panel-2)}.tile:active{transform:scale(.96)}.tile.hit{animation:hit .34s var(--ease)}@keyframes hit{0%{border-color:var(--accent);background:var(--accent-tint)}to{border-color:var(--line);background:var(--panel)}}.thumb{width:46px;height:46px;border-radius:8px;object-fit:cover;display:block;background:var(--panel-2)}.mono-thumb{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:-.02em}.tile .nm{line-height:1.25}.tile .price{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700;color:var(--accent);margin-top:auto}.tile .ll{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:9px;color:var(--faint)}.tile.open .price{color:var(--violet);font-size:11px;letter-spacing:.08em}.tile .n{position:absolute;top:6px;right:7px;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--accent-ink);background:var(--accent);border-radius:999px;min-width:16px;height:16px;display:grid;place-items:center;padding:0 4px}.tile.add{border-style:dashed;color:var(--faint);align-items:center;justify-content:center;gap:4px}.tile.add .plus{font-size:24px;font-weight:300;line-height:1;color:var(--accent)}.tile.add .nm{font-size:10.5px}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip.active:hover,.chip.active:focus-visible{color:var(--accent-ink)}.tile.editing{border-style:dashed;border-color:var(--line-strong)}.tile .pencil{position:absolute;top:6px;right:7px;font-size:11px;color:var(--accent)}.editbar{margin:0 15px 8px;padding:7px 11px;background:var(--accent-tint);border:1px solid var(--line-strong);border-radius:8px;font-size:11px;color:var(--ink)}.filters{display:flex;gap:6px;overflow-x:auto;padding:10px 15px 2px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{flex:none;font-family:var(--disp);font-size:11px;font-weight:500;white-space:nowrap;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer}.filters button.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.seg{display:flex;gap:6px}.seg button{flex:1;font-family:var(--disp);font-size:12px;font-weight:600;color:var(--muted);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:8px;padding:10px 6px;cursor:pointer}.seg button.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.hint{margin:12px 2px 4px;font-size:10px;color:var(--faint)}.basket{border-top:1px solid var(--line-strong);background:var(--panel);padding-bottom:var(--safe-bottom)}.lines{max-height:128px;overflow-y:auto}.line{display:flex;align-items:center;gap:10px;padding:8px 15px;border-bottom:1px solid var(--line);font-size:12px}.line .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line .cat{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.qty{display:flex;align-items:center;gap:6px}.qbtn{width:26px;height:26px;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:13px;line-height:1;cursor:pointer}.qbtn:hover,.qbtn:focus-visible{color:var(--accent);border-color:var(--line-strong)}.qn{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;min-width:14px;text-align:center}.line .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;min-width:52px;text-align:right}.empty{padding:14px 15px;color:var(--faint);font-size:11px}.checkout{display:flex;align-items:center;gap:12px;padding:11px 15px 13px}.total .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.save{margin-left:auto;font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--accent-ink);background:var(--accent);border:none;border-radius:var(--r);padding:13px 26px;cursor:pointer;transition:opacity .18s var(--ease),transform .12s var(--ease)}.save:disabled{opacity:.25;cursor:default}.save:not(:disabled):active{transform:scale(.97)}.warnbox{margin:0 15px 10px;padding:10px 12px;background:var(--warn-tint);border:1px solid var(--warn);border-radius:var(--r);font-size:11.5px}.warnbox b{color:var(--warn)}.warnbox .acts{display:flex;gap:8px;margin-top:9px}.wbtn{font-family:var(--disp);font-size:11px;font-weight:600;letter-spacing:.03em;padding:7px 13px;border-radius:7px;cursor:pointer;border:1px solid var(--line-strong);background:transparent;color:var(--muted)}.wbtn.go{background:var(--warn);border-color:var(--warn);color:#fff}.toast{position:absolute;left:50%;bottom:calc(96px + var(--safe-bottom));transform:translate(-50%,12px);background:var(--ok-tint);border:1px solid var(--ok);color:var(--ok);font-size:11.5px;font-weight:600;padding:8px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:20}.toast.on{opacity:1;transform:translate(-50%)}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bg) 78%,transparent);display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:calc(16px + var(--safe-bottom));z-index:30}.card{width:100%;background:var(--panel);border:1px solid var(--line-strong);border-radius:16px;padding:15px;max-height:100%;overflow-y:auto}.card h3{font-size:15px;font-weight:600}.card .sub{font-size:11px;color:var(--faint);margin-bottom:12px}.imgrow{display:flex;gap:12px;align-items:center;margin-bottom:14px}.bigthumb{width:74px;height:74px;border-radius:12px;object-fit:cover;flex:none;background:var(--panel-2)}.bigmono{width:74px;height:74px;border-radius:12px;display:grid;place-items:center;font-size:26px;font-weight:700;flex:none}.field{margin-bottom:11px}.field .label{margin-bottom:5px}.inrow{display:flex;gap:7px}.card input,.card select{width:100%;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:8px;padding:10px 11px}.card select{font-family:var(--disp)}.card input:focus,.card select:focus{outline:2px solid var(--accent);outline-offset:1px}.cur-toggle{flex:none;width:66px;font-family:var(--disp);font-size:12px;font-weight:600;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);cursor:pointer}.conv{font-family:var(--mono);font-size:11px;color:var(--accent);margin-top:5px}.card .acts{display:flex;gap:8px;margin-top:14px}.card .wbtn{flex:1;padding:12px;font-size:12px}.card .wbtn.go{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pad-amount{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;text-align:center;padding:6px 0 14px;letter-spacing:-.02em}.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.key{font-family:var(--mono);font-size:19px;font-weight:500;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:14px 0;cursor:pointer;transition:background .12s var(--ease)}.key:hover,.key:focus-visible{background:var(--accent-tint);border-color:var(--line-strong)}.key:active{transform:scale(.96)}.login{max-width:320px;margin:22vh auto;padding:0 20px;display:flex;flex-direction:column;gap:12px}.login h1{font-size:20px;font-weight:600;letter-spacing:-.01em}.login input{font-size:16px;padding:12px;border-radius:var(--r);background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);font-family:var(--disp)}.login button{font-family:var(--disp);font-weight:700;letter-spacing:.08em;padding:13px;border:none;border-radius:var(--r);background:var(--accent);color:var(--accent-ink);cursor:pointer}.login .err{color:var(--warn);font-size:12px}.loading{display:grid;place-items:center;height:100%;color:var(--faint);font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden-file{display:none}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
