:root{--bg:#0a0d12;--panel:#11151d;--panel2:#171c26;--border:rgba(255,255,255,.09);--text:#f5f7fa;--muted:#929aaa;--accent:#8b7cff;--accent2:#b7adff;--danger:#ef6c78;--ok:#55d392;--user:#222937;--shadow:0 18px 55px rgba(0,0,0,.4)}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit;color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.brand{display:flex;gap:11px;align-items:center}.logo{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#7468ff,#a96cff)}button{cursor:pointer}.app{height:100vh;display:grid;grid-template-columns:270px 1fr}.app aside{padding:18px;background:#0d1117;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:18px}.new-chat,.ghost,.profile,.suggestions button{border:1px solid var(--border);background:var(--panel2);border-radius:12px;padding:10px}.new-chat{text-align:left}.sidebar-grow{flex:1}.section-title{font-size:11px;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.doc-chip{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:9px;margin-bottom:7px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;text-align:left}.profile span:nth-child(2){display:flex;flex-direction:column;min-width:0}.profile b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile small{font-size:10px;color:var(--muted);margin-top:3px}.avatar{width:34px;height:34px;border-radius:50%;background:#202735;display:grid;place-items:center;color:var(--accent2);font-weight:700}main{display:grid;grid-template-rows:auto 1fr auto;min-width:0;height:100vh}header{padding:18px 28px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}header h2{margin:0;font-size:18px}header p{margin:4px 0 0;font-size:12px;color:var(--muted)}.chat{overflow:auto;padding:34px max(24px,calc((100% - 900px)/2))}.hero{text-align:center;max-width:720px;margin:11vh auto 0}.hero-icon{width:60px;height:60px;border-radius:19px;display:grid;place-items:center;margin:0 auto 18px;background:linear-gradient(135deg,#7468ff,#a96cff);font-size:25px;box-shadow:var(--shadow)}.hero h1{margin:0 0 10px}.hero p{color:var(--muted);line-height:1.55}.suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:25px}.suggestions button{text-align:left}.message{display:flex;margin:20px 0}.message.user{justify-content:flex-end}.message-wrap{max-width:min(800px,91%)}.bubble{line-height:1.6;white-space:pre-wrap;word-break:break-word;padding:13px 16px;border-radius:16px}.user .bubble{background:var(--user);border:1px solid var(--border);border-bottom-right-radius:5px}.assistant .bubble{padding-left:0}.assistant-label{font-size:12px;font-weight:700;color:var(--accent2);margin-bottom:6px}.actions{display:flex;gap:3px;margin-top:4px;opacity:0;transition:.15s}.message:hover .actions{opacity:1}.user .actions{justify-content:flex-end}.action{border:0;background:transparent;color:var(--muted);border-radius:8px;width:31px;height:29px;display:grid;place-items:center}.action:hover{background:rgba(255,255,255,.07);color:white}.action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.action.copied{color:var(--ok)}.composer-wrap{padding:10px max(24px,calc((100% - 900px)/2)) 18px;background:linear-gradient(180deg,transparent,rgba(10,13,18,.98) 22%)}.composer{display:grid;grid-template-columns:44px 1fr 44px;align-items:end;background:var(--panel2);border:1px solid var(--border);border-radius:18px;padding:7px;box-shadow:var(--shadow)}.attach,.send{height:42px;width:42px;border:0;border-radius:12px;display:grid;place-items:center}.attach{font-size:23px}.attach:hover{background:rgba(255,255,255,.06)}.send{background:var(--accent)}textarea{resize:none;border:0;outline:0;background:transparent;padding:11px 8px;max-height:180px}.footnote{text-align:center;color:#6f7685;font-size:11px;margin-top:8px}.notice,.edit-banner{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13px}.edit-banner{display:flex;justify-content:space-between;align-items:center;border-color:rgba(139,124,255,.4)}.edit-banner button{border:0;background:transparent;color:var(--accent2)}.auth-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,rgba(124,97,255,.13),transparent 30%),var(--bg)}.auth-card{width:min(440px,100%);padding:28px;border:1px solid var(--border);border-radius:22px;background:rgba(17,21,29,.97);box-shadow:var(--shadow)}.auth-card>.brand{margin-bottom:24px}.auth-pane h1{font-size:24px;margin:0 0 7px}.auth-pane>p{color:var(--muted);margin:0 0 20px}.auth-pane form{display:flex;flex-direction:column;gap:13px}.auth-pane label{font-size:12px;display:flex;flex-direction:column;gap:6px}.auth-pane input,.key-create input{background:#0d1117;border:1px solid var(--border);border-radius:11px;padding:11px 12px;outline:0}.primary,.danger{border:0;border-radius:11px;padding:10px 13px}.primary{background:var(--accent);color:white}.danger{background:rgba(239,108,120,.13);color:#ff929d;border:1px solid rgba(239,108,120,.22)}.auth-links{display:flex;justify-content:space-between;margin-top:18px}.auth-links button{border:0;background:transparent;color:var(--accent2)}.notice.error{color:#ff9ca6;border-color:rgba(239,108,120,.4)}.notice.success{color:#7ee0aa;border-color:rgba(85,211,146,.35)}.modal-bg{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.65);display:grid;place-items:center;padding:20px}.modal{width:min(650px,100%);max-height:85vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:20px}.modal-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:14px}.modal-head h2{margin:0}.modal section{padding:18px 0;border-bottom:1px solid var(--border)}.icon{border:0;background:transparent;font-size:26px}.key-create{display:grid;grid-template-columns:1fr auto;gap:8px}.new-key{margin:12px 0;padding:10px;background:#0c1511;border:1px solid rgba(85,211,146,.25);border-radius:10px;color:#9aefbd;font-family:monospace;word-break:break-all}.key-row{border:1px solid var(--border);border-radius:10px;padding:10px;margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:10px}.key-row small{display:block;color:var(--muted);margin-top:3px}@media(max-width:760px){.app{grid-template-columns:1fr}.app aside{display:none}header{padding:15px}.chat{padding:22px 16px}.composer-wrap{padding:10px 16px 14px}.suggestions{grid-template-columns:1fr}.message-wrap{max-width:96%}}

/* v3.3 rich answer rendering / timing / cancellation */
.message-content{white-space:normal;overflow-wrap:anywhere}
.message-content>p:first-child{margin-top:0}.message-content>p:last-child{margin-bottom:0}
.message-content p{margin:.65em 0}.message-content ul,.message-content ol{margin:.65em 0;padding-left:1.55em}
.message-content blockquote{margin:.8em 0;padding:.2em .9em;border-left:3px solid rgba(139,124,255,.5);color:#cbd0da;background:rgba(255,255,255,.025)}
.message-content pre{overflow:auto;background:#0b0f15;border:1px solid var(--border);border-radius:10px;padding:12px;white-space:pre}
.message-content code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;background:rgba(255,255,255,.065);padding:.1em .28em;border-radius:5px;font-size:.92em}
.message-content pre code{background:transparent;padding:0;border-radius:0}
.message-content table{border-collapse:collapse;display:block;overflow-x:auto;margin:.8em 0}
.message-content th,.message-content td{border:1px solid var(--border);padding:7px 9px;text-align:left}.message-content th{background:rgba(255,255,255,.045)}
.message-content a{color:#aaa2ff;text-decoration:none}.message-content a:hover{text-decoration:underline}
.message-content .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25em 0}
.response-meta{color:#737b89;font-size:11px;margin-top:2px}.assistant .response-meta{text-align:left}.user .response-meta{text-align:right}
.working{color:var(--muted);font-style:italic}.working::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent2);border-radius:50%;vertical-align:-2px;animation:qwen-spin .8s linear infinite}@keyframes qwen-spin{to{transform:rotate(360deg)}}
.send.stop{background:var(--danger)}.send.stop #sendIcon{font-size:17px;line-height:1}

.plan-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.plan-summary>div{border:1px solid var(--border);background:rgba(255,255,255,.025);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}
.plan-summary b{font-size:14px}
@media(max-width:600px){.plan-summary{grid-template-columns:1fr}}


/* v4.1 persistent conversation history */
.sidebar-history{flex:1;min-height:120px;overflow:hidden;display:flex;flex-direction:column}
.sidebar-documents{max-height:28vh;overflow:auto}
.conversation-list{overflow:auto;display:flex;flex-direction:column;gap:4px;padding-right:2px}
.conversation-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center;border-radius:9px;padding:2px 3px 2px 8px;color:#cfd3dc}
.conversation-item:hover{background:rgba(255,255,255,.045)}
.conversation-item.active{background:rgba(139,124,255,.13);color:#fff}
.conversation-open{border:0;background:transparent;text-align:left;padding:7px 0;min-width:0;cursor:pointer}
.conversation-title{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conversation-sub{display:block;color:#737b89;font-size:10px;margin-top:2px}
.conversation-actions{display:flex;opacity:0;transition:.15s}
.conversation-item:hover .conversation-actions{opacity:1}
.conversation-actions button{width:25px;height:25px;border:0;border-radius:7px;background:transparent;color:#808897;padding:0}
.conversation-actions button:hover{background:rgba(255,255,255,.08);color:#fff}
@media(max-width:760px){.sidebar-history,.sidebar-documents{display:none}}
