:root{--bg: #f5f7fb;--surface: #ffffff;--surface-2: #eef1f6;--text: #172033;--muted: #5b6980;--border: #dfe5ed;--border-strong: #c9d2df;--navy: #17253a;--sidebar: #101827;--sidebar-text: #c4cddc;--sidebar-active: #1d2a40;--accent: #d8a43b;--accent-hover: #c8942c;--accent-soft: #fbf3df;--on-accent: #1b1405;--ok: #2c7a53;--ok-bg: #e9f6ee;--warn: #8f5b00;--warn-bg: #fff3d9;--bad: #b3261e;--bad-bg: #fdeceb;--info: #25589e;--info-bg: #e8f0fb;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 6px 20px rgb(16 24 40 / 6%);--focus: 0 0 0 3px rgb(216 164 59 / 45%);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Ethiopic", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #0c1320;--surface: #141d2d;--surface-2: #1b2639;--text: #e7ecf5;--muted: #97a5bc;--border: #25324a;--border-strong: #34445f;--sidebar: #090f1a;--sidebar-active: #172236;--accent: #e2b453;--accent-hover: #edc46a;--accent-soft: #2c2512;--ok: #62c28e;--ok-bg: #12261c;--warn: #f0b84f;--warn-bg: #2b2210;--bad: #ff8a80;--bad-bg: #2d1514;--info: #7fb0f2;--info-bg: #14243b;--shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 8px 24px rgb(0 0 0 / 35%);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.5rem;letter-spacing:-.01em}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0 0 .5rem}a{color:var(--info)}hr{border:0;border-top:1px solid var(--border);margin:.75rem 0}code,.mono{font-family:var(--mono);font-size:.9em}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.strong{font-weight:700}.num{text-align:right;white-space:nowrap}.nowrap{white-space:nowrap}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.grow{flex:1 1 auto}.spread{justify-content:space-between}.stack{display:grid;gap:.75rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}@media(max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;padding:1rem .75rem;gap:1rem;overflow-y:auto}.brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem;color:#fff;font-weight:700;letter-spacing:.01em}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:800}.brand small{display:block;color:var(--sidebar-text);font-weight:500;font-size:.72rem}.nav{display:grid;gap:2px}.nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:var(--radius-sm);color:var(--sidebar-text);text-decoration:none;font-weight:500}.nav a:hover{background:var(--sidebar-active);color:#fff}.nav a[aria-current=page]{background:var(--sidebar-active);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.sidebar-foot{margin-top:auto;font-size:.8rem;opacity:.8;padding:0 .5rem}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .who{text-align:right;line-height:1.2}.topbar .who small{color:var(--muted)}.content{padding:1.25rem;max-width:1280px;width:100%;margin:0 auto;display:grid;gap:1rem;align-content:start}.menu-btn{display:none}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;width:260px;transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:var(--shadow)}.menu-btn{display:inline-flex}.scrim{position:fixed;inset:0;background:#00000073;z-index:30}.content{padding:.9rem}.topbar{padding:.5rem .9rem}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-head p{margin:.15rem 0 0}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:38px;padding:.45rem .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{color:var(--bad);border-color:var(--bad);background:transparent}.btn-sm{min-height:30px;padding:.2rem .6rem;font-size:.85rem}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border:0;background:transparent;color:inherit;border-radius:var(--radius-sm);cursor:pointer}.icon-btn:hover{background:var(--surface-2)}.icon{flex:none;vertical-align:-.2em}.field{display:grid;gap:.25rem;min-width:0}.field-label{font-size:.82rem;font-weight:600;color:var(--muted)}.field-hint{font-size:.78rem;color:var(--muted)}input,select,textarea{width:100%;min-height:38px;padding:.4rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}textarea{min-height:70px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}.check{display:flex;gap:.5rem;align-items:center;font-weight:500}.form-error{color:var(--bad);background:var(--bad-bg);border-radius:var(--radius-sm);padding:.5rem .7rem;margin:0}.search{position:relative;flex:1 1 220px}.search .icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--muted)}.search input{padding-left:2.1rem}.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end}.filters .field{flex:0 1 160px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.card>h2,.card>.card-title{margin-bottom:.75rem}.card-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;display:grid;gap:.1rem}.stat-label{color:var(--muted);font-size:.8rem;font-weight:600}.stat-value{font-size:1.3rem;letter-spacing:-.01em}.stat-hint{color:var(--muted);font-size:.78rem}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.tone-info{color:var(--info)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.6rem .8rem;background:var(--surface-2);white-space:nowrap}.table td{padding:.6rem .8rem;border-top:1px solid var(--border);vertical-align:middle}.table th.num,.table td.num{text-align:right}.table tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.table .actions{text-align:right;white-space:nowrap}.clickable{cursor:pointer}.table small{color:var(--muted);display:block}.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.76rem;font-weight:700;white-space:nowrap}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-muted{background:var(--surface-2);color:var(--muted)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);overflow-x:auto}.tab{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;padding:.6rem .9rem;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.state{display:flex;gap:.6rem;align-items:center;justify-content:center;padding:1.5rem;color:var(--muted)}.state-error{color:var(--bad)}.state-empty{border:1px dashed var(--border-strong);border-radius:var(--radius)}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.backdrop{position:fixed;inset:0;background:#080c148c;display:grid;place-items:center;padding:1rem;z-index:60;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);width:min(560px,100%);max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;outline:none}.modal-wide{width:min(860px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border)}.modal-body{padding:1rem;overflow-y:auto;display:grid;gap:.9rem}.modal-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);flex-wrap:wrap}.toasts{position:fixed;right:1rem;bottom:1rem;display:grid;gap:.5rem;z-index:80;max-width:min(380px,calc(100vw - 2rem))}.toast{padding:.7rem .9rem;border-radius:var(--radius-sm);box-shadow:var(--shadow);background:var(--navy);color:#fff;font-weight:500}.toast-bad{background:var(--bad)}.toast-ok{background:var(--ok);color:#fff}.dash-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem}@media(max-width:1000px){.dash-grid{grid-template-columns:1fr}}.bars{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:1rem}.bar{flex:1;display:grid;align-items:end;height:100%;text-align:center;font-size:.68rem;color:var(--muted)}.bar i{display:block;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.bar.today i{background:var(--navy)}:root[data-theme=dark] .bar.today i{background:var(--info)}.list{list-style:none;margin:0;padding:0;display:grid}.list li{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--border)}.list li:first-child{border-top:0}.advice{white-space:pre-wrap;background:var(--accent-soft);border-radius:var(--radius-sm);padding:.8rem}.pos{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);gap:1rem;align-items:start}@media(max-width:1000px){.pos{grid-template-columns:1fr}}.finder-results{display:grid;gap:.4rem;margin-top:.75rem;max-height:56vh;overflow-y:auto}.finder-item{display:flex;justify-content:space-between;gap:.75rem;align-items:center;text-align:left;width:100%;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:inherit;font:inherit}.finder-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.finder-item:disabled{opacity:.5;cursor:not-allowed}.cart{position:sticky;top:4.2rem;display:grid;gap:.75rem}.cart-line{display:grid;gap:.4rem;padding:.6rem 0;border-top:1px solid var(--border)}.cart-line:first-child{border-top:0}.qty{display:inline-flex;align-items:center;gap:.25rem}.qty input{width:3.6rem;text-align:center}.totals,.receipt dl{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;margin:0}.totals dd,.receipt dd{margin:0;text-align:right}.totals dt.strong,.totals dd.strong{font-size:1.15rem}.pay-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.receipt{font-family:var(--mono);font-size:.85rem;max-width:320px;margin:0 auto;background:#fff;color:#111;padding:.75rem;border:1px dashed var(--border-strong)}.receipt table{width:100%;border-collapse:collapse}.receipt td{padding:.15rem 0;vertical-align:top}.receipt hr{border-top:1px dashed #888}.receipt h3{text-align:center}@media print{body *{visibility:hidden}#receipt,#receipt *{visibility:visible}#receipt{position:absolute;left:0;top:0;width:80mm;border:0;max-width:none}@page{margin:4mm}}.login{min-height:100dvh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,var(--sidebar),var(--navy))}.login-card{width:min(400px,100%);background:var(--surface);border-radius:14px;padding:1.6rem;display:grid;gap:.9rem;box-shadow:var(--shadow)}.login-card .brand{color:var(--text);padding:0}.login-card .brand small{color:var(--muted)}.shop-head{background:var(--navy);color:#fff;padding:1.2rem}.shop-head .inner,.shop-body{max-width:1100px;margin:0 auto;width:100%}.shop-head a{color:var(--accent)}.shop-body{padding:1.2rem;display:grid;gap:1rem}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{border:1px solid var(--border-strong);background:var(--surface);color:inherit;border-radius:999px;padding:.3rem .85rem;font:inherit;cursor:pointer}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}.product{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}.product .pic{aspect-ratio:4 / 3;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}.product .pic img{width:100%;height:100%;object-fit:cover}.product .info{padding:.8rem;display:grid;gap:.35rem;align-content:start}.price{font-size:1.1rem;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;align-items:start}.stack.tight{gap:.4rem}.row.nowrap{flex-wrap:nowrap}.narrow{width:7.5rem}.narrow.wide{width:9.5rem}.short{max-height:260px;overflow-y:auto}.pre-line{white-space:pre-line}.table input,.table select{min-height:32px}.doc-screen{max-height:56vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:.6rem}#print-root{display:none}.print-preview{background:var(--surface-2);padding:.75rem;border-radius:var(--radius-sm);overflow:auto;max-height:62vh}.doc{background:#fff;color:#111;font-size:10.5pt;line-height:1.4;padding:14mm 12mm;max-width:210mm;margin:0 auto;box-shadow:var(--shadow)}.doc h1{font-size:16pt;margin:0 0 .2rem}.doc h2{font-size:14pt;margin:0;letter-spacing:.04em}.doc h3{font-size:9pt;text-transform:uppercase;letter-spacing:.05em;color:#555;margin:0 0 .2rem}.doc p{margin:.1rem 0}.doc-head{display:flex;justify-content:space-between;gap:1rem;border-bottom:2px solid #111;padding-bottom:.6rem;margin-bottom:.8rem}.doc-ident{text-align:right;display:grid;justify-items:end;gap:.1rem}.doc-number{font-size:13pt;font-family:var(--mono)}.doc-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.8rem}.doc-block{margin:.7rem 0}.doc-table{width:100%;border-collapse:collapse;margin:.6rem 0}.doc-table th{text-align:left;font-size:9pt;text-transform:uppercase;border-bottom:1.5px solid #111;padding:.3rem .4rem}.doc-table td{border-bottom:1px solid #ccc;padding:.3rem .4rem;vertical-align:top}.doc-table th.num,.doc-table td.num{text-align:right}.doc-table small{display:block;color:#666;font-size:8pt}.doc-totals{display:grid;grid-template-columns:1fr auto;gap:.15rem 1.2rem;margin:.4rem 0 .4rem auto;width:min(100%,95mm)}.doc-totals dd{margin:0;text-align:right}.doc-totals .strong{font-size:12pt;font-weight:700}.doc-fine,.small-print{font-size:8.5pt;color:#444}.doc-sign{display:flex;justify-content:space-between;gap:2rem;margin-top:2.2rem}.doc-sign span{flex:1;border-top:1px solid #111;padding-top:.25rem;font-size:9pt;text-align:center}.barcode{display:block}.label{box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;gap:.3mm;overflow:hidden;background:#fff;color:#000;font-family:system-ui,sans-serif;line-height:1.15}.label-shop{font-size:calc(6pt * var(--s, 1));font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-title{font-size:calc(7.5pt * var(--s, 1));font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.label-foot{display:flex;justify-content:space-between;align-items:baseline;gap:1mm;font-size:calc(7pt * var(--s, 1))}.label-code{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.label-nobar{font-size:6pt;color:#900}.label-page{break-after:page;break-inside:avoid;width:fit-content}.label-page:last-child,.label-sheet:last-child{break-after:auto}.label-sheet{display:grid;width:210mm;height:296mm;box-sizing:border-box;break-after:page;overflow:hidden;background:#fff}.label-preview{background:var(--surface-2);padding:.75rem;border-radius:var(--radius-sm);overflow:auto;max-height:50vh}.label-preview .label{outline:1px dashed #aaa}.label-preview .label-sheet{zoom:.5}@media print{html,body{background:#fff!important}body.has-print-doc #root,body.has-print-doc .toasts{display:none!important}body.has-print-doc #print-root{display:block}body.has-print-doc #print-root,body.has-print-doc #print-root *{visibility:visible}#print-root .doc{box-shadow:none;padding:0;max-width:none}#print-root .receipt{border:0;max-width:none;width:72mm;padding:0;margin:0;position:static}}.scanner-overlay{position:fixed;inset:0;background:#000;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-frame{position:absolute;width:70%;height:30%;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 100vmax #00000080}.scanner-close{position:absolute;top:16px;right:16px;background:#ffffffe6}
