@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f8fafc;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--navy: #0f172a;--navy-2: #1e293b;--on-navy: #e2e8f0;--on-navy-muted: #94a3b8;--ok: #16a34a;--ok-bg: #f0fdf4;--warn: #d97706;--warn-bg: #fffbeb;--bad: #dc2626;--bad-bg: #fef2f2;--accent: #0ea5e9;--radius: 12px;color-scheme:light}*{box-sizing:border-box}html{background:var(--navy)}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}h1{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em}h2{font-size:15px;font-weight:600;margin:0 0 6px}h3{font-size:13px;font-weight:600;margin:12px 0 4px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}p{margin:6px 0}.topbar{background:var(--navy);color:var(--on-navy);padding:calc(env(safe-area-inset-top) + 10px) 16px 12px;position:sticky;top:0;z-index:10}.topbar-inner{max-width:560px;margin:0 auto;display:flex;align-items:center;gap:10px}.topbar .mark{width:30px;height:30px;flex:none}.topbar .titles{min-width:0;flex:1}.topbar .subtitle{font-size:12px;color:var(--on-navy-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;background:#f59e0b;color:#0f172a}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--on-navy-muted);margin-right:6px;vertical-align:middle}.dot.live{background:#22c55e}.app{max-width:560px;margin:0 auto;padding:14px 16px calc(env(safe-area-inset-bottom) + 76px);display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:0 1px 2px #0f172a0a}.card.warn{border-color:#fcd34d;background:var(--warn-bg)}.card.bad{border-color:#fca5a5;background:var(--bad-bg)}.card.ok{border-color:#86efac;background:var(--ok-bg)}.card.quiet{background:transparent;box-shadow:none;border-style:dashed}.muted{color:var(--muted);font-size:13px}label{display:block;margin:10px 0 4px;font-size:13px;font-weight:500;color:var(--text)}input,textarea,select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);font:inherit}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}textarea{min-height:80px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}button{padding:10px 14px;border-radius:8px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:44px}button.secondary{background:#fff;color:var(--text);border-color:var(--border)}button.danger{background:#fff;color:var(--bad);border-color:#fca5a5}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>button{flex:1}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;background:#f1f5f9;color:var(--text)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.screen{background:var(--navy);color:var(--on-navy);border-radius:8px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;white-space:pre-wrap;word-break:break-all}.log{max-height:180px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted)}.log div{padding:2px 0;border-bottom:1px solid var(--border)}.busy{border-left:3px solid var(--accent)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}details>summary{cursor:pointer;font-weight:500}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:#fff;border-top:1px solid var(--border);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px)}.tabbar-inner{max-width:560px;margin:0 auto;display:flex}.tab{flex:1;min-height:48px;border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0}.tab.active{color:var(--navy)}.tab svg{width:22px;height:22px}.footer{font-size:11px;color:var(--muted);text-align:center}
