@font-face{font-family:Saira Semi Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/saira-semicondensed-500.woff2) format("woff2")}@font-face{font-family:Saira Semi Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/saira-semicondensed-700.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600.woff2) format("woff2")}:root{--bg: #eef3fc;--surface: #ffffff;--track: #dbe4f4;--line: #d0dcf0;--text: #0b1a3d;--muted: #5a7099;--brand: #0b5ff0;--brand-lift: #0939d1;--fix: #00875e;--degraded: #b26a00;--down: #c62828;--gnss-gp: #1f6fd0;--gnss-gl: #8b3fd9;--gnss-ga: #a67c00;--gnss-bd: #d63384;--gnss-qz: #0e8f84;--gnss-sb: #64748b;--shadow: 0 1px 2px rgba(11, 26, 61, .06), 0 1px 3px rgba(11, 26, 61, .08);--display: "Saira Semi Condensed", "Arial Narrow", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--tabbar-h: 3.5rem}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}html{font-size:112.5%}body{background:var(--bg);color:var(--text);font-family:var(--display);font-weight:500;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3{margin:0;font-weight:700}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand-lift);outline-offset:2px;border-radius:4px}.app{max-width:34rem;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem 1rem;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding-top:max(.7rem,env(safe-area-inset-top))}.wordmark{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.wordmark svg{width:1.2rem;height:1.2rem;flex-shrink:0}.view{flex:1;padding:1rem 1rem calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 1.5rem)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;max-width:34rem;margin:0 auto;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -1px 3px #0b1a3d0f;padding-bottom:env(safe-area-inset-bottom)}.tab{appearance:none;border:none;background:none;height:var(--tabbar-h);display:flex;align-items:center;justify-content:center;gap:.45rem;font-family:var(--display);font-size:.9rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;cursor:pointer;border-top:2px solid transparent;margin-top:-1px}.tab svg{width:1.05rem;height:1.05rem}.tab.active{color:var(--text);border-top-color:var(--brand)}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:.9rem}.readout{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.muted{color:var(--muted)}.dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--down);flex-shrink:0}.dot.on{background:var(--fix);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.link-state{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.btn{appearance:none;border:1px solid var(--brand);border-radius:8px;padding:.6rem 1.2rem;background:var(--brand);color:#fff;font-family:var(--display);font-weight:700;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:var(--surface);border-color:var(--brand);color:var(--brand);box-shadow:var(--shadow)}.btn.ghost:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
