:root{--bg:#F4F6F8;--surface:#FFFFFF;--surface-2:#EDF0F4;--surface-3:#E3E8ED;--border:#D8DEE5;--border-strong:#C2CAD3;--ink:#161A20;--ink-2:#586170;--ink-3:#8A94A2;--accent:#0E5E58;--accent-2:#0A4A45;--accent-soft:#E1EEEC;--pos:#1F7A54;--neg:#B23A3A;--warn:#B7791F;--blue:#1E4FA0;--blue-soft:#E7EDF7;--grid:#EAEEF2;--shadow:0 1px 2px rgba(20,26,34,.06),0 4px 16px rgba(20,26,34,.05);--font-ui:-apple-system,"Segoe UI",system-ui,Roboto,sans-serif;--font-serif:Georgia,"Iowan Old Style","Times New Roman",serif;--font-mono:"SFMono-Regular","Cascadia Code",Consolas,"Liberation Mono",monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0D1015;--surface:#161B22;--surface-2:#1D242D;--surface-3:#252E38;--border:#2A323C;--border-strong:#3A434F;--ink:#E7EBF1;--ink-2:#9BA6B4;--ink-3:#69727F;--accent:#3FB6AB;--accent-2:#5AC7BD;--accent-soft:#14312E;--blue:#6E9BE6;--blue-soft:#152232;--pos:#3DA57A;--neg:#E06B5E;--warn:#E0A44A;--grid:#212a33;--shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.35);color-scheme:dark}}:root[data-theme=dark]{--bg:#0D1015;--surface:#161B22;--surface-2:#1D242D;--surface-3:#252E38;--border:#2A323C;--border-strong:#3A434F;--ink:#E7EBF1;--ink-2:#9BA6B4;--ink-3:#69727F;--accent:#3FB6AB;--accent-2:#5AC7BD;--accent-soft:#14312E;--blue:#6E9BE6;--blue-soft:#152232;--pos:#3DA57A;--neg:#E06B5E;--warn:#E0A44A;--grid:#212a33;--shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.35);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2;text-wrap:balance}.mono{font-family:var(--font-mono)}select,input[type=text],input[type=number],input[type=date],input[type=search]{font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:7px;padding:6px 9px}select:focus,input:focus{outline:2px solid var(--accent);outline-offset:1px}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.main{min-width:0;display:flex;flex-direction:column}.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{padding:20px 20px 16px;border-bottom:1px solid var(--border)}.brand .mark{font-family:var(--font-serif);font-size:19px;font-weight:600;letter-spacing:-.01em}.brand .mark span{color:var(--accent)}.brand .sub{font-size:11px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-top:4px}.nav{padding:10px;display:flex;flex-direction:column;gap:2px;flex:1}.nav .lbl{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:12px 12px 6px}.navitem{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;border:none;background:none;color:var(--ink-2);text-align:left;width:100%;font-size:13.5px}.navitem:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.navitem:disabled{cursor:default;opacity:.55}.navitem.on{background:var(--accent-soft);color:var(--accent-2);font-weight:600}.navitem .n{font-family:var(--font-mono);font-size:11px;width:18px;height:18px;flex:none;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:5px;color:var(--ink-3)}.navitem.on .n{border-color:var(--accent);color:var(--accent-2)}.navitem .soon{margin-left:auto;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.rail-foot{padding:14px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--ink-3)}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:12px 26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.topbar h2{font-size:15px}.topbar .crumb{font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.topbar .spacer{flex:1}.iconbtn{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);font-size:15px}.iconbtn:hover{background:var(--surface-2);color:var(--ink)}.iconbtn.on{border-color:var(--accent);color:var(--accent-2);background:var(--accent-soft)}.view{padding:26px 30px;width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.card>.hd{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}.card h3{font-size:14.5px}.card .tag{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.card .desc{font-size:12.5px;color:var(--ink-2);margin:6px 0 16px;max-width:74ch}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.btn:hover{background:var(--accent-2)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--accent-2);border:1px solid var(--border-strong)}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{padding:5px 10px;font-size:12px}.segs{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden;vertical-align:middle}.segbtn{border:none;background:var(--surface);color:var(--ink-2);padding:6px 12px;font-size:12.5px;font-weight:500;border-right:1px solid var(--border-strong)}.segbtn:last-child{border-right:none}.segbtn:hover{background:var(--surface-2)}.segbtn.on{background:var(--accent);color:#fff;font-weight:600}.ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 14px;font-size:12.5px;color:var(--ink-2)}.ctl .lbl{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.srcbar{font-size:11px;color:var(--ink-3);margin:0 0 12px;padding:5px 9px;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;line-height:1.5}.srcbar .ok{color:var(--pos)}.srcbar .flag{color:var(--neg);font-weight:600;flex-basis:100%}.note{font-size:12px;color:var(--ink-3);margin-top:8px}.empty{padding:28px;text-align:center;color:var(--ink-2);font-size:13px}.err{color:var(--neg)}.pos{color:var(--pos)}.neg{color:var(--neg)}.hlg{font-family:var(--font-serif);font-size:15px;font-weight:600;margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border-strong)}.mtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.mtile{appearance:none;font:inherit;text-align:left;background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;padding:9px 12px;color:var(--ink)}button.mtile:hover{border-color:var(--accent);background:var(--accent-soft)}.mtile.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.mtile .k{font-size:11px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;line-height:1.25}.mtile .v{font-size:19px;font-weight:600;margin-top:3px;font-variant-numeric:tabular-nums}.mtile.plain{cursor:default}.tblwrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:7px 12px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left}thead th{background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;border-bottom:1px solid var(--border)}tbody tr{border-bottom:1px solid var(--grid)}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:var(--surface-2)}tr.total td{font-weight:700;border-top:1.5px solid var(--border-strong)}.bar{display:inline-block;height:9px;border-radius:2px;background:var(--accent);vertical-align:middle;margin-right:8px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle}.sa-bar{position:sticky;top:59px;z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:6px 0 8px;margin:-6px 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sa-lbl{font-size:13px;font-weight:600;color:var(--accent-2)}.sa-tabs{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%}.sa-tab{appearance:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:5px 12px;cursor:pointer;box-shadow:0 1px #141a2212}.sa-tab:hover{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}.sa-tab.on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.sa-sub{display:flex;gap:6px;flex-basis:100%}.ssel{position:relative}.ssel-btn{font:inherit;font-size:15px;font-weight:700;color:var(--ink);background:var(--surface);border:2px solid var(--accent);border-radius:8px;padding:7px 14px;min-width:300px;text-align:left;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);display:flex;align-items:center;gap:12px}.ssel-btn .caret{margin-left:auto;color:var(--ink-3);font-size:11px}.ssel-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:min(560px,90vw);max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 10px 30px #0000002e}.ssel-pop input{margin:8px;border:2px solid var(--accent)}.ssel-list{overflow-y:auto;padding:0 6px 8px}.ssel-grp{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:10px 8px 4px;font-weight:600}.ssel-opt{display:block;width:100%;text-align:left;border:none;background:none;padding:5px 8px;border-radius:6px;color:var(--ink)}.ssel-opt:hover,.ssel-opt.hi{background:var(--accent-soft)}.ssel-opt .t{font-size:13px}.ssel-opt .s{font-size:11px;color:var(--ink-3)}.ssel-opt.cur .t{font-weight:700}table.grid td,table.grid th{padding:4px 7px;font-size:12px;text-align:center}table.grid td.l1{background:color-mix(in srgb,var(--accent) 16%,transparent)}table.grid td.l2{background:color-mix(in srgb,var(--accent) 7%,transparent)}table.grid td.bad{color:var(--neg);font-weight:700}table.grid td.zero{outline:2px solid var(--accent);outline-offset:-2px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-2);margin-top:8px}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px}input.cell{width:64px;text-align:right;padding:3px 5px}.admin-tbl td{padding:4px 10px}.admin-tbl select,.admin-tbl input{font-size:12.5px;padding:3px 6px}.dirty{background:color-mix(in srgb,var(--warn) 10%,transparent)}@media(max-width:900px){.app{grid-template-columns:1fr}.rail{position:static;height:auto}.nav{flex-direction:row;flex-wrap:wrap}.view{padding:16px}.ssel-btn{min-width:0;width:100%}}@media print{@page{size:landscape;margin:10mm}.rail,.topbar,.sa-tabs,.ctl,.noprint{display:none!important}.app{display:block}.sa-bar{position:static}.card{box-shadow:none;break-inside:avoid}body{background:#fff}}
