:root{color-scheme:dark;--bg:#08101d;--panel:#101a2b;--panel2:#162238;--text:#eef4ff;--muted:#91a1ba;--accent:#65e6c4;--accent2:#7aa8ff;--danger:#ff8296;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#20385b 0,#08101d 48%);color:var(--text);min-height:100dvh}.app-shell{height:100dvh;max-width:760px;margin:auto;display:grid;grid-template-rows:auto 1fr auto;background:rgba(8,16,29,.76);backdrop-filter:blur(20px)}
.topbar{padding:max(16px,env(safe-area-inset-top)) 18px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.identity{display:flex;align-items:center;gap:12px}.identity h1{font-size:20px;margin:0}.identity p{font-size:12px;color:var(--muted);margin:3px 0 0}.nova-orb{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 30deg,var(--accent),var(--accent2),#b084ff,var(--accent));box-shadow:0 0 26px #65e6c455;animation:float 4s ease-in-out infinite}.nova-orb span{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#dffff7,#17294a 55%,#09111f);box-shadow:inset 0 0 10px #7aa8ff88}.nova-orb.thinking{animation:pulse .9s ease-in-out infinite}.nova-orb.speaking{animation:pulse .45s ease-in-out infinite}.icon-button,.close-button{border:0;background:transparent;color:var(--muted);font-size:22px;padding:10px}
.messages{overflow-y:auto;padding:22px 16px 10px;scroll-behavior:smooth}.message{display:flex;margin:0 0 14px}.message.user{justify-content:flex-end}.bubble{max-width:min(86%,580px);padding:12px 15px;border-radius:18px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--panel2);box-shadow:0 8px 24px #00000018}.user .bubble{background:linear-gradient(135deg,#3562a8,#276c75);border-bottom-right-radius:5px}.nova .bubble{border-bottom-left-radius:5px}.message.error .bubble{color:#ffdce2;border:1px solid #ff829655}
.composer{display:grid;grid-template-columns:46px 1fr 46px;align-items:end;gap:8px;padding:10px 12px max(12px,env(safe-area-inset-bottom));border-top:1px solid #ffffff12;background:#0b1422dd}.composer textarea{resize:none;max-height:132px;border:1px solid #ffffff18;background:var(--panel);color:var(--text);border-radius:22px;padding:12px 15px;font:inherit;outline:none}.composer textarea:focus{border-color:#65e6c477}.mic-button,.send-button{height:44px;border:0;border-radius:50%;font-size:18px}.mic-button{background:var(--panel2);color:var(--accent)}.mic-button.listening{background:var(--danger);color:white;animation:pulse .8s infinite}.send-button{background:var(--accent);color:#07131c}.send-button:disabled{opacity:.45}
dialog{border:0;padding:0;border-radius:22px;background:var(--panel);color:var(--text);width:min(92vw,520px);box-shadow:0 30px 90px #000a}dialog::backdrop{background:#02060dbb;backdrop-filter:blur(4px)}.settings-card{padding:20px}.settings-title{display:flex;justify-content:space-between;align-items:center}.settings-title h2{margin:0 0 18px}.settings-card label:not(.toggle){display:grid;gap:7px;color:var(--muted);font-size:13px;margin-bottom:14px}.settings-card input[type=text],.settings-card input[type=url],.settings-card input[type=password]{width:100%;border:1px solid #ffffff18;background:#091321;color:var(--text);padding:12px;border-radius:12px;font:inherit}.toggle{display:flex;align-items:center;gap:10px;margin:18px 0}.privacy-note,#settingsStatus{font-size:12px;color:var(--muted);line-height:1.4}.settings-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.settings-actions button{border:1px solid #ffffff20;background:var(--panel2);color:var(--text);padding:10px 14px;border-radius:12px}.settings-actions .primary{background:var(--accent);color:#07131c;border:0}@keyframes pulse{50%{transform:scale(1.12);filter:brightness(1.25)}}@keyframes float{50%{transform:translateY(-2px)}}
@media(min-width:761px){.app-shell{height:calc(100dvh - 32px);margin-top:16px;border-radius:28px;overflow:hidden;border:1px solid #ffffff14;box-shadow:0 30px 90px #0008}}
