:root{--bg:#0b1020;--panel:#12182b;--text:#e6e7ee;--muted:#9aa4b2;--accent:#5b8cff;--accent-700:#3c6cf0;--border:#1e2640}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif}.container{max-width:800px;margin:0 auto;padding:24px;display:flex;flex-direction:column;min-height:100dvh}.header{text-align:center;margin-bottom:16px}.header h1{margin:0;font-size:28px;font-weight:700}.subtitle{margin:8px 0 0;color:var(--muted)}.chat{flex:1 1;border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--panel);overflow-y:auto}.empty{color:var(--muted);text-align:center;padding:24px 0}.message{display:flex;gap:12px;align-items:flex-start;margin:10px 0}.message .avatar{width:28px;height:28px;display:grid;place-items:center;background:#1a233d;border-radius:50%;font-size:14px}.message.user .avatar{background:#1a2d2d}.bubble{background:#0f1426;border:1px solid var(--border);padding:10px 12px;border-radius:10px;white-space:pre-wrap;word-break:break-word;max-width:100%}.message.user .bubble{background:#121d3d}.bubble :where(h1,h2,h3,h4){margin:8px 0 6px;line-height:1.2}.bubble h1{font-size:20px}.bubble h2{font-size:18px}.bubble h3{font-size:16px}.bubble h4{font-size:15px}.bubble p{margin:8px 0}.bubble ol,.bubble ul{padding-left:22px;margin:8px 0}.bubble li{margin:4px 0}.bubble strong{color:#fff}.bubble code{background:hsla(0,0%,100%,.06);border:1px solid var(--border);padding:0 4px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.95em}.bubble pre{background:#0a0f20;border:1px solid var(--border);padding:10px 12px;border-radius:10px;overflow-x:auto}.bubble pre code{background:transparent;border:0;padding:0}.composer{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.composer textarea{width:100%;resize:vertical;min-height:72px;border-radius:12px;background:var(--panel);color:var(--text);border:1px solid var(--border);padding:12px;outline:none}.composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,140,255,.15)}.actions{display:flex;justify-content:flex-end}button{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:10px;cursor:pointer;font-weight:600}button[disabled]{opacity:.6;cursor:not-allowed}button:not([disabled]):hover{background:var(--accent-700)}