:root{--bg:#f5f6f8;--surface:#fff;--border:#d9dce1;--text:#1c1f24;--text-muted:#6b7280;--accent:#2f6feb;--accent-contrast:#fff;--error-bg:#fdeceb;--error-border:#e5534b;--error-text:#8a1f16;--good:#0a7d4f;--warn:#c2410c;--quality-bad:#e5534b;--quality-poor:#e8823a;--quality-average:#cf9d1f;--quality-good:#4f9d3d;--quality-great:#0a7d4f;--mono:ui-monospace, "SF Mono", Consolas, "Cascadia Code", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg:#14161a;--surface:#1b1e24;--border:#2e333c;--text:#e6e8eb;--text-muted:#9aa1ac;--accent:#5b9dff;--accent-contrast:#0b1220;--error-bg:#3a1c1c;--error-border:#e5534b;--error-text:#ffb4ac;--good:#4fd88f;--warn:#f0a060;--quality-bad:#ff6b62;--quality-poor:#f0a060;--quality-average:#e8c357;--quality-good:#7bcf68;--quality-great:#4fd88f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0}button{font-family:inherit}.app{flex-direction:column;max-width:1180px;min-height:100%;margin:0 auto;padding:20px 24px 32px;display:flex}.site-header{align-items:center;gap:10px;margin-bottom:20px;display:flex}.site-header__brand{color:var(--accent);white-space:nowrap;font-size:15px;font-weight:700;text-decoration:none}.site-header__brand:hover{text-decoration:underline}.site-header__divider{color:var(--text-muted);font-weight:400}.site-header__title{color:var(--text-muted);white-space:nowrap;flex:1;font-size:15px;font-weight:600}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-header{text-align:center;margin-bottom:16px}.app-subtitle{max-width:480px;color:var(--text-muted);margin:0 auto;font-size:14px;line-height:1.45}.network-info{text-align:center;color:var(--text-muted);margin:8px 0 0;font-size:13px}.layout{grid-template-columns:1fr;gap:28px;display:grid}.layout__primary,.layout__secondary{flex-direction:column;min-width:0;display:flex}@media (width>=860px){.layout{grid-template-columns:minmax(420px,1fr) minmax(360px,1.15fr);align-items:start;gap:32px}.app-header{text-align:left}.app-subtitle{max-width:none;margin:0}.network-info{text-align:left}.start{align-items:flex-start}}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 10px}.icon-btn{padding:6px 8px;font-size:15px;line-height:1}.theme-toggle{margin-left:auto}.gauge-row{flex-direction:column;align-items:center;gap:12px;margin-bottom:4px;display:flex}@media (width>=480px){.gauge-row{flex-direction:row;justify-content:center;align-items:flex-start;gap:20px}}@media (width>=860px){.gauge-row{justify-content:flex-start}}.gauge{width:min(190px,78vw);margin:0 auto;position:relative}.gauge__svg{width:100%;height:auto;display:block}.gauge--active .gauge__svg{animation:1.8s ease-in-out infinite gauge-pulse}@keyframes gauge-pulse{0%,to{filter:drop-shadow(0 0 #0000)}50%{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--accent) 45%, transparent))}}.gauge__track{fill:none;stroke:var(--border);stroke-width:14px;stroke-linecap:round}.gauge__progress{fill:none;stroke-width:14px;stroke-linecap:round}.gauge__progress--bad{stroke:var(--quality-bad)}.gauge__progress--poor{stroke:var(--quality-poor)}.gauge__progress--average{stroke:var(--quality-average)}.gauge__progress--good{stroke:var(--quality-good)}.gauge__progress--great{stroke:var(--quality-great)}.gauge__tick{stroke:var(--text-muted);stroke-width:2px;opacity:.6}.gauge__tick-label{fill:var(--text-muted);font-size:10px}.gauge__needle-rotor{transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.gauge__needle{stroke:var(--text);stroke-width:3px;stroke-linecap:round}.gauge__hub{fill:var(--text)}.gauge__readout{flex-direction:column;align-items:center;margin-top:-14px;display:flex}.gauge__value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1}.gauge__unit{color:var(--text-muted);margin-top:2px;font-size:12px}.gauge__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:6px;font-size:11px}.start{flex-direction:column;align-items:center;gap:8px;margin-bottom:16px;display:flex}.start-ring{--progress:0;background:conic-gradient(var(--accent) calc(var(--progress) * 360deg), var(--border) 0deg);border-radius:999px;padding:3px;transition:background .4s;display:inline-flex;position:relative}.start-ring--idle{background:var(--border)}.start-ring--celebrating,.start-ring--ready{background:var(--quality-great)}.start-ring--running{animation:1.8s ease-in-out infinite gauge-pulse}.start-ring--celebrating{animation:.9s ring-flash}.start-btn{background:var(--accent);min-width:200px;color:var(--accent-contrast);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:16px 40px;font-size:18px;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex;position:relative}.start-btn:disabled{opacity:.85;cursor:wait}.start-btn:not(:disabled):hover{opacity:.9}.start-btn:not(:disabled):active{transform:scale(.97)}.start-icon{flex-shrink:0;width:18px;height:18px}.start-icon--spin{transform-origin:50%;animation:1s linear infinite icon-spin}.start-icon--check{stroke-dasharray:18;stroke-dashoffset:18px;animation:.35s 50ms forwards check-draw}@keyframes icon-spin{to{transform:rotate(360deg)}}@keyframes check-draw{to{stroke-dashoffset:0}}@keyframes ring-flash{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--quality-great) 55%, transparent)}60%{box-shadow:0 0 0 8px color-mix(in srgb, var(--quality-great) 0%, transparent)}to{box-shadow:0 0 #0000}}.start-status{min-height:1.2em;color:var(--text-muted);margin:0;font-size:14px;animation:.2s status-fade-in}@keyframes status-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.start-ring{transition:none}.start-ring--running,.start-ring--celebrating,.start-icon--spin{animation:none}.start-icon--check{stroke-dashoffset:0;animation:none}.start-status{animation:none}}.notice-banner{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);text-align:center;border-radius:8px;margin-bottom:20px;padding:10px 14px;font-size:13px}.results-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.stat-unit{color:var(--text-muted);margin-left:4px;font-size:13px;font-weight:500}.stat-label{color:var(--text-muted);font-size:13px}.stat-value--bad{color:var(--quality-bad)}.stat-value--poor{color:var(--quality-poor)}.stat-value--average{color:var(--quality-average)}.stat-value--good{color:var(--quality-good)}.stat-value--great{color:var(--quality-great)}.experience-section{margin-top:16px}.experience-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;text-align:center;margin:0 0 10px;font-size:13px;font-weight:600}.experience-badges{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@media (width>=860px){.experience-heading{text-align:left}.experience-badges{justify-content:flex-start}}.experience-badge{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:110px;padding:10px 18px;display:flex}.experience-badge__label{color:var(--text-muted);font-size:12px}.experience-badge__value{font-size:16px;font-weight:700}.experience-badge--bad .experience-badge__value{color:var(--quality-bad)}.experience-badge--poor .experience-badge__value{color:var(--quality-poor)}.experience-badge--average .experience-badge__value{color:var(--quality-average)}.experience-badge--good .experience-badge__value{color:var(--quality-good)}.experience-badge--great .experience-badge__value{color:var(--quality-great)}.help-panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-top:16px;padding:14px 16px}.help-panel__heading{color:var(--text);margin:0 0 10px;padding:0;font-size:13px;font-weight:600}.help-panel__section{padding:0 0 12px}.help-panel__section:last-child{padding-bottom:0}.help-panel__section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 6px;font-size:11px;font-weight:600}.help-panel__section p{color:var(--text);margin:0 0 8px;font-size:13px;line-height:1.45}.help-panel__section p:last-child{margin-bottom:0}.metric-glossary{margin:0}.metric-glossary__row{flex-direction:column;margin-bottom:8px;display:flex}.metric-glossary__row:last-child{margin-bottom:0}.metric-glossary dt{color:var(--text);font-size:13px;font-weight:600}.metric-glossary dd{color:var(--text-muted);margin:1px 0 0;font-size:13px;line-height:1.4}@media (width>=860px){.metric-glossary{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}}
