:root{--bg:#0b0f17;--card:#151b26;--line:#232c3b;--text:#e7ecf3;--muted:#8a97a8;--accent:#4ade80;--warn:#fbbf24}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif}main{max-width:640px;padding:calc(20px + env(safe-area-inset-top)) 16px calc(88px + env(safe-area-inset-bottom));margin:0 auto}.tabbar{padding:12px 16px max(12px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:10;background:#0b0f17e6;justify-content:space-around;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);font-size:14px;font-weight:600;text-decoration:none}.tabbar a:hover{color:var(--text)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:14px;padding:18px}.big-number{letter-spacing:-.02em;font-size:44px;font-weight:800}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.row:last-child{border-bottom:none}.dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.dot.on{background:var(--accent)}.dot.off{background:var(--muted);opacity:.5}.muted{color:var(--muted);font-size:12px}.bubble{white-space:pre-wrap;border-radius:14px;max-width:85%;margin:8px 0;padding:10px 14px;line-height:1.45}.bubble.me{color:#fff;background:#1f6feb;margin-left:auto}.bubble.ai{background:var(--card);border:1px solid var(--line)}.composer{bottom:calc(64px + env(safe-area-inset-bottom));gap:8px;max-width:640px;margin:0 auto;padding:8px 16px;display:flex;position:fixed;left:0;right:0}.composer input{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;flex:1;padding:12px 14px;font-size:16px}.composer button{background:var(--accent);color:#06210f;border:none;border-radius:12px;padding:0 18px;font-weight:700}.field{border:1px solid var(--line);width:100%;color:var(--text);background:#0f1523;border-radius:12px;margin-bottom:10px;padding:12px 14px;font-size:16px;display:block}.primary{background:var(--accent);color:#06210f;border:none;border-radius:12px;width:100%;padding:13px;font-size:15px;font-weight:700}.primary:disabled{opacity:.6}.btn-ghost{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:10px;padding:6px 12px;font-size:13px;font-weight:600}.error{color:#f87171}
