:root{--bg: #0b0b0f;--surface: #16161d;--surface-2: #1e1e28;--border: #2a2a36;--text: #f2f2f7;--muted: #9a9aa8;--accent: #6c8cff;--good: #3ecf8e;--warn: #ffcc66;--bad: #ff6b6b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:16px;line-height:1.4}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:640px;margin:0 auto;padding-top:env(safe-area-inset-top,0px)}.screen{flex:1;overflow-y:auto;padding:0 16px 16px;-webkit-overflow-scrolling:touch}.screen h1{font-size:22px;margin:16px 0 4px}.screen .sub{color:var(--muted);font-size:13px;margin-bottom:16px}.tabs{display:flex;border-top:1px solid var(--border);background:var(--surface);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;background:none;border:none;color:var(--muted);padding:12px 4px;font-size:12px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.tab.active{color:var(--accent)}.tab .glyph{font-size:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}.card .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.card .value{font-size:26px;font-weight:600;margin-top:4px}.fetched{color:var(--muted);font-size:11px;margin-top:6px}.progress{height:8px;background:var(--surface-2);border-radius:6px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:var(--good)}.chat{display:flex;flex-direction:column;gap:10px;padding-bottom:12px}.msg{padding:10px 12px;border-radius:12px;max-width:85%;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--accent);color:#fff}.msg.assistant{align-self:flex-start;background:var(--surface-2)}.composer{display:flex;gap:8px;padding:8px;border-top:1px solid var(--border);background:var(--surface)}.composer textarea{flex:1;resize:none;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:10px 12px;font-size:16px;font-family:inherit;max-height:120px}.btn{background:var(--accent);color:#fff;border:none;border-radius:12px;padding:0 16px;font-size:15px;font-weight:600;cursor:pointer}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn:disabled{opacity:.5}.row{display:flex;gap:8px}.banner{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--muted);margin-bottom:12px}
