:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f6f4;--surface:#fcfcfb;--surface-2:#f0efeb;--border:#e2e1dc;--text:#0b0b0b;--text-2:#52514e;--text-3:#8a8984;--accent:#2a78d6;--accent-soft:#e3eefb;--good:#0f7b3e;--good-soft:#e3f3e8;--warn:#9a6200;--warn-soft:#fbf1dc;--bad:#c0302f;--bad-soft:#fbe5e4;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--grid:#e8e7e2;--radius:8px;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121211;--surface:#1a1a19;--surface-2:#232321;--border:#33332f;--text:#f0efec;--text-2:#c3c2b7;--text-3:#8d8c84;--accent:#3987e5;--accent-soft:#1b2b40;--good:#4cc27a;--good-soft:#15291d;--warn:#e0a83a;--warn-soft:#2e2512;--bad:#e66767;--bad-soft:#351b1b;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--grid:#2a2a27}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0;overflow:hidden}#root{flex-direction:column;display:flex}button,input,select{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:16px;display:flex}header.app{background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:24px;height:44px;padding:0 16px;display:flex}header.app h1{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:650}nav.tabs{gap:4px;display:flex}nav.tabs button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:8px 12px}nav.tabs button:hover{background:var(--surface-2)}nav.tabs button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.save-status{color:var(--text-3);font-size:12px}main{flex-direction:column;flex:1;min-height:0;padding:12px 16px;display:flex;overflow:hidden}.view{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.view-grid{flex:1;gap:10px;min-height:0;display:grid}.view-grid>*{min-width:0;min-height:0}.col{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:0;padding:10px 12px;display:flex}.panel.grow,.grow{flex:1;min-height:0}.panel-head{flex-wrap:wrap;flex:none;align-items:center;gap:8px;margin-bottom:8px;display:flex}.panel-head h2{margin:0;font-size:14px;font-weight:650}.panel-head .hint{cursor:help;color:var(--text-3)}.panel>.table-wrap.grow,.panel .scroll{flex:1;min-height:0;overflow:auto}.chart-fill{flex:1;min-height:120px;position:relative}.chart-fill>.abs{position:absolute;inset:0}.kpis.compact{flex:none;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.kpis.compact .kpi{padding:8px 10px}.kpis.compact .kpi .value{font-size:18px}.banner.slim{flex:none;padding:6px 10px}@media (height<=640px),(width<=1000px){body{overflow:auto}main{overflow:visible}.view,.view-grid{flex:none}.view-grid{grid-template-rows:none!important;grid-template-columns:1fr!important}.panel.grow,.grow{flex:none}.panel>.table-wrap.grow,.panel .scroll{flex:none;max-height:70vh}.chart-fill{flex:none;height:240px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card h2{margin:0 0 12px;font-size:15px;font-weight:650}.card h3{color:var(--text-2);margin:0 0 8px;font-size:13px;font-weight:600}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.kpi .label{color:var(--text-2);font-size:12px}.kpi .value{font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px;font-weight:650}.kpi .sub{color:var(--text-3);margin-top:2px;font-size:12px}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;padding:6px 12px}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--bad)}.btn.sm{padding:3px 8px;font-size:12px}.icon-btn{cursor:pointer;color:var(--text-3);background:0 0;border:0;border-radius:4px;padding:2px 4px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.on{color:var(--accent)}input[type=text],input[type=number],input[type=search],select{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:5px 8px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}input.cell{text-align:right;font-variant-numeric:tabular-nums;width:84px;padding:3px 6px}input.cell.wide{width:110px}input.cell.narrow{width:52px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:auto}table.grid{border-collapse:separate;border-spacing:0;width:100%}table.grid th,table.grid td{border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 8px}table.grid th{background:var(--surface-2);color:var(--text-2);text-align:left;z-index:1;font-size:12px;font-weight:600;position:sticky;top:0}table.grid th.num{text-align:right}table.grid th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.grid th.sortable:hover{color:var(--text)}table.grid tbody tr:hover td{background:var(--surface-2)}table.grid tr.selected td{background:var(--accent-soft)}table.grid tr.total td{background:var(--surface-2);font-weight:650}table.grid td.name{font-weight:550}.max-h{max-height:640px}.sugg{cursor:pointer;border-radius:4px;padding:1px 4px}.sugg:hover{background:var(--accent-soft);color:var(--accent)}.sugg.active{outline:1px solid var(--accent)}.tag{border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.tag.low{background:var(--good-soft);color:var(--good)}.tag.med{background:var(--warn-soft);color:var(--warn)}.tag.high{background:var(--bad-soft);color:var(--bad)}.pos{color:var(--good)}.neg{color:var(--bad)}.banner{border-radius:var(--radius);padding:10px 14px;font-size:13px}.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.bad{background:var(--bad-soft);color:var(--bad)}.banner.info{background:var(--accent-soft);color:var(--accent)}.split{grid-template-columns:320px 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.split{grid-template-columns:1fr}}.list{flex-direction:column;gap:4px;display:flex}.list-item{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.list-item:hover{background:var(--surface-2)}.list-item.active{background:var(--accent-soft);border-color:var(--accent)}.swatch{border-radius:3px;flex:none;width:12px;height:12px}.bar-track{background:var(--surface-2);border-radius:5px;min-width:140px;height:10px;position:relative}.bar-fill{border-radius:5px;position:absolute;top:0;bottom:0;left:0}.bar-mark{background:var(--text);width:2px;position:absolute;top:-3px;bottom:-3px}.empty{text-align:center;color:var(--text-2);padding:48px}.chip{background:var(--surface-2);color:var(--text-2);border-radius:10px;align-items:center;gap:4px;margin-right:4px;padding:1px 6px;font-size:11px;display:inline-flex}.seg{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);cursor:pointer;border:0;padding:3px 8px;font-size:12px}.seg button.on{background:var(--accent);color:#fff}.chart-box{height:260px}.recharts-cartesian-grid line{stroke:var(--grid)}.recharts-text{fill:var(--text-2);font-size:11px}.recharts-default-tooltip{border-radius:6px;background:var(--surface)!important;border-color:var(--border)!important}.tag.t-growing{background:var(--good-soft);color:var(--good)}.tag.t-stable{background:var(--surface-2);color:var(--text-2)}.tag.t-declining{background:var(--bad-soft);color:var(--bad)}.tag.t-erratic{background:var(--warn-soft);color:var(--warn)}.tag.t-new{background:var(--accent-soft);color:var(--accent)}.tag.t-dormant{background:var(--surface-2);color:var(--text-3)}.modal-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:flex-start;padding:8vh 16px;display:flex;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:84vh;overflow:auto;box-shadow:0 20px 60px #00000059}header.app h1{white-space:nowrap}nav.tabs button:disabled{opacity:.4;cursor:default}
