html.chat-page{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}html.chat-page body{position:fixed;inset:0;width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}.chat-page .app-shell{position:absolute;inset:0;height:auto;min-height:0;overflow:hidden}.chat-page .main-content{position:fixed;inset:0 0 0 244px;width:auto;height:auto;margin:0;padding:0;overflow:hidden}.chat-page .main-content>.service-alert{position:absolute;z-index:8;top:10px;left:50%;transform:translateX(-50%);width:min(900px,calc(100% - 32px))}.chat-app{display:grid;grid-template-columns:260px minmax(0,1fr);height:100%;min-height:0;background:var(--panel-solid)}
.chat-history{display:flex;flex-direction:column;min-width:0;padding:16px 10px;border-right:1px solid var(--line);background:var(--soft)}.chat-new{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-solid);color:var(--text);font-weight:650;cursor:pointer}.chat-new:hover{border-color:var(--accent)}.chat-history-label{padding:22px 10px 8px;color:var(--muted);font-size:11px;font-weight:750}.chat-history-list{min-height:0;overflow:auto}.chat-history-row{position:relative;display:flex;align-items:center;border-radius:9px}.chat-history-row:hover,.chat-history-row.active{background:var(--panel-solid)}.chat-history-item{display:flex;align-items:center;gap:9px;min-width:0;width:100%;padding:10px 34px 10px 10px;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left}.chat-history-item i{flex:none;color:var(--muted);font-size:12px}.chat-history-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.chat-delete{position:absolute;right:5px;display:none;width:28px;height:28px;border:0;border-radius:7px;background:var(--panel-solid);color:var(--muted);cursor:pointer}.chat-history-row:hover .chat-delete{display:block}.chat-delete:hover{color:var(--danger)}
.chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100%;min-height:0}.chat-toolbar{display:flex;align-items:center;gap:18px;min-height:68px;padding:10px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel-solid) 88%,transparent);backdrop-filter:blur(12px)}.chat-history-toggle{display:none}.chat-title{display:flex;flex-direction:column;min-width:0;margin-right:auto}.chat-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.chat-title span{color:var(--muted);font-size:10px}.chat-model{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.chat-model select{width:auto;max-width:260px;padding:8px 30px 8px 10px;font-size:12px}.chat-quota{display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.chat-messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px max(24px,calc((100% - 820px)/2)) 40px;scroll-behavior:smooth}.chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding-bottom:80px;text-align:center}.chat-welcome .brand-mark{width:46px;height:46px}.chat-welcome h1{margin:18px 0 8px;font-size:28px;letter-spacing:-.035em}.chat-welcome p{max-width:520px;margin:0;color:var(--muted);font-size:13px}.chat-welcome.hidden{display:none}
.chat-message{display:flex;width:100%;margin:0 auto 28px}.chat-message.user{justify-content:flex-end}.chat-user-bubble{max-width:min(78%,680px);padding:11px 15px;border-radius:18px 18px 4px 18px;background:var(--soft);font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.assistant{align-items:flex-start;gap:13px}.chat-ai-avatar{display:grid;place-items:center;flex:none;width:29px;height:29px;margin-top:2px;border:0;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 5px 12px rgba(14,165,233,.2);color:#fff;font-family:Arial,sans-serif;font-size:15px;font-weight:700;line-height:1}.chat-answer-column{min-width:0;flex:1}.chat-answer{padding:0;font-size:14px;line-height:1.78}.chat-answer>:first-child{margin-top:0}.chat-answer>:last-child{margin-bottom:0}.chat-thinking{display:flex;align-items:center;gap:8px;padding:5px 0;color:var(--muted);font-size:12px}.chat-thinking.hidden,.chat-reasoning.hidden{display:none}.chat-reasoning{margin:0 0 12px;border:1px solid var(--line);border-radius:11px;background:var(--soft);overflow:hidden}.chat-reasoning .reasoning-steps{max-height:280px}.chat-error{margin:0 0 24px 42px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--danger) 7%,transparent);color:var(--danger);font-size:12px}
.chat-welcome-mark{font-family:Arial,sans-serif;font-size:23px;font-weight:700;line-height:1}
.chat-response-actions{display:flex;align-items:center;gap:5px;min-height:30px;margin-top:8px;color:var(--muted)}.chat-elapsed{margin-right:4px;font-size:11px;font-variant-numeric:tabular-nums}.chat-action{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:11px}.chat-action:hover:not(:disabled){background:var(--soft);color:var(--text)}.chat-action:disabled{opacity:.42;cursor:default}.chat-action i{font-size:10px}
.chat-conversation-actions{display:flex;gap:5px}.chat-conversation-actions .icon-btn{width:34px;height:34px}.chat-conversation-actions .icon-btn:disabled{opacity:.35;cursor:not-allowed}
.chat-pdf-stage{position:fixed;left:-12000px;top:0;width:718px;overflow:visible;pointer-events:none}.chat-pdf-document{box-sizing:border-box;width:100%;padding:42px 48px;background:#fff;color:#0f172a;font-family:Inter,"Noto Sans SC","PingFang SC",system-ui,sans-serif}.chat-pdf-document>header{padding-bottom:18px;border-bottom:2px solid #0ea5e9}.chat-pdf-document>header h1{margin:0 0 7px;font-size:25px}.chat-pdf-document>header p{margin:0;color:#64748b;font-size:11px}.chat-pdf-message{padding:22px 0;border-bottom:1px solid #e2e8f0;break-inside:auto}.chat-pdf-message>h2{margin:0 0 10px;color:#0284c7;font-size:13px}.chat-pdf-user-content{padding:11px 14px;border-radius:12px;background:#f1f5f9;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.65}.chat-pdf-document .markdown-body{color:#0f172a;font-size:12px;line-height:1.7}.chat-pdf-document .markdown-body h1,.chat-pdf-document .markdown-body h2,.chat-pdf-document .markdown-body h3{margin:1.3em 0 .55em;color:#0f172a}.chat-pdf-document .markdown-body p{margin:.65em 0}.chat-pdf-document .markdown-body table{width:100%;border-collapse:collapse}.chat-pdf-document .markdown-body th,.chat-pdf-document .markdown-body td{padding:7px;border:1px solid #cbd5e1}.chat-pdf-document .markdown-body blockquote{margin:1em 0;padding:.2em 1em;border-left:3px solid #0ea5e9;color:#475569}.chat-pdf-document pre{break-inside:avoid;margin:10px 0;padding:14px;border-radius:10px;background:#0b1220;color:#dbeafe;white-space:pre-wrap}.chat-pdf-document code{font-family:Consolas,"Liberation Mono",monospace}.chat-pdf-reasoning{margin:0 0 12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#64748b;font-size:10px}.chat-pdf-reasoning .reasoning-steps{max-height:none;padding:7px 5px 0 9px}.chat-pdf-reasoning .reasoning-steps li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;padding:5px 0;color:#64748b;font-size:10px;line-height:1.55}.chat-pdf-reasoning .reasoning-step-marker{width:9px;height:9px;margin-top:3px;border:2px solid #38bdf8;border-radius:50%;background:#ffffff}.chat-pdf-reasoning .tool-node-detail{display:block;margin-top:7px;padding:7px;border:1px solid #e2e8f0;border-radius:7px;background:#ffffff}.chat-pdf-reasoning button{border:0;background:transparent;color:#0f172a}.chat-pdf-document .katex-display{overflow:visible}.chat-pdf-document .hidden{display:none!important}

/* 此样式节点会被复制进 html2canvas 的隔离文档；只使用其可解析的传统颜色格式。 */
style[data-chat-pdf-style]{display:none}
.chat-share-wrap{padding-bottom:60px}.chat-share-content{display:flex;flex-direction:column;gap:16px}.chat-share-message{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.chat-share-message.user{margin-left:15%;background:var(--soft)}.chat-share-message header{display:flex;align-items:center;gap:9px;margin-bottom:14px}.chat-share-message header small{margin-left:auto;color:var(--muted);font-size:10px}.chat-share-user-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.7}.chat-share-reasoning{margin:0 0 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--muted);font-size:11px}.chat-share-reasoning summary{display:flex;align-items:center;gap:7px;padding:10px 12px;cursor:pointer;font-weight:700}.chat-share-reasoning pre{max-height:300px;margin:0;padding:0 12px 12px;background:transparent;color:var(--muted);white-space:pre-wrap;font-size:10px}.chat-pdf-document .chat-share-message{margin:0;padding:22px 0;border:0;border-bottom:1px solid #e2e8f0;border-radius:0;background:#fff}.chat-pdf-document .chat-share-message header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.chat-pdf-document .chat-share-message header small{margin-left:auto;color:#64748b}.chat-pdf-document .chat-share-reasoning{background:#f8fafc}.chat-pdf-document .chat-share-user-content{padding:11px 14px;border-radius:12px;background:#f1f5f9}
.chat-composer-wrap{padding:8px max(24px,calc((100% - 820px)/2)) 16px;background:linear-gradient(transparent,var(--panel-solid) 22%)}.chat-composer{display:flex;align-items:flex-end;gap:9px;padding:9px 9px 9px 11px;border:1px solid var(--line);border-radius:20px;background:var(--panel-solid);box-shadow:0 12px 34px rgba(15,23,42,.1)}.chat-composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.1),0 12px 34px rgba(15,23,42,.1)}.chat-composer textarea{min-height:36px;max-height:200px;padding:7px 0;border:0;border-radius:0;background:transparent;resize:none;box-shadow:none;line-height:1.55}.chat-composer textarea:focus{box-shadow:none}.chat-attach{display:grid;place-items:center;flex:none;width:32px;height:32px;margin:2px 0;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.chat-attach:hover:not(:disabled){background:var(--soft);color:var(--text)}.chat-attach:disabled{opacity:.45;cursor:not-allowed}.chat-send,.chat-stop{display:grid;place-items:center;flex:none;width:36px;height:36px;border:0;border-radius:11px;background:var(--text);color:var(--panel-solid);cursor:pointer}.chat-stop{background:var(--danger);color:#fff}.chat-send.hidden,.chat-stop.hidden{display:none}.chat-send:disabled,.chat-stop:disabled{opacity:.45;cursor:not-allowed}.chat-attachment-preview{display:flex;gap:8px;flex-wrap:wrap;padding:8px 4px 0}.chat-attachment-card{position:relative;display:flex;align-items:center;gap:8px;max-width:210px;padding:6px 30px 6px 7px;border:1px solid var(--line);border-radius:10px;background:var(--soft);font-size:11px}.chat-attachment-card img{width:36px;height:36px;border-radius:6px;object-fit:cover}.chat-attachment-card i{width:22px;text-align:center;color:var(--accent);font-size:16px}.chat-attachment-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachment-card button{position:absolute;right:5px;top:5px;display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.chat-attachment-card button:hover{background:var(--panel-solid);color:var(--danger)}.chat-message-attachments{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.chat-user-bubble .chat-message-attachments{margin-top:7px}.chat-message-attachment{display:flex;align-items:center;gap:7px;max-width:220px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel-solid);color:var(--text);font-size:11px;text-decoration:none}.chat-message-attachment img{width:72px;max-height:72px;border-radius:6px;object-fit:cover}.chat-message-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-composer-wrap>p{margin:7px 0 0;color:var(--muted);font-size:10px;text-align:center}
.chat-login-card{margin-top:12vh;text-align:center;padding:52px 24px}.chat-login-card p{color:var(--muted)}
@media(max-width:760px){.chat-page .main-content{inset:58px 0 0 0}.chat-app{grid-template-columns:1fr}.chat-history{position:absolute;z-index:20;inset:0 auto 0 0;width:min(290px,88vw);transform:translateX(-105%);box-shadow:var(--shadow);transition:transform .2s}.chat-history.open{transform:translateX(0)}.chat-history-toggle{display:grid}.chat-toolbar{padding:9px 14px;gap:10px}.chat-title span,.chat-quota{display:none}.chat-model{margin-left:auto}.chat-model>span{display:none}.chat-model select{max-width:190px}.chat-messages{padding:22px 16px 30px}.chat-composer-wrap{padding:8px 12px 12px}.chat-user-bubble{max-width:88%}}
@media(max-width:520px){.chat-title{display:none}.chat-model select{max-width:210px}.chat-message.assistant{gap:9px}.chat-ai-avatar{width:26px;height:26px}.chat-error{margin-left:35px}}

/* 固定三段式聊天布局：只有消息区滚动，工具栏和输入框始终留在视口内。 */
.chat-main{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.chat-toolbar,.chat-composer-wrap{flex:none}
.chat-messages{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-gutter:stable}
