:root{--bg: #0b1020;--surface: #151a2e;--text: #e8eaf2;--muted: #9aa3bd;--accent: #4f46e5;--border: #262c44;--error: #f26d8b;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.center{height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px}.card h1{margin:0;font-size:22px}.muted{color:var(--muted);margin:0}.small{font-size:13px}.error{color:var(--error);margin:0;font-size:14px}input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:16px}input:focus{outline:2px solid var(--accent);border-color:var(--accent)}button{padding:11px 18px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.row{display:flex;gap:10px;justify-content:flex-end}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-root{height:100%}.settings-fab{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:20;width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;border-radius:50%;background:#151a2eb8;border:1px solid var(--border);color:var(--muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.settings-fab:hover{color:var(--text)}.update-banner{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:12px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600}.update-banner button{padding:5px 12px;font-size:13px;background:#ffffff2e;border:1px solid rgba(255,255,255,.35)}.connecting{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10;padding:24px}
