:root{--bg: #f7f8fa;--panel: #ffffff;--panel-2: #f1f3f7;--line: #e3e7ee;--line-strong: #d2d8e2;--text: #1c2433;--muted: #6b7689;--muted-2: #98a1b3;--accent: #4f46e5;--accent-soft: #eef0fe;--accent-2: #0ea5e9;--good: #15a36a;--good-soft: #e6f6ee;--warn: #c08a16;--warn-soft: #fdf4e0;--bad: #d6455d;--bad-soft: #fdecee;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(20, 30, 50, .04), 0 2px 8px rgba(20, 30, 50, .05);--shadow-pop: 0 6px 24px rgba(20, 30, 50, .12);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--sidebar-w: 232px;--header-h: 56px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}a{color:var(--accent)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto}.brand{padding:16px 18px;border-bottom:1px solid var(--line)}.brand .logo{font-size:15px;font-weight:700;letter-spacing:-.02em}.brand .logo span{color:var(--accent)}.brand .tag{font-size:11px;color:var(--muted);margin-top:2px}.navgroup{padding:12px 10px 4px}.navgroup .h{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-2);padding:0 8px 6px;font-weight:650}.navitem{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent}.navitem:hover{background:var(--panel-2)}.navitem.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.navitem .dot{width:6px;height:6px;border-radius:50%;background:var(--muted-2);flex:none}.navitem.active .dot{background:var(--accent)}.main{display:flex;flex-direction:column;overflow:hidden}.header{height:var(--header-h);flex:none;border-bottom:1px solid var(--line);background:var(--panel);display:flex;align-items:center;gap:14px;padding:0 20px}.header .title{font-size:15px;font-weight:650}.header .spacer{flex:1}.content{overflow-y:auto;padding:22px 24px 80px}.content.present{background:var(--bg)}.hctl{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.hlbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);font-weight:700;line-height:1;padding-left:2px}.seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:2px}.seg button{border:none;background:transparent;font-family:inherit;font-size:12.5px;padding:5px 11px;border-radius:6px;cursor:pointer;color:var(--muted);font-weight:600}.seg button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.select{font-family:inherit;font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel);color:var(--text);cursor:pointer}.btn{font-family:inherit;font-size:13px;font-weight:600;padding:7px 13px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel);color:var(--text);cursor:pointer}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.05);color:#fff}.btn.sm{padding:4px 9px;font-size:12px}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--panel-2);color:var(--text)}.row{display:flex;gap:16px}.col{display:flex;flex-direction:column;gap:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 1100px){.grid4{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr 1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.panel .phead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel h2{font-size:14.5px}.panel .sub{font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}.viewhead{margin-bottom:18px}.viewhead h1{font-size:20px}.viewhead p{color:var(--muted);margin:4px 0 0;font-size:13px;max-width:720px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 15px;box-shadow:var(--shadow)}.stat .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;display:flex;align-items:center;gap:5px}.stat .big{font-size:23px;font-weight:700;margin:6px 0 2px;letter-spacing:-.02em}.stat .small{font-size:12px;color:var(--muted)}.pos{color:var(--good)}.neg{color:var(--bad)}.amb{color:var(--warn)}.gridwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}table.qgrid{border-collapse:collapse;font-size:12.5px;width:100%;font-variant-numeric:tabular-nums}table.qgrid th,table.qgrid td{padding:7px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}table.qgrid thead th{position:sticky;top:0;background:var(--panel-2);color:var(--muted);font-weight:600;font-size:11px;z-index:2}table.qgrid th.lbl,table.qgrid td.lbl{text-align:left;position:sticky;left:0;background:var(--panel);z-index:1;font-weight:500;border-right:1px solid var(--line);min-width:190px}table.qgrid thead th.lbl{z-index:3;background:var(--panel-2)}table.qgrid tr:hover td,table.qgrid tr:hover td.lbl{background:var(--panel-2)}table.qgrid td.yr{background:var(--accent-soft);font-weight:600}table.qgrid tr.section td{background:var(--panel-2);font-weight:700;color:var(--text);text-transform:uppercase;font-size:10.5px;letter-spacing:.05em}table.qgrid tr.total td{font-weight:700;border-top:1.5px solid var(--line-strong)}table.qgrid input.cell{width:72px;text-align:right;border:1px solid transparent;background:transparent;font-family:inherit;font-size:12.5px;padding:2px 4px;border-radius:4px;color:var(--text)}table.qgrid input.cell:hover{border-color:var(--line-strong)}table.qgrid input.cell:focus{border-color:var(--accent);background:var(--accent-soft);outline:none}.ctrl{margin-bottom:14px}.ctrl:last-child{margin-bottom:0}.ctrl .lbl{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:8px}.ctrl .lbl .name{font-size:12.5px;color:var(--text);display:flex;align-items:center;gap:5px}.ctrl .lbl .val{font-size:13px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}input[type=range]{-webkit-appearance:none;width:100%;height:5px;border-radius:5px;background:var(--panel-2);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--panel);box-shadow:var(--shadow)}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--panel)}input.num{font-family:inherit;font-size:13px;padding:6px 9px;border:1px solid var(--line-strong);border-radius:7px;background:var(--panel);color:var(--text);width:100%}input.num:focus{border-color:var(--accent);outline:none}table.coll{width:100%;border-collapse:collapse;font-size:12.5px}table.coll th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}table.coll td{padding:4px 8px;border-bottom:1px solid var(--line)}table.coll input,table.coll select{font-family:inherit;font-size:12.5px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);width:100%}table.coll input:focus,table.coll select:focus{border-color:var(--accent);outline:none}table.coll tr.off{opacity:.45}.iconbtn{border:none;background:transparent;cursor:pointer;color:var(--muted);padding:4px 6px;border-radius:6px;font-size:13px}.iconbtn:hover{background:var(--panel-2);color:var(--text)}.iconbtn.danger:hover{background:var(--bad-soft);color:var(--bad)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.badge.good{background:var(--good-soft);color:var(--good)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.neutral{background:var(--panel-2);color:var(--muted)}.pill{display:inline-block;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:11.5px;color:var(--muted)}.note{font-size:12px;color:var(--muted);line-height:1.55}.note b{color:var(--text)}.helptip{position:relative;display:inline-flex}.helptip .q{width:14px;height:14px;border-radius:50%;background:var(--panel-2);color:var(--muted);font-size:9px;display:inline-flex;align-items:center;justify-content:center;cursor:help;border:1px solid var(--line);font-weight:700}.helptip .pop{display:none;position:absolute;z-index:50;top:20px;left:0;width:260px;background:var(--text);color:#fff;padding:9px 11px;border-radius:8px;font-size:11.5px;line-height:1.5;font-weight:400;box-shadow:var(--shadow-pop)}.helptip:hover .pop{display:block}.helptip .pop b{color:#fff}.callout{background:var(--accent-soft);border:1px solid #d9ddfb;border-radius:var(--radius);padding:14px 16px;font-size:13px}.callout.warn{background:var(--warn-soft);border-color:#f2e2b8}.checksstrip{display:flex;gap:8px;flex-wrap:wrap}.check{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:3px 9px;border-radius:999px;font-weight:600}.check.ok{background:var(--good-soft);color:var(--good)}.check.fail{background:var(--bad-soft);color:var(--bad)}.present .ctrl,.present .coll-actions,.present .editonly{display:none!important}
