:root{--bg: #f6f7f5;--surface: #fff;--text: #1c2420;--muted: #5c6a62;--line: #d9dfdb;--brand: #0f5132;--brand-text: #fff;--ok: #146c43;--ok-bg: #d9f0e4;--warn: #8a5a00;--warn-bg: #fdf0d0;--bad: #a12626;--bad-bg: #fbe0e0}@media (prefers-color-scheme: dark){:root{--bg: #121714;--surface: #1b231f;--text: #e8eeea;--muted: #9fb0a6;--line: #2f3b34;--brand: #3fb27f;--brand-text: #08130d;--ok: #7fd6aa;--ok-bg: #173a29;--warn: #f0c36a;--warn-bg: #3b2f12;--bad: #ff9a9a;--bad-bg: #431a1a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:1.5rem;margin:0 0 .5rem}h2{font-size:1.05rem;margin:0 0 .5rem}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center;padding:3rem 1rem}.error{color:var(--bad)}.warnText{color:var(--warn);font-style:normal;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.25rem}.narrow{max-width:28rem;margin:2rem auto;width:calc(100% - 2rem)}label{display:block;margin:.75rem 0;font-weight:600}input[type=text],input[type=password],input[type=search],input:not([type]),select{display:block;width:100%;min-height:48px;margin-top:.25rem;padding:.5rem .75rem;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px}input[type=radio]{width:20px;height:20px;vertical-align:middle;margin-right:.4rem}button{font:inherit;min-height:44px;padding:.5rem 1rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);color:var(--brand-text);border-color:var(--brand);font-weight:700;width:100%;margin-top:.5rem}button.big{min-height:56px;font-size:1.1rem}button.link{border:0;background:none;color:var(--muted);text-decoration:underline;min-height:44px}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.tabs{display:flex;gap:.5rem;margin:.5rem 0 1rem}.tabs button{flex:1}.tabs button[aria-selected=true]{background:var(--brand);color:var(--brand-text);border-color:var(--brand)}.notice{background:var(--ok-bg);border-radius:8px;padding:.75rem 1rem;margin-top:1rem}.code{font:700 1.05rem ui-monospace,monospace;word-break:break-all;-webkit-user-select:all;user-select:all}.bar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.banner{margin:0;padding:.6rem 1rem;background:var(--warn-bg);color:var(--warn);font-size:.9rem}.layout{display:grid;gap:1rem;padding:1rem;grid-template-columns:1fr}@media (min-width: 900px){.layout{grid-template-columns:1fr 24rem;align-items:start}.cart{position:sticky;top:4.5rem}}.grid{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.product{width:100%;height:100%;min-height:96px;text-align:left;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .75rem}.pname{font-weight:700}.pprice{color:var(--brand);font-weight:700}.pstock{font-size:.78rem;color:var(--muted)}.pstock.bad{color:var(--bad)}.cart{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem}.cart ul,.recent ul{list-style:none;margin:0;padding:0}.cartline{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--line)}.qty{display:inline-flex;align-items:center;gap:.4rem}.qty button{min-width:44px;padding:0}.amount{min-width:5.5rem;text-align:right}.total{display:flex;justify-content:space-between;font-size:1.25rem;padding:.75rem 0}.pay{border:0;padding:0;margin:0}.pay legend{font-weight:600}.pay label{display:inline-block;margin:.25rem 1rem .25rem 0;font-weight:400}.toast{background:var(--ok-bg);color:var(--ok);padding:.5rem .75rem;border-radius:8px;margin:.75rem 0 0}.recent{padding:0 1rem 2rem}.recent li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line)}.recent li p{flex-basis:100%;margin:0}.tabs.wrap{flex-wrap:wrap;padding:.5rem 1rem 0;margin:0}.tabs.wrap button{flex:0 1 auto}.panels{padding:1rem;max-width:52rem;margin:0 auto;display:grid;gap:1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem}.list{list-style:none;margin:0;padding:0}.list li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid var(--line)}.list li.off{opacity:.55}.row{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}.formgrid{display:grid;gap:.25rem .75rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));align-items:end}.formgrid>button{align-self:end;margin-bottom:.75rem}label.inline{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem}label.inline select{width:auto;margin:0}.searchrow{display:flex;gap:.5rem}.searchrow input{flex:1}.pos{color:var(--ok)}.neg{color:var(--bad)}.toast.floating{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:5}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:10;padding:1rem;overflow:auto}.receipt,.scanner{background:#fff;color:#000;width:min(22rem,100%);border-radius:10px;padding:1rem;font:14px/1.35 ui-monospace,Menlo,monospace}.receipt h2{text-align:center;margin:0 0 .25rem}.receipt table{width:100%;border-collapse:collapse;margin:.5rem 0}.receipt td.num{text-align:right;white-space:nowrap}.receipt tfoot td{border-top:1px dashed #000;padding-top:.3rem}.scanner video{width:100%;border-radius:8px;background:#000}@media print{body *{visibility:hidden!important}.receipt,.receipt *{visibility:visible!important}.receipt{position:absolute;left:0;top:0;width:80mm;border-radius:0;padding:4mm}.noprint{display:none!important}}
