@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#11130f;--panel:#191c16;--line:#30352b;--text:#edeee7;--muted:#a0a696;--green:#d0f58e;--green-dark:#252f1c;font-family:'DM Sans',system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text)}
main{max-width:1340px;margin:auto;padding:32px 48px}
button,select{font:inherit}
button,select{cursor:pointer}
button{border:1px solid var(--line);color:var(--text);background:transparent;border-radius:8px;padding:9px 14px;transition:background 140ms ease,transform 140ms ease}
button:active{transform:scale(.97)}
button:disabled{cursor:wait;opacity:.55}
button:hover{background:#292e23}
:focus-visible{outline:2px solid var(--green);outline-offset:4px}
header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
label{display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:12px}
select{background:var(--bg);border:1px solid #3b4232;color:var(--text);border-radius:7px;padding:10px;width:100%;min-width:0;font-size:13px}
#error{font-size:13px;line-height:1.6;color:#f2b39a;padding:14px 20px;background:#2d2119;border:1px solid #614232;border-radius:8px}
.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;margin:0 0 24px;gap:16px}
.metrics article{padding:22px 24px;border:1px solid var(--line);border-radius:12px}
.metrics article:first-child{background:var(--green-dark);border-color:#455535}
.metrics p{font-size:10px;letter-spacing:1.5px;color:var(--muted);margin:0 0 13px}
.metrics strong{font-family:'Space Grotesk',sans-serif;display:block;font-size:30px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.metrics article:first-child strong{color:var(--green)}
.metrics span{display:block;font-size:12px;color:var(--muted);margin-top:10px}
.chart-panel,.rank-panel{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:24px}
.chart-panel{position:relative}
.section-head{display:flex;align-items:center;justify-content:space-between;padding:23px 24px;gap:20px}
h2{font-size:16px;font-weight:500;margin:0}
.section-head p{font-size:12px;color:var(--muted);margin:7px 0 0}
canvas{width:100%;height:280px;display:block}
#chart-tooltip{position:absolute;pointer-events:none;background:#2c3225;border:1px solid #687356;box-shadow:0 5px 24px #0005;border-radius:8px;padding:10px 13px;font-size:12px;z-index:1;white-space:pre-line;line-height:1.7}
.sort-label{flex-direction:row;align-items:center;white-space:nowrap}
.sort-label select{width:195px}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
th{text-align:right;color:var(--muted);font-size:10px;letter-spacing:.35px;font-weight:500;background:#1d2119;padding:14px 24px}
th:nth-child(-n+3){text-align:left}
td{padding:15px 24px;border-top:1px solid #252b20;text-align:right;font-variant-numeric:tabular-nums}
td:nth-child(-n+3){text-align:left}
tbody tr:hover{background:#1d2119}
tbody .ours{background:#222d19}
tbody .ours:hover{background:#2b3820}
.provider{font-weight:500;font-size:13px}
.endpoint{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.badge{color:var(--green);background:#37472a;font-size:9px;border-radius:4px;padding:3px 6px;margin-left:7px}
.rank{color:var(--muted);width:55px}
.value{min-width:155px}
.value-wrap{display:flex;gap:12px;align-items:center}
.value-track{height:5px;width:95px;border-radius:3px;background:#303b27;overflow:hidden}
.value-bar{height:100%;background:#899a75;border-radius:3px}
.ours .value-bar{background:var(--green)}
.score{width:38px;text-align:right}
.empty{padding:40px;text-align:center!important;color:var(--muted);white-space:normal}
.method{border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:12px;line-height:1.8}
.method summary{cursor:pointer;color:var(--text);font-weight:500}
.method p{max-width:850px}
footer{display:flex;justify-content:space-between;color:#747c69;font-size:11px;margin:28px 0 8px}
a{color:var(--muted);text-decoration:none}
a:hover{color:var(--green)}
[hidden]{display:none!important}
@media(max-width:900px){main{padding:24px}
.metrics strong{font-size:24px}
.metrics article{padding:18px}
.section-head{padding:20px}
th,td{padding:14px 16px}
}
@media(max-width:580px){main{padding:18px}
header{align-items:flex-start;gap:15px}
.metrics{grid-template-columns:1fr}
.metrics article{padding:18px}
.metrics p{margin-bottom:8px}
.metrics strong{font-size:30px}
.section-head{align-items:flex-start;flex-direction:column}
.sort-label{width:100%;justify-content:space-between}
.sort-label select{width:195px}
footer{gap:16px;line-height:1.7}
canvas{height:250px}
}
@media(prefers-reduced-motion:reduce){button{transition:none}
button:active{transform:none}
}

.model-picker{flex-direction:row;align-items:center;gap:12px;min-width:260px;max-width:100%}
.model-picker select{width:300px;max-width:100%;padding:11px 14px;font-size:14px;background:var(--panel)}
.model-picker select:disabled{opacity:.6;cursor:wait}

#catalog-error{font-size:13px;line-height:1.6;color:#f2b39a;padding:14px 20px;background:#2d2119;border:1px solid #614232;border-radius:8px}

.cache-panel{border:1px solid var(--line);border-radius:12px;margin-bottom:24px}
.cache-panel .section-head a{font-size:12px}
.cache-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:0 24px 20px;gap:24px}
.cache-metrics article+article{border-left:1px solid var(--line);padding-left:24px}
.cache-metrics p{font-size:10px;letter-spacing:1px;color:var(--muted);margin:0 0 12px}
.cache-metrics strong{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:500;font-variant-numeric:tabular-nums}
.cache-metrics span{display:block;font-size:11px;color:var(--muted);margin-top:8px}
.correlation-note{padding:0 24px 20px;margin:0;font-size:12px;line-height:1.7;color:var(--muted)}
@media(min-width:581px) and (max-width:1000px){.cache-metrics{grid-template-columns:repeat(2,1fr)}
.cache-metrics article:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:580px){.cache-metrics{grid-template-columns:1fr}
.cache-metrics article+article{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}
.cache-metrics strong{font-size:30px}
}

:root{--chart-grid:#2a3024;--chart-muted:#929b87;--chart-text:#b2baa7;--chart-morph:#d0f58e;--chart-other:#7786a6;--chart-frontier:#93a9db}
.header-actions{display:flex;gap:18px;align-items:center}
#theme-toggle{font-size:12px;letter-spacing:0;white-space:nowrap}
[data-theme=light]{color-scheme:light;--bg:#f4f6ee;--panel:#fafbf7;--line:#d4ddca;--text:#1d2916;--muted:#5b6851;--green:#456c18;--green-dark:#e6efda;--chart-grid:#dce3d3;--chart-muted:#637456;--chart-text:#475d36;--chart-morph:#477217;--chart-other:#617d9c;--chart-frontier:#446db0}
[data-theme=light] button:hover{background:#e6eddc}
[data-theme=light] select{border-color:#c0cdb3}
[data-theme=light] th{background:#eaf0e2}
[data-theme=light] td{border-top-color:#dfe6d6}
[data-theme=light] tbody tr:hover{background:#edf2e6}
[data-theme=light] tbody .ours{background:#e6efd9}
[data-theme=light] tbody .ours:hover{background:#dfeacc}
[data-theme=light] .value-track{background:#d6e1c8}
[data-theme=light] .value-bar{background:#92a879}
[data-theme=light] .badge{background:#d1e1bc}
[data-theme=light] #chart-tooltip{background:#fcfff7;border-color:#a3b98b;box-shadow:0 5px 24px #1b2a1020}
[data-theme=light] #error,[data-theme=light] #catalog-error{color:#8d3518;background:#fff1e9;border-color:#e7c6b7}
@media(max-width:900px){.header-actions{gap:8px}
}


@media(max-width:580px){header{flex-wrap:wrap}
.header-actions{flex-direction:row;align-items:center;width:100%;justify-content:flex-end;gap:8px}
.model-picker{width:100%;min-width:0}
.model-picker select{flex:1;width:auto}
}

.chart-legend{display:flex;gap:20px;flex-wrap:wrap;padding:0 24px 16px;color:var(--muted);font-size:11px}
.chart-legend span{display:flex;align-items:center;gap:7px}
.chart-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}
.frontier-key{background:var(--chart-frontier);outline:1px solid var(--chart-frontier);outline-offset:2px}
.other-key{background:var(--chart-other);opacity:.5}
.morph-key{background:var(--chart-morph)}

.chart-panel .sort-label select{width:245px}
