:root{--chart-upload:#3262b0}:root[data-theme=dark]{--chart-upload:#9abcff}.speed-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:48px 0 24px}.speed-heading h1{font-size:clamp(34px,4vw,54px)}.speed-heading .lead{max-width:720px;font-size:17px}.server-badge{font-size:12px;color:var(--muted);min-width:180px}.server-badge strong{display:block;color:var(--ink);font-size:14px}.status-dot{display:inline-block;background:var(--accent);width:7px;height:7px;border-radius:100%;margin-right:3px}.mode-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 25px}.mode-nav a{font-size:12px;text-decoration:none;padding:8px 12px;border:1px solid var(--line);border-radius:24px}.mode-nav a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.speed-panel{padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-bottom:1px solid var(--line);padding-bottom:24px}.metric{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px}.metric>span{display:block;width:100%;font-size:12px;color:var(--muted)}.metric strong{font-size:clamp(25px,3vw,42px);font-variant-numeric:tabular-nums;line-height:1.2}.metric small{font-size:12px;color:var(--muted)}.measure-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:45px;align-items:center;padding-top:28px}.gauge{position:relative;max-width:480px;width:100%;justify-self:center}.gauge svg{width:100%;display:block}.gauge svg path{fill:none;stroke-width:9;stroke-linecap:round}.gauge-track{stroke:var(--soft)}#gauge-line{stroke:var(--accent);transition:stroke-dasharray .15s}.gauge-content{position:absolute;inset:23% 9% 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.gauge-content p{font-size:12px;color:var(--muted);margin:0;max-width:90%}.gauge-content strong{font-size:clamp(33px,5vw,64px);line-height:1.3;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.gauge-content>span{font-size:13px;color:var(--muted)}.test-controls .action-row{display:flex;gap:10px;margin:15px 0}.test-controls .primary{min-width:160px;font-size:19px}.test-controls progress{height:7px}.allowance{font-size:12px;font-weight:600;background:var(--soft);padding:10px 13px;border-radius:10px;margin-bottom:10px}.advanced{display:flex;gap:12px}.advanced label{font-size:12px;flex:1}.advanced select{display:block;margin-top:5px}.warning,.local-note{font-size:13px;margin-top:18px;border:1px solid var(--line);padding:12px 15px;border-radius:12px;color:var(--muted);background:var(--soft)}#results{margin-top:24px}#details{max-width:650px}figure{margin:24px 0}figcaption{font-size:13px;font-weight:700;margin-bottom:10px}canvas#chart{width:100%;height:auto;display:block}details{border-bottom:1px solid var(--line);padding:14px 0}summary{font-weight:600;cursor:pointer;font-size:14px}details p{font-size:14px;color:var(--muted);margin:12px 0}.table-scroll{max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th,td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:600}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.section-heading h2{margin:0}.section-heading button{font-size:12px}.guide{margin-top:35px}.client p{margin-bottom:6px}.test-controls #status{min-height:22px}.footer{margin-top:45px}
@media(max-width:750px){.speed-heading{padding-top:30px;display:block}.server-badge{margin:15px 0 0}.measure-layout{grid-template-columns:1fr;gap:10px}.gauge{max-width:330px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.speed-panel{padding:20px}.speed-heading .lead{font-size:15px}.gauge-content strong{font-size:48px}}
@media(max-width:420px){.wrap{width:calc(100% - 28px)}.speed-panel{padding:16px}.metric strong{font-size:29px}.section-heading{align-items:start}.mode-nav a{padding:7px 9px}.test-controls .primary{min-width:0;flex:1}.speed-heading h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.history-chart{display:block;width:100%;height:auto}
.server-badge .status-dot{background:var(--muted)}.server-badge[data-state=ready] .status-dot{background:var(--accent)}.server-badge[data-state=unavailable] .status-dot{background:var(--error)}
