.ai-chat-fab{position:fixed !important;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid #ff6900;cursor:pointer;z-index:9998;box-shadow:0 4px 14px rgba(255,105,0,.25);transition:transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}
.ai-chat-fab-open svg{display:none}
.ai-chat-fab-open::after{content:"✕";font-size:20px;color:#ff6900;font-weight:700}
@media (max-width:720px){.ai-chat-fab{bottom:76px;right:16px}}
.ai-chat-fab:hover{transform:scale(1.08)}
.ai-chat-fab:active{transform:scale(.95)}
.ai-chat-window{position:fixed !important;bottom:96px !important;right:24px !important;left:auto !important;width:380px;max-width:calc(100vw - 32px);min-width:300px;min-height:320px;max-height:560px;background:#fff;border:1px solid #e8e8e8;border-radius:14px;z-index:9999;display:none;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.15);overflow:hidden}
/* 左上角拖拽把手：改变窗口大小（窗口锚定右下，往左上拉放大） */
.ai-chat-resize{position:absolute;top:0;left:0;width:18px;height:18px;cursor:nwse-resize;z-index:2;touch-action:none}
.ai-chat-resize::before{content:"";position:absolute;top:3px;left:3px;width:8px;height:8px;border-left:2px solid #ccc;border-top:2px solid #ccc;border-radius:2px 0 0 0}
.ai-chat-resize:hover::before{border-color:#ff6900}
.ai-chat-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid #eee;flex-shrink:0}
.ai-chat-header span{font-size:15px;font-weight:600;color:#333}
.ai-chat-subtitle{font-size:10px;color:#aaa;letter-spacing:.5px;font-weight:400}
.ai-chat-close{margin-left:auto;background:transparent;border:none;color:#999;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s}
.ai-chat-close:hover{color:#333;background:#f0f0f0}
.ai-chat-messages{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
/* AI 助手桥 v1：「相关知识」卡片区（wiki-design §12.2，命中才渲染，零打扰） */
.ai-chat-knowledge{flex-shrink:0;padding:10px 14px 4px;border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:8px;background:#fffdf9}
.ai-chat-knowledge-title{font-size:11px;color:#c05a00;font-weight:700;letter-spacing:.5px}
.ai-chat-kcard{display:flex;align-items:center;gap:10px;border:1px solid #e8e8e8;border-radius:10px;padding:9px 12px;background:#fff;text-decoration:none;transition:all .15s}
.ai-chat-kcard:hover{border-color:#ff6900;background:#fff3ea;box-shadow:0 2px 8px rgba(255,105,0,.10)}
.ai-chat-kcard-ic{width:30px;height:30px;border-radius:8px;background:#fff3ea;border:1px solid #ffd9bd;display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.ai-chat-kcard-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ai-chat-kcard-t .t1{font-size:12.5px;font-weight:700;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-chat-kcard-t .t2{font-size:10px;color:#2b6cb0;background:#e9f1fb;border-radius:7px;padding:0 6px;align-self:flex-start}
.ai-chat-kcard-go{flex:none;font-size:11px;color:#ff6900;font-weight:700;white-space:nowrap}
.ai-chat-msg{max-width:92%;animation:fadeIn .2s ease}
.ai-chat-msg-ai{align-self:flex-start}
.ai-chat-msg-user{align-self:flex-end}
.ai-chat-msg-role{font-size:10px;color:#aaa;margin-bottom:3px;letter-spacing:.3px}
.ai-chat-msg-content{font-size:13px;line-height:1.6;color:#333;white-space:pre-wrap;word-break:break-word;padding:8px 12px;border-radius:8px}
.ai-chat-msg-ai .ai-chat-msg-content{background:#f4f5f7}
.ai-chat-msg-user .ai-chat-msg-content{background:#fff3ea}
.ai-chat-input-area{display:flex;gap:8px;padding:10px 14px 12px;border-top:1px solid #eee;flex-shrink:0}
.ai-chat-input{flex:1;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;padding:8px 10px;color:#333;font-family:inherit;font-size:13px;resize:none;outline:none;transition:border-color .2s;line-height:1.5}
.ai-chat-input:focus{border-color:#ff6900}
.ai-chat-input::placeholder{color:#bbb}
.ai-chat-send{background:#ff6900;border:1px solid #ff6900;border-radius:8px;color:#fff;padding:8px 16px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .2s;font-weight:500;align-self:flex-end}
.ai-chat-send:hover{background:#e65e00}
.ai-chat-send:disabled{opacity:.4;cursor:default}
.ai-chat-loading{display:flex;gap:4px;align-items:center;padding:6px 0}
.ai-chat-loading-dot{width:6px;height:6px;border-radius:50%;background:#ccc;animation:chatBounce 1.2s infinite}
.ai-chat-loading-dot:nth-child(2){animation-delay:.2s}
.ai-chat-loading-dot:nth-child(3){animation-delay:.4s}
@keyframes chatBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}

/* 选中文本感知（2026-08-10）：选中 → 呼唤/回到助手 → 两段分析 */
.ai-chat-selection{flex-shrink:0;padding:10px 14px 6px;border-bottom:1px solid #f0f0f0;background:#fffaf3}
.ai-chat-sel-title{font-size:12px;color:#8a5a2b;font-weight:600;line-height:1.6}
.ai-chat-sel-preview{color:#555;font-weight:400}
.ai-chat-sel-actions{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.ai-chat-sel-btn{background:#ff6900;border:none;color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;font-family:inherit}
.ai-chat-sel-btn:hover{background:#e65e00}
.ai-chat-sel-link{font-size:12px;color:#c05a00;text-decoration:none;border-bottom:1px dashed #ffb380}
.ai-chat-sel-link:hover{color:#ff6900}
.ai-chat-sel-none{font-size:11.5px;color:#aaa}
.ai-chat-sel-loading{font-size:11.5px;color:#ccc}
.ai-chat-sel-chip{font-size:12px;color:#8a5a2b;cursor:pointer}
.ai-chat-sel-chip u{color:#ff6900}
/* 拖放分析消息卡（2026-08-25：进对话流正常位置，替代顶部横条） */
.ai-drop-card{background:#fffaf3;border:1px solid #ffe3c2;border-radius:10px;padding:10px 12px}
.ai-drop-title{font-size:12.5px;font-weight:600;color:#8a5a2b;line-height:1.6}
.ai-drop-actions{display:flex;align-items:center;gap:10px;margin-top:8px}
.ai-drop-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:11.5px}
/* 拖动分析卡（2026-08-23 修：非法嵌套+无样式导致占半屏/重叠） */
.ai-chat-sel-obj{display:block;margin-top:4px}
.ai-chat-sel-excerpt{font-size:11.5px;color:#777;line-height:1.7;margin:2px 0 4px;max-height:60px;overflow:hidden}
.ai-chat-sel-close{float:right;background:none;border:none;color:#ccc;font-size:13px;cursor:pointer;padding:0 2px;margin-left:8px}
.ai-chat-sel-close:hover{color:#ff6900}
.ai-chat-sel-excerpt{font-size:12px;color:#555;line-height:1.7;background:#fff;border:1px solid #ffe4cc;border-radius:8px;padding:8px 10px;margin:6px 0;max-height:120px;overflow:hidden}

/* markdown 块级渲染（2026-09-06：AI 评审报告的表格/标题友好展示） */
.ai-md-tbl { border-collapse:collapse; width:100%; margin:8px 0; font-size:12.5px; }
.ai-md-tbl th, .ai-md-tbl td { border:1px solid #eee; padding:6px 9px; text-align:left; vertical-align:top; line-height:1.6; }
.ai-md-tbl th { background:#fff3ea; color:#c05a00; font-weight:600; white-space:nowrap; }
.ai-md-tbl tr:nth-child(even) td { background:#fafafa; }
.ai-md-h1, .ai-md-h2 { font-size:15px; font-weight:700; margin:12px 0 6px; color:#1a1a1a; }
.ai-md-h3 { font-size:13.5px; font-weight:700; margin:10px 0 5px; color:#1a1a1a; }
.ai-md-h4 { font-size:13px; font-weight:600; margin:8px 0 4px; color:#333; }

/* 2026-09-15 修滚动穿透：助手开窗时锁背景滚动；消息区滚动不链到页面 */
body.ai-chat-open { overflow:hidden; }
.ai-chat-window { overscroll-behavior:contain; }
.ai-chat-messages { overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
