*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif}button,textarea{font:inherit}button{cursor:pointer}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.shell{--bg:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--panel:#f8fafc;--side:#0f172a;display:flex;height:100vh;background:var(--bg);color:var(--text);overflow:hidden}.dark{--bg:#0b1020;--text:#e5e7eb;--muted:#94a3b8;--line:#263246;--panel:#111827;--side:#070b14}.sidebar{width:300px;background:var(--side);color:#fff;padding:17px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;margin-bottom:20px}.brand small,header small{display:block;color:#94a3b8;font-size:11px}.logo,.hero,.avatar.ai{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.logo{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800}.new{display:flex;gap:9px;align-items:center;padding:12px;border:1px solid #334155;border-radius:11px;background:#172033;color:#fff}.label{margin:26px 8px 10px;color:#94a3b8;font-size:11px;text-transform:uppercase}.list{flex:1;overflow:auto}.conv{display:flex;align-items:center;border-radius:9px}.conv:hover,.conv.active{background:#1e293b}.open{flex:1;min-width:0;border:0;background:none;color:#dbe4f0;text-align:left;padding:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ico{border:0;background:transparent;color:inherit;width:38px;height:38px;display:inline-grid;place-items:center;border-radius:9px}.del{color:#fb7185}nav{border-top:1px solid #1e293b;padding-top:9px}nav button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;color:#cbd5e1;padding:9px}.status{color:#94a3b8;font-size:12px;padding:14px 8px 0}.status i{display:inline-block;width:7px;height:7px;background:#22c55e;border-radius:50%;margin-right:7px}main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}header{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line)}.head,.tools{display:flex;align-items:center;gap:10px}.head>div{display:flex;flex-direction:column}.tools button{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:var(--bg);color:var(--text)}.mobile{display:none}.messages{flex:1;overflow:auto;padding:32px 25px 180px}.welcome{max-width:820px;margin:8vh auto;text-align:center}.hero{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:auto;font-weight:800}.welcome h1{font-size:34px}.welcome p{color:var(--muted)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px}.cards button{border:1px solid var(--line);border-radius:14px;padding:17px;background:var(--bg);color:var(--text);text-align:left}.cards span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.msg{max-width:920px;margin:0 auto 31px;display:flex;gap:14px}.avatar{width:36px;height:36px;flex:none;border-radius:10px;background:#e2e8f0;display:grid;place-items:center;font-size:9px;font-weight:800;color:#111827}.body{min-width:0;flex:1}.role{font-size:13px}.markdown{font-size:15px;line-height:1.72}.markdown pre{background:#0b1220;color:#e5e7eb;padding:18px;border-radius:12px;overflow:auto}.markdown code{font-family:Consolas,monospace;background:var(--panel);padding:2px 5px;border-radius:5px}.markdown pre code{background:none}.markdown table{border-collapse:collapse;width:100%;display:block;overflow:auto}.markdown th,.markdown td{border:1px solid var(--line);padding:8px}.markdown blockquote{border-left:4px solid #94a3b8;padding-left:12px;color:var(--muted)}.actions button{border:0;background:none;color:var(--muted);padding:7px}.compose{position:absolute;left:0;right:0;bottom:0;padding:20px 24px 10px;background:linear-gradient(to top,var(--bg) 78%,transparent);text-align:center}.composer{max-width:920px;margin:auto;display:flex;align-items:flex-end;gap:7px;padding:9px;border:1px solid #cbd5e1;border-radius:18px;background:var(--bg);box-shadow:0 14px 35px #0f172a18}.composer textarea{flex:1;resize:none;border:0;outline:0;background:transparent;color:var(--text);padding:9px}.send{width:40px;height:40px;border:0;border-radius:11px;display:grid;place-items:center;color:#fff;background:#2563eb}.send:disabled{opacity:.5}.compose small{color:#94a3b8;font-size:10px}.notice{position:absolute;bottom:108px;left:50%;transform:translate(-50%);background:#fff1f2;color:#9f1239;border:1px solid #fecdd3;padding:9px 12px;border-radius:10px}.notice button{border:0;background:none}.overlay{display:none}@media (max-width:800px){.sidebar{position:fixed;left:-305px;top:0;bottom:0}.sidebar.open{left:0}.mobile{display:inline-grid}.tools button:not(.ico){display:none}.overlay.show{display:block;position:fixed;inset:0;background:#0007;z-index:10}.cards{grid-template-columns:1fr}.messages{padding:20px 14px 165px}.compose{padding:12px}.welcome h1{font-size:28px}}.auth{min-height:100vh;display:grid;place-items:center;background:#f1f5f9}.authbox{width:min(420px,92vw);background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:32px;box-shadow:0 25px 60px #0f172a18;text-align:center}.authbox input,.page input,.page select,.generate input{width:100%;padding:12px;margin:7px 0;border:1px solid #cbd5e1;border-radius:10px;background:var(--bg,#fff);color:var(--text,#111)}.primary{border:0;border-radius:10px;padding:11px 16px;background:#2563eb;color:#fff}.authbox .primary{width:100%;margin-top:8px}.link{border:0;background:none;color:#2563eb;margin-top:12px}.err{color:#b91c1c;margin-top:10px}.page{padding:35px;overflow:auto;flex:1}.page>h2{font-size:28px;margin-bottom:4px}.page>p{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:22px}.item{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px}.item span{color:var(--muted);font-size:12px}.item button,.mini,.profile button,.generate button{border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--bg);color:var(--text);margin-right:6px}.profile{max-width:650px}.profile label{display:block;margin-top:14px;font-size:13px}.profilepic{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:28px;margin:15px 0}.danger{color:#b91c1c!important;margin-top:24px!important}.generate{display:flex;gap:8px;margin-top:28px}.chips{max-width:920px;margin:0 auto 6px;text-align:left;font-size:12px;color:var(--muted)}.chips button{border:0;background:none;color:#2563eb}.voicebar{max-width:920px;margin:6px auto 0;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.voicebar select{border:0;background:transparent;color:inherit}.recording{background:#fee2e2!important;color:#dc2626!important}.composer .ico{font-size:17px}.notice{z-index:30}.voice-status{max-width:920px;margin:0 auto 8px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:#2563eb14;font-size:12px}.voice-status span:not(.pulse){color:var(--muted)}.voice-status button{margin-left:auto;border:0;background:transparent;color:#dc2626;font-weight:600}.pulse{width:10px;height:10px;border-radius:50%;background:#dc2626;box-shadow:0 0 #dc262699;animation:qxpulse 1.25s infinite}.mic.voiceon{outline:2px solid #2563eb}.mic.recording{background:#fee2e2!important;color:#dc2626!important;animation:qxpulsebtn 1.25s infinite}@keyframes qxpulse{70%{box-shadow:0 0 0 8px #dc262600}to{box-shadow:0 0 #dc262600}}@keyframes qxpulsebtn{50%{transform:scale(1.08)}}
