:root{--bg:#0b1020;--panel:#0e1628;--muted:#9fb1c7;--text:#e6eef8;--accent:#222;--accent-2:#111;--user:#06b6d4;--bot:#0f172a;--radius:14px;--glass:hsla(0,0%,100%,.05);--ring:0 0 0 3px rgba(0,0,0,.18);--shadow:0 12px 36px rgba(0,0,0,.4);--btn-font-size:14px}[data-theme=light]{--bg:#fff;--panel:#f8fafc;--muted:#64748b;--text:#0f172a;--accent:#f59e0b;--accent-2:#f97316;--user:#0ea5e9;--bot:#f1f5f9;--glass:rgba(0,0,0,.03);--ring:0 0 0 3px rgba(245,158,11,.2);--shadow:0 4px 16px rgba(0,0,0,.08)}*{box-sizing:border-box}#root,body,html{height:100%}body,html{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text)}[data-theme=light] body,body,html{background:var(--bg)}a{color:inherit}.app-shell{max-width:1100px;margin:0 auto;padding:0 16px 56px}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;justify-content:space-between;padding:14px 0 18px;color:var(--muted);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}.app-header,.brand{display:flex;align-items:center}.brand{gap:12px}.logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;box-shadow:var(--shadow)}.title{font-size:16px;color:var(--text)}.subtitle{font-size:12px;color:var(--muted)}.pill{font-size:12px;color:#cbd5e1;border:1px solid hsla(0,0%,100%,.08);padding:6px 10px;border-radius:999px;background:var(--glass)}.nav{display:flex;align-items:center;gap:12px}.nav a{padding:8px 10px;border-radius:10px;color:var(--muted);text-decoration:none;border:1px solid transparent}.nav a:hover{color:var(--text);background:var(--glass);border-color:hsla(0,0%,100%,.06)}.chat-wrapper{display:flex;gap:20px}.chat-main{flex:1 1;min-height:calc(100vh - 120px);display:flex;flex-direction:column;background:linear-gradient(180deg,hsla(0,0%,100%,.045),hsla(0,0%,100%,.02));padding:12px;border-radius:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);border:1px solid hsla(0,0%,100%,.06)}[data-theme=light] .chat-main{background:linear-gradient(180deg,hsla(0,0%,100%,.9),rgba(248,250,252,.9));border:1px solid rgba(0,0,0,.1)}.chat-window{border-radius:12px;overflow:hidden}.chat-window,.messages{flex:1 1;display:flex;flex-direction:column}.messages{overflow:auto;padding:16px;gap:12px;scrollbar-width:thin;scrollbar-color:#243047 transparent}[data-theme=light] .messages{scrollbar-color:#cbd5e1 transparent}.message{max-width:85%;padding:12px 14px;border-radius:16px;line-height:1.55;font-size:15px;box-shadow:0 8px 20px rgba(0,0,0,.28);border:1px solid hsla(0,0%,100%,.055)}.message.user{margin-left:auto;background:linear-gradient(135deg,#10b981,#0ea5a4);color:#06231f;border-bottom-right-radius:6px}.message.bot{margin-right:auto;background:linear-gradient(180deg,#0f172a,#0b1220);color:var(--text);border-bottom-left-radius:6px}.message.system{margin:0 auto;background:transparent;color:var(--muted);font-size:13px}[data-theme=light] .message{box-shadow:0 2px 8px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.08)}[data-theme=light] .message.user{background:linear-gradient(135deg,#0ea5e9,#06b6d4);color:#fff}[data-theme=light] .message.bot{background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:#1e293b;border:1px solid #cbd5e1}.markdown-content{line-height:1.6}.markdown-content p:first-child{margin-top:0}.markdown-content p:last-child{margin-bottom:0}.markdown-content pre{margin:12px 0;border-radius:8px;overflow:hidden}.markdown-content code{font-family:ui-monospace,Menlo,Monaco,Courier New,monospace}.markdown-content img{max-width:100%;height:auto;border-radius:8px;margin:12px 0}.markdown-content hr{border:none;border-top:1px solid hsla(0,0%,100%,.1);margin:16px 0}.markdown-content strong{font-weight:600;color:#e6eef8}.markdown-content em{font-style:italic;color:#cbd5e1}[data-theme=light] .markdown-content{color:#1e293b}[data-theme=light] .markdown-content strong{font-weight:700;color:#0f172a}[data-theme=light] .markdown-content em{font-style:italic;color:#475569}[data-theme=light] .markdown-content hr{border-top:1px solid rgba(0,0,0,.15)}[data-theme=light] .markdown-content h1,[data-theme=light] .markdown-content h2,[data-theme=light] .markdown-content h3,[data-theme=light] .markdown-content h4,[data-theme=light] .markdown-content h5,[data-theme=light] .markdown-content h6{color:#0f172a}[data-theme=light] .markdown-content code{background:rgba(0,0,0,.08);color:#1e293b}[data-theme=light] .markdown-content a{color:#0ea5e9}[data-theme=light] .markdown-content blockquote{border-left-color:#7c3aed;color:#475569}[data-theme=light] .markdown-table{border:1px solid rgba(0,0,0,.15)}[data-theme=light] .markdown-th{background:rgba(0,0,0,.05);border-bottom:2px solid rgba(0,0,0,.2);color:#0f172a}[data-theme=light] .markdown-td{border-bottom:1px solid rgba(0,0,0,.1);color:#1e293b}[data-theme=light] .inline-code{background:rgba(0,0,0,.08);color:#1e293b}[data-theme=light] .markdown-link{color:#0284c7}[data-theme=light] .markdown-heading{color:#0f172a}.katex{font-size:1.05em;color:#e6eef8}.katex-display{margin:16px 0;overflow:auto;text-align:center}.katex-display>.katex{display:inline-block;padding:16px;background:rgba(0,0,0,.2);border-radius:8px;border:1px solid hsla(0,0%,100%,.1)}[data-theme=light] .katex{color:#0f172a}[data-theme=light] .katex-display>.katex{background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.1)}.markdown-content .katex{line-height:1.6}p .katex{vertical-align:middle}.markdown-content sub{font-size:.75em;vertical-align:sub}.markdown-content sup{font-size:.75em;vertical-align:super}.markdown-content .chem-formula{font-family:Times New Roman,serif;font-style:normal}.markdown-content .math-symbol{padding:0 2px;white-space:nowrap}.katex-display{line-height:1.8}.katex .frac-line{border-bottom-width:1px}.katex .sqrt>.root{margin-left:.2em;margin-right:.1em}.meta{font-size:12px;color:var(--muted);margin-top:6px;opacity:.9}.message.user .meta{color:hsla(0,0%,100%,.85);font-weight:500}.message.bot .meta{color:var(--muted)}[data-theme=light] .message.user .meta{color:hsla(0,0%,100%,.95);font-weight:500}[data-theme=light] .message.bot .meta{color:#64748b}.code-block-wrapper{border:1px solid hsla(0,0%,100%,.08)}[data-theme=light] .code-block-wrapper{border:1px solid rgba(0,0,0,.15)}.code-block-header{background:rgba(0,0,0,.35);border-bottom:1px solid hsla(0,0%,100%,.08)}[data-theme=light] .code-block-header{background:rgba(0,0,0,.05);border-bottom:1px solid rgba(0,0,0,.1)}.code-block-language{color:#9fb1c7}[data-theme=light] .code-block-language{color:#475569;font-weight:500}.code-copy-btn{border:1px solid hsla(0,0%,100%,.2);background:hsla(0,0%,100%,.1);color:#fff;font-weight:500}.code-copy-btn:hover{background:hsla(0,0%,100%,.15)}[data-theme=light] .code-copy-btn{border:1px solid rgba(0,0,0,.2);background:rgba(0,0,0,.08);color:#1e293b;font-weight:600}[data-theme=light] .code-copy-btn:hover{background:rgba(0,0,0,.12)}.composer{display:flex;gap:0;padding:0;border-top:1px solid hsla(0,0%,100%,.06);align-items:stretch;background:linear-gradient(180deg,transparent,rgba(0,0,0,.15));border-bottom-left-radius:18px;border-bottom-right-radius:18px}.composer button:not(.btn){-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#fff;color:#222;border-radius:12px;height:40px;padding:0 20px;cursor:pointer;font-weight:500;transition:filter .2s,transform .05s}.composer button:not(.btn):hover{filter:brightness(.96)}.composer textarea{flex:1 1;min-height:88px;height:88px;max-height:220px;background:var(--panel);border:1px solid rgba(0,0,0,.12);padding:18px 12px 18px 16px;border-radius:12px;color:var(--text);font-size:18px;line-height:1.5;resize:none;transition:border .15s,box-shadow .15s;display:flex;align-items:center}[data-theme=dark] .composer textarea{background:#181e2a;border:1px solid hsla(0,0%,100%,.12);color:#e6eef8}[data-theme=light] .composer textarea{background:#f8fafc;border:1px solid #d1d5db;color:#222}.composer button:not(.btn):hover{filter:brightness(1.12)}.composer button:not(.btn):active{transform:translateY(1px)}.composer button.secondary:not(.btn){background:transparent;border:1px solid hsla(0,0%,100%,.08);color:var(--muted)}[data-theme=light] .composer{border-top:1px solid rgba(0,0,0,.08);background:linear-gradient(180deg,transparent,rgba(0,0,0,.02))}[data-theme=light] .composer textarea{background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.1)}[data-theme=light] .composer textarea:focus{border-color:rgba(245,158,11,.4)}button:focus-visible{outline:none;box-shadow:var(--ring)}input:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring)}@media (max-width:640px){.app-shell{padding:0 12px}.chat-main{min-height:calc(100vh - 92px);padding:0;border-radius:0;box-shadow:none;border:none}.composer{position:-webkit-sticky;position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--panel));padding:10px;border-radius:0}.messages{padding:12px 12px 86px}}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row{gap:8px}.row,.space-between{display:flex;align-items:center}.space-between{justify-content:space-between}.sp10{height:10px}.sp16{height:16px}.sp24{height:24px}.caption{font-size:12px;color:var(--muted)}.input{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.09);color:var(--text);padding:10px 12px;border-radius:12px}.input::placeholder{color:#8ea2bd}[data-theme=light] .input{background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.12)}[data-theme=light] .input::placeholder{color:#64748b}.card{background:linear-gradient(180deg,hsla(0,0%,100%,.045),hsla(0,0%,100%,.02));border:1px solid hsla(0,0%,100%,.08);border-radius:14px;box-shadow:var(--shadow);padding:16px}[data-theme=light] .card{background:linear-gradient(180deg,#fff,#fafbfc);border:1px solid rgba(0,0,0,.1)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:linear-gradient(135deg,#222,#111);color:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;cursor:pointer;font-weight:500;font-size:var(--btn-font-size);transition:filter .2s,transform .05s}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px)}.btn.secondary{background:#f3f4f6;color:#222;border:1px solid #222}.btn.secondary,[data-theme=light] .btn.secondary{background:#222;color:#fff;border:1px solid #fff}[data-theme=light] .btn.secondary{background:#f3f4f6;color:#222;border:1px solid #222}.btn.secondary:hover{background:#111;color:#fff;border-color:#fff}[data-theme=light] .btn.secondary:hover{background:#e5e7eb;color:#111;border-color:#111}.btn.logout{background:rgba(59,130,246,.15);color:#60a5fa;border:1px solid #3b82f6}[data-theme=light] .btn.logout{background:rgba(59,130,246,.1);color:#2563eb;border:1px solid #3b82f6}.btn.logout:hover{background:rgba(59,130,246,.25);color:#93c5fd;border-color:#60a5fa}[data-theme=light] .btn.logout:hover{background:rgba(59,130,246,.2);color:#1d4ed8;border-color:#2563eb}.btn.ghost{background:none!important;color:inherit;border:none;box-shadow:none;padding:0 8px;font-weight:500;transition:color .15s}.btn.sm{font-size:calc(var(--btn-font-size) * .875)}.btn.ghost:hover{text-decoration:underline;color:#0ea5e9}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}