:root{--paper:#F7F7F5;--panel:#FFFFFF;--ink:#1B2228;--muted:#5F6975;--line:#D8D8D2;--line2:#C4C4BC;--accent:#175E92;--accent-soft:#E8F0F7;--accent-ink:#0F4670;--good:#1E7A4C;--good-soft:#E6F2EB;--warn:#9A6A18;--warn-soft:#F6EFDD;--crit:#B23A2F;--crit-soft:#F8E9E6;--g-sales:#F3F6F2;--g-price:#F1F5F9;--g-supp:#F7F4ED;--g-comp:#F8F0EF;--chip:#EFEFEB;--r:2px}@media (prefers-color-scheme: dark){:root{--paper:#14181C;--panel:#1C2227;--ink:#E7EAEC;--muted:#8B959E;--line:#2C343B;--line2:#3A444D;--accent:#5C9CCB;--accent-soft:#1C2F3E;--accent-ink:#8FBFE3;--good:#5CB884;--good-soft:#1B2E24;--warn:#D3A24E;--warn-soft:#32291A;--crit:#DA7268;--crit-soft:#372020;--g-sales:#1B2320;--g-price:#1A242D;--g-supp:#241F17;--g-comp:#2A1E1D;--chip:#262C32}}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.45 Golos Text,system-ui,-apple-system,sans-serif}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar{display:flex;align-items:center;gap:24px;padding:0 18px;height:46px;background:var(--panel);border-bottom:1px solid var(--line2);position:sticky;top:0;z-index:30}.wordmark{font-weight:700;font-size:14px;letter-spacing:.05em;white-space:nowrap}.wordmark small{color:var(--muted);font-weight:500;margin-left:6px;font-size:11.5px;letter-spacing:.08em}.nav{display:flex;height:100%}.nav button{border:0;background:none;color:var(--muted);padding:0 16px;font-weight:500;font-size:13.5px;border-bottom:2px solid transparent;border-top:2px solid transparent}.nav button:hover{color:var(--ink)}.nav button.on{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.nav button:disabled{opacity:.45;cursor:default}.nav button:disabled:hover{color:var(--muted)}.userchip{margin-left:auto;color:var(--muted);font-size:13px;white-space:nowrap}.userchip b{color:var(--ink);font-weight:600}.userchip button{border:0;background:none;color:var(--muted);text-decoration:underline;padding:0 0 0 6px}.stats{display:flex;gap:1px;margin:14px 18px 0;border:1px solid var(--line);background:var(--line);flex-wrap:wrap}.stat{background:var(--panel);padding:10px 16px;min-width:158px;flex:1}.stat .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.stat .val{font-size:19px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.stat .sub{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.stat.warn .val{color:var(--warn)}.stat.crit .val{color:var(--crit)}.stat.good .val{color:var(--good)}.controls{display:flex;gap:10px;padding:12px 18px 0;align-items:center;flex-wrap:wrap}.searchbox{display:flex;align-items:center;background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);min-width:320px;flex:0 1 380px}.searchbox span{padding:0 8px 0 10px;color:var(--muted)}.searchbox input{border:0;background:none;color:var(--ink);padding:7px 10px 7px 0;width:100%;font:inherit}.searchbox input::placeholder{color:var(--muted)}.fbtn{border:1px solid var(--line2);background:var(--panel);color:var(--muted);border-radius:var(--r);padding:6px 13px;font-size:13px;font-weight:500}.fbtn:hover{color:var(--ink);border-color:var(--muted)}.fbtn.on{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}.fbtn .n{opacity:.65;margin-left:5px;font-variant-numeric:tabular-nums;font-size:12px}.sep{width:1px;align-self:stretch;background:var(--line)}.catrow{display:flex;gap:8px;padding:10px 18px 0;align-items:center;flex-wrap:wrap}.catlbl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;margin-right:2px}.tablewrap{margin:12px 18px 24px;background:var(--panel);border:1px solid var(--line2);overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%;min-width:1040px}thead th{position:sticky;top:0;background:var(--panel);z-index:5}th,td{padding:7px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}th{font-size:11.5px;color:var(--muted);font-weight:600}th.grouphead{border-bottom:none;padding:7px 10px 1px;text-align:left}td.name,th.name{text-align:left;position:sticky;left:0;background:var(--panel);z-index:4;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line)}.name-resizer{position:absolute;top:0;right:-3px;width:9px;height:100%;cursor:col-resize;touch-action:none}.name-resizer:hover,.name-resizer.dragging{background:var(--accent);opacity:.35}tbody tr:hover td,tbody tr:hover td.name{background:var(--chip)}.gtoggle{border:0;background:var(--chip);border-radius:var(--r);padding:2px 9px;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.05em}.gtoggle:hover{color:var(--ink)}td.g-sales,th.g-sales{background:var(--g-sales)}td.g-price,th.g-price{background:var(--g-price)}td.g-supp,th.g-supp{background:var(--g-supp)}td.g-comp,th.g-comp{background:var(--g-comp)}.pill{display:inline-block;border-radius:var(--r);padding:1px 8px;font-size:11.5px;font-weight:600}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.crit{background:var(--crit-soft);color:var(--crit)}.pill.good{background:var(--good-soft);color:var(--good)}.pill.mut{background:var(--chip);color:var(--muted)}.datewarn{display:block;font-size:10.5px;color:var(--warn)}.datefine{display:block;font-size:10.5px;color:var(--muted)}.inway{font-size:11px;color:var(--accent-ink)}.empty{padding:30px;text-align:center;color:var(--muted)}mark{background:var(--warn-soft);color:inherit;padding:0}.note{margin:0 18px 28px;padding:11px 16px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-size:13px}.loadwrap{display:grid;place-items:center;min-height:40vh;color:var(--muted)}.loginwrap{display:grid;place-items:center;min-height:100vh}.logincard{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);padding:28px;width:340px;display:flex;flex-direction:column;gap:12px}.logincard h1{margin:0 0 6px;font-size:16px}.logincard input{border:1px solid var(--line2);border-radius:var(--r);background:var(--paper);color:var(--ink);padding:9px 12px;font:inherit}.logincard .btn{border:0;border-radius:var(--r);padding:10px;background:var(--accent);color:#fff;font-weight:600}.logincard .err{color:var(--crit);font-size:13px}.editable{cursor:pointer;border-bottom:1px dashed var(--muted)}.editable:hover{color:var(--accent-ink);border-bottom-color:var(--accent)}.editable.changed{color:var(--accent-ink);font-weight:700;border-bottom:none}.oldprice{text-decoration:line-through;color:var(--muted);font-weight:400;margin-right:6px}.pedit{width:84px;font:inherit;text-align:right;border:1px solid var(--accent);border-radius:var(--r);padding:1px 6px;background:var(--panel);color:var(--ink);font-variant-numeric:tabular-nums}.pendbar{position:fixed;left:50%;transform:translate(-50%);bottom:16px;background:var(--ink);color:var(--paper);border-radius:var(--r);padding:9px 14px;display:flex;gap:12px;align-items:center;box-shadow:0 4px 18px #0000004d;z-index:40;font-size:13.5px}.pendbar .btn{border:1px solid transparent;border-radius:var(--r);padding:6px 14px;font-size:13px;font-weight:600}.pendbar .btn.primary{background:var(--accent);color:#fff}.pendbar .btn.ghost{background:transparent;color:var(--paper);border-color:var(--muted)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f141973;display:grid;place-items:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);min-width:540px;max-width:92vw;max-height:82vh;overflow:auto;padding:18px}.modal h3{margin:0 0 4px;font-size:15px}.modal .sub{color:var(--muted);font-size:12.5px;margin-bottom:12px}.modal table{min-width:0;width:100%}.modal td,.modal th{white-space:normal}.modal .foot{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.modal .btn{border:1px solid transparent;border-radius:var(--r);padding:8px 18px;font-weight:600;font-size:13.5px}.modal .btn.primary{background:var(--accent);color:#fff}.modal .btn.ghost{background:var(--panel);color:var(--ink);border-color:var(--line2)}.wcell{color:var(--crit);font-size:11.5px;max-width:200px}.okbig{padding:22px 8px;text-align:center;font-size:15px;font-weight:600;color:var(--good)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f14194d;z-index:45}.drawer{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:94vw;background:var(--panel);border-left:1px solid var(--line2);z-index:46;overflow-y:auto;padding:18px}.drawer h3{margin:0 0 2px;font-size:15px}.drawer .sub{color:var(--muted);font-size:12.5px;margin-bottom:14px}.drawer h4{margin:16px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.drawer table{width:100%;min-width:0}.drawer .closex{position:absolute;top:10px;right:14px;border:0;background:none;font-size:18px;color:var(--muted);cursor:pointer}.namelink{cursor:pointer}.namelink:hover{color:var(--accent-ink);text-decoration:underline}.maprow-input{display:flex;gap:8px;align-items:center}.maprow-input input{border:1px solid var(--line2);border-radius:var(--r);background:var(--paper);color:var(--ink);padding:6px 10px;font:inherit;width:340px;font-size:13px}.maprow-input .btn{border:1px solid transparent;border-radius:var(--r);padding:6px 14px;font-weight:600;font-size:13px;background:var(--accent);color:#fff}.maprow-input .btn:disabled{opacity:.5}.mapnote{font-size:12px;margin-top:3px}.mapnote.ok{color:var(--good)}.mapnote.err{color:var(--crit)}
