:root{--bg: #f4f6f8;--card: #ffffff;--text: #0f172a;--muted: #64748b;--accent: #b91c1c;--accent-text: #ffffff;--ok: #15803d;--warn: #b45309;--bad: #b91c1c;--border: #e2e8f0}:root[data-theme=dark]{--bg: #0b1120;--card: #111827;--text: #f1f5f9;--muted: #94a3b8;--accent: #ef4444;--ok: #4ade80;--warn: #fbbf24;--bad: #f87171;--border: #1f2937}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:18px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}main{max-width:560px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.bar{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:16px}.brand b{letter-spacing:.1em}h1{font-size:24px;margin:0 0 12px}h2{font-size:16px;margin:0 0 8px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;margin:12px 0}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:15px}.ok{color:var(--ok)}.warn{color:var(--warn);font-weight:600}.error{color:var(--bad);font-weight:600}button{font:inherit;border:0;border-radius:12px;padding:12px 18px;background:var(--accent);color:var(--accent-text);font-weight:700;cursor:pointer}button.secondary{background:transparent;color:var(--text);border:2px solid var(--border)}button.ghost{background:transparent;color:var(--text);padding:6px 10px;font-weight:500}button.big{display:block;width:100%;padding:20px;font-size:22px;margin:16px 0 8px}label{display:block;font-weight:600;margin:12px 0 6px}.code-input{width:100%;font-size:40px;text-align:center;letter-spacing:.3em;text-transform:uppercase;padding:12px;border-radius:12px;border:2px solid var(--border);background:var(--bg);color:var(--text)}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.banner{position:sticky;top:0;z-index:2;margin:0 -16px;padding:12px 16px;background:var(--accent);color:var(--accent-text);font-weight:800;text-align:center;font-size:17px}.status{font-weight:700;font-size:20px;margin:0 0 14px}.status:before{content:"●  "}.status.ok{color:var(--ok)}.status.wait{color:var(--warn)}.status.bad{color:var(--bad)}.coords{font:700 30px/1.3 ui-monospace,SF Mono,Menlo,Consolas,monospace;margin:0}.messages h2{color:var(--accent)}.message{margin:8px 0}.message.latest{font-size:24px;font-weight:800}.help{padding-left:20px}.help li{margin:8px 0}.toast{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:var(--text);color:var(--bg);padding:14px;border-radius:12px;text-align:center;font-weight:700}.rescue{border:3px solid var(--ok)}.rescue h2{color:var(--ok)}.rescue-vessel{font-size:20px;font-weight:800;margin:4px 0}.rescue-distance{font:800 30px/1.2 ui-monospace,SF Mono,Menlo,Consolas,monospace;margin:6px 0}.rescue.close{border-color:var(--warn);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.7}}
