:root{color-scheme:dark;--bg:#0a1014;--panel:#101a20;--line:#26343c;--text:#edf5f7;--muted:#91a3aa;--mint:#8de5c3;--blue:#80c8f0;--red:#ff929c}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -20%,#18303a 0,transparent 55%),var(--bg);color:var(--text);font:16px/1.5 "Segoe UI",system-ui,sans-serif;min-height:100vh}.shell{width:min(900px,100%);min-height:100vh;margin:auto;padding:24px 24px max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.top{display:flex;align-items:center;justify-content:space-between;padding:8px 0 20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px}.brand h1{font-size:18px;letter-spacing:.2em;margin:0}.brand p{color:var(--muted);font-size:12px;margin:2px 0 0}.orb{display:block;width:34px;height:34px;border:1px solid #77dcb8;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c8fff0,#54cda5 35%,#193c3a 72%);box-shadow:0 0 22px #58d9b155}.state{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.state i{width:8px;height:8px;background:#73848a;border-radius:50%}.state.online{color:var(--mint)}.state.online i{background:#73e0b6;box-shadow:0 0 12px #73e0b6}.top-actions{display:flex;align-items:center;gap:14px}.card,.login-card{background:#101a20ed;border:1px solid var(--line);border-radius:18px}.messages{flex:1;min-height:300px;display:flex;flex-direction:column;gap:14px;padding:22px 2px}.welcome{margin:auto;text-align:center;color:var(--muted);padding:30px 0}.welcome h2{color:var(--text);font-weight:550;font-size:23px;margin:12px 0 3px}.welcome p{margin:0;font-size:14px}.orb.large{width:54px;height:54px;margin:auto}.bubble{max-width:88%;padding:13px 16px;border-radius:17px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;background:#19332f;border:1px solid #315a4f}.bubble.assistant{align-self:flex-start;background:var(--panel);border:1px solid var(--line)}.bubble .who{display:block;color:var(--mint);font-size:10px;letter-spacing:.1em;margin-bottom:5px}.bubble.user .who{color:#9ec9df}.bubble.error{border-color:#a34c58;color:#ffc4c8}.composer{position:sticky;bottom:10px;display:flex;align-items:flex-end;gap:9px;padding:9px}.composer textarea{resize:none;max-height:170px;border:0;background:transparent;padding:11px 8px;outline:none;color:var(--text);font:inherit;flex:1;min-width:0}.icon-button{flex:none;width:42px;height:42px;border:1px solid #30434b;border-radius:13px;background:#142329;color:var(--text);font-size:18px;cursor:pointer}.mic{font-size:20px}.mic.listening{color:#fff;background:#9d384a;border-color:#ff7b8a;animation:pulse 1.3s infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px #ff7b8a22}}.voice-toggle{display:flex;align-items:center;gap:5px;height:42px;color:var(--muted);font-size:11px;white-space:nowrap}.voice-toggle input{accent-color:#78dab8}.send,.primary{border:0;border-radius:13px;background:linear-gradient(135deg,#a6f2d1,#70c7c3);color:#0b1b1c;font-weight:700;cursor:pointer}.send{width:42px;height:42px;font-size:23px}.button:disabled,.icon-button:disabled{opacity:.45;cursor:default}.voice-note{min-height:18px;margin:0;text-align:center;color:var(--muted);font-size:12px}.voice-note.error{color:var(--red)}footer{text-align:center;padding:8px 0 0;color:var(--muted);font-size:10px}.login-page{display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);padding:28px;box-shadow:0 20px 80px #0004}.login-card h2{font-size:21px;margin:30px 0 3px}.muted{color:var(--muted);font-size:13px;margin:0 0 20px}.login-card form{display:grid;gap:11px}.login-card label{font-size:12px;color:#b8c8cd}.login-card input{font:inherit;color:var(--text);background:#091116;border:1px solid #30434b;border-radius:10px;padding:12px;outline:none}.login-card input:focus{border-color:var(--mint);box-shadow:0 0 0 3px #68d7b11b}.primary{padding:12px;font-size:14px}.error{min-height:20px;margin:0;color:var(--red);font-size:12px}@media(max-width:560px){.shell{padding:12px 14px max(14px,env(safe-area-inset-bottom))}.top{padding:5px 0 14px}.messages{min-height:220px;padding:14px 0}.bubble{max-width:95%}.composer{gap:5px}.icon-button,.send{width:39px;height:39px}.voice-toggle{gap:2px;font-size:10px}}
