:root{--bg:#f1f5f9;--panel:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#0284c7;--pay:#16a34a;--pay-text:#fff;--ok:#15803d;--warn:#b45309;--err:#b91c1c;--sel:#e0f2fe;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--panel:#111a2e;--text:#e2e8f0;--muted:#94a3b8;--line:#1e293b;--accent:#38bdf8;--pay:#22c55e;--pay-text:#052e16;--ok:#4ade80;--warn:#fbbf24;--err:#f87171;--sel:#0c2a44}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg)}#app{flex-direction:column;display:flex}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:10px;min-height:48px;padding:0 16px}button:disabled{opacity:.45;cursor:default}button.ghost{background:0 0}button.danger{color:var(--err)}input{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;min-height:48px;padding:0 14px}kbd{opacity:.65;border:1px solid;border-radius:4px;margin-left:6px;padding:0 4px;font-size:11px}.top{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.brand{margin-right:8px;font-weight:700}.chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:13px}.chip.ok{color:var(--ok)}.chip.warn{color:var(--warn)}.spacer{flex:1}.sale{flex:1;grid-template-columns:minmax(340px,5fr) 6fr;gap:12px;min-height:0;padding:12px;display:grid}.receipt,.catalog{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;min-height:0;display:flex}.empty{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.lines{flex:1;margin:0;padding:0;list-style:none;overflow:auto}.lines li{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto 110px 36px;align-items:center;gap:8px;padding:6px 10px;display:grid}.lines li.sel{background:var(--sel)}.lines .n{color:var(--muted);font-size:13px}.lines .name small{margin-left:6px;display:inline-block}.tag{border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:1px 6px;font-size:11px}.tag.disc{color:var(--warn)}.lines .q{align-items:center;gap:6px;display:flex}.step{width:36px;min-height:36px;padding:0}.lines .sum{text-align:right;font-variant-numeric:tabular-nums}.lines .sum s{color:var(--muted);font-size:12px;display:block}.x{width:36px;min-height:36px;color:var(--muted);border:none;padding:0}.totals{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:12px;display:flex}.due{justify-content:space-between;align-items:baseline;font-size:20px;display:flex}.due b{font-variant-numeric:tabular-nums;font-size:34px}.actions{flex-wrap:wrap;gap:8px;display:flex}.pay{background:var(--pay);color:var(--pay-text);border:none;min-height:64px;font-size:22px;font-weight:700}.catalog{gap:10px;padding:12px}.mark-wait{color:var(--warn);align-items:center;gap:10px;display:flex}.tiles{flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:96px;align-content:start;gap:10px;display:grid;overflow:auto}.tile{text-align:left;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:10px 12px;display:flex;position:relative}.t-name{padding-right:22px;font-weight:600;line-height:1.2}.t-price{color:var(--muted);font-variant-numeric:tabular-nums}.t-badge{color:var(--accent);font-size:10px;font-weight:700;position:absolute;top:8px;right:8px}.notice{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:calc(100% - 32px);padding:12px 18px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0000002e}.notice.ok{color:var(--ok)}.notice.warn{color:var(--warn)}.notice.err{color:var(--err)}.overlay{background:#0206178c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);border-radius:16px;flex-direction:column;gap:12px;width:min(520px,100%);max-height:100%;padding:20px;display:flex;overflow:auto}.dialog h2{margin:0 0 4px;font-size:26px}.dialog label{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;display:flex}.dialog label.check{flex-direction:row;align-items:center}.dialog label.check input{width:22px;min-height:22px}.modes,.quick,.row{flex-wrap:wrap;gap:8px;display:flex}.modes button,.quick button{flex:1}.modes button.on,.quick button.on{border-color:var(--accent);color:var(--accent);font-weight:600}.change{color:var(--ok);margin:0;font-size:22px;font-weight:700}.change.bad{color:var(--err)}.hint{color:var(--muted);margin:0}.row{justify-content:space-between;margin-top:4px}.row .pay{flex:1}@media (width<=820px){.sale{grid-template-rows:auto 1fr;grid-template-columns:1fr}.catalog{order:-1;max-height:42vh}.lines li{grid-template-columns:22px 1fr auto 90px 32px}}a{color:var(--accent)}.muted{color:var(--muted)}.ok-text{color:var(--ok)}.warn-text{color:var(--warn)}.err-text{color:var(--err)}.center{flex:1;justify-content:center;align-items:center;display:flex}button.primary,a.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger-fill{background:var(--err);color:#fff;border-color:var(--err)}a.btn{border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.big{min-height:56px;font-size:18px}select{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;min-height:48px;padding:0 10px}input.invalid{border-color:var(--err)}.nav{flex-wrap:wrap;gap:6px;display:flex}.nav button{min-height:40px}.nav button.on,.tabs button.on{border-color:var(--accent);color:var(--accent);font-weight:600}.chip.err{color:var(--err)}.login{flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:14px;width:min(440px,100%);padding:28px;display:flex}.login-card.wide{width:min(640px,100%)}.login-card h1{margin:0}.error-box{color:var(--err);border:1px solid var(--err);border-radius:10px;margin:0;padding:10px 12px}.cashier-tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;width:100%;display:grid}.cashier-tiles .tile{min-height:84px}.pin-dots{gap:12px;display:flex}.pin-dots span{border:2px solid var(--muted);border-radius:50%;width:16px;height:16px}.pin-dots span.on{background:var(--text);border-color:var(--text)}.pinpad{grid-template-columns:repeat(3,84px);gap:10px;display:grid}.pinpad button{min-height:64px;font-size:24px}.page{flex-direction:column;flex:1;gap:12px;width:100%;max-width:1100px;margin:0 auto;padding:16px;display:flex;overflow:auto}.page h1{margin:0;font-size:24px}.page h2{margin:0;font-size:18px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;padding:16px;display:flex}.card.form label,.dialog label{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;display:flex}.card label.check{flex-direction:row;align-items:center;gap:8px}.card label.check input,.checks input{width:22px;min-height:22px}.search-row{flex-wrap:wrap;gap:8px;display:flex}.search-row .search{flex:1;min-width:220px}.search-row input[type=date]{width:auto}.list{flex-direction:column;gap:6px;display:flex}.list-row{text-align:left;grid-template-columns:2fr 2fr 1fr auto;align-items:center;gap:10px;min-height:52px;padding:8px 12px;display:grid}.list-row.static{background:var(--panel);border:1px solid var(--line);cursor:default;border-radius:10px}.list-row b{text-align:right;font-variant-numeric:tabular-nums}.list-row.off,tr.off{opacity:.5}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row .spacer{flex:1}.tabs{flex-wrap:wrap;gap:6px;display:flex}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 6px}.table th{color:var(--muted);font-size:13px;font-weight:500}.table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.table input[type=checkbox]{width:22px;min-height:22px}.qty-input{width:90px;min-height:40px}.banner{border:1px solid;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.banner.err{color:var(--err)}.banner.warn{color:var(--warn)}.banner button{min-height:40px}.status-line{color:var(--warn);margin:0;font-weight:600}.status-line.ok{color:var(--ok)}.status-line.err{color:var(--err)}.shift-state{margin:0;font-size:22px;font-weight:700}.shift-state.OPENED{color:var(--ok)}.shift-state.EXPIRED{color:var(--err)}.op-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.op-grid button{min-height:64px;font-weight:600}.tape{white-space:pre-wrap;background:var(--bg);border-radius:10px;max-height:360px;margin:0;padding:12px;font-size:13px;overflow:auto}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.checks{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.checks label{align-items:center;gap:8px;color:var(--text)!important;flex-direction:row!important}.dialog.wide{width:min(760px,100%)}.dialog .row{justify-content:flex-end}.tag.link{cursor:pointer;background:0 0;min-height:0;padding:1px 6px}.qty{font-variant-numeric:tabular-nums;background:0 0;border:none;min-height:36px;padding:0 8px}.empty .change{color:var(--ok);font-size:28px;font-weight:700}.receipt .banner{margin:10px}@media (width<=700px){.list-row{grid-template-columns:1fr auto}.list-row>span:nth-child(2),.list-row>span:nth-child(3){display:none}.grid2,.checks{grid-template-columns:1fr}.pinpad{grid-template-columns:repeat(3,72px)}}.list-row.j-row{grid-template-columns:60px 90px 90px 1fr 110px 120px}@media (width<=700px){.list-row.j-row{grid-template-columns:50px 1fr auto}.list-row.j-row>span:nth-child(4),.list-row.j-row>span:nth-child(5){display:none}}.due b{margin-left:8px}.list-row.place-row{grid-template-columns:1.2fr 1.5fr auto}.list-row.place-row .row{flex-wrap:nowrap;justify-content:flex-end}@media (width<=700px){.top{gap:6px;padding:6px 8px}.top .chip:nth-of-type(2),.top .chip:nth-of-type(3){display:none}.nav{grid-template-columns:repeat(5,1fr);gap:4px;width:100%;display:grid}.nav button{min-height:38px;padding:0 4px;font-size:13px}.sale{gap:8px;padding:8px}.catalog{max-height:38vh;padding:8px}.tiles{grid-template-columns:repeat(2,1fr);grid-auto-rows:72px;gap:6px}.empty small{display:none}.totals{gap:6px;padding:8px}.actions button{min-height:38px;padding:0 10px;font-size:13px}.pay{min-height:54px}.list-row.place-row{grid-template-columns:1fr}.list-row.place-row .row{flex-wrap:wrap;justify-content:flex-start}}
