:root{--bg:#fff;--panel:#fff;--panel-2:#f2f4f2;--border:#e3e6e3;--hairline:#ececec;--track:#ececec;--text:#161a18;--muted:#6b736e;--accent:#2f7a55;--accent-dim:#a9d0bb;--good:#2f7a55;--warn:#8a6d1f;--bad:#b4483f;--radius:10px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:ui-sans-serif,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.shell{width:100%;min-height:100vh;padding:0 28px 56px}.nav{z-index:20;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:12px;padding:16px 0 14px;display:flex;position:sticky;top:0}.nav .brand{letter-spacing:-.01em;color:var(--text);margin-right:20px;font-weight:600}.nav .ranges{margin-left:auto}.section{margin:0 0 44px;scroll-margin-top:72px}.section+.section{border-top:1px solid var(--hairline);padding-top:30px}.section-bar{letter-spacing:-.01em;margin:0 0 18px;font-size:15px;font-weight:600}.panels{gap:30px 44px;display:grid}.panels+.panels{margin-top:30px}.panels>.panel{min-width:0}.panels>.stack{flex-direction:column;gap:28px;min-width:0;display:flex}@media (min-width:900px){.panels.two{grid-template-columns:1fr 1.06fr}.panels.even{grid-template-columns:1fr 1fr}.panels.three{grid-template-columns:1fr 1fr 1fr}}.panel .head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.panel .title{color:var(--muted);letter-spacing:.04em;font-size:11px}.panel .note{color:var(--muted);font-size:11px}.panel .big{letter-spacing:-.02em;font-size:20px;font-weight:600}.ranges{gap:2px;display:flex}.ranges button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 9px;font-size:11px}.ranges button:hover{color:var(--text);border-color:#0000}.ranges button.on{background:var(--panel-2);color:var(--text);border-color:var(--border)}.sparks{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;display:grid}.spark-head{justify-content:space-between;align-items:baseline;display:flex}.spark .big{letter-spacing:-.02em;margin:2px 0;font-size:19px;font-weight:600}.spark .note.up{color:var(--good)}.spark .note.down{color:var(--bad)}.stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:16px 18px;margin-bottom:12px;display:grid}.stat-cell{flex-direction:column;gap:3px;display:flex}.stat-cell .big{letter-spacing:-.02em;font-size:17px;font-weight:600}h1{letter-spacing:-.02em;margin:0 0 4px;font-size:22px;font-weight:600}.sub{color:var(--muted);margin:0 0 24px}.grid{gap:14px;display:grid}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:12px}.stat .value{letter-spacing:-.02em;font-size:26px;font-weight:600}.stat .delta{color:var(--muted);margin-top:6px;font-size:12px}.delta.up{color:var(--good)}.delta.down{color:var(--bad)}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:0 10px 10px 0;font-size:12px;font-weight:500}td{border-top:1px solid var(--border);padding:9px 10px 9px 0}td.num,th.num{text-align:right;padding-right:0}.bar{background:var(--panel-2);border-radius:3px;height:6px;overflow:hidden}.bar>span{background:var(--accent);height:100%;display:block}select,input,button{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}button{cursor:pointer}button:hover{border-color:var(--accent)}input{width:100%}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--muted)}.pill{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.pill.ok{color:var(--good);border-color:color-mix(in srgb, var(--good) 40%, transparent)}.pill.err{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}.heatmap{gap:3px;padding-bottom:6px;display:flex;overflow-x:auto}.heatmap .week{flex-direction:column;gap:3px;display:flex}.heatmap .cell{background:var(--track);border-radius:2px;width:11px;height:11px}.empty{color:var(--muted);text-align:center;padding:22px 0}.legend{flex-direction:column;gap:7px;font-size:12px;display:flex}.legend .row-item{align-items:center;gap:8px;display:flex}.legend .dot{border-radius:50%;flex:none;width:7px;height:7px}.legend .name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.legend .amt{color:var(--muted);font-variant-numeric:tabular-nums}.legend .pct{text-align:right;font-variant-numeric:tabular-nums;width:34px}.ranked{font-size:12px}.ranked .row-item{align-items:center;gap:9px;padding:5px 0;display:flex}.ranked .idx{color:var(--muted);font-variant-numeric:tabular-nums;width:15px}.ranked .name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.ranked .amt{color:var(--text);font-variant-numeric:tabular-nums}.timeline{flex-direction:column;gap:3px;display:flex}.tl-row{align-items:center;gap:9px;display:flex}.tl-label{width:92px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:11px;overflow:hidden}.tl-cells{flex:1;gap:1px;display:flex;overflow:hidden}.tl-cell{background:var(--track);border-radius:1px;flex:1;min-width:2px;height:12px}.legend-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:5px 14px;margin-top:12px;font-size:12px;display:grid}.legend-grid .row-item{align-items:center;gap:7px;display:flex}.legend-grid .dot{border-radius:50%;flex:none;width:7px;height:7px}.legend-grid .name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.legend-grid .amt{color:var(--muted);font-variant-numeric:tabular-nums}.scorecard-body{align-items:center;gap:12px;display:flex}.scorecard-body>:first-child{flex:none;width:132px}.scorecard .title{color:var(--muted);letter-spacing:.04em;font-size:11px}
