:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#080b10;color:#f5f7fa;font-synthesis:none;--accent:#79dfcc;--muted:#919cae}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 38%,#122025 0,transparent 52%),#080b10}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:active{filter:brightness(.8);transform:scale(.98)}.app{max-width:470px;min-height:100svh;margin:auto;padding:max(18px,env(safe-area-inset-top)) 24px max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;height:48px}.brand{color:inherit;text-decoration:none;font-weight:650;font-size:22px;letter-spacing:-.6px;display:flex;align-items:center;gap:9px}.brand-mark{color:var(--accent);font-size:30px}.info-button{border:1px solid #303a46;background:#151b23;color:#bac4d1;border-radius:50%;width:44px;height:44px;font:italic 22px Georgia,serif}.instrument{flex:1;display:flex;flex-direction:column;justify-content:center;padding-top:26px}.status{font-size:13px;font-weight:550;color:#bac4d1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:22px}.status-dot{height:6px;width:6px;border-radius:50%;background:#8793a5}.status[data-state=live] .status-dot{background:var(--accent);box-shadow:0 0 12px #79dfcc66}.status[data-state=warning] .status-dot{background:#edbb78}.status[data-state=error] .status-dot{background:#ff8a8a}.dial{position:relative;aspect-ratio:1;width:100%;max-width:380px;margin:14px auto -5px}.dial svg{display:block;width:100%;height:100%;overflow:visible}.track,.progress{fill:none;stroke-width:3;stroke-linecap:round}.track{stroke:#28333d}.progress{stroke:url(#arc-gradient);stroke-dasharray:0 100;transition:stroke-dasharray .45s ease}.ticks line{stroke:#3a4753;stroke-width:1}.ticks .major{stroke:#708090;stroke-width:1.3}.ticks text{fill:#929fae;font-size:12px;text-anchor:middle;dominant-baseline:middle;font-family:inherit;font-variant-numeric:tabular-nums}.needle{fill:var(--accent);transform-origin:180px 180px;transform:rotate(-135deg);opacity:0;transition:transform .45s ease,opacity .25s}.readout{position:absolute;inset:31% 0 auto;display:flex;align-items:center;flex-direction:column;pointer-events:none;background:radial-gradient(ellipse,#0d171b 0,#0d171b 47%,transparent 70%)}.readout-label{font-size:10px;letter-spacing:2px;color:#9daab7;font-weight:600}#speed{font-size:clamp(78px,24vw,110px);font-weight:250;line-height:1.12;letter-spacing:-6px;font-variant-numeric:tabular-nums;color:#f5f9fa}.unit-label{font-size:18px;font-weight:450;color:var(--accent);line-height:1.4}.dial-caption{position:absolute;bottom:8%;left:0;right:0;text-align:center;font-size:12px;color:var(--muted)}.units{align-self:center;display:flex;gap:4px;padding:4px;border:1px solid #27313d;border-radius:28px;background:#111820}.units button{border:0;background:none;color:#a1acbb;border-radius:24px;min-width:76px;min-height:44px;font-size:14px;font-weight:600}.units button[aria-pressed=true]{background:#29363d;color:#ddfff6;box-shadow:0 1px 4px #0004}.details{display:flex;margin:27px 0 30px;justify-content:center;gap:0}.details>div{width:50%;text-align:center;display:flex;flex-direction:column;gap:7px}.details>div+div{border-left:1px solid #263039}.details span{font-size:12px;color:var(--muted)}.details strong{font-size:14px;font-weight:500;color:#d4dde6;font-variant-numeric:tabular-nums}footer{text-align:center}.start{display:block;width:100%;min-height:56px;border:0;border-radius:30px;background:var(--accent);color:#052d2a;font-weight:650;font-size:16px;transition:filter .15s,transform .15s}.start span{font-size:22px;margin-right:7px;vertical-align:-1px}.start.is-running{background:#1e2d34;border:1px solid #3d555e;color:#c9eee7}footer p{font-size:12px;color:#9aa7b6;line-height:1.7;margin:15px 0 11px}.offline{font-size:10px;letter-spacing:.25px;color:#7f8e9e;display:block;min-height:15px}dialog{border:1px solid #34414e;color:#edf5f8;background:#121b23;border-radius:28px;padding:0;width:calc(100% - 28px);max-width:440px;max-height:85svh}dialog::backdrop{background:#000a;backdrop-filter:blur(8px)}.sheet{padding:24px}.sheet-header{display:flex;gap:14px;align-items:center}.sheet-header h1{font-size:23px;letter-spacing:-.6px;margin:0}.sheet-header button{margin-left:auto;flex-shrink:0;border:0;border-radius:50%;background:#293540;color:#cedbe2;width:44px;height:44px;font-size:25px}.sheet h2{font-size:16px;margin:25px 0 7px}.sheet p{color:#aebdca;font-size:14px;line-height:1.6}.sheet .small{font-size:12px}.sheet .start{margin-top:24px}@media(max-height:720px){.instrument{padding-top:10px}.dial{max-width:300px;margin:5px auto -8px}.details{margin:17px 0}.app{padding-top:max(10px,env(safe-area-inset-top))}#speed{font-size:86px}footer p{margin:10px 0 5px}}@media(orientation:landscape) and (max-height:540px){.app{max-width:850px;display:grid;grid-template-columns:1fr 1fr;gap:0 26px}header{grid-column:1/-1}.instrument{grid-column:1;padding-top:0}.dial{max-width:260px;margin:0 auto -22px}.status{font-size:12px}.units{margin-top:0}.details{margin:12px 0}.app footer{grid-column:2;grid-row:2;align-self:center}#speed{font-size:70px}.readout-label{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
