﻿ :root{--bg0:var(--paper);--bg1:#ece4d4;--bg-deep:var(--paper);--ink:#17221c;--ink2:var(--muted);--dim:var(--muted);--msg-bg:rgba(255,253,248,0.62);--cyber-green:var(--forest);--cyber-blue:var(--forest);--cyber-orange:var(--copper);--cyber-purple:#8b5cf6;--cyber-pink:#ec4899;--line:rgba(182,100,60,0.12);--line-strong:rgba(182,100,60,0.25);--glow-green:rgba(31,90,67,0.08);--glow-blue:rgba(31,90,67,0.06);--glow-orange:rgba(182,100,60,0.06);--panel:var(--card-bg);--panel-border:rgba(182,100,60,0.2);--console-bg:rgba(236,228,212,0.5);--cool:var(--forest);--warm:var(--copper);--node-low:#d4c9b8;--node-high:var(--forest);--glow-halo:rgba(31,90,67,0.06);--glow-tint1:rgba(182,100,60,0.04);--glow-tint2:rgba(196,168,90,0.04);--link-stroke:rgba(182,100,60,0.15);--glass-bg:rgba(255,251,243,0.5);--glass-border:rgba(182,100,60,0.18);--glass-blur:16px;--glass-radius:14px}
/* ═══ 夜间模式 ═══ */
[data-theme="dark"], [data-theme="midnight"] {
  --paper: #1a1a1e !important;
  --bg0: #1a1a1e !important;
  --bg1: #222226 !important;
  --bg-deep: #141416 !important;
  --ink: #e8e6e3 !important;
  --ink2: #8a8a8a !important;
  --muted: #6b6b6b !important;
  --card-bg: #222226 !important;
  --msg-bg: rgba(40,40,44,0.8) !important;
  --line: rgba(255,255,255,0.08) !important;
  --line-strong: rgba(255,255,255,0.12) !important;
  --panel: #222226 !important;
  --glow-green: rgba(31,90,67,0.15) !important;
  --glass-bg: rgba(30,30,34,0.85) !important;
}
[data-theme="dark"], [data-theme="midnight"] body {
  background: radial-gradient(ellipse at 20% 15%,rgba(31,90,67,0.12),transparent 40%),
              radial-gradient(ellipse at 85% 70%,rgba(182,100,60,0.08),transparent 40%),
              linear-gradient(165deg,#1a1a1e,#222226 50%,#141416 100%) !important;
}

/* ═══ 深空星河主题（移植自 voice-chat 的纯黑深空 + 金色星云背景）═══ */
[data-theme="cosmos"] {
  --paper: #000000 !important;
  --bg0: #000000 !important;
  --bg1: #02030a !important;
  --bg-deep: #000000 !important;
  --ink: #e8e4f0 !important;
  --ink2: rgba(232,228,240,0.62) !important;
  --muted: rgba(232,228,240,0.42) !important;
  --card-bg: rgba(8,10,22,0.62) !important;
  --msg-bg: rgba(10,10,24,0.72) !important;
  --line: rgba(255,216,102,0.12) !important;
  --line-strong: rgba(255,216,102,0.22) !important;
  --panel: rgba(8,10,22,0.62) !important;
  --forest: #ffd866 !important;
  --copper: #ffd866 !important;
  --cool: #ffd866 !important;
  --warm: #fb923c !important;
  --glow-green: rgba(255,216,102,0.10) !important;
  --glow-blue: rgba(255,216,102,0.08) !important;
  --glow-orange: rgba(251,146,60,0.08) !important;
  --glass-bg: rgba(8,10,22,0.55) !important;
  --glass-border: rgba(255,216,102,0.18) !important;
  --glass-blur: 20px !important;
  --glass-radius: 14px;
  --node-low: #6b5e3a;
  --node-high: #ffd866;
  --glow-halo: rgba(255,216,102,0.06);
  --link-stroke: rgba(255,216,102,0.18);
  /* cosmos 主题文字色覆盖（对抗其他面板的写死 color:#1d1d1f） */
}
/* 对抗 theme-switcher.js 注入的 body:not(.blm-dark){background:#f4efe3!important}（特异性 0,1,1）
   用 body[data-theme="cosmos"]:not(.blm-dark)（0,2,1）压过它，确保深空纯黑底不被暖纸覆盖 */
body[data-theme="cosmos"]:not(.blm-dark){
  --bg0:#000000 !important;
  --bg1:#02030a !important;
  --bg-deep:#000000 !important;
  --ink:#e8e4f0 !important;
  --ink2:rgba(232,228,240,0.62) !important;
  --muted:rgba(232,228,240,0.42) !important;
  --paper:#000000 !important;
  --card-bg:rgba(8,10,22,0.62) !important;
  --panel:rgba(8,10,22,0.62) !important;
  --forest:#ffd866 !important;
  --copper:#ffd866 !important;
  background:#000000 !important;
  background-color:#000000 !important;
  background-image:none !important;
  color:#e8e4f0 !important;
}
[data-theme="cosmos"] body,
[data-theme="cosmos"] .panel,
[data-theme="cosmos"] .func-dock,
[data-theme="cosmos"] .bottom-bar,
[data-theme="cosmos"] .bottom-bar button,
[data-theme="cosmos"] .bb-btn,
[data-theme="cosmos"] .fh-btn,
[data-theme="cosmos"] .func-popup-btn,
[data-theme="cosmos"] button:not(.hs-lang-btn):not(.page-btn),
[data-theme="cosmos"] select,
[data-theme="cosmos"] input:not([type="range"]):not([type="checkbox"]),
[data-theme="cosmos"] textarea,
[data-theme="cosmos"] #msg-input,
[data-theme="cosmos"] [data-active="true"],
[data-theme="cosmos"] .hs-title-zh,
[data-theme="cosmos"] .hs-stat-value,
[data-theme="cosmos"] .hs-list-card--cnea,
[data-theme="cosmos"] .hs-bid-card-title,
[data-theme="cosmos"] .hs-area-badge,
[data-theme="cosmos"] .hs-label-badge,
[data-theme="cosmos"] .msg-user .msg-label,
[data-theme="cosmos"] .settings-content th,
[data-theme="cosmos"] .settings-content td,
[data-theme="cosmos"] .rs-window th,
[data-theme="cosmos"] .rs-window td,
[data-theme="cosmos"] .pj-window th,
[data-theme="cosmos"] .pj-window td,
[data-theme="cosmos"] #search-modal th,
[data-theme="cosmos"] #search-modal td,
[data-theme="cosmos"] #login-overlay h2,
[data-theme="cosmos"] #login-overlay button,
[data-theme="cosmos"] #music-panel,
[data-theme="cosmos"] #color-panel,
[data-theme="cosmos"] #std-panel,
[data-theme="cosmos"] #voice-panel {
  color: var(--ink) !important;
}
[data-theme="cosmos"] .hotspot-panel .hs-stat-value,
[data-theme="cosmos"] .hs-stat-value,
[data-theme="cosmos"] .hotspot-panel .hs-bid-card-title,
[data-theme="cosmos"] .hs-bid-card-title {
  color: #ffd866 !important;
}
/* 对抗 .hotspot-panel .hs-stat-label{color:#4a554d!important}（0,2,0）— 用 .hotspot-panel 前缀提特异性到 0,3,0 */
[data-theme="cosmos"] .hotspot-panel .hs-stat-label,
[data-theme="cosmos"] .hs-stat-label {
  color: rgba(232, 228, 240, 0.78) !important;
}
[data-theme="cosmos"] .hs-label-badge {
  color: #1a0e02 !important;
}
/* 对抗 theme-switcher.js 注入的 body:not(.blm-dark) .bb-btn{color:#1d1d1f!important}（0,2,1）
   用 body[data-theme="cosmos"]:not(.blm-dark) 前缀提到 0,3,1。
   Round 24: 底部栏 cosmos 下文字保持黑色（容器仍是奶白胶囊）。
   **真正的兜底写在 stylesheet 末尾**（特异性 0,4,2），因为末尾 [class*="label"]{color:rgba(0,0,0,0.45)!important} 巨块特异性 0,1,0 但在更靠后位置胜出。
   此处的 0,3,1 不够，需要 0,4,2（html+body 双前缀）才能压过——见文件末尾 Round 24 兜底。 */

/* ── cosmos 主题第二波覆盖（2026-08-02 14:00 补充）── */
/* 1. styles.css 末尾那段 [class*=] 用 !important 锁住的暖纸色：login 页/tab/hint/title/placeholder */
[data-theme="cosmos"] [class*="modal"]:not(.hotspot-panel):not(#panel-l1):not(#panel-l2),
[data-theme="cosmos"] [class*="title"],
[data-theme="cosmos"] [class*="tab"]:not(.hs-tab):not(.theme-dot):not(.faq-tab-brain):not(.faq-tabs-brain),
[data-theme="cosmos"] [class*="hint"],
[data-theme="cosmos"] [class*="label"]:not(.hs-label-badge):not(.hs-area-badge),
[data-theme="cosmos"] [class*="input"],
[data-theme="cosmos"] input:not([type="range"]):not([type="checkbox"]),
[data-theme="cosmos"] textarea {
  color: var(--ink) !important;
}
[data-theme="cosmos"] input::placeholder,
[data-theme="cosmos"] textarea::placeholder,
[data-theme="cosmos"] [class*="input"]::placeholder:not(.xy-input) {
  color: rgba(232,228,240,0.45) !important;
}
[data-theme="cosmos"] [class*="title"] {
  color: #ffd866 !important;  /* 标题用金色高亮 */
}

/* 2. 登录弹窗所有子元素（独立覆盖 login-* 自定义类） */
[data-theme="cosmos"] .login-overlay { color: var(--ink) !important; }
[data-theme="cosmos"] .login-overlay h2,
[data-theme="cosmos"] .login-overlay .login-title,
[data-theme="cosmos"] .login-overlay .login-tab,
[data-theme="cosmos"] .login-overlay .login-help,
[data-theme="cosmos"] .login-overlay .login-submit,
[data-theme="cosmos"] .login-overlay .login-close,
[data-theme="cosmos"] .login-overlay .login-tip,
[data-theme="cosmos"] .login-overlay label,
[data-theme="cosmos"] .login-overlay .login-input,
[data-theme="cosmos"] .login-overlay .login-input::placeholder {
  color: var(--ink) !important;
}
[data-theme="cosmos"] .login-overlay h2,
[data-theme="cosmos"] .login-overlay .login-title { color: #ffd866 !important; }
[data-theme="cosmos"] .login-overlay .login-submit { color: #1a0e02 !important; } /* 金色按钮上深棕字 */

/* 3. floorhome 弹窗（floorhome-panel.js 注入的 inline style 优先级最高，外部无法覆盖） */
/*    只能改 floorhome-panel.js 源码 */

[data-theme="cosmos"] body {
  /* 纯黑底，让 cosmos-bg.js 的星空 canvas 透出来 */
  background: #000000 !important;
}
[data-theme="cosmos"] .panel {
  background: rgba(8,10,22,0.62) !important;
  border-color: rgba(255,216,102,0.18) !important;
  box-shadow: 0 0 30px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,216,102,0.08);
}
[data-theme="cosmos"] .panel-identity,
[data-theme="cosmos"] .l1-status-row {
  border-color: rgba(255,216,102,0.12);
  background: rgba(255,216,102,0.03);
}
/* ── cosmos 主题第三波覆盖（2026-08-02 15:10 补充，针对 chat-area 里 chat-history 内所有 chip/pill/tag）── */
[data-theme="cosmos"] .faq-pill-text { color: #e8e4f0 !important; text-shadow: none !important; }
[data-theme="cosmos"] .faq-pill { background: linear-gradient(135deg, rgba(255,216,102,0.10), rgba(143,182,216,0.12)) !important; border-color: rgba(255,216,102,0.30) !important; }
[data-theme="cosmos"] .faq-toggle-brain { background: rgba(8,10,22,0.55) !important; border-color: rgba(255,216,102,0.18) !important; }
[data-theme="cosmos"] .faq-toggle-brain:hover { background: rgba(255,216,102,0.08) !important; }
[data-theme="cosmos"] #faqBodyBrain { background: rgba(8,10,22,0.62) !important; border-color: rgba(255,216,102,0.18) !important; }
[data-theme="cosmos"] .quick-action-btn { background: rgba(255,255,255,0.04) !important; border-color: rgba(255,216,102,0.18) !important; color: #e8e4f0 !important; }
[data-theme="cosmos"] .quick-action-btn:hover { background: rgba(255,216,102,0.08) !important; border-color: rgba(255,216,102,0.40) !important; }/* chat-area 内 ask-me 行（"试试这样问我"提示）+ 13 个浅绿底 chip */
[data-theme="cosmos"] .ask-me-tip,
[data-theme="cosmos"] .ask-tip,
[data-theme="cosmos"] .ask-me-hint { color: rgba(232,228,240,0.65) !important; }
/* chat-area 中央提问推荐 SPAN chip（"🏭 车间地坪选型" 等） */
[data-theme="cosmos"] .chat-area .ask-chip,
[data-theme="cosmos"] .chat-area .ask-pill,
[data-theme="cosmos"] .chat-area .suggest-chip,
[data-theme="cosmos"] .chat-area .suggestion-chip,
[data-theme="cosmos"] .chat-area [class*="ask-"],
[data-theme="cosmos"] .console [class*="ask-"] {
  color: #e8e4f0 !important;
  background: rgba(255,216,102,0.08) !important;
  border-color: rgba(255,216,102,0.28) !important;
}
/* #panel-l1 .panel-identity .l1-status-text 默认 color:#f4efe3 !important（特异性 0,3,1） */
[data-theme="cosmos"] #panel-l1 .panel-identity .l1-status-text { color: #e8e4f0 !important; }
[data-theme="cosmos"] #panel-l1 .panel-identity .l1-status-label { color: rgba(232,228,240,0.55) !important; }
/* chat-area 中部 chip 容器（#chat-scenarios 内的 .quick-action-btn + inline span chip） */
[data-theme="cosmos"] #chat-scenarios { color: #e8e4f0 !important; }
[data-theme="cosmos"] #chat-scenarios > div > span,
[data-theme="cosmos"] #chat-scenarios span {
  color: #e8e4f0 !important;
  background: rgba(255,216,102,0.08) !important;
  border-color: rgba(255,216,102,0.28) !important;
}
[data-theme="cosmos"] #quick-action-container .quick-action-btn { color: #e8e4f0 !important; background: rgba(255,255,255,0.05) !important; border-color: rgba(255,216,102,0.20) !important; }
[data-theme="cosmos"] #quick-action-container .quick-action-btn:hover { background: rgba(255,216,102,0.12) !important; }

*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}html{zoom:1 !important}body{overflow:hidden;color:var(--ink);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;background:radial-gradient(ellipse at 20% 15%,rgba(31,90,67,0.06),transparent 40%),radial-gradient(ellipse at 85% 70%,rgba(182,100,60,0.05),transparent 40%),radial-gradient(ellipse at 50% 50%,rgba(249,115,22,0.03),transparent 60%),linear-gradient(165deg,var(--bg0),var(--bg1) 50%,var(--bg-deep) 100%);user-select:none;transition:background .6s ease,color .6s ease}.grid-overlay{display:none}#graph{position:fixed;inset:0;z-index:1;display:none;transition:transform .45s cubic-bezier(0.4,0,0.2,1)}@keyframes neb-blink{0%,92%,100%{opacity:1}96%{opacity:.35}}@keyframes neb-cursor{0%,50%,100%{opacity:1}25%,75%{opacity:.2}}@keyframes neb-pulse{0%,100%{transform:scale(1)}50%{transform:scale(0.78)}}@keyframes neb-node-use{0%{opacity:.88}28%{opacity:1}58%{opacity:.9}100%{opacity:1}}.panel{position:fixed;top:20px;bottom:20px;width:362px;z-index:3;padding:16px 18px;border-radius:16px;border:1px solid var(--panel-border);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:0 0 20px rgba(31,90,67,0.06),inset 0 1px 0 rgba(31,90,67,0.08);display:flex;flex-direction:column;overflow:hidden auto;overscroll-behavior:contain;transition:background .6s ease,border-color .6s ease,box-shadow .6s ease}@keyframes panelGlowPulse{0%,100%{box-shadow:0 0 20px rgba(31,90,67,0.06),inset 0 1px 0 rgba(31,90,67,0.08)}50%{box-shadow:0 0 30px rgba(31,90,67,0.10),inset 0 1px 0 rgba(31,90,67,0.12)}}#panel-l1{left:20px}#panel-l2{right:20px}.panel-identity{display:flex;flex-direction:column;gap:10px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.brand-mark{display:none}.brand-copy{display:flex;flex-direction:column;gap:2px}.eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);font-family:ui-monospace,ui-monospace,monospace}.brand-title{font-size:14px;font-weight:600;color:var(--ink)}.quota-indicator{font-size:9px;color:var(--warm);margin-top:2px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.05em;white-space:nowrap}.quota-indicator.low{color:#f66}.quota-indicator.ok{color:var(--warm)}.panel-stats{display:flex;gap:18px;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:9px;color:var(--dim);letter-spacing:.15em;text-transform:uppercase;font-family:ui-monospace,ui-monospace,monospace}.stat-value{font-size:12px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:6px}.stat-value.live{color:var(--warm)}.stat-value .live-dot{width:6px;height:6px;border-radius:50%;background:var(--warm);box-shadow:0 0 8px var(--warm);animation:neb-blink 1.4s ease-in-out infinite}.stream-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.focus-block{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.focus-block[data-state="empty"] .focus-stack{opacity:.55}.focus-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.focus-label{font-size:9px;color:var(--dim);letter-spacing:.18em;text-transform:uppercase;font-family:ui-monospace,ui-monospace,monospace}.focus-depth{font-size:9px;color:var(--dim);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.1em}.focus-stack{display:flex;flex-direction:column;gap:6px}.focus-empty{font-size:11px;color:var(--dim);font-style:italic;letter-spacing:.04em}.focus-frame{display:flex;flex-direction:column;gap:3px;line-height:1.4}.focus-frame-main{font-size:11px;color:var(--ink2);line-height:1.45;word-break:break-word}.focus-frame.top .focus-frame-main{font-size:12px;color:var(--cool);font-weight:600}.focus-frame-main-fallback{color:var(--dim);font-weight:400;font-style:italic;letter-spacing:.02em}.focus-frame.top .focus-frame-main-fallback{color:var(--ink2)}.focus-frame-conclusion{font-size:9px;color:var(--dim);line-height:1.45;word-break:break-word;padding-left:8px;border-left:1px solid var(--line)}.focus-frame.top .focus-frame-conclusion{color:var(--ink2);font-size:10px}.focus-frame-conclusion-earlier{opacity:.7}.focus-frame.top .focus-frame-conclusion-earlier{opacity:.75}.focus-frame-conclusion.just-added,.focus-frame-main.just-added{animation:focus-conclusion-in .6s ease-out}@keyframes focus-conclusion-in{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}.focus-compress-pulse{animation:focus-pulse .8s ease-out}@keyframes focus-pulse{0%{background:color-mix(in srgb,var(--warm) 14%,transparent)}100%{background:transparent}}#settings-update-status[data-state="checking"],#settings-update-status[data-state="downloading"]{color:var(--warm)}#settings-update-status[data-state="available"],#settings-update-status[data-state="ready"]{color:var(--cool)}#settings-update-status[data-state="error"]{color:#e7a4a4}#settings-update-status[data-state="muted"]{color:var(--dim)}.stream-title-text{font-size:13px;font-weight:600;color:var(--ink)}.stream-subtitle{font-size:10px;color:var(--dim);margin-top:2px}.pill{font-size:9px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;padding:3px 8px;border-radius:999px;letter-spacing:.12em;color:var(--cool);border:1px solid color-mix(in srgb,var(--cool) 33%,transparent)}.pill-warm{color:var(--warm);border-color:color-mix(in srgb,var(--warm) 33%,transparent)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid var(--line)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:7px;height:7px;border-radius:50%}.legend-name{font-size:10px;color:var(--ink2);font-family:ui-monospace,ui-monospace,monospace}.legend-count{font-size:10px;color:var(--dim);font-family:ui-monospace,ui-monospace,monospace}.stream{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.stream-inner{display:flex;flex-direction:column;min-height:100%}.panel-actions{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.dash-horse-row{display:flex;align-items:center;gap:6px}.btn-horse{width:36px;height:auto;cursor:pointer;opacity:.7;transition:opacity .3s ease,transform .3s ease;border-radius:6px;margin-left:4px;filter:drop-shadow(0 0 3px rgba(255,215,0,0.2))}.btn-horse:hover{opacity:1;transform:scale(1.1)}.btn-horse:active{transform:scale(0.92)}.btn-chat{width:36px;height:36px;cursor:pointer;opacity:.7;transition:opacity .3s ease,transform .3s ease;border-radius:6px;filter:drop-shadow(0 0 3px rgba(31,90,67,0.2));display:inline-flex;align-items:center;justify-content:center}.btn-chat:hover{opacity:1;transform:scale(1.1)}.btn-chat:active{transform:scale(0.92)}@keyframes pulse-ai{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(31,90,67,0.4)}25%{transform:scale(1.15);box-shadow:0 0 0 8px rgba(31,90,67,0)}50%{transform:scale(1.05);box-shadow:0 0 0 4px rgba(31,90,67,0.15)}75%{transform:scale(1.12);box-shadow:0 0 0 6px rgba(31,90,67,0)}}#btn-chat.pulse{animation:pulse-ai 1.8s ease-in-out infinite;cursor:pointer}#btn-chat.pulse::after{content:'👈';position:absolute;right:-22px;top:-2px;font-size:14px;animation:pulse-hand 1.8s ease-in-out infinite}@keyframes pulse-hand{0%,100%{transform:translateX(0);opacity:.7}50%{transform:translateX(4px);opacity:1}}#blm-vip-btn{animation:pulse-vip 1.8s ease-in-out infinite}@keyframes pulse-vip{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(245,158,11,0.5)}25%{transform:scale(1.12);box-shadow:0 0 0 6px rgba(245,158,11,0)}50%{transform:scale(1.05);box-shadow:0 0 0 3px rgba(245,158,11,0.25)}75%{transform:scale(1.10);box-shadow:0 0 0 5px rgba(245,158,11,0)}}@keyframes pulse-faq-toggle{0%,100%{box-shadow:0 0 0 0 rgba(182,100,60,0.0);background:transparent}50%{box-shadow:0 0 10px 2px rgba(182,100,60,0.35);background:rgba(182,100,60,0.06)}}@keyframes tab-glow-border{0%,100%{box-shadow:0 0 0 2px rgba(182,100,60,0.15),0 0 14px rgba(182,100,60,0.18),inset 0 0 6px rgba(255,255,255,0.08)}50%{box-shadow:0 0 0 3px rgba(182,100,60,0.28),0 0 20px rgba(182,100,60,0.26),inset 0 0 8px rgba(255,255,255,0.12)}}.stream::-webkit-scrollbar,.panel::-webkit-scrollbar{width:6px}.stream::-webkit-scrollbar-thumb,.panel::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.stream-line{padding:11px 0;border-bottom:1px solid var(--line);transition:opacity .5s ease}.stream-line.fading{opacity:1}.line-header{display:flex;align-items:center;gap:8px;margin-bottom:5px}.line-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.line-type{font-size:9px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.line-time{font-size:9px;color:var(--dim);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;margin-left:auto}.line-status{font-size:9px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.04em;padding:2px 7px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink2);background:color-mix(in srgb,var(--panel) 76%,transparent);white-space:nowrap}.line-status.busy{color:var(--warm);border-color:color-mix(in srgb,var(--warm) 48%,transparent);background:color-mix(in srgb,var(--warm) 12%,transparent)}.line-status.failed{color:#e7a4a4;border-color:rgba(224,120,120,0.4);background:rgba(224,120,120,0.08)}.line-text{font-size:12px;line-height:1.6;color:var(--ink);padding-left:13px;word-break:break-word;white-space:pre-wrap}.line-tool{font-size:11px;opacity:.92;padding-left:13px;margin-top:6px;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-tool .tool-spinner{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.4px solid currentColor;border-top-color:transparent;opacity:.9;animation:tool-spin 1.1s linear infinite;flex-shrink:0}.line-tool.done .tool-spinner{animation:none;border-top-color:currentColor;opacity:.5}.line-tool .tool-name{font-weight:500;letter-spacing:.04em;flex-shrink:0}.line-tool .tool-icon{font-size:13px;line-height:1;flex-shrink:0}.line-tool .tool-sep{flex-shrink:0;opacity:.32;font-size:11px;line-height:1}.line-tool .tool-subject{flex:1 1 auto;min-width:0;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:10.5px;letter-spacing:0;color:var(--ink2);opacity:.78;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-tool .tool-status{margin-left:auto;font-size:9px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid transparent;flex-shrink:0}.line-tool .tool-status.success{color:#7fcf8f;border-color:rgba(127,207,143,0.4);background:rgba(127,207,143,0.08)}.line-tool .tool-status.ended{color:var(--ink2);border-color:var(--line-strong);background:color-mix(in srgb,var(--panel) 76%,transparent)}.line-tool .tool-status.failed{color:#e07878;border-color:rgba(224,120,120,0.4);background:rgba(224,120,120,0.08)}.line-tool-detail{font-size:10.5px;color:var(--ink2);margin:4px 0 0 24px;padding:2px 0 2px 10px;border-left:1px solid var(--line-strong,rgba(255,255,255,0.12));white-space:pre-wrap;word-break:break-word;opacity:.82;line-height:1.6;letter-spacing:.01em}@keyframes tool-spin{to{transform:rotate(360deg)}}.line-thinking{font-size:12px;color:var(--ink2);padding-left:13px;display:flex;align-items:center;gap:3px;letter-spacing:.04em}.line-thinking .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.35;animation:think-dot 1.2s ease-in-out infinite}.line-thinking .dot:nth-child(2){animation-delay:.15s}.line-thinking .dot:nth-child(3){animation-delay:.3s}.line-thinking .dot:nth-child(4){animation-delay:.45s}.line-thinking.done .dot{animation:none;opacity:.25}@keyframes think-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.cursor{display:inline-block;width:6px;height:11px;background:var(--warm);margin-left:13px;margin-top:2px;animation:neb-cursor 1s steps(2) infinite;vertical-align:middle}.console{position:fixed;left:402px;right:402px;top:20px;bottom:24px;z-index:4;display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--line-strong);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}#chat-history{flex:1 1 auto;min-height:0;max-height:min(800px,calc(100vh - 140px));overflow-y:auto;background:var(--glass-bg);border-radius:8px}#chat-history.open{max-height:min(800px,calc(100vh - 160px))}.mic-btn{flex:0 0 auto;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--dim);font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .18s ease,background .18s ease,border-color .18s ease}.mic-btn:hover{color:var(--cool);background:rgba(143,182,216,0.1);border-color:var(--cool)}#chat-messages{display:flex;flex-direction:column;gap:8px;min-height:0;max-height:min(800px,calc(100vh - 180px));overflow-y:auto;padding:14px 18px 10px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}#chat-messages::-webkit-scrollbar{width:6px}#chat-messages::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.media-image{display:flex;flex-direction:column;align-items:flex-start;margin:6px 0}.media-image img{border-radius:8px;max-width:min(100%,480px);max-height:400px;object-fit:contain;background:rgba(0,0,0,0.08);transition:opacity .2s;cursor:zoom-in}.media-image img:hover{opacity:.92}.msg{max-width:85%;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.55;word-break:break-word;border:1px solid var(--line);user-select:text;-webkit-user-select:text;cursor:text;background:var(--msg-bg,rgba(255,255,255,0.06))}
/* 亮色/暖纸主题下：贾维斯(.ai)与用户气泡锁定暖色玻璃底，避免回退到冷白半透明与暖纸不搭 */
body:not(.blm-dark):not([data-theme="cosmos"]) .msg.msg-jarvis,
body:not(.blm-dark):not([data-theme="cosmos"]) .msg.msg-user{background:rgba(255,253,248,0.78) !important;border-color:rgba(182,100,60,0.22) !important}.msg-user{align-self:flex-end;color:var(--ink,#1d1d1f);border-color:color-mix(in srgb,var(--warm) 25%,transparent);position:relative;z-index:10;text-shadow:none}.msg-jarvis{align-self:flex-start;color:var(--ink,#1d1d1f);border-color:color-mix(in srgb,var(--cool) 25%,transparent);position:relative;z-index:10;text-shadow:none}.msg-external{align-self:center;color:rgba(255,255,255,0.85);border-color:var(--line-strong);max-width:78%;position:relative;z-index:10;text-shadow:0 1px 6px rgba(0,0,0,0.4)}.msg-body{font-size:12px;line-height:1.45}.msg-body p{margin:0;white-space:normal}.msg-label{display:block;margin-bottom:3px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:1;color:#000}
.msg-time{display:block;margin-top:4px;font-size:11px;line-height:1.2;color:#8a8f8a;text-align:right;letter-spacing:.02em;opacity:1;text-shadow:none;user-select:text}.msg-user .msg-label{color:#000 !important;opacity:1 !important}.msg-body,.msg-body *{user-select:text;-webkit-user-select:text}.msg-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.msg-action-btn{display:inline-flex;gap:4px;padding:4px 8px;font-size:10px;border-radius:6px;background:var(--bg1);color:#1d1d1f;font-weight:600;border:1px solid var(--line-strong);cursor:pointer;align-items:center;transition:background .15s,box-shadow .15s}.msg-action-btn:hover{background:color-mix(in srgb,var(--bg1) 70%,var(--ink));box-shadow:0 1px 3px rgba(0,0,0,0.15)}.msg-body>*+*{margin-top:.55em}.msg-body p{margin:0;white-space:normal}.msg-body h1,.msg-body h2,.msg-body h3,.msg-body h4,.msg-body h5,.msg-body h6{margin:0;line-height:1.35;font-weight:700}.msg-body h1{font-size:1.28em}.msg-body h2{font-size:1.18em}.msg-body h3{font-size:1.1em}.msg-body h4,.msg-body h5,.msg-body h6{font-size:1em}.msg-body ul,.msg-body ol{margin:0;padding-left:1.3em}.msg-body li+li{margin-top:.2em}.msg-body blockquote{margin:0;padding-left:.8em;border-left:2px solid var(--line-strong);color:var(--ink2)}.msg-body code{padding:.08em .36em;border-radius:6px;background:color-mix(in srgb,var(--bg0) 68%,transparent);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:.95em}.msg-body pre{margin:0;padding:.7em .85em;border-radius:8px;background:color-mix(in srgb,var(--bg0) 82%,transparent);border:1px solid var(--line);overflow-x:auto}.msg-body pre code{padding:0;background:transparent;border-radius:0}.msg-body a{color:inherit;text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:.16em}.msg-body strong{font-weight:700}.msg-body em{font-style:italic}#input-row{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--line)}.prompt-mark{font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:13px;color:var(--warm);animation:neb-blink 1.6s ease-in-out infinite}#prompt-toggle{cursor:pointer;user-select:none;transition:transform .3s ease;flex:0 0 auto}.console.collapsed{height:4px !important;min-height:0 !important;top:auto !important;bottom:0 !important;left:0 !important;right:0 !important;opacity:0;overflow:hidden;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;pointer-events:auto;z-index:4}.console.collapsed #msg-input,.console.collapsed .mic-btn,.console.collapsed #send-btn,.console.collapsed .quick-btn{display:none !important}.console.collapsed #input-row{padding:6px 14px;border-top-color:transparent}.console.collapsed #chat-history{max-height:0 !important;overflow:hidden;opacity:0;flex:0}#msg-input{flex:1;min-width:0;background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;font-size:13px;box-shadow:0 1px 3px rgba(0,0,0,0.06)}#msg-input::placeholder{color:var(--dim);font-size:12px}#send-btn{padding:10px 22px;border-radius:10px;border:0;background:var(--warm);color:var(--bg0);font-size:11px;font-weight:700;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.1em;cursor:pointer;transition:transform .18s ease,opacity .18s ease}#send-btn:hover{transform:translateY(-1px)}#send-btn:active{transform:translateY(0);opacity:.85}.quick-btn{flex:1;padding:5px 10px;background:rgba(255,255,255,0.04);border:1px solid var(--line-strong);border-radius:6px;color:#fbbf24 !important;font-size:12px;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-weight:500;letter-spacing:.3px;position:relative;z-index:99999}.quick-btn:hover{background:rgba(251,191,36,0.1);border-color:rgba(251,191,36,0.3);color:#fbbf24 !important}#tip{position:fixed;z-index:200;display:none;max-width:260px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel);backdrop-filter:blur(20px);color:var(--ink);font-size:12px;line-height:1.55;word-break:break-word;pointer-events:none}.tip-type{display:inline-block;margin-bottom:4px;color:var(--dim);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.theme-switcher{width:fit-content;max-width:100%;display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg0);pointer-events:auto}.theme-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,255,255,0.18);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.theme-dot:hover{transform:scale(1.15)}.theme-dot.active{box-shadow:0 0 0 2px var(--ink)}.theme-dot[data-t="midnight"]{background:linear-gradient(135deg,#0f1822,#d39872)}.theme-dot[data-t="phosphor"]{background:linear-gradient(135deg,#0a120c,#9fe09a)}.theme-dot[data-t="violet"]{background:linear-gradient(135deg,#161128,#b098f0)}.theme-dot[data-t="rose"]{background:linear-gradient(135deg,#24151f,#f2c27a)}.theme-dot[data-t="arctic"]{background:linear-gradient(135deg,#eaeef2,#b85a3a)}.theme-dot[data-t="sand"]{background:linear-gradient(135deg,#eae2d2,#c8502e)}
.theme-dot[data-t="cosmos"]{background:radial-gradient(circle at 30% 30%,#fff,#ffd866 35%,#1a0e02 100%)}.reset-view{position:relative;z-index:1;padding:10px 14px;border-radius:16px;border:1px solid var(--line-strong);background:var(--panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--ink);font-size:10px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease,color .18s ease,background .6s ease,border-color .6s ease}.reset-view.visible{opacity:1;transform:translateY(0)}.reset-view:hover{color:var(--warm)}.physics-control{position:relative;z-index:1;width:100%;border-radius:16px;border:1px solid var(--line-strong);background:var(--panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease,background .6s ease,border-color .6s ease}.physics-control.visible{opacity:1;transform:translateY(0)}.physics-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit}.physics-toggle-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,ui-monospace,monospace}.physics-toggle-icon{color:var(--dim);font-size:12px;transition:transform .2s ease,color .2s ease}.physics-control.open .physics-toggle-icon{transform:rotate(180deg);color:var(--ink)}.physics-panel{max-height:0;overflow:hidden;transition:max-height .28s ease}.physics-control.open .physics-panel{max-height:240px}.physics-panel-inner{padding:0 12px 12px;border-top:1px solid var(--line)}.physics-field{padding-top:12px}.physics-field-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;gap:12px}.physics-field-label,.physics-field-value{font-size:10px;font-family:ui-monospace,ui-monospace,monospace}.physics-field-label{color:var(--ink2);letter-spacing:.08em;text-transform:uppercase}.physics-field-value{color:var(--warm)}.physics-slider{width:100%;accent-color:var(--warm);cursor:pointer;background:transparent}.voice-btn{margin-left:auto;flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--dim);font-size:13px;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}.voice-btn:hover{color:var(--ink);background:var(--line)}.voice-btn.active{color:var(--cool);border-color:var(--cool);background:rgba(143,182,216,0.08)}.video-btn{display:none;flex-shrink:0;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--dim);font-size:13px;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}.video-btn:hover{color:var(--ink);background:var(--line)}.video-btn.active{color:var(--warm);border-color:var(--warm);background:rgba(211,152,114,0.08)}.settings-btn{margin-left:auto;flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--dim);font-size:14px;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}.settings-btn:hover{color:var(--ink);background:var(--line)}.wechat-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0;border:1px solid transparent;border-radius:6px;font-size:0;cursor:pointer;color:var(--dim);transition:all .18s ease}.wechat-btn:hover{color:#07c160;background:rgba(7,193,96,0.08);border-color:rgba(7,193,96,0.2)}.credit-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0;border:0;border-radius:6px;font-size:16px;cursor:pointer;color:var(--dim);transition:all .15s ease}.credit-btn:hover{color:#ffd700;background:rgba(255,215,0,0.1)}.fav-btn,.search-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0;border:0;border-radius:6px;font-size:15px;cursor:pointer;color:var(--dim);transition:all .15s ease}.fav-btn:hover{color:#ffd700;background:rgba(255,215,0,0.1)}background:rgba(31,90,67,0.08)}.sub-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0;border:0;border-radius:6px;font-size:14px;cursor:pointer;color:var(--dim);transition:all .15s ease}.sub-btn:hover{color:#f59e0b;background:rgba(245,158,11,0.1)}.cost-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0;border:0;border-radius:6px;font-size:15px;cursor:pointer;color:var(--dim);transition:all .15s ease}.cost-btn:hover{color:var(--forest);background:rgba(31,90,67,0.1)}.bi-btn{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--dim);transition:all .15s ease;cursor:pointer;border-radius:6px}.bi-btn:hover{color:#00ffc8;background:rgba(0,255,200,0.1)}.toolbar-row{display:flex;gap:4px;flex-wrap:wrap}.toolbar-row-1{justify-content:flex-start}.toolbar-row-2{justify-content:flex-start}.tool-btn{display:flex;align-items:center;gap:3px;padding:3px 7px;height:24px;border:0;border-radius:5px;background:transparent;color:var(--dim);cursor:pointer;transition:all .12s ease;font-size:12px;font-family:inherit}.tool-btn:hover{background:rgba(255,255,255,0.08);color:var(--ink)}.tool-icon{font-size:12px;line-height:1}.tool-label{font-size:12px;white-space:nowrap;color:var(--dim)}.tool-btn:hover .tool-label{color:var(--ink)}.tool-btn-highlight .tool-label{color:#e63946 !important;font-weight:600}.tool-btn-highlight:hover .tool-label{color:#c1121f !important}#color-btn .tool-label{color:#e74c3c !important}.credit-modal{width:420px !important;height:auto !important;max-height:calc(100vh - 60px) !important;overflow-y:auto}.credit-modal::-webkit-scrollbar{width:4px}.credit-modal::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}.credit-plan-btn:hover{border-color:#ffd700 !important;background:rgba(255,215,0,0.06) !important}.settings-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.settings-overlay[hidden]{display:none}.settings-modal{width:600px;height:560px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);border-radius:16px;border:1px solid var(--line-strong);background:var(--bg1);backdrop-filter:blur(24px);overflow:hidden;display:flex;flex-direction:column}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:1px solid var(--line)}.settings-title{font-size:12px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}.settings-close{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:6px;background:transparent;color:var(--dim);font-size:16px;cursor:pointer;transition:color .15s ease}.settings-close:hover{color:var(--ink)}.settings-section{padding:14px 18px 10px;border-bottom:1px solid var(--line)}.settings-section:last-child{border-bottom:0}.settings-section-label{font-size:10px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.12em;text-transform:uppercase;color:var(--warm);margin-bottom:12px}.settings-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.settings-label{font-size:11px;color:var(--ink2);min-width:68px;flex-shrink:0}.settings-value{font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;color:var(--ink)}.settings-select,.settings-input{flex:1;min-width:0;width:0;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg0);color:var(--ink);font-size:11px;font-family:inherit;outline:0;transition:border-color .15s ease}.settings-select:focus,.settings-input:focus{border-color:var(--cool)}.settings-row-action{display:flex;align-items:center;gap:10px;margin-top:4px}.settings-save-btn{height:28px;padding:0 14px;border-radius:8px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.08em;cursor:pointer;transition:background .15s ease,color .15s ease}.settings-save-btn:hover{background:var(--line)}.settings-save-btn:disabled{opacity:.45;cursor:default}.settings-feedback{font-size:11px;color:var(--cool);font-family:ui-monospace,ui-monospace,monospace}.settings-feedback.error{color:var(--warm)}.settings-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex-shrink:0}.settings-toggle input[type="checkbox"]{position:absolute;opacity:0;width:0;height:0}.settings-toggle-track{display:inline-block;width:36px;height:20px;border-radius:10px;background:var(--line-strong);position:relative;transition:background .2s ease}.settings-toggle-track::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--ink2);transition:transform .2s ease,background .2s ease}.settings-toggle input:checked+.settings-toggle-track{background:var(--cool)}.settings-toggle input:checked+.settings-toggle-track::after{transform:translateX(16px);background:var(--bg)}.settings-config-row{display:flex;align-items:baseline;gap:10px;padding:3px 0}.settings-config-type{font-size:10px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;color:var(--ink2);width:32px;flex-shrink:0;text-transform:uppercase;letter-spacing:.06em}.settings-config-info{font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;color:var(--ink);flex:1}.settings-config-dot{font-size:10px;flex-shrink:0}.settings-config-dot.active{color:var(--cool)}.settings-config-dot.inactive{color:var(--dim)}.settings-body{display:flex;flex:1;min-height:0;overflow:hidden}.settings-nav{width:112px;flex-shrink:0;border-right:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.settings-nav-item{text-align:left;padding:7px 14px;font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;color:var(--ink2);background:transparent;border:0;cursor:pointer;letter-spacing:.04em;transition:color .15s ease,background .15s ease;border-radius:0}.settings-nav-item:hover{color:var(--ink);background:var(--line)}.settings-nav-item.active{color:var(--cool);background:rgba(143,182,216,0.08);border-right:2px solid var(--cool)}.settings-content{flex:1;min-width:0;overflow-y:auto;padding-bottom:6px}.settings-tab{display:none}.settings-tab.active{display:block}.settings-content::-webkit-scrollbar,.settings-nav::-webkit-scrollbar{width:4px}.settings-content::-webkit-scrollbar-track,.settings-nav::-webkit-scrollbar-track{background:transparent}.settings-content::-webkit-scrollbar-thumb,.settings-nav::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}.settings-content::-webkit-scrollbar-thumb:hover,.settings-nav::-webkit-scrollbar-thumb:hover{background:var(--dim)}.settings-section-action{display:flex;align-items:center;gap:10px;flex-direction:row;padding-top:10px}.settings-platform-status{font-size:10px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;margin-bottom:8px;height:14px}.settings-platform-status.ok{color:var(--cool)}.settings-platform-status.miss{color:var(--dim)}.settings-hint{font-size:11px;color:var(--dim);line-height:1.6;margin-bottom:14px}.voice-panel{width:100%;margin-bottom:14px;background:var(--panel);border:0;border-radius:0;padding:14px 0 10px;display:flex;flex-direction:column;align-items:center;gap:10px;animation:scale-up .22s ease}#voice-canvas{display:block;width:min(220px,78%);aspect-ratio:1;height:auto;border-radius:50%;cursor:pointer;image-rendering:auto}.voice-status{font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;color:var(--dim);letter-spacing:.08em;min-height:16px;transition:color .3s ease}.voice-status.listening{color:#78c8ff}.voice-status.recognizing{color:#a0e0ff}.voice-status.processing{color:#b898f8}#voice-whisper-svc-status[data-state="running"]{color:#6fcf97}#voice-whisper-svc-status[data-state="starting"]{color:#f2c94c}#voice-whisper-svc-status[data-state="error"]{color:var(--warm)}#voice-whisper-svc-status[data-state="stopped"]{color:var(--ink2)}.voice-transcript{font-size:11px;color:var(--ink2);max-width:220px;text-align:center;line-height:1.55;min-height:16px;word-break:break-all}.video-panel{position:fixed;right:16px;top:16px;bottom:16px;width:0;overflow:hidden;z-index:4;border-radius:16px;background:color-mix(in srgb,var(--bg-deep) 92%,black);border:1px solid transparent;opacity:0;pointer-events:none;display:flex;flex-direction:column;transition:width .45s cubic-bezier(0.4,0,0.2,1),opacity .35s ease,border-color .35s ease}body.video-mode .video-panel{width:calc(85vw - 32px);opacity:1;pointer-events:auto;border-color:var(--line-strong)}.image-panel{position:fixed;left:16px;top:16px;bottom:16px;width:0;overflow:hidden;z-index:4;border-radius:16px;background:color-mix(in srgb,var(--bg-deep) 88%,black);border:1px solid transparent;opacity:0;pointer-events:none;display:flex;flex-direction:column;transition:width .45s cubic-bezier(0.4,0,0.2,1),opacity .35s ease,border-color .35s ease}body.image-mode .image-panel{width:calc(48vw - 32px);opacity:1;pointer-events:auto;border-color:var(--line-strong)}.media-stage-head{flex:0 0 auto;min-width:260px;height:46px;padding:0 14px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.media-stage-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2);font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.08em;text-transform:uppercase}.video-surface,.image-surface{position:relative;flex:1 1 auto;min-width:260px;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.video-backdrop{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(28px) brightness(0.28) saturate(1.4);transform:scale(1.12);z-index:0;pointer-events:none;transition:opacity .4s ease;opacity:0}.video-surface.has-media .video-backdrop{opacity:1}#video-feed,#image-display{position:relative;z-index:1;display:block;border:0}#video-feed{width:100%;height:100%;object-fit:contain;background:transparent}#video-feed[hidden]{display:none}#video-frame{position:relative;z-index:1;display:block;border:0;width:100%;aspect-ratio:16 / 9;max-height:100%;height:auto}#video-frame[hidden]{display:none}#image-display{width:100%;height:100%;object-fit:contain;padding:18px}.video-empty,.image-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.08em;pointer-events:none}.video-surface.has-media .video-empty,.image-surface.has-media .image-empty{display:none}.video-exit-btn,.image-exit-btn{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;border:1px solid var(--line-strong);background:var(--panel);backdrop-filter:blur(12px);color:var(--ink2);cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.video-exit-btn:hover,.image-exit-btn:hover{color:var(--ink);background:var(--line-strong)}body.video-mode .console{left:16px;right:calc(85vw + 8px)}body.video-mode #graph{transform:translateX(-26vw)}body.image-mode #panel-l1{transform:translateX(calc(-100% - 20px))}body.image-mode #panel-l2{transform:translateX(calc(100% + 20px))}body.image-mode .console{left:calc(48vw + 8px);right:16px}body.image-mode #graph{transform:translateX(18vw)}body.video-mode .panel-tab,body.image-mode .panel-tab{opacity:0;pointer-events:none;transition:opacity .3s ease}.panel-tab{position:fixed;top:50%;transform:translateY(-50%);z-index:10;width:20px;height:60px;background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line-strong);color:var(--dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;transition:left .38s cubic-bezier(0.4,0,0.2,1),right .38s cubic-bezier(0.4,0,0.2,1),color .18s ease,background .18s ease,border-color .18s ease,background .6s ease}.panel-tab:hover{color:var(--ink);background:color-mix(in srgb,var(--panel) 85%,var(--cool) 15%);border-color:color-mix(in srgb,var(--cool) 40%,transparent)}.panel-tab-left{left:382px;border-radius:0 8px 8px 0;border-left:0}.panel-tab-right{right:382px;border-radius:8px 0 0 8px;border-right:0}.panel-tab-left::before{content:"‹"}.panel-tab-right::before{content:"›"}body.l1-collapsed #panel-l1{transform:translateX(calc(-100% - 20px))}body.l1-collapsed .panel-tab-left{left:0}body.l1-collapsed .panel-tab-left::before{content:"›"}body.l1-collapsed .console{left:24px}body.l2-collapsed #panel-l2{transform:translateX(calc(100% + 20px))}body.l2-collapsed .panel-tab-right{right:0}body.l2-collapsed .panel-tab-right::before{content:"‹"}body.l2-collapsed .console{right:24px}@media(max-width:1180px){.panel{width:300px}#panel-l2{right:20px}.console{left:340px;right:340px}.panel-tab-left{left:320px}.panel-tab-right{right:320px}body.l1-collapsed .console{left:24px}body.l2-collapsed .console{right:24px}}@media(max-width:900px){.panel{width:260px}.console{left:300px;right:300px}.panel-tab-left{left:280px}.panel-tab-right{right:280px}body.l1-collapsed .console{left:16px}body.l2-collapsed .console{right:16px}.func-dock.open{height:200px}.func-dock.open .func-dock-track{height:200px;padding:2px 6px}.dock-btn{font-size:10px !important;padding:4px 6px !important}.dock-btn .dock-label{font-size:8px !important}}@media(max-width:780px){.panel{display:none}.panel-tab{display:none}.console{left:16px;right:16px}.func-dock.open{height:180px}.func-dock.open .func-dock-track{height:180px}}@media(max-width:480px){.bottom-bar{padding:2px 4px !important}.bottom-bar-inner{gap:4px !important}.bb-btn-main{font-size:9px !important;padding:3px 8px !important;min-width:0 !important}.bb-btn-main span:first-child{font-size:12px !important}.bb-btn-main span:nth-child(3){font-size:9px !important}.bb-btn-main span:nth-child(4){display:none !important}.bb-icon-group{gap:2px !important}.bb-icon-item{transform:scale(0.8)}.bb-icon-label{font-size:8px !important}.bb-divider{margin:0 2px !important}.console{left:0 !important;right:0 !important}#input-row{padding:6px 8px !important;gap:4px !important}#msg-input{font-size:14px !important;padding:8px 10px !important}.quick-btn{font-size:10px !important;padding:3px 6px !important}#send-btn{font-size:11px !important;padding:6px 12px !important}.mic-btn{font-size:14px !important;width:30px !important;height:30px !important}.prompt-mark{font-size:12px !important}.func-dock{max-width:100vw !important}.func-dock-track{overflow-x:auto !important;-webkit-overflow-scrolling:touch;gap:2px !important;padding:4px !important}.dock-btn{flex:0 0 auto !important;min-width:44px !important;padding:4px 6px !important;font-size:10px !important}.dock-btn .dock-label{font-size:7px !important}.login-overlay{align-items:flex-end !important}.login-overlay>div{width:100vw !important;max-width:100vw !important;border-radius:16px 16px 0 0 !important;margin:0 !important;padding:20px 16px !important;max-height:80vh !important;overflow-y:auto !important}#floorhome-overlay>div{width:100vw !important;height:100vh !important;max-width:100vw !important;max-height:100vh !important;border-radius:0 !important}.panel-overlay>div{width:95vw !important;max-width:95vw !important}}.music-panel{position:fixed;right:16px;top:16px;bottom:16px;width:0;overflow:hidden;z-index:4;border-radius:16px;background:color-mix(in srgb,var(--bg-deep) 92%,black);border:1px solid transparent;opacity:0;pointer-events:none;display:flex;flex-direction:column;transition:width .45s cubic-bezier(0.4,0,0.2,1),opacity .35s ease,border-color .35s ease}body.music-mode .music-panel{width:360px;opacity:1;pointer-events:auto;border-color:var(--line-strong)}body.music-mode #panel-l2{transform:translateX(calc(100% + 20px))}body.music-mode .console{right:calc(360px + 32px)}.music-exit-btn{flex:0 0 auto;background:0;border:0;cursor:pointer;color:var(--dim);font-size:16px;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:color .18s ease,background .18s ease}.music-exit-btn:hover{color:var(--ink);background:var(--line-strong)}.music-stage{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;padding:16px 20px 0;min-width:320px}.music-turntable{position:relative;flex:0 0 auto;width:220px;height:220px;margin:0 auto 12px}.music-vinyl{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,#222 0,#111 38%,#0a0a0a 65%,#141414 100%);box-shadow:0 0 0 2px rgba(255,255,255,0.04),0 6px 32px rgba(0,0,0,0.65);will-change:transform}.music-groove{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,0.05);top:50%;left:50%;transform:translate(-50%,-50%)}.music-groove-1{width:91%;height:91%}.music-groove-2{width:76%;height:76%}.music-groove-3{width:61%;height:61%}.music-groove-4{width:46%;height:46%}.music-cover{position:absolute;width:32%;height:32%;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;background:hsl(220,45%,32%);background-size:cover;background-position:center;overflow:hidden;z-index:1}.music-cover-title{font-size:8px;font-weight:600;color:rgba(255,255,255,0.9);text-align:center;line-height:1.2;padding:0 3px;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.music-cover-artist{font-size:7px;color:rgba(255,255,255,0.55);text-align:center;padding:0 3px;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.music-spindle{position:absolute;width:7px;height:7px;border-radius:50%;background:#2a2a2a;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;box-shadow:0 0 0 1px rgba(255,255,255,0.12)}.music-tonearm-group{position:absolute;right:-8px;top:-8px;width:80px;height:170px;transform-origin:38px 20px;transform:rotate(24deg);transition:transform 1.6s cubic-bezier(0.4,0,0.2,1);z-index:3}body.music-playing .music-tonearm-group{transform:rotate(3deg)}.music-tonearm-pivot{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--ink2);top:13px;left:31px;box-shadow:0 0 0 2px rgba(255,255,255,0.08),0 2px 6px rgba(0,0,0,0.5);z-index:2}.music-arm-shaft{position:absolute;width:3px;background:linear-gradient(to bottom,var(--ink2) 0,color-mix(in srgb,var(--ink2) 70%,transparent) 100%);top:20px;left:38px;height:106px;border-radius:2px;transform:skewX(-2deg)}.music-headshell{position:absolute;width:14px;height:8px;background:var(--ink2);border-radius:2px 2px 4px 4px;bottom:40px;left:32px;opacity:.85}.music-stylus{position:absolute;width:2px;height:7px;background:var(--cool);border-radius:0 0 2px 2px;bottom:-7px;left:50%;transform:translateX(-50%)}@keyframes vinyl-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}body.music-playing .music-vinyl{animation:vinyl-spin 1.8s linear infinite}.music-lyrics-pane{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;min-height:0;position:relative}.music-lyrics-pane::-webkit-scrollbar{display:none}.music-lyrics-scroll{display:flex;flex-direction:column;gap:10px;padding:48px 0}.lrc-line{text-align:center;font-size:13px;color:var(--dim);padding:0 20px;line-height:1.55;transition:color .3s ease,transform .3s ease,font-size .3s ease}.lrc-line.active{color:var(--ink);font-size:15px;font-weight:500;transform:scale(1.04)}.music-no-lyrics{text-align:center;color:var(--dim);font-size:12px;padding:28px 0}.music-footer{flex:0 0 auto;padding:10px 20px 18px;border-top:1px solid var(--line);min-width:320px}.music-meta{text-align:center;margin-bottom:8px}.music-meta-title{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-meta-artist{font-size:11px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.music-progress-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.music-time{font-size:11px;color:var(--dim);flex:0 0 auto;font-variant-numeric:tabular-nums;min-width:32px;text-align:center}.music-seek{flex:1;-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background:var(--line-strong);outline:0;cursor:pointer}.music-seek::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--cool);cursor:pointer}.music-controls-row{display:flex;align-items:center;justify-content:center;gap:8px}.music-ctrl{background:0;border:0;cursor:pointer;color:var(--ink2);font-size:14px;padding:5px 8px;border-radius:8px;transition:color .18s ease,background .18s ease;line-height:1}.music-ctrl:hover{color:var(--ink);background:var(--line)}.music-ctrl-play{font-size:18px;color:var(--cool);padding:5px 12px}.music-ctrl-play:hover{color:var(--ink)}.music-vol{-webkit-appearance:none;appearance:none;width:56px;height:3px;border-radius:2px;background:var(--line-strong);outline:0;cursor:pointer;margin-left:4px}.music-vol::-webkit-slider-thumb{-webkit-appearance:none;width:8px;height:8px;border-radius:50%;background:var(--ink2);cursor:pointer}.music-btn{display:none;background:0;border:0;cursor:pointer;color:var(--dim);font-size:16px;width:28px;height:28px;border-radius:8px;align-items:center;justify-content:center;transition:color .18s ease,background .18s ease;padding:0;flex:0 0 auto}.music-btn:hover{color:var(--ink);background:var(--line)}.music-btn.active{color:var(--cool)}.hotspot-panel{position:fixed;left:16px;top:16px;bottom:16px;width:0;overflow:hidden;z-index:4;border-radius:16px;background:rgba(255,251,243,0.85);border:1px solid transparent;opacity:0;pointer-events:none;display:flex;flex-direction:column;transition:width .45s cubic-bezier(0.4,0,0.2,1),opacity .35s ease,border-color .35s ease}body.hotspot-mode{zoom:1 !important}body.hotspot-mode .hotspot-panel{position:fixed;left:0;top:0;width:100vw;height:100vh;border-radius:0;border:0;opacity:1;pointer-events:auto;z-index:200}body.hotspot-mode .settings-modal{display:none !important}body.hotspot-mode .hotspot-panel.hs-booting .hs-header,body.hotspot-mode .hotspot-panel.hs-booting .hs-stat,body.hotspot-mode .hotspot-panel.hs-booting .hs-list-card,body.hotspot-mode .hotspot-panel.hs-booting .hs-heatmap-container,body.hotspot-mode .hotspot-panel.hs-booting .hs-feed-bar,body.hotspot-mode .hotspot-panel.hs-booting .hs-ticker-bar{opacity:0;transform:translateY(8px);animation:hs-glitch-in 620ms cubic-bezier(0.2,0.9,0.2,1) forwards;animation-delay:var(--hs-boot-delay,0ms);will-change:transform,opacity,filter,clip-path}body.hotspot-mode .hotspot-panel.hs-booting .hs-header{--hs-boot-delay:40ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-stat:nth-child(1){--hs-boot-delay:130ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-stat:nth-child(2){--hs-boot-delay:180ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-stat:nth-child(3){--hs-boot-delay:230ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-stat:nth-child(4){--hs-boot-delay:280ms}body.hotspot-mode .hotspot-panel.hs-booting #hs-douyin-card{--hs-boot-delay:330ms}body.hotspot-mode .hotspot-panel.hs-booting #hs-xhs-card{--hs-boot-delay:430ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-heatmap-container{--hs-boot-delay:500ms}body.hotspot-mode .hotspot-panel.hs-booting #hs-wechat-card{--hs-boot-delay:760ms}body.hotspot-mode .hotspot-panel.hs-booting #hs-weibo-card{--hs-boot-delay:860ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-feed-bar{--hs-boot-delay:1000ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-ticker-bar{--hs-boot-delay:1140ms}body.hotspot-mode .hotspot-panel.hs-booting .hs-list-card,body.hotspot-mode .hotspot-panel.hs-booting .hs-heatmap-container,body.hotspot-mode .hotspot-panel.hs-booting .hs-aux-box,body.hotspot-mode .hotspot-panel.hs-booting .hs-feed-card{position:relative}body.hotspot-mode .hotspot-panel.hs-booting .hs-list-card::after,body.hotspot-mode .hotspot-panel.hs-booting .hs-heatmap-container::after,body.hotspot-mode .hotspot-panel.hs-booting .hs-aux-box::after,body.hotspot-mode .hotspot-panel.hs-booting .hs-feed-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0,rgba(120,210,255,0.22) 48%,transparent 100%),repeating-linear-gradient(0,rgba(255,255,255,0.04) 0 1px,transparent 1px 5px);mix-blend-mode:screen;opacity:0;transform:translateX(-120%);animation:hs-signal-sweep 560ms ease-out forwards;animation-delay:calc(var(--hs-boot-delay, 0ms) + 80ms)}@keyframes hs-glitch-in{0%{opacity:0;transform:translateY(10px) skewX(-0.8deg);filter:brightness(1.9) contrast(1.35) saturate(0.6);clip-path:inset(42% 0 44% 0)}14%{opacity:.9;transform:translateY(-1px) translateX(-3px);filter:brightness(2.25) contrast(1.6) saturate(1.35);clip-path:inset(0 0 72% 0)}22%{opacity:.35;transform:translateY(4px) translateX(3px);clip-path:inset(66% 0 0 0)}34%{opacity:1;transform:translateY(0) translateX(-1px);filter:brightness(1.35) contrast(1.18) saturate(1.1);clip-path:inset(0 0 0 0)}46%{opacity:.72;transform:translateY(1px);filter:brightness(1.8) contrast(1.35)}100%{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0)}}@keyframes hs-signal-sweep{0%{opacity:0;transform:translateX(-120%)}18%{opacity:.75}100%{opacity:0;transform:translateX(120%)}}@media(prefers-reduced-motion:reduce){body.hotspot-mode .hotspot-panel.hs-booting .hs-header,body.hotspot-mode .hotspot-panel.hs-booting .hs-stat,body.hotspot-mode .hotspot-panel.hs-booting .hs-list-card,body.hotspot-mode .hotspot-panel.hs-booting .hs-heatmap-container,body.hotspot-mode .hotspot-panel.hs-booting .hs-feed-bar,body.hotspot-mode .hotspot-panel.hs-booting .hs-ticker-bar{opacity:1;transform:none;animation:none}}body.hotspot-mode #panel-l1{transform:translateX(calc(-100% - 20px))}body.hotspot-mode #panel-l2{transform:translateX(calc(100% + 20px))}body.hotspot-mode .console{display:none}body.hotspot-mode #graph{display:none}body.hotspot-mode #acui-host,body.hotspot-mode #acui-center-host,body.hotspot-mode #acui-floating-host,body.hotspot-mode #acui-stage-host{display:none !important}body.hotspot-mode .panel-tab{opacity:0;pointer-events:none;transition:opacity .3s ease}body.doc-panel-mode #panel-l1{transform:translateX(calc(-100% - 20px))}body.doc-panel-mode #panel-l2{transform:translateX(calc(100% + 20px))}body.doc-panel-mode .console{left:calc(50vw + 8px);right:16px}body.doc-panel-mode #graph{transform:none}body.doc-panel-mode .panel-tab{opacity:0;pointer-events:none;transition:opacity .3s ease}body.hotspot-mode>#voice-panel,body.video-mode>#voice-panel{position:fixed;z-index:300;width:auto;margin:0;flex-direction:row;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;border:1px solid var(--line-strong);background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);top:20px;animation:none}body.hotspot-mode>#voice-panel{display:none;left:calc(85vw + 12px);right:20px}body.video-mode>#voice-panel{left:20px;right:calc(85vw + 12px)}body.hotspot-mode>#voice-panel #voice-canvas,body.video-mode>#voice-panel #voice-canvas{width:56px !important;flex-shrink:0}.hs-header{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:0 16px;height:46px;border-bottom:1px solid var(--line);min-width:0;background:transparent}.hs-brand{display:flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap}.hs-brand-name{font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:11px;font-weight:600;color:var(--cool);letter-spacing:.06em}.hs-brand-dot{font-size:7px;color:#4e8;animation:hs-blink 1.5s infinite}.hs-brand-status{font-size:10px;color:#4e8;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:.04em}@keyframes hs-blink{0%,100%{opacity:1}50%{opacity:.3}}.hs-title-block{flex:1 1 0;min-width:0;text-align:center}.hs-title-en{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.12em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hs-title-zh{font-size:15px;font-weight:700;color:#1d1d1f;letter-spacing:.05em;margin-top:2px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;position:relative;z-index:500;text-shadow:none}.hs-header-right{display:flex;align-items:center;gap:8px;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end;min-width:0}.hs-header-meta{display:flex;gap:10px;flex-shrink:0}.hs-header-tag{font-size:9.5px;color:var(--dim);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;line-height:1.4;text-align:center;white-space:nowrap}.hs-tag-icon{color:var(--cool);margin-right:2px}.hs-tag-status{color:var(--ink2)}.hs-clock-block{text-align:right}.hs-clock{font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:.04em;line-height:1.1}.hs-live-dot{font-size:9px;color:#f44;letter-spacing:.08em;animation:hs-blink 1.2s infinite}.hs-exit-btn{background:0;border:1px solid var(--line);color:var(--dim);font-size:16px;width:28px;height:28px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease,border-color .15s ease;flex:0 0 auto;padding:0}.hs-exit-btn:hover{color:var(--ink);background:var(--line-strong);border-color:var(--cool)}.hs-lang-btn{background:rgba(255,251,243,0.85);border:1px solid #d1d5db;color:#1d1d1f;font-size:12px;font-weight:600;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;padding:2px 10px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;flex:0 0 auto;line-height:1.4}.hs-lang-btn:hover{background:rgba(255,253,248,0.95);border-color:#9ca3af}.hs-stats-bar{flex:0 0 auto;display:flex;gap:1px;border-bottom:1px solid var(--line);background:rgba(255,251,243,0.85)}.hs-stat{flex:1 1 0;display:flex;align-items:center;gap:10px;padding:8px 14px;background:transparent;min-width:0;position:relative;overflow:hidden}.hs-stat::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0,rgba(100,220,180,0.35) 50%,transparent 100%);animation:hs-stat-scan 3s ease-in-out infinite}@keyframes hs-stat-scan{0%,100%{opacity:.3}50%{opacity:1}}.hs-stat::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(100,220,180,0.15),transparent)}.hs-stat-icon{font-size:18px;flex:0 0 auto;line-height:1}.hs-stat--warn .hs-stat-icon{color:#f0a030}.hs-stat--data .hs-stat-icon{color:var(--cool)}.hs-stat--ai .hs-stat-icon{color:#a8f}.hs-stat-body{min-width:0}.hs-stat-label{font-size:9.5px;color:#86868b;letter-spacing:.04em;white-space:nowrap;position:relative;z-index:500}.hs-stat-value{font-size:20px;font-weight:700;color:#1d1d1f;line-height:1.1;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;letter-spacing:-.02em;position:relative;z-index:500}.hs-stat-delta{font-size:9px;color:#86868b;margin-top:1px;white-space:nowrap;position:relative;z-index:500}.hs-delta-up{color:#86868b}.hs-delta-down{color:#e07070}.hs-body{flex:1 1 0;min-height:0;display:flex;gap:16px;padding:16px;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.hs-col{display:flex;flex-direction:column;overflow-y:auto;box-sizing:border-box;min-width:0}.hs-col:last-child{border-right:0}.hs-col-left{flex:3;min-width:0;box-sizing:border-box;gap:2px}.hs-col-right{flex:3;min-width:0;box-sizing:border-box;gap:2px}.hs-col-center{flex:4;min-width:0;box-sizing:border-box}.hs-list-card{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.hs-list-card--flooring{background:rgba(255,251,243,0.85);border-bottom:1px solid #e5e7eb;box-shadow:none}.hs-list-card--sea{background:rgba(255,251,243,0.85);border-bottom:1px solid rgba(245,158,11,0.08);box-shadow:none}.hs-list-card--sea .hs-card-header{border-bottom:1px solid rgba(245,158,11,0.15);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01))}.hs-list-card--sea .hs-platform-name{color:#1d1d1f;text-shadow:none}.hs-list-card--cnea{background:rgba(255,251,243,0.85);border-bottom:1px solid rgba(182,100,60,0.06);box-shadow:none}.hs-list-card--cnea .hs-card-header{border-bottom:1px solid rgba(182,100,60,0.12);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01))}.hs-list-card--cnea .hs-platform-name{color:var(--forest);text-shadow:none}.hs-list-card--emea{background:rgba(255,251,243,0.85);border-bottom:1px solid rgba(139,92,246,0.08);box-shadow:none}.hs-list-card--emea .hs-card-header{border-bottom:1px solid rgba(139,92,246,0.15);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01))}.hs-list-card--emea .hs-platform-name{color:#6d28d9;text-shadow:none}.hs-list-card--global{background:rgba(255,251,243,0.85);border-bottom:1px solid rgba(236,72,153,0.08);box-shadow:none}.hs-list-card--global .hs-card-header{border-bottom:1px solid rgba(236,72,153,0.15);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01))}.hs-list-card--global .hs-platform-name{color:#be185d;text-shadow:none}.hs-list-card--bids{background:rgba(255,251,243,0.85);border-bottom:1px solid rgba(182,100,60,0.06);box-shadow:none}.hs-list-card--bids .hs-card-header{border-bottom:1px solid rgba(182,100,60,0.12);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01))}.hs-list-card--bids .hs-platform-name{color:var(--forest);text-shadow:none}.hs-dot-bids{background:var(--forest);box-shadow:0 0 6px var(--forest)88}.hs-bid-card{background:var(--paper);border:1px solid rgba(182,100,60,0.12);border-radius:4px;padding:3px 5px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease;box-shadow:0 1px 2px rgba(0,0,0,0.03)}.hs-bid-card:hover{box-shadow:0 2px 8px rgba(182,100,60,0.12);border-color:var(--forest);transform:translateY(-1px)}.hs-bid-card-top{display:flex;align-items:center;gap:4px;margin-bottom:1px}.hs-bid-card-tag{font-size:8px;padding:0 4px;border-radius:2px;font-weight:600;background:#dbeafe;color:var(--forest);line-height:1.3}.hs-bid-card-amt{font-size:9px;font-weight:600;margin-left:auto}.hs-bid-card-date{font-size:8px;color:#9ca3af;flex-shrink:0}.hs-bid-card-title{font-size:10px;color:#1d1d1f;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:0}.hs-bid-card-loc{font-size:8px;color:#86868b;line-height:1.2}.hs-card-header{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:5px 10px 4px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg1) 80%,transparent)}.hs-list-card--flooring .hs-card-header{border-bottom:1px solid rgba(31,90,67,0.15);background:linear-gradient(90deg,rgba(182,100,60,0.05),rgba(31,90,67,0.01));position:relative}.hs-list-card--flooring .hs-card-header::after{content:'';position:absolute;bottom:-1px;left:0;right:80%;height:1px;background:linear-gradient(90deg,rgba(100,220,180,0.6),transparent)}.hs-list-card--flooring .hs-platform-name{color:#7dd8c0;text-shadow:0 0 10px rgba(100,220,180,0.2)}.hs-list-card:last-child .hs-card-header{border-bottom:0}.hs-platform-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.hs-dot-douyin{background:#fe2c55;box-shadow:0 0 6px #FE2C5588}.hs-dot-xhs{background:#ff2442;box-shadow:0 0 6px #FF244288}.hs-dot-wechat{background:#07c160;box-shadow:0 0 6px #07C16088}.hs-dot-weibo{background:#e6162d;box-shadow:0 0 6px #E6162D88}.hs-dot-sea{background:#f59e0b;box-shadow:0 0 6px #F59E0B88}.hs-dot-cnea{background:var(--forest);box-shadow:0 0 6px var(--forest)88}.hs-dot-emea{background:#8b5cf6;box-shadow:0 0 6px #8B5CF688}.hs-dot-global{background:#ec4899;box-shadow:0 0 6px #EC489988}.hs-dot-flooring{background:var(--forest);box-shadow:0 0 6px var(--forest)88}.hs-platform-name{font-size:11px;font-weight:600;color:var(--ink);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hs-card-badge{font-size:9px;color:var(--dim);border:1px solid var(--line-strong);border-radius:3px;padding:0 4px;line-height:1.5;flex:0 0 auto}.hs-card-update{margin-left:auto;font-size:9px;color:var(--dim);white-space:nowrap}.hs-list{flex:1 1 0;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:2px 0;scrollbar-width:thin}.hs-list::-webkit-scrollbar{width:4px}.hs-list::-webkit-scrollbar-track{background:transparent}.hs-list::-webkit-scrollbar-thumb{background:rgba(31,90,67,0.3);border-radius:2px}.hs-item{display:flex;align-items:center;gap:5px;padding:3px 8px;cursor:default;transition:background .12s ease;min-width:0;min-height:22px;border-bottom:1px solid rgba(128,128,128,0.04);overflow:hidden}.hs-item:last-child{border-bottom:0}.hs-item:hover{background:var(--line)}.hs-rank{font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:10px;font-weight:600;color:var(--dim);flex:0 0 14px;text-align:center;line-height:1}.hs-rank-top1{color:#f44}.hs-rank-top2{color:#f80}.hs-rank-top3{color:#fc0}.hs-item-text{flex:1 1 0;min-width:0;font-size:11px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.hs-new-badge{display:inline-block;font-size:8.5px;color:#f44;border:1px solid #f4466;border-radius:2px;padding:0 2px;margin-left:4px;vertical-align:middle;line-height:1.4}.hs-heat{font-size:9.5px;color:var(--dim);flex:0 0 auto;white-space:nowrap}.hs-label-badge{font-size:8.5px;color:#000;border:1px solid rgba(0,0,0,0.12);border-radius:2px;padding:0 4px;flex:0 0 auto;white-space:nowrap;line-height:1.3;background:rgba(60,180,150,0.06)}.hs-area-badge{font-size:8.5px;color:#1d1d1f;border:1px solid rgba(0,0,0,0.15);border-radius:2px;padding:0 3px;flex:0 0 auto;white-space:nowrap;line-height:1.3;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;background:rgba(0,0,0,0.04)}.hs-trend{font-size:10px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;flex:0 0 10px;text-align:center}.hs-trend-up{color:#4d8}.hs-trend-dn{color:#e55}.hs-trend-same{color:var(--dim)}.hs-contact-line{font-size:8.5px;color:var(--warm);margin-top:1px;padding-left:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;max-width:100%;opacity:.75}.hs-star-badge{margin-left:4px;font-size:10px;letter-spacing:0}.hs-heatmap-wrap{flex:1 1 0;min-height:0;position:relative;display:flex;flex-direction:column}.hs-heatmap-container{flex:1 1 0;min-height:0;position:relative;overflow:hidden}.horse-mascot{position:absolute;bottom:12px;right:12px;width:60px;height:auto;pointer-events:auto;cursor:pointer;z-index:2;opacity:.85;transition:opacity .5s ease}.horse-mascot:hover{opacity:1}.horse-mascot:active .horse-run-img{animation:horse-refresh .4s ease}@keyframes horse-refresh{0%{transform:scale(1) rotate(0)}25%{transform:scale(1.15) rotate(5deg)}50%{transform:scale(0.9) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}.horse-mascot .horse-run-img{width:100%;height:auto;display:block;filter:drop-shadow(0 0 6px rgba(255,215,0,0.35));animation:horse-bob .5s ease-in-out infinite}@keyframes horse-bob{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-2px) rotate(0.8deg)}50%{transform:translateY(-1px) rotate(0)}75%{transform:translateY(1px) rotate(-0.5deg)}}flex:0 0 auto;display:flex;gap:0;border-top:1px solid var(--line);min-height:0;background:rgba(0,0,0,0.02)}.hs-aux-box{flex:1 1 0;padding:8px 12px;border-right:1px solid var(--line);overflow-y:auto;min-width:0;background:rgba(255,251,243,0.85)}.hs-aux-box:last-child{border-right:0}.hs-aux-title{font-size:10px;color:var(--ink2);font-weight:600;letter-spacing:.04em;margin-bottom:6px;white-space:nowrap}.hs-aux-sub{font-size:8.5px;color:var(--dim);font-weight:400;margin-left:4px;letter-spacing:.06em}.hs-region-list{display:flex;flex-direction:column;gap:3px}.hs-region-row{display:flex;align-items:center;gap:6px}.hs-region-name{font-size:9.5px;color:var(--ink2);flex:0 0 52px;white-space:nowrap}.hs-bar-track{flex:1 1 0;height:3px;background:var(--line-strong);border-radius:2px;overflow:hidden}.hs-bar-fill{height:100%;background:linear-gradient(90deg,var(--cool),#8cf);border-radius:2px;transition:width .8s ease}.hs-region-pct{font-size:9px;color:var(--dim);flex:0 0 28px;text-align:right;font-family:ui-monospace,monospace}.hs-sentiment{display:flex;flex-direction:column;align-items:center;gap:4px}.hs-sentiment-ring{position:relative;width:80px;height:80px}.hs-ring-svg{width:80px;height:80px}.hs-ring-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.hs-ring-num{font-size:18px;font-weight:700;color:var(--ink);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;line-height:1}.hs-ring-text{font-size:8.5px;color:var(--dim);margin-top:1px}.hs-sentiment-delta{font-size:9.5px;color:#4d8}.hs-feed-bar{flex:0 0 auto;display:flex;align-items:stretch;gap:0;height:80px;border-top:1px solid var(--line);overflow:hidden}.hs-feed-label{flex:0 0 auto;width:80px;display:flex;flex-direction:column;justify-content:center;padding:8px 10px;border-right:1px solid var(--line);gap:2px;background:color-mix(in srgb,var(--bg1) 60%,transparent)}.hs-feed-live-dot{color:#f44;font-size:8px;animation:hs-blink 1.2s infinite}.hs-feed-label>span:nth-child(2){font-size:11px;font-weight:700;color:var(--cool);letter-spacing:.06em}.hs-feed-subtitle{font-size:10px;color:var(--ink2);font-weight:600}.hs-feed-desc{font-size:8.5px;color:var(--dim);line-height:1.4;margin-top:2px}.hs-feed-viewport{flex:1 1 0;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;padding:8px 6px;display:flex;align-items:stretch}.hs-feed-viewport::-webkit-scrollbar{display:none}.hs-feed-track{display:flex;gap:12px;align-items:stretch}.hs-feed-card{flex:0 0 200px;background:var(--bg1);border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px;display:flex;flex-direction:column;gap:4px;cursor:default;transition:border-color .15s ease,background .15s ease;min-width:0}.hs-feed-card:hover{border-color:var(--cool);background:color-mix(in srgb,var(--bg1) 80%,var(--cool) 5%)}.hs-feed-card-top{display:flex;align-items:center;gap:6px}.hs-feed-time{font-size:9px;color:var(--dim);font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;flex:0 0 auto}.hs-feed-cat{font-size:9px;border:1px solid;border-radius:3px;padding:0 4px;line-height:1.5;flex:0 0 auto}.hs-feed-title{font-size:11px;font-weight:600;color:var(--ink);line-height:1.35}.hs-feed-desc{font-size:9.5px;color:var(--ink2);line-height:1.4;flex:1 1 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.hs-feed-loc{font-size:9px;color:var(--dim);margin-top:auto}.hs-feed-controls{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg1) 60%,transparent)}.hs-feed-auto-label{font-size:9px;color:var(--dim);writing-mode:vertical-rl;letter-spacing:.06em}.hs-feed-nav{background:0;border:1px solid var(--line-strong);color:var(--dim);font-size:16px;width:26px;height:26px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .12s ease,background .12s ease;padding:0}.hs-feed-nav:hover{color:var(--ink);background:var(--line)}.hs-ticker-bar{flex:0 0 auto;height:30px;border-top:1px solid var(--line);overflow:hidden;display:flex;align-items:center;background:color-mix(in srgb,var(--bg-deep) 80%,#001020 20%)}.hs-ticker-inner{display:inline-flex;white-space:nowrap;animation:hs-ticker 60s linear infinite;will-change:transform}@keyframes hs-ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.hs-ticker-item{font-size:10.5px;color:var(--ink2);padding:0 8px}.hs-ticker-time{font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-size:9.5px;color:var(--cool);margin-right:6px}.hs-ticker-sep{color:var(--dim);font-size:8px;padding:0 6px}.person-card-panel{position:fixed;right:18px;top:82px;width:min(420px,calc(100vw - 28px));z-index:90;pointer-events:none;opacity:0}body.person-card-mode .person-card-panel,.person-card-panel.pc-visible{pointer-events:auto;opacity:1}.person-card-panel.pc-entering{animation:pc-flash-in 280ms ease both}.person-card-panel.pc-leaving{pointer-events:none;animation:pc-flash-out 220ms ease both}.pc-card{position:relative;overflow:hidden;border:1px solid rgba(130,210,255,0.28);border-radius:8px;background:linear-gradient(145deg,rgba(12,22,28,0.94),rgba(18,18,26,0.94)),rgba(12,22,28,0.94);box-shadow:0 18px 55px rgba(0,0,0,0.42),inset 0 1px 0 rgba(255,255,255,0.06);color:var(--ink);padding:18px}.pc-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(130,210,255,0.08),transparent 34%),repeating-linear-gradient(0,rgba(255,255,255,0.035) 0,rgba(255,255,255,0.035) 1px,transparent 1px,transparent 8px);opacity:.55}.pc-exit-btn{position:absolute;top:10px;right:10px;z-index:2;width:28px;height:28px;border:1px solid rgba(255,255,255,0.16);border-radius:6px;background:rgba(255,255,255,0.05);color:var(--ink2);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity 150ms ease,transform 150ms ease,border-color 150ms ease,color 150ms ease}.pc-card:hover .pc-exit-btn,.pc-exit-btn:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.pc-exit-btn:hover{color:var(--ink);border-color:rgba(130,210,255,0.45)}.pc-header,.pc-hero,.pc-summary,.pc-section,.pc-tags,.pc-footer{position:relative;z-index:1}.pc-header{min-width:0;margin-top:14px}.pc-hero{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:8px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(130,210,255,0.32);background:linear-gradient(135deg,rgba(73,158,210,0.24),rgba(220,120,160,0.12)),rgba(255,255,255,0.04);color:#dff5ff;font-size:42px;font-weight:800}.pc-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}.pc-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(8,14,18,0.35))}.pc-hero-fallback{position:relative;z-index:1}.pc-hero.pc-hero-has-image .pc-hero-fallback{display:none}.pc-head-copy{min-width:0;padding-right:34px}.pc-kicker{color:var(--forest);font-size:11px;letter-spacing:0;font-weight:800}.pc-name{margin-top:3px;font-size:24px;line-height:1.15;font-weight:850;color:var(--ink);overflow-wrap:anywhere}.pc-title{margin-top:5px;color:var(--ink2);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.pc-summary{margin-top:16px;color:var(--ink);font-size:14px;line-height:1.65}.pc-section{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.09)}.pc-section-title{color:var(--ink2);font-size:12px;margin-bottom:8px}.pc-known-list{margin:0;padding:0;display:grid;gap:7px;list-style:none}.pc-known-list li{display:flex;align-items:flex-start;gap:8px;color:var(--ink);font-size:13px;line-height:1.35}.pc-known-list li::before{content:"";flex:0 0 5px;width:5px;height:5px;margin-top:6px;border-radius:50%;background:var(--forest);box-shadow:0 0 12px rgba(130,210,255,0.65)}.pc-tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:7px}.pc-tag{max-width:100%;padding:4px 8px;border-radius:6px;border:1px solid rgba(130,210,255,0.24);color:#bfeaff;background:rgba(130,210,255,0.08);font-size:12px;line-height:1.2;overflow-wrap:anywhere}.pc-footer{margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--dim);font-size:11px}@media(max-width:720px){.person-card-panel{top:auto;right:14px;left:14px;bottom:86px;width:auto}}@keyframes pc-flash-in{0%{opacity:0;filter:brightness(2)}15%{opacity:1;filter:brightness(1.5)}35%{opacity:.55;filter:none}60%{opacity:1}80%{opacity:.82}100%{opacity:1}}@keyframes pc-flash-out{0%{opacity:1}25%{opacity:.6;filter:brightness(1.4)}55%{opacity:.85;filter:none}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.person-card-panel,.person-card-panel.pc-entering,.person-card-panel.pc-leaving{animation:none !important;transition:none !important}}.doc-panel{position:fixed;left:16px;top:16px;bottom:16px;width:0;overflow:hidden;z-index:5;border-radius:16px;background:color-mix(in srgb,var(--bg-deep) 96%,#0a1a2e);border:1px solid transparent;opacity:0;pointer-events:none;display:flex;flex-direction:column;transition:width .4s cubic-bezier(0.4,0,0.2,1),opacity .3s ease,border-color .3s ease}.doc-panel.dp-visible{width:calc(50vw - 32px);opacity:1;pointer-events:auto;border-color:var(--line-strong)}.dp-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line-mid);flex-shrink:0}.dp-header-left{display:flex;align-items:center;gap:10px;min-width:0}.dp-icon{font-size:22px;flex-shrink:0}.dp-titles{min-width:0}.dp-title{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-subtitle{font-size:10px;color:var(--text-muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-top:1px}.dp-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dp-tabs{display:flex;gap:4px}.dp-tab{font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid var(--line-mid);background:transparent;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.dp-tab:hover{background:var(--bg-card);color:var(--text-primary)}.dp-tab.dp-tab-active{background:var(--cool,var(--forest));border-color:transparent;color:#fff}.dp-close-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-mid);background:transparent;color:var(--text-muted);font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0;line-height:1}.dp-close-btn:hover{background:var(--bg-card);color:var(--text-primary)}.dp-summary{font-size:12px;color:var(--text-secondary);padding:8px 16px;border-bottom:1px solid var(--line-weak);flex-shrink:0;line-height:1.5}.dp-body{display:flex;flex:1;overflow:hidden;min-height:0}.dp-nav{width:160px;flex-shrink:0;border-right:1px solid var(--line-weak);overflow-y:auto;padding:8px 0}.dp-nav::-webkit-scrollbar{width:3px}.dp-nav::-webkit-scrollbar-track{background:transparent}.dp-nav::-webkit-scrollbar-thumb{background:var(--line-mid);border-radius:2px}.dp-nav-item{display:flex;align-items:flex-start;gap:6px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--text-muted);font-size:11px;text-align:left;cursor:pointer;transition:background .12s,color .12s;line-height:1.4}.dp-nav-item:hover{background:var(--bg-card);color:var(--text-secondary)}.dp-nav-item.dp-nav-active{background:color-mix(in srgb,var(--cool,var(--forest)) 15%,transparent);color:var(--cool,var(--forest))}.dp-nav-num{font-family:var(--mono);font-size:10px;opacity:.5;flex-shrink:0;padding-top:1px}.dp-nav-label{flex:1;min-width:0}.dp-content{flex:1;overflow-y:auto;padding:14px 16px;min-width:0}.dp-content::-webkit-scrollbar{width:4px}.dp-content::-webkit-scrollbar-track{background:transparent}.dp-content::-webkit-scrollbar-thumb{background:var(--line-mid);border-radius:2px}.dp-section-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--line-weak)}.dp-section-body{font-size:12px;color:var(--text-secondary);line-height:1.75}.dp-bullet{color:var(--cool,var(--forest));margin:4px 0;font-weight:500}.dp-arrow-item{padding-left:8px;margin:3px 0;color:var(--text-secondary)}.dp-list-item{display:flex;gap:6px;margin:3px 0}.dp-list-num{font-family:var(--mono);font-size:11px;color:var(--cool,var(--forest));flex-shrink:0;min-width:16px}.dp-link{color:var(--cool,var(--forest));text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s;word-break:break-all}.dp-link:hover{border-bottom-color:var(--cool,var(--forest))}.dp-loading{color:var(--text-muted);font-size:12px;padding:20px 0;text-align:center}.hs-sentiment-delta{font-size:10px;margin-top:3px;text-align:center}.hs-delta-up{color:#6fcf97}.hs-doughnut-wrap{display:flex;flex-direction:column;align-items:center;padding:6px 0 8px;cursor:pointer;position:relative}.hs-doughnut-svg{width:100px;height:100px;flex-shrink:0}.hs-doughnut-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 8px;margin-top:6px;width:100%}.hs-legend-item{font-size:9px;color:var(--ink2);display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.hs-legend-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.hs-legend-val{color:var(--dim);font-size:8px;margin-left:1px}.dp-providers{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-top:1px solid var(--line-weak);flex-shrink:0}.dp-provider-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;border:1px solid var(--line-mid);font-size:11px;color:var(--text-secondary);text-decoration:none;background:var(--bg-card);transition:border-color .15s,color .15s;white-space:nowrap}.dp-provider-chip:hover{border-color:var(--cool,var(--forest));color:var(--text-primary)}.dp-provider-chip.dp-provider-free{border-color:color-mix(in srgb,var(--cool,var(--forest)) 40%,transparent)}.dp-chip-badge{font-size:9px;background:color-mix(in srgb,var(--cool,var(--forest)) 20%,transparent);color:var(--cool,var(--forest));padding:1px 4px;border-radius:4px}.dp-chip-arrow{font-size:10px;opacity:.5}.dp-footer{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;border-top:1px solid var(--line-weak);flex-shrink:0}.dp-footer-note{font-size:10px;color:color-mix(in srgb,var(--cool,var(--forest)) 80%,transparent);font-family:var(--mono)}.dp-footer-ttl{font-size:10px;color:var(--text-muted);font-family:var(--mono)}.dp-config{flex-shrink:0;border-top:1px solid rgba(255,255,255,0.07);padding:12px 16px 4px;background:rgba(0,0,0,0.15)}.dpc-section-title{font-size:11px;font-weight:600;color:var(--cool,var(--forest));letter-spacing:.04em;margin-bottom:8px;font-family:var(--mono)}.dpc-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.dpc-tab{padding:3px 9px;border-radius:10px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.04);color:var(--text-muted);font-size:11px;font-family:var(--mono);cursor:pointer;transition:all .15s}.dpc-tab:hover{background:rgba(255,255,255,0.09);color:var(--text)}.dpc-tab-active{background:rgba(74,159,213,0.18);border-color:rgba(74,159,213,0.45);color:var(--cool,var(--forest))}.dpc-fields{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.dpc-field{display:flex;align-items:center;gap:8px}.dpc-label{font-size:11px;color:var(--text-muted);font-family:var(--mono);min-width:110px;flex-shrink:0;display:flex;align-items:center;gap:5px}.dpc-badge{font-size:9px;padding:1px 5px;border-radius:8px;background:rgba(80,200,120,0.2);border:1px solid rgba(80,200,120,0.35);color:#5ec87a;font-weight:600}.dpc-input,.dpc-select{flex:1;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:5px;color:var(--text);font-size:11px;font-family:var(--mono);padding:4px 8px;outline:0;transition:border-color .15s;min-width:0}.dpc-input:focus,.dpc-select:focus{border-color:rgba(74,159,213,0.5)}.dpc-input-configured{border-color:rgba(80,200,120,0.3)}.dpc-select option{background:#1a1f2e}.dpc-info{font-size:11px;color:var(--text-muted);font-family:var(--mono);line-height:1.6;padding:6px 0}.dpc-actions{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dpc-save-btn{padding:4px 14px;border-radius:5px;border:1px solid rgba(74,159,213,0.4);background:rgba(74,159,213,0.12);color:var(--cool,var(--forest));font-size:11px;font-family:var(--mono);cursor:pointer;transition:all .15s}.dpc-save-btn:hover{background:rgba(74,159,213,0.22)}.dpc-status{font-size:11px;font-family:var(--mono);color:var(--text-muted);transition:color .2s}.dpc-status-ok{color:#5ec87a}.dpc-status-err{color:#e06c75}.dpc-dual{display:flex;gap:16px}.dpc-dual-col{flex:1;min-width:0}.dpc-dual-label{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:6px;font-family:var(--mono)}.login-overlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,0.7);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.login-overlay[style*="display:none"]{display:none !important}.login-card{background:rgba(255,253,248,0.95);border-radius:16px;padding:32px 28px;width:340px;max-width:90vw;box-shadow:0 8px 40px rgba(0,0,0,0.15);text-align:center}.login-modal{width:380px;max-width:calc(100vw - 32px);background:rgba(15,24,34,0.96);border:1px solid rgba(143,182,216,0.25);border-radius:16px;padding:32px 28px 24px;text-align:center;box-shadow:0 0 40px rgba(0,0,0,0.5);position:relative;backdrop-filter:blur(20px)}.login-close{position:absolute;top:12px;right:16px;background:0;border:0;color:var(--dim);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1}.login-close:hover{color:var(--ink)}.login-header{font-size:24px;font-weight:800;color:#b8d8ff;margin-bottom:6px;letter-spacing:2px;text-shadow:0 0 20px rgba(100,180,255,0.4),0 0 40px rgba(100,180,255,0.15)}.login-sub{font-size:12px;color:var(--dim);margin-bottom:24px}.login-input{width:100%;padding:10px 14px;font-size:14px;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;background:rgba(0,0,0,0.3);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);outline:0;box-sizing:border-box;letter-spacing:2px;text-transform:uppercase}.login-input:focus{border-color:var(--cool)}.login-input::placeholder{letter-spacing:0;text-transform:none}.login-submit{width:100%;margin-top:12px;padding:10px;font-size:14px;font-weight:600;background:var(--cool);color:#0a1118;border:0;border-radius:8px;cursor:pointer}.login-submit:hover{opacity:.85}.login-error{margin-top:12px;font-size:11px;color:#f66;padding:6px 10px;background:rgba(255,50,50,0.1);border-radius:6px}.login-quota-info{margin-top:12px;font-size:10px;color:var(--warm);font-family:ui-monospace,monospace}.welcome-popup{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.welcome-modal{width:400px;max-width:calc(100vw - 32px);background:linear-gradient(135deg,rgba(18,28,42,0.98),rgba(10,18,28,0.98));border:1px solid rgba(255,200,80,0.3);border-radius:16px;padding:36px 28px 28px;text-align:center;position:relative;box-shadow:0 0 60px rgba(255,200,80,0.08)}.welcome-close{position:absolute;top:12px;right:16px;background:0;border:0;color:var(--dim);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1}.welcome-close:hover{color:var(--ink)}.welcome-icon{font-size:40px;margin-bottom:10px}.welcome-title{font-size:20px;font-weight:800;color:#ffd866;margin-bottom:16px;letter-spacing:1px;text-shadow:0 0 15px rgba(255,200,80,0.3)}.welcome-body{text-align:left;margin-bottom:20px}.welcome-gift{font-size:14px;color:var(--ink);padding:10px 14px;background:rgba(255,200,80,0.08);border:1px solid rgba(255,200,80,0.15);border-radius:8px;margin-bottom:14px}.welcome-rules{font-size:11px;color:var(--dim);line-height:2;padding:0 2px}.welcome-rules strong{color:var(--warm)}.welcome-admin{margin-top:12px;font-size:12px;color:#b8d8ff;padding:6px 10px;background:rgba(100,180,255,0.1);border-radius:6px;text-align:center}.welcome-start{width:100%;padding:10px;font-size:14px;font-weight:600;background:linear-gradient(135deg,#ffd866,#f0b800);color:#0a1118;border:0;border-radius:8px;cursor:pointer}.welcome-start:hover{opacity:.85}.login-protection{margin-top:14px;font-size:9.5px;color:rgba(255,100,100,0.5);line-height:1.5;text-align:center;border-top:1px solid rgba(255,100,100,0.08);padding-top:10px}.login-btn{background:0;border:1px solid var(--line);color:var(--dim);font-size:13px;width:28px;height:22px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-right:4px;transition:color .15s,border-color .15s}.login-btn:hover{color:var(--cool);border-color:var(--cool)}.login-btn.logged-in{border-color:var(--warm);color:var(--warm)}.wechat-overlay{position:fixed;inset:0;z-index:250;background:rgba(0,0,0,0.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center}.wechat-overlay[hidden]{display:none}.wechat-modal{width:420px;max-width:calc(100vw - 32px);border-radius:20px;border:1px solid rgba(31,90,67,0.25);background:#131a26;box-shadow:0 0 40px rgba(31,90,67,0.08);overflow:hidden}.wechat-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 12px}.wechat-brand{display:flex;align-items:center;gap:8px}.wechat-title{font-size:15px;font-weight:700;color:#e2e8f0;letter-spacing:.5px}.wechat-close{background:0;border:0;color:#64748b;font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.wechat-close:hover{color:#f1f5f9}.wechat-body{padding:8px 24px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.wechat-subtitle{font-size:12px;color:#94a3b8;text-align:center;margin:0}.wechat-qr-section{display:flex;flex-direction:column;align-items:center}.wechat-qr-box{width:176px;height:176px;background:var(--sand);border-radius:12px;border:2px dashed #334155;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.wechat-login-btn{width:100%;background:linear-gradient(135deg,#22c55e,var(--forest));color:white;border:0;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px rgba(34,197,94,0.25);transition:all .15s}.wechat-login-btn:hover{background:linear-gradient(135deg,#16a34a,#047857);box-shadow:0 6px 20px rgba(34,197,94,0.35);transform:translateY(-1px)}.wechat-gift{width:100%;background:rgba(31,90,67,0.08);border:1px solid rgba(31,90,67,0.25);border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px}.wechat-gift-title{font-size:11px;font-weight:700;color:var(--forest);margin-bottom:2px}.wechat-gift-desc{font-size:11px;color:#94a3b8;line-height:1.5;margin:0}.wechat-gift-highlight{color:var(--forest);font-weight:700}.wechat-footer-links{text-align:center}.wallet-panel{position:fixed;inset:0;z-index:260;background:rgba(0,0,0,0.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center}.wallet-panel[hidden]{display:none}.wallet-card{width:420px;max-width:calc(100vw - 32px);max-height:90vh;overflow-y:auto;background:#131a26;border:1px solid #334155;border-radius:20px;padding:20px;box-shadow:0 0 40px rgba(31,90,67,0.08);position:relative}.wallet-balance-header{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--sand),var(--paper));padding:16px;border-radius:12px;border:1px solid #334155}.wallet-balance-label{font-size:11px;color:#94a3b8;margin:0}.wallet-balance-value{font-size:22px;font-weight:900;color:var(--forest);margin:4px 0 0}.wallet-balance-suffix{font-size:11px;font-weight:400;color:#94a3b8;margin-left:8px}.wallet-vip-badge{font-size:10px;font-weight:700;color:#f59e0b;background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.3);padding:4px 8px;border-radius:6px}.wallet-section{margin-top:24px}.wallet-section-title{font-size:11px;font-weight:700;color:#94a3b8;margin:0 0 12px}.wallet-section-icon{margin-right:6px;color:var(--forest)}.wallet-recharge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.wallet-recharge-btn{position:relative;background:#0b0f19;border:1px solid #334155;border-radius:12px;padding:12px 8px;text-align:center;cursor:pointer;transition:all .15s}.wallet-recharge-btn:hover{border-color:var(--forest)}.wallet-recharge-hot{border-color:rgba(31,90,67,0.5);background:rgba(31,90,67,0.05)}.wallet-hot-badge{position:absolute;top:-8px;right:-4px;background:#ef4444;color:white;font-size:8px;padding:1px 5px;border-radius:3px;transform:scale(0.9)}.wallet-recharge-amount{display:block;font-size:13px;font-weight:700;color:#f1f5f9}.wallet-recharge-bonus{display:block;font-size:9px;color:#64748b;margin-top:2px}.wallet-history{display:flex;flex-direction:column;gap:10px;max-height:180px;overflow-y:auto;padding-right:4px}.wallet-history-item{display:flex;justify-content:space-between;align-items:center;background:#0b0f19;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:11px}.wallet-history-title{font-weight:500;color:#e2e8f0;margin:0}.wallet-history-tag{font-size:10px;background:rgba(239,68,68,0.1);color:#f87171;padding:1px 6px;border-radius:4px;margin-left:4px}.wallet-history-time{font-size:10px;color:#64748b;margin:2px 0 0}.wallet-history-cost{font-weight:700;flex-shrink:0}.wallet-cost-negative{color:#f87171}.wallet-cost-medium{color:#fb923c}.wallet-cost-free{color:#4ade80}body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent 39px,rgba(31,90,67,0.012) 39px,transparent 40px),repeating-linear-gradient(0,transparent 0,transparent 39px,rgba(31,90,67,0.008) 39px,transparent 40px);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 20%,transparent 60%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 20%,transparent 60%)}body::after{content:'';position:fixed;top:-200px;left:50%;transform:translateX(-50%);width:600px;height:400px;z-index:0;pointer-events:none;background:radial-gradient(ellipse,rgba(31,90,67,0.06),transparent 60%);filter:blur(60px);animation:topGlow 8s ease-in-out infinite alternate}@keyframes topGlow{0%{opacity:.5;transform:translateX(-50%) scale(1)}100%{opacity:1;transform:translateX(-45%) scale(1.15)}}.panel{backdrop-filter:blur(30px) saturate(1.3) !important;-webkit-backdrop-filter:blur(30px) saturate(1.3) !important;border:1px solid rgba(31,90,67,0.08) !important;box-shadow:0 8px 32px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.03),0 0 60px rgba(31,90,67,0.02) !important;transition:all .4s cubic-bezier(0.23,1,0.32,1) !important}.panel:hover{border-color:rgba(31,90,67,0.18) !important;box-shadow:0 8px 48px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.06),0 0 80px rgba(31,90,67,0.05) !important}.brand-title,#agent-brand-name{background:linear-gradient(135deg,#e8f1ff 0,var(--forest) 30%,#a78bfa 60%,#00ff94 100%) !important;background-size:200% auto !important;-webkit-background-clip:text !important;-webkit-text-fill-color:transparent !important;background-clip:text !important;animation:gradientShift 6s ease-in-out infinite !important;font-weight:800 !important;letter-spacing:2px !important;text-shadow:none !important;filter:drop-shadow(0 0 20px rgba(31,90,67,0.15))}@keyframes gradientShift{0%{background-position:0 center}50%{background-position:100% center}100%{background-position:0 center}}.panel-identity{position:relative}.panel-identity::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(31,90,67,0.3) 30%,rgba(31,90,67,0.1) 50%,rgba(31,90,67,0.3) 70%,transparent 100%);background-size:200% 100%;animation:borderSweep 4s linear infinite}@keyframes borderSweep{0%{background-position:-200% 0}100%{background-position:200% 0}}.tool-btn{position:relative;overflow:visible !important;transition:all .25s cubic-bezier(0.23,1,0.32,1) !important}.tool-btn::before{content:'';position:absolute;inset:-1px;border-radius:inherit;background:linear-gradient(135deg,rgba(31,90,67,0),rgba(31,90,67,0.06),rgba(31,90,67,0));opacity:0;transition:opacity .3s;z-index:-1}.tool-btn:hover{transform:translateY(-2px) scale(1.03) !important;box-shadow:0 0 12px rgba(31,90,67,0.15),0 0 30px rgba(31,90,67,0.05);text-shadow:0 0 8px rgba(31,90,67,0.3)}.tool-btn::after{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(31,90,67,0.12),transparent);transition:left 0s;pointer-events:none}.tool-btn:hover::after{left:200%;transition:left .6s cubic-bezier(0.23,1,0.32,1)}.tool-btn:hover::before{opacity:1}.tool-btn:active{transform:translateY(0) scale(0.96) !important}.tool-btn-highlight{position:relative}.tool-btn-highlight::after{content:'';position:absolute;inset:-1px;border-radius:inherit;border:1px solid transparent;background:linear-gradient(135deg,rgba(31,90,67,0.15),rgba(0,255,148,0.1)) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:btnGlow 3s ease-in-out infinite}@keyframes btnGlow{0%,100%{opacity:.4}50%{opacity:1}}.pill{backdrop-filter:blur(12px) !important;border:1px solid rgba(31,90,67,0.2) !important;box-shadow:0 0 12px rgba(31,90,67,0.08),inset 0 0 12px rgba(31,90,67,0.03) !important;animation:pillPulse 4s ease-in-out infinite}@keyframes pillPulse{0%,100%{box-shadow:0 0 12px rgba(31,90,67,0.08),inset 0 0 12px rgba(31,90,67,0.03)}50%{box-shadow:0 0 20px rgba(31,90,67,0.12),inset 0 0 20px rgba(31,90,67,0.05)}}@keyframes msgReveal{0%{opacity:0;transform:translateY(20px) scale(0.95);filter:blur(8px);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}60%{filter:blur(0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.msg-row{animation:msgReveal .6s cubic-bezier(0.23,1,0.32,1) both}.stream-inner.streaming::after{content:'▊';display:inline-block;animation:cursorGlow .8s step-end infinite;color:var(--forest);font-size:1em;margin-left:3px;text-shadow:0 0 8px rgba(31,90,67,0.6)}@keyframes cursorGlow{0%,100%{opacity:1;text-shadow:0 0 8px rgba(31,90,67,0.6)}50%{opacity:.3;text-shadow:0 0 2px rgba(31,90,67,0.2)}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:linear-gradient(to bottom,rgba(31,90,67,0.2),rgba(0,255,148,0.15));border-radius:2px;box-shadow:0 0 6px rgba(31,90,67,0.1)}.data-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px;vertical-align:middle}.data-dot.cyan{background:var(--forest);box-shadow:0 0 8px rgba(31,90,67,0.5)}.data-dot.green{background:#00ff94;box-shadow:0 0 8px rgba(0,255,148,0.5)}.data-dot.gold{background:#ffb547;box-shadow:0 0 8px rgba(255,181,71,0.5)}@keyframes valueFlash{0%{color:inherit}50%{color:var(--forest);text-shadow:0 0 12px rgba(31,90,67,0.3)}100%{color:inherit}}.value-update{animation:valueFlash .6s ease-out}.hs-heatmap-container{position:relative;width:100%;height:100%;min-height:350px}.hs-heatmap-container canvas{width:100% !important;height:100% !important;display:block}#tsparticles{position:fixed;inset:0;z-index:1;pointer-events:none}.panel,.hotspot-panel,#panel-l1,#panel-l2{z-index:2}#panel-l2 .stream-meta{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}#chat-area,.console{background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-left:1px solid var(--panel-border)}#chat-messages{scrollbar-width:thin;scrollbar-color:rgba(31,90,67,0.15) transparent}#msg-input{background:rgba(255,253,248,0.95) !important;border:1px solid #e5e7eb !important;border-radius:8px !important;padding:8px 12px !important;font-size:13px !important;color:#1d1d1f !important;box-shadow:0 1px 3px rgba(0,0,0,0.06) !important;outline:0}#msg-input:focus{border-color:var(--forest) !important;box-shadow:0 0 0 2px rgba(31,90,67,0.15) !important;outline:0}#msg-input::placeholder{color:#9ca3af !important;font-size:12px !important}.brand-title,#agent-brand-name{background:linear-gradient(135deg,#1f5a43,#b6643c,#1f5a43);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:brandShimmer 3s ease-in-out infinite;font-weight:700;letter-spacing:.02em}@keyframes brandShimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}.cyber-waterfall{position:fixed;top:0;font-family:'JetBrains Mono',monospace;font-size:10px;line-height:1.2;color:rgba(31,90,67,0.12);writing-mode:vertical-rl;pointer-events:none;z-index:1;overflow:hidden;white-space:nowrap;animation:waterfallScroll 8s linear infinite}.cyber-waterfall.left{left:4px;height:100vh}.cyber-waterfall.right{right:4px;height:100vh}@keyframes waterfallScroll{0%{transform:translateY(-50%)}100%{transform:translateY(0)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(31,90,67,0.2);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:rgba(31,90,67,0.35)}.settings-overlay,[class*="overlay"]:not(.login-overlay):not(.xiaoya-overlay),[class*="modal"]:not(.settings-modal),[class*="panel"]:not(.hotspot-panel):not(#panel-l1):not(#panel-l2):not(.panel-identity):not(.panel-stats):not(.xiaoya-panel){background:rgba(15,20,30,0.50) !important;backdrop-filter:blur(6px) !important;-webkit-backdrop-filter:blur(6px) !important}.settings-modal,[class*="modal"],[class*="Panel"]:not(.hotspot-panel):not(#panel-l1):not(#panel-l2){background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;border-radius:14px !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d1d1f !important}.settings-header,[class*="header"]:not(.hs-header):not(.panel-header){border-bottom:1px solid rgba(0,0,0,0.06) !important;padding-bottom:12px !important}.settings-title,[class*="title"]{color:#1d1d1f !important;font-weight:600 !important;letter-spacing:.04em !important}.settings-close,[class*="close"]:not(.xy-close):not(.xy-set-close){color:#fff !important;transition:color .2s !important;position:relative;z-index:500 !important;text-shadow:0 1px 8px rgba(0,0,0,0.5)}.settings-close:hover,[class*="close"]:not(.xy-close):not(.xy-set-close):hover{color:rgba(0,0,0,0.7) !important}[class*="input"]:not(.xy-input),[class*="Input"],input:not([type="range"]):not([type="checkbox"]):not(.xy-input){background:rgba(255,253,248,0.95) !important;border:1px solid rgba(0,0,0,0.12) !important;border-radius:8px !important;color:#1d1d1f !important;backdrop-filter:none !important;transition:border-color .3s,box-shadow .3s !important}[class*="input"]:not(.xy-input):focus,input:not([type="range"]):not(.xy-input):focus{border-color:rgba(182,100,60,0.4) !important;box-shadow:0 0 8px rgba(182,100,60,0.06) !important;outline:none !important}[class*="btn"]:not(.tool-btn):not(.hs-exit-btn):not(.hs-lang-btn):not(.page-btn):not(.bb-btn):not(.func-popup-btn):not(.fh-btn):not(.faq-header-btn):not(.msg-action-btn):not(.l1-dock-btn):not(.vip-func-btn):not(.vip-scenario-btn):not(.blm-close-btn):not(.xy-voice-btn):not(.xy-send-btn){background:rgba(0,0,0,0.04) !important;border:1px solid rgba(0,0,0,0.1) !important;border-radius:8px !important;color:#1d1d1f !important;cursor:pointer !important;transition:all .25s ease !important;font-weight:500 !important}[class*="btn"]:not(.tool-btn):not(.hs-exit-btn):not(.hs-lang-btn):not(.page-btn):not(.bb-btn):not(.msg-action-btn):not(.l1-dock-btn):not(.vip-func-btn):not(.vip-scenario-btn):not(.blm-close-btn):not(.xy-voice-btn):not(.xy-send-btn):hover{background:rgba(0,0,0,0.08) !important;border-color:rgba(0,0,0,0.15) !important;box-shadow:0 1px 4px rgba(0,0,0,0.06) !important;transform:translateY(-1px) !important}select{background:rgba(255,253,248,0.95) !important;border:1px solid rgba(0,0,0,0.12) !important;border-radius:6px !important;color:#1d1d1f !important;padding:6px 10px !important}[class*="hint"]:not(.xy-hint),[class*="label"]:not(.xy-voice-label):not(.xy-set-icon-label):not(.hs-label-badge):not(.hs-area-badge){color:rgba(0,0,0,0.68) !important}input[type="range"]{accent-color:var(--copper) !important;height:4px !important}[class*="tab"]:not(.hs-tab):not(.theme-dot):not(.faq-tab-brain):not(.faq-tabs-brain){background:transparent !important;border:none !important;border-bottom:2px solid transparent !important;color:rgba(0,0,0,0.62) !important;cursor:pointer !important;padding:6px 14px !important;font-size:12px !important;transition:all .2s !important}[class*="tab"].active,[class*="tab"][data-active="true"]{color:#1d1d1f !important;border-bottom-color:#1d1d1f !important}.func-dock{flex:0;height:0;overflow:hidden;transition:height .5s cubic-bezier(0.34,1.56,0.64,1),opacity .4s ease;opacity:0;background:rgba(15,22,36,0.75);border-top:1px solid rgba(100,160,200,0.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.func-dock.open{flex:0 0 auto;height:280px;opacity:1;overflow:visible;z-index:20;position:relative}#chat-close-btn,#chat-min-btn{display:flex}#dock-hover-bar{opacity:0 !important;pointer-events:none !important}#chat-history.open #dock-hover-bar{opacity:1 !important;pointer-events:auto !important}.func-dock-track{display:flex;flex-direction:column;justify-content:center;gap:2px;height:280px;padding:4px 10px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.fd-row{display:flex;flex-direction:row;align-items:center;gap:0;flex-shrink:0}.fd-category{display:flex;align-items:center;gap:1px;flex-shrink:0}.fd-cat-label{font-size:9px;color:rgba(255,255,255,0.35);font-weight:500;letter-spacing:.3px;margin:0 3px 0 6px;white-space:nowrap;flex-shrink:0}.fd-cat-divider{width:1px;height:32px;background:rgba(255,255,255,0.08);margin:0 4px;flex-shrink:0}.fd-cat-row{display:flex;gap:1px;flex-shrink:0}.dock-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:54px;height:52px;border:0;border-radius:8px;background:transparent;color:rgba(220,235,250,0.8);font-size:18px;cursor:pointer;transition:all .25s cubic-bezier(0.34,1.56,0.64,1);flex-shrink:0;position:relative}.func-dock.open .dock-btn{animation:dockBounceIn .4s cubic-bezier(0.34,1.56,0.64,1) both}.func-dock.open .dock-btn:nth-child(1){animation-delay:.02s}.func-dock.open .dock-btn:nth-child(2){animation-delay:.04s}.func-dock.open .dock-btn:nth-child(3){animation-delay:.06s}.func-dock.open .dock-btn:nth-child(4){animation-delay:.08s}.func-dock.open .dock-btn:nth-child(5){animation-delay:.10s}.func-dock.open .dock-btn:nth-child(6){animation-delay:.12s}.func-dock.open .dock-btn:nth-child(7){animation-delay:.14s}.func-dock.open .dock-btn:nth-child(8){animation-delay:.16s}.func-dock.open .dock-btn:nth-child(9){animation-delay:.18s}.func-dock.open .dock-btn:nth-child(10){animation-delay:.20s}.func-dock.open .dock-btn:nth-child(11){animation-delay:.22s}.func-dock.open .dock-btn:nth-child(12){animation-delay:.24s}.func-dock.open .dock-btn:nth-child(13){animation-delay:.26s}.func-dock.open .dock-btn:nth-child(14){animation-delay:.28s}.func-dock.open .dock-btn:nth-child(15){animation-delay:.30s}@keyframes dockBounceIn{0%{transform:scale(0.3) translateY(20px);opacity:0}60%{transform:scale(1.12) translateY(-4px);opacity:1}80%{transform:scale(0.95) translateY(2px)}100%{transform:scale(1) translateY(0);opacity:1}}.dock-btn:hover{transform:scale(1.18) translateY(-4px) !important;background:rgba(100,160,220,0.1);color:rgba(220,235,250,0.95);box-shadow:0 4px 14px rgba(100,160,220,0.15)}.dock-btn:active{transform:scale(0.92) !important}.dock-label{font-size:8.5px;color:#fff !important;white-space:nowrap;letter-spacing:.03em;transition:color .2s}.dock-btn:hover .dock-label{color:rgba(220,235,250,0.8)}.func-dock:not(.open) .dock-btn{animation:dockShrinkOut .3s cubic-bezier(0.55,0,1,0.45) both}.func-dock:not(.open) .dock-btn:nth-child(1){animation-delay:.28s}.func-dock:not(.open) .dock-btn:nth-child(2){animation-delay:.26s}.func-dock:not(.open) .dock-btn:nth-child(3){animation-delay:.24s}.func-dock:not(.open) .dock-btn:nth-child(4){animation-delay:.22s}.func-dock:not(.open) .dock-btn:nth-child(5){animation-delay:.20s}.func-dock:not(.open) .dock-btn:nth-child(6){animation-delay:.18s}.func-dock:not(.open) .dock-btn:nth-child(7){animation-delay:.16s}.func-dock:not(.open) .dock-btn:nth-child(8){animation-delay:.14s}.func-dock:not(.open) .dock-btn:nth-child(9){animation-delay:.12s}.func-dock:not(.open) .dock-btn:nth-child(10){animation-delay:.10s}.func-dock:not(.open) .dock-btn:nth-child(11){animation-delay:.08s}.func-dock:not(.open) .dock-btn:nth-child(12){animation-delay:.06s}.func-dock:not(.open) .dock-btn:nth-child(13){animation-delay:.04s}.func-dock:not(.open) .dock-btn:nth-child(14){animation-delay:.02s}.func-dock:not(.open) .dock-btn:nth-child(15){animation-delay:.00s}@keyframes dockShrinkOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0.3) translateY(10px);opacity:0}}.bottom-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:10;display:flex}.bottom-bar-inner{display:flex;align-items:center;gap:14px;padding:10px 18px;border-radius:16px;background:rgba(15,22,36,0.85);border:1px solid rgba(100,160,200,0.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 24px rgba(0,0,0,0.4)}.bb-btn{display:flex;align-items:center;gap:8px;padding:8px 18px;border-radius:10px;border:1px solid rgba(100,160,200,0.15);background:rgba(100,160,200,0.06);color:#fff;font-size:13px;cursor:pointer;white-space:nowrap;font-weight:500;transition:all .2s ease;font-family:inherit}.bb-btn:hover{background:rgba(100,160,200,0.12);border-color:rgba(100,160,200,0.25)}.bb-divider{width:1px;height:28px;background:rgba(200,210,230,0.1)}.bb-icon-group{display:flex;align-items:center;gap:10px}.bb-icon-item{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.bb-icon-item .btn-horse{width:34px;height:34px;cursor:pointer;border-radius:10px}.bb-icon{font-size:26px;line-height:1;cursor:pointer;transition:transform .2s cubic-bezier(0.34,1.56,0.64,1);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.bb-icon:hover,.bb-icon-item .btn-horse:hover{transform:scale(1.15)}.bb-icon-label{font-size:10px;color:#fff !important;white-space:nowrap;line-height:1}@keyframes voiceRingPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.7}50%{transform:translate(-50%,-50%) scale(1.3);opacity:.2}100%{transform:translate(-50%,-50%) scale(1);opacity:.7}}#voice-cmd-ring.active{animation:voiceRingPulse 1.5s ease-in-out infinite !important;opacity:1 !important}.login-modal{background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important}#login-overlay .login-card{background:rgba(255,251,243,0.6) !important;border:1px solid rgba(200,210,220,0.25) !important;border-radius:16px !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important}#login-overlay h2{color:#1d1d1f !important;letter-spacing:.1em !important}#login-overlay button{background:rgba(0,0,0,0.04) !important;border:1px solid rgba(0,0,0,0.1) !important;color:#1d1d1f !important;font-weight:700 !important;letter-spacing:.15em !important}#video-search-panel{background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d1d1f !important}#music-panel{background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d1d1f !important}#color-panel{background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d1d1f !important}#std-panel{background:rgba(255,251,243,0.85) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d1d1f !important}#voice-panel{background:transparent !important;border:none !important;border-radius:0 !important}#rs-overlay{background:rgba(15,20,30,0.50) !important;backdrop-filter:blur(6px) !important;-webkit-backdrop-filter:blur(6px) !important}#rs-window{background:rgba(255,251,243,0.6) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.08) !important;color:#1d2a3a !important;border-radius:12px !important}#pj-overlay{background:rgba(15,20,30,0.50) !important;backdrop-filter:blur(6px) !important;-webkit-backdrop-filter:blur(6px) !important}#pj-window{background:rgba(255,251,243,0.6) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.08) !important;color:#1d2a3a !important;border-radius:12px !important}#cost-overlay .settings-modal{background:rgba(255,251,243,0.6) !important;border:1px solid rgba(200,210,220,0.3) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;box-shadow:0 2px 12px rgba(0,0,0,0.06) !important;color:#1d2a3a !important}.credit-modal .settings-section,.search-panel .settings-section{background:rgba(30,40,55,0.20) !important;border:1px solid rgba(200,210,230,0.05) !important;border-radius:8px !important;padding:14px !important;margin-bottom:10px !important}.settings-content table,.rs-window table,.pj-window table,#search-modal table{width:100% !important;border-collapse:collapse !important}.settings-content th,#rs-window th,#pj-window th,#search-modal th{background:rgba(0,0,0,0.03) !important;border-bottom:1px solid rgba(0,0,0,0.06) !important;color:#1d1d1f !important;padding:8px 10px !important;font-size:11px !important;font-weight:600 !important;text-align:left !important}.settings-content td,.rs-window td,.pj-window td,#search-modal td{border-bottom:1px solid rgba(0,0,0,0.04) !important;color:#1d1d1f !important;padding:8px 10px !important;font-size:11px !important}.settings-content tr:hover td,.rs-window tr:hover td,.pj-window tr:hover td,#search-modal tr:hover td{background:rgba(0,0,0,0.02) !important}.settings-section-label,[class*="section-label"]{color:var(--forest) !important;font-weight:600 !important;font-size:12px !important;letter-spacing:.03em !important;margin-bottom:8px !important}.empty{color:var(--dim) !important;font-size:12px !important;text-align:center !important;padding:30px !important}.stat-card{background:rgba(30,41,59,0.15) !important;border:1px solid rgba(31,90,67,0.08) !important;border-radius:8px !important;padding:14px !important}.stat-card .num{color:var(--forest) !important;font-family: "Songti SC", "STSong", "SimSun", "Noto Serif SC", "Source Han Serif SC", serif;font-weight:700 !important}.used-bar{background:rgba(31,90,67,0.1) !important}.used-bar-fill{background:var(--forest) !important}#blm-admin-splash{position:fixed;inset:0;background:#111625;z-index:9999999;display:flex;justify-content:center;align-items:center;transition:opacity .6s ease;user-select:none}#blm-admin-splash.fade-out{opacity:0;pointer-events:none}.splash-container{text-align:center;animation:splash-zoom-in .8s cubic-bezier(0.23,1,0.32,1)}.splash-brain-icon{margin-bottom:20px;display:flex;justify-content:center;animation:brain-pulse 2s infinite ease-in-out}.splash-title{font-size:42px;color:var(--forest);font-weight:700;letter-spacing:2px;margin-bottom:15px}.splash-title span{color:#818cf8}.splash-subtitle{font-size:20px;color:#94a3b8;margin-bottom:8px}.splash-subtitle .vip-tag{color:var(--forest);font-weight:600}.splash-desc{font-size:16px;color:#64748b;margin-bottom:40px;letter-spacing:1px}.splash-footer{font-size:14px;color:#475569;letter-spacing:2px}.splash-dots{display:flex;gap:8px;justify-content:center;margin-top:24px}.splash-dots .dot{width:8px;height:8px;background:#334155;border-radius:50%}.splash-dots .dot.active{background:var(--forest)}@keyframes splash-zoom-in{0%{opacity:0;transform:scale(0.95)}100%{opacity:1;transform:scale(1)}}@keyframes brain-pulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(31,90,67,0.1))}50%{transform:scale(1.05);filter:drop-shadow(0 0 25px rgba(31,90,67,0.3))}}#faq-panel-brain{border-top:1px solid var(--line);background:var(--console-bg);max-height:680px;overflow:hidden;transition:max-height .25s cubic-bezier(.4,0,.2,1);flex-shrink:0;backdrop-filter:blur(2px)}#faq-panel-brain.collapsed{max-height:200px;opacity:1!important;height:auto!important;min-height:0!important;overflow:hidden;background:var(--console-bg);border-top:1px solid var(--line);pointer-events:auto!important}#faq-panel-brain.collapsed #faqBodyBrain{display:none}.chat-window-actions{display:flex;gap:4px;padding:0;align-items:center;justify-content:flex-end;border-bottom:none;flex:0 0 auto;max-width:50%}.chat-window-actions .faq-header-btn{border-radius:0;box-shadow:0 2px 10px rgba(16,30,25,0.12),inset 0 0 0 1px rgba(255,255,255,0.4)}.chat-window-actions .faq-header-btn:hover{background:rgba(255,251,243,0.95);transform:translateY(-1px);box-shadow:0 4px 14px rgba(182,100,60,0.22)}.faq-btn-cap{font-size:10px;line-height:1;letter-spacing:1px;font-family:inherit;font-weight:600;color:var(--ink2)}.faq-btn-ico{display:flex;align-items:center;justify-content:center;line-height:1}.faq-toggle-brain{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:6px 10px 4px;gap:6px;border-bottom:1px solid transparent;flex-wrap:nowrap}.faq-toggle-actions{display:flex;justify-content:flex-end;gap:3px}.faq-toggle-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink2);cursor:pointer;user-select:none;transition:all .15s;animation:pulse-faq-toggle 2s ease-in-out infinite;border-radius:8px;padding:2px 4px}.faq-toggle-brain:hover{background:color-mix(in srgb,var(--bg1) 60%,transparent);color:var(--ink)}.faq-header-btn{width:auto;height:auto;padding:2px 6px;border-radius:6px;border:1px solid var(--line-strong);background:transparent;color:var(--ink2);font-size:18px;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:2px;transition:all .15s;flex-shrink:0;line-height:1}.faq-header-btn:hover{background:var(--bg0);color:var(--ink);border-color:var(--cool)}.faq-header-btn:active{transform:scale(.9)}#faqArrowBrain{font-size:10px;transition:transform .25s;color:var(--dim)}#faq-panel-brain:not(.collapsed) #faqArrowBrain{transform:rotate(180deg)}.faq-tabs-brain{display:flex;flex-wrap:nowrap;gap:5px;padding:6px 10px 7px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid rgba(182,100,60,0.25);background:linear-gradient(180deg,rgba(255,216,102,0.07),rgba(255,216,102,0.02));align-items:center}
faq-tabs-brain::-webkit-scrollbar{display:none}
faqBodyBrain{display:none;background:var(--console-bg);border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;max-height:0;overflow:hidden;transition:max-height .2s cubic-bezier(.4,0,.2,1),padding .2s ease,opacity .2s ease;opacity:0;pointer-events:none}
#faqBodyBrain.open{display:block;max-height:400px;overflow-y:auto;opacity:1;pointer-events:auto;padding:0 8px 8px;position:relative}.faq-tab-brain{flex:0 0 auto;flex-shrink:0;min-width:max-content;padding:4px 10px;border-radius:14px;font-size:10px;font-weight:700;letter-spacing:.02em;background:linear-gradient(135deg,rgba(255,216,102,0.22),rgba(255,170,60,0.12));color:#b45309;cursor:pointer;border:1.5px solid rgba(182,100,60,0.5)!important;box-shadow:0 1px 5px rgba(0,0,0,0.12);transition:all .15s;white-space:nowrap;user-select:none}
faq-tab-brain:hover{background:color-mix(in srgb,var(--bg1) 70%,var(--cool));color:var(--ink);border-color:rgba(182,100,60,0.3);box-shadow:0 0 0 1px rgba(182,100,60,0.1)}
faq-tab-brain.active{background:linear-gradient(135deg,var(--cool),var(--warm));color:#fff;border-color:rgba(182,100,60,0.45);font-weight:700;box-shadow:0 0 0 2px rgba(182,100,60,0.15),0 0 14px rgba(182,100,60,0.18),inset 0 0 6px rgba(255,255,255,0.08);animation:tab-glow-border 2.2s ease-in-out infinite}.faq-tab-brain:hover{background:linear-gradient(135deg,rgba(255,216,102,0.38),rgba(255,170,60,0.22));color:#7c2d12;border-color:rgba(182,100,60,0.65);box-shadow:0 0 14px rgba(255,216,102,0.3)}.faq-tab-brain.active{background:linear-gradient(135deg,#ffd866,#f0a63a);color:#241703;border-color:#ffe9a8;font-weight:800;box-shadow:0 0 18px rgba(255,216,102,0.5),inset 0 1px 0 rgba(255,255,255,0.55);animation:tab-glow-border 2.2s ease-in-out infinite}.faq-items-brain{display:flex;flex-wrap:wrap;gap:6px;padding:8px;max-height:min(320px,34vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.faq-items-brain::-webkit-scrollbar{width:4px}.faq-items-brain::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.faq-chip-brain{padding:5px 10px;border-radius:12px;font-size:10px;background:rgba(31,90,67,0.06);color:var(--forest,#1f5a43);cursor:pointer;border:1px solid rgba(31,90,67,0.25);transition:all .12s;white-space:normal;line-height:1.45;text-align:left;font-family:inherit}.faq-chip-brain:hover{background:rgba(31,90,67,0.14);color:var(--forest);border-color:rgba(31,90,67,0.35)}.faq-num-brain{display:none}
.faq-scroll-tools{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;z-index:2}
.faq-scroll-btn{width:22px;height:22px;border-radius:50%;border:1px solid rgba(31,90,67,0.35);background:rgba(255,255,255,0.9);color:var(--forest,#1f5a43);font-size:9px;line-height:1;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.1);transition:all .12s;display:flex;align-items:center;justify-content:center;padding:0}
.faq-scroll-btn:hover{background:var(--forest,#1f5a43);color:#fff;border-color:var(--forest,#1f5a43)}
.faq-scroll-btn:disabled{opacity:0.35;cursor:not-allowed}
.faq-scroll-hint{position:absolute;bottom:0;left:0;right:0;padding:18px 8px 6px;text-align:center;font-size:11px;color:var(--forest,#1f5a43);background:linear-gradient(to bottom, transparent, rgba(255,255,255,0.98));pointer-events:none;opacity:1;transition:opacity .25s;z-index:1}
.faq-scroll-hint.hidden{opacity:0}
/* ═══ 麦克风图标（圆形底+线条麦克风，替代 🎤 emoji）═══ */
.mic-icon{display:inline-block;width:1.1em;height:1.1em;background-image:url("./assets/mic-icon.svg");background-size:contain;background-repeat:no-repeat;background-position:center;vertical-align:-0.18em;flex-shrink:0;}
.mic-icon-lg{width:24px;height:24px;}
/* ═══ 聊天框语音输入麦克风按钮（紧凑版，放在100问pill后面）═══ */
#stt-mic-btn{transition:all .18s cubic-bezier(.4,0,.2,1);}
#stt-mic-btn:hover{border-color:rgba(200,164,92,0.65)!important;background:linear-gradient(180deg,rgba(200,164,92,0.18),rgba(182,100,60,0.1))!important;transform:translateY(-1px);box-shadow:0 2px 8px rgba(200,164,92,0.15);}
#stt-mic-btn:active{transform:scale(0.96) translateY(0)!important;}
#stt-mic-btn.stt-listening{border-color:rgba(200,60,40,0.55)!important;background:linear-gradient(180deg,rgba(200,60,40,0.14),rgba(182,100,60,0.08))!important;animation:stt-pulse-compact 1.1s ease-in-out infinite;}
#stt-mic-btn.stt-listening span:first-child{border-color:#c0392b!important;background:linear-gradient(135deg,rgba(200,60,40,0.22),rgba(196,168,90,0.12))!important;box-shadow:0 0 8px rgba(200,60,40,0.3);}
#stt-mic-btn.stt-listening span:last-child{color:#c0392b!important;}
@keyframes stt-pulse-compact{0%,100%{box-shadow:0 0 0 0 rgba(200,60,40,0.28)}50%{box-shadow:0 0 0 5px rgba(200,60,40,0)}}
#stt-mic-btn.stt-unsupported{opacity:0.4;cursor:not-allowed;}
/* 发送按钮左边的麦克风（纯图标，无文字） */
#stt-mic-input-btn.stt-listening{border-color:rgba(200,60,40,0.55)!important;background:rgba(200,60,40,0.12)!important;animation:stt-pulse-compact 1.1s ease-in-out infinite;}
#stt-mic-input-btn.stt-listening span{border-color:#c0392b!important;background:linear-gradient(135deg,rgba(200,60,40,0.22),rgba(196,168,90,0.12))!important;box-shadow:0 0 8px rgba(200,60,40,0.3);}
#stt-mic-input-btn.stt-unsupported{opacity:0.4;cursor:not-allowed;}
/* 左侧面板语音区：canvas 常显 */
#l1-voice-section #voice-panel[style*="display:block"]{cursor:pointer;}
#l1-voice-section #voice-panel:hover{border-color:rgba(200,164,92,0.6);box-shadow:0 2px 12px rgba(200,164,92,0.12);}

/* ═══ 输入框内语音输入状态（不额外占空间）═══ */
#voice-input-state{display:none;}
#voice-input-state.active{display:flex !important;}
#voice-input-dot{box-shadow:0 0 0 0 rgba(192,57,43,0.4);}
@keyframes voice-pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.35);opacity:0.7;}}
.stt-hint{position:fixed;left:50%;bottom:64px;transform:translateX(-50%);z-index:99998;background:rgba(20,30,25,0.92);color:#fff;font-size:12px;padding:7px 14px;border-radius:20px;pointer-events:none;box-shadow:0 4px 18px rgba(0,0,0,0.3);transition:opacity .2s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
.stt-hint.stt-hidden{opacity:0;}
.blm-chat-bg-picker{display:none;position:fixed;z-index:99999;padding:8px 10px;background:rgba(255,251,243,0.96);border:1px solid rgba(182,100,60,0.22);border-radius:12px;box-shadow:0 8px 28px rgba(16,30,25,0.18);backdrop-filter:blur(10px);font-family:'Songti SC','STSong','SimSun','Noto Serif SC',serif;flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap;max-width:calc(100vw - 24px);}.blm-chat-bg-picker.open{display:flex;position:fixed;animation:cbp-pop .16s ease}@keyframes cbp-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.blm-chat-bg-picker .cbp-title{font-size:11px;color:#8a8275;padding:0 4px 0 2px;letter-spacing:1px;white-space:nowrap}.blm-chat-bg-picker .cbp-swatch{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;background:transparent;border-radius:50%;cursor:pointer;font-family:inherit;transition:transform .12s,box-shadow .12s}.blm-chat-bg-picker .cbp-swatch:hover{transform:scale(1.18);box-shadow:0 0 0 2px rgba(182,100,60,0.35)}.blm-chat-bg-picker .cbp-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(182,100,60,0.35);flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.5)}.blm-chat-bg-picker .cbp-name{display:none}

/* ═══ 角色体系样式 ═══ */
.dock-btn.role-recommended{border-color:var(--copper,#b6643c)!important;background:rgba(182,100,60,0.06)!important}
.dock-btn.role-recommended .dock-label{color:var(--copper,#b6643c)!important;font-weight:600}
.vip-func-btn.role-recommended{border-color:var(--copper,#b6643c)!important;background:rgba(182,100,60,0.05)!important}
.vip-func-btn.role-recommended span:last-child{color:var(--copper,#b6643c)!important;font-weight:600}
.role-rec-section{border:1px solid rgba(182,100,60,0.18);border-radius:10px;padding:8px;background:rgba(182,100,60,0.03);margin-bottom:10px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}
#role-selector-overlay{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}
#role-selector-overlay .role-option-btn:active{transform:scale(0.97)}
/* ═══ Action Log & Heartbeat 面板（AI 自主执行轨迹 + 心跳监测）═══ */
#action-log{display:flex;flex-direction:column;gap:0;max-height:100%;overflow-y:auto;padding-right:4px}
#action-log .action-log-line{animation:fadeIn .25s ease}
#heartbeat-log{display:flex;flex-direction:column;gap:0;overflow-y:auto;padding-right:4px;line-height:1.5}
#heartbeat-log div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#panel-l2 .stream{flex:1 1 auto;min-height:0;overflow:hidden}
#panel-l2 .stream-meta{margin-bottom:6px}
#pill-heartbeat{color:var(--ok,#3f9b6e);font-size:10px;animation:hb-pulse 2s ease-in-out infinite}
@keyframes hb-pulse{0%,100%{opacity:1}50%{opacity:.4}}
#uptime-count,#heartbeat-count{font-variant-numeric:tabular-nums}

/* ═══ 左侧面板增强（三栏布局风格）═══ */
.l1-status-row{display:flex;gap:12px;padding:8px 10px;margin-top:6px;background:rgba(31,90,67,0.04);border-radius:8px;border:1px solid rgba(31,90,67,0.07);}
.l1-status-item{display:flex;flex-direction:column;align-items:center;gap:1px;flex:1;}
.l1-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok,#3f9b6e);box-shadow:0 0 6px var(--ok,#3f9b6e);animation:neb-blink 1.4s ease-in-out infinite}
.l1-status-dot.online{background:var(--ok,#3f9b6e)}
.l1-status-dot.offline{background:var(--dim);box-shadow:none;animation:none}
.l1-status-label{font-size:8px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-family:ui-monospace,monospace;}
.l1-status-text{font-size:11px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}

/* 语音球区域 */
.l1-voice-section{display:flex;flex-direction:column;align-items:center;gap:6px;margin:10px 0;padding:10px 0;border-radius:14px;background:linear-gradient(180deg,rgba(200,164,92,0.08) 0%,rgba(15,43,34,0.05) 100%);border:1px dashed rgba(200,164,92,0.30);}
.l1-voice-trigger{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:6px 16px 8px;border-radius:12px;transition:background .15s;}
.l1-voice-trigger:hover{background:rgba(200,164,92,0.10);}
.l1-voice-orb{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,rgba(200,164,92,0.14),rgba(182,100,60,0.10));border:2px solid rgba(200,164,92,0.55);display:flex;align-items:center;justify-content:center;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 12px rgba(200,164,92,0.12),inset 0 1px 3px rgba(255,255,255,0.5);}
.l1-voice-trigger:hover .l1-voice-orb{transform:scale(1.06);box-shadow:0 4px 20px rgba(200,164,92,0.22),inset 0 1px 3px rgba(255,255,255,0.5);}
.l1-voice-orb.active{border-color:var(--copper,#b6643c);background:linear-gradient(135deg,rgba(182,100,60,0.18),rgba(196,168,90,0.14));box-shadow:0 0 24px rgba(182,100,60,0.3),0 0 8px rgba(182,100,60,0.2),inset 0 1px 3px rgba(255,255,255,0.5);animation:l1-orb-pulse 1.2s ease-in-out infinite}
@keyframes l1-orb-pulse{0%,100%{transform:scale(1);box-shadow:0 0 24px rgba(182,100,60,0.3),0 0 8px rgba(182,100,60,0.2)}50%{transform:scale(1.08);box-shadow:0 0 32px rgba(182,100,60,0.45),0 0 14px rgba(182,100,60,0.28)}}
.l1-voice-icon{width:22px;height:22px;color:var(--copper,#b6643c);}
.l1-voice-orb.active .l1-voice-icon{color:var(--copper,#b6643c);}
.l1-voice-label{font-size:10px;color:var(--ink2);letter-spacing:.05em;padding:2px 10px;border-radius:20px;border:1px solid rgba(200,164,92,0.35);background:rgba(255,255,255,0.6);}

/* 左侧底部快捷栏 */
.l1-dock{display:flex;gap:4px;padding:8px 2px 4px;margin-top:auto;flex-shrink:0;border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;}
.l1-dock-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid rgba(31,90,67,0.11);border-radius:8px;background:rgba(31,90,67,0.03);color:var(--ink2);font-size:11px;cursor:pointer;font-family:inherit;transition:all .15s;}
.l1-dock-btn:hover{background:rgba(31,90,67,0.08);border-color:rgba(31,90,67,0.2);color:var(--forest);}
.l1-dock-ico{font-size:13px;}

/* ══ 统一左右面板 header 高度 ══ */
.panel-identity,.panel-stats{box-sizing:border-box;}
.panel-stats{padding:12px 0 10px !important;margin-bottom:10px !important;min-height:80px !important;border-bottom:1px solid var(--line) !important;}
#panel-l1 .panel-identity{display:flex;flex-direction:column;justify-content:flex-start;background:#0f2b22 !important;border-radius:0 0 12px 12px;padding:10px 14px 12px;margin-bottom:12px;min-height:80px;box-shadow:0 4px 16px rgba(15,43,34,0.18);border-bottom:none !important;color:#f4efe3;}
#panel-l1 .panel-identity .brand-title{font-size:17px !important;font-weight:800 !important;color:#ffffff !important;letter-spacing:1.5px !important;text-shadow:none !important;}
#panel-l1 .panel-identity .l1-status-row{margin-top:8px !important;padding:8px 10px !important;background:rgba(255,255,255,0.10);border-radius:8px;border:1px solid rgba(255,255,255,0.12);}
#panel-l1 .panel-identity .l1-status-label{font-size:8px;color:rgba(244,239,227,0.65) !important;letter-spacing:.1em;text-transform:uppercase;font-family:ui-monospace,monospace;}
#panel-l1 .panel-identity .l1-status-text{font-size:11px;font-weight:600;color:#f4efe3 !important;font-variant-numeric:tabular-nums;}
#panel-l1 .panel-identity .l1-status-dot.online{background:#4ade80;box-shadow:0 0 6px #4ade80;}
.panel-stats{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:nowrap;}

/* 全局底部备案号（脱离聊天区，fixed 到视口最底） */
.global-footer{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:2;text-align:center;padding:4px 16px 5px;font-size:8px;color:var(--dim);line-height:1.5;pointer-events:none;opacity:0.55;white-space:nowrap;}

/* ═══ 左面板新增内容块（常用提问 / 行业速览）═══ */
.l1-block{margin-top:12px;}
.l1-block-title{font-size:11px;font-weight:700;color:var(--ink);margin-bottom:8px;letter-spacing:.04em;}
.l1-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.l1-quick{font-family:inherit;font-size:11px;color:var(--ink2);background:rgba(31,90,67,0.04);border:1px solid rgba(31,90,67,0.10);border-radius:8px;padding:7px 8px;cursor:pointer;text-align:left;transition:all .15s;}
.l1-quick:hover{background:rgba(31,90,67,0.09);border-color:rgba(31,90,67,0.22);color:var(--forest);}
.l1-news{display:flex;flex-direction:column;gap:8px;}
.l1-news-item{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;background:rgba(255,253,248,0.5);border:1px solid var(--line);border-radius:10px;transition:all .15s;cursor:default;}
.l1-news-item:hover{background:rgba(255,253,248,0.8);border-color:rgba(31,90,67,0.18);}
.l1-news-ico{flex-shrink:0;font-size:15px;line-height:1.3;}
.l1-news-body{flex:1;min-width:0;}
.l1-news-text{font-size:11px;color:var(--ink);line-height:1.4;}
.l1-news-meta{font-size:9px;color:var(--dim);margin-top:2px;font-family:ui-monospace,monospace;letter-spacing:.03em;}

/* ═══ 右面板新增内容块（系统状态卡 / 空闲占位）═══ */
.l2-status-card{margin-top:12px;padding:12px 14px;background:rgba(31,90,67,0.05);border:1px solid rgba(31,90,67,0.12);border-radius:12px;}
.l2-sc-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:6px;}
.l2-sc-label{color:var(--dim);}
.l2-sc-val{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.l2-sc-bar{height:5px;border-radius:3px;background:rgba(31,90,67,0.10);overflow:hidden;margin:4px 0 6px;}
.l2-sc-bar-fill{height:100%;background:linear-gradient(90deg,var(--forest),var(--copper));border-radius:3px;}
.l2-sc-cap{font-size:9px;color:var(--dim);font-family:ui-monospace,monospace;letter-spacing:.03em;}

/* ══ 系统监测折叠区（UI增强：开发者信息默认收起，减少普通用户干扰）══ */
.l2-sys-monitor{margin-top:12px;border:1px solid rgba(31,90,67,0.12);border-radius:12px;background:rgba(31,90,67,0.03);overflow:hidden;}
.l2-sys-monitor>summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 14px;font-size:12px;font-weight:600;color:var(--forest);user-select:none;list-style:none;}
.l2-sys-monitor>summary::-webkit-details-marker{display:none;}
.l2-sys-monitor>summary::before{content:'▸';font-size:10px;transition:transform .2s;color:var(--dim);}
.l2-sys-monitor[open]>summary::before{transform:rotate(90deg);}
.l2-sys-hint{margin-left:auto;font-size:9px;font-weight:400;color:var(--dim);font-family:ui-monospace,monospace;}
.l2-sys-body{padding:4px 14px 14px;}
.l2-sys-stat{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:6px;}

.l2-idle{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;text-align:center;}
.l2-idle-ico{font-size:26px;opacity:.7;}
.l2-idle-text{font-size:11px;color:var(--dim);line-height:1.5;}
.l2-idle-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px;}
.l2-tag{font-size:9px;color:var(--forest);background:rgba(31,90,67,0.08);border:1px solid rgba(31,90,67,0.14);border-radius:999px;padding:3px 9px;white-space:nowrap;}
.l2-hb-idle{font-size:10px;color:var(--dim);line-height:1.6;opacity:.8;}

/* ═══ 最近对话列表 ═══ */
.l1-recent{display:flex;flex-direction:column;gap:6px;}
.l1-recent-item{font-family:inherit;font-size:11px;color:var(--ink2);background:rgba(255,253,248,0.45);border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left;transition:all .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.l1-recent-item:hover{background:rgba(31,90,67,0.07);border-color:rgba(31,90,67,0.18);color:var(--forest);}
.l1-empty{font-size:11px;color:var(--dim);padding:10px;background:rgba(31,90,67,0.03);border:1px dashed var(--line);border-radius:8px;text-align:center;}

/* ══ ③ 顶部身份 + 任务态呼吸灯条 ══ */
.l1-user-row{display:flex;align-items:center;gap:6px;margin-top:8px;padding:5px 8px;border-radius:9px;background:rgba(31,90,67,0.05);border:1px solid rgba(31,90,67,0.14);font-size:11px;color:var(--ink);}
.l1-user-row.is-known{background:rgba(31,90,67,0.09);}
.l1-pulse-dot{width:8px;height:8px;border-radius:50%;background:#3aa76d;box-shadow:0 0 0 0 rgba(58,167,109,0.6);animation:pulse-breath 1.8s ease-out infinite;flex:0 0 auto;}
.l1-pulse-dot.thinking{background:#e0962f;animation:pulse-breath-fast .7s ease-out infinite;}
@keyframes pulse-breath{0%{box-shadow:0 0 0 0 rgba(58,167,109,0.55);}70%{box-shadow:0 0 0 7px rgba(58,167,109,0);}100%{box-shadow:0 0 0 0 rgba(58,167,109,0);}}
@keyframes pulse-breath-fast{0%{box-shadow:0 0 0 0 rgba(224,150,47,0.6);}70%{box-shadow:0 0 0 8px rgba(224,150,47,0);}100%{box-shadow:0 0 0 0 rgba(224,150,47,0);}}
.l1-user-text{font-weight:600;white-space:nowrap;}
.l1-user-text b{color:var(--forest);font-weight:800;}
.l1-task-state{margin-left:auto;color:#7d8f85;font-size:10px;white-space:nowrap;}

/* ════════════════════════════════════════════════════════════════════════
 * 多端自适应布局（断点：≥1280 / 1080 / 900 / 780 / 480）
 * 目标：
 *   - 大屏（≥1280）：三栏全展开（默认行为）
 *   - 中屏（1080-1279）：两栏自动折叠，左右 tab 一直可见
 *   - 小屏（<1080）：两栏全折叠 + 顶部出现「小屏提示条」
 *   - 极小屏（<780）：左右栏 + 底栏关键按钮自适应，文字字号微缩
 * 实现：CSS 媒体查询定初始状态；JS matchMedia 监听 resize 动态切换 body.screen-sm 类
 * ════════════════════════════════════════════════════════════════════════ */

/* 中间档（1080-1279）：自动隐藏右栏，避免主对话挤兑；左栏保留 280px */
@media (max-width: 1279px) and (min-width: 1080px) {
  body:not(.l2-user-open) #panel-l2 { transform: translateX(calc(100% + 20px)); }
  body:not(.l2-user-open) .panel-tab-right { opacity: 1; pointer-events: auto; right: 0; }
  body:not(.l2-user-open) .console { right: 24px; }
  body:not(.l2-user-open) #panel-l2 { width: 300px; }
  #panel-l1 { width: 280px; }
  .console { left: 300px; }
  .panel-tab-left { left: 260px; }
}

/* 小屏（≤1180 且 >1079）：同 1180 基线，但 JS 已根据 body.screen-sm 把两栏全藏起来 */
@media (max-width: 1180px) and (min-width: 1080px) {
  body.screen-sm:not(.l1-user-open) #panel-l1 { transform: translateX(calc(-100% - 20px)); }
  body.screen-sm:not(.l2-user-open) #panel-l2 { transform: translateX(calc(100% + 20px)); }
  body.screen-sm:not(.l1-user-open) .panel-tab-left { opacity: 1; pointer-events: auto; left: 0; }
  body.screen-sm:not(.l2-user-open) .panel-tab-right { opacity: 1; pointer-events: auto; right: 0; }
  body.screen-sm:not(.l1-user-open) .console { left: 24px; }
  body.screen-sm:not(.l2-user-open) .console { right: 24px; }
}

@media (max-width: 1079px) and (min-width: 900px) {
  body:not(.l1-user-open) #panel-l1 { transform: translateX(calc(-100% - 20px)); }
  body:not(.l2-user-open) #panel-l2 { transform: translateX(calc(100% + 20px)); }
  body:not(.l1-user-open) .panel-tab-left { opacity: 1; pointer-events: auto; left: 0; }
  body:not(.l2-user-open) .panel-tab-right { opacity: 1; pointer-events: auto; right: 0; }
  body:not(.l1-user-open) .console { left: 24px; }
  body:not(.l2-user-open) .console { right: 24px; }
  .console { left: 24px; right: 24px; padding: 12px 14px; }
  /* 折叠左栏时：右侧小屏提示条可见；展开左栏时：左栏内的「速览/新闻」块隐藏 */
  #panel-l1 .l1-news,
  #panel-l1 .l1-quick-grid { font-size: 11px; }
  /* 顶部呼吸灯在小屏字号更小 */
  .l1-user-row { font-size: 10px; padding: 4px 6px; }
}

/* 极小屏（≤899）：辅助按钮字号缩到 9px；chat 输入框紧凑 */
@media (max-width: 899px) {
  body.screen-sm .l1-news-item { padding: 6px 8px; }
  body.screen-sm .l1-news-text { font-size: 11px; line-height: 1.45; }
  body.screen-sm .l1-status-row { padding: 6px 6px; }
  body.screen-sm .l1-status-text { font-size: 10px; }
  body.screen-sm .l1-status-label { font-size: 7px; }
  /* 右栏内的 section 间距在小屏更紧 */
  #panel-l2 section { margin-bottom: 10px; padding-bottom: 10px; }
}



/* ── cosmos 主题第三波覆盖（2026-08-02 14:05 补充）── */
/* 1. AI 气泡的 "地坪小助手" / "Peer" 标签 — 之前只覆盖了 .msg-user .msg-label，漏了 .msg-jarvis */
[data-theme="cosmos"] .msg-jarvis .msg-label,
[data-theme="cosmos"] .msg-user .msg-label,
[data-theme="cosmos"] .msg .msg-label {
  color: #ffd866 !important;  /* 金色高亮，对齐 voice-chat 的 ds-gold 体系 */
  opacity: 0.85 !important;
}
/* 2. AI 回答里所有 markdown 元素 (h1-h6, p, ul, ol, code, blockquote) 走继承即可，但保险起见 */
[data-theme="cosmos"] .msg-body,
[data-theme="cosmos"] .msg-body p,
[data-theme="cosmos"] .msg-body h1,
[data-theme="cosmos"] .msg-body h2,
[data-theme="cosmos"] .msg-body h3,
[data-theme="cosmos"] .msg-body h4,
[data-theme="cosmos"] .msg-body h5,
[data-theme="cosmos"] .msg-body h6,
[data-theme="cosmos"] .msg-body ul,
[data-theme="cosmos"] .msg-body ol,
[data-theme="cosmos"] .msg-body li,
[data-theme="cosmos"] .msg-body code,
[data-theme="cosmos"] .msg-body strong,
[data-theme="cosmos"] .msg-body em,
[data-theme="cosmos"] .msg-body a {
  color: inherit !important;
}
/* 3. msg-action-btn 在 cosmos 下：背景改成更深的玻璃化 + 金色边框 + 金色字 */
[data-theme="cosmos"] .msg-action-btn {
  background: rgba(20, 15, 30, 0.6) !important;
  color: #ffd866 !important;
  border-color: rgba(255, 216, 102, 0.3) !important;
}
[data-theme="cosmos"] .msg-action-btn:hover {
  background: rgba(255, 216, 102, 0.12) !important;
  color: #fff5cc !important;
}
/* 3b. 气泡容器在 cosmos 下：换深蓝玻璃 + 金/蓝边，白字可读 */
[data-theme="cosmos"] .msg-user,
[data-theme="cosmos"] .msg-jarvis {
  background: rgba(20, 30, 55, 0.78) !important;
}
[data-theme="cosmos"] .msg-user {
  border-color: rgba(255, 216, 102, 0.32) !important;
}
[data-theme="cosmos"] .msg-jarvis {
  border-color: rgba(143, 182, 216, 0.32) !important;
}
/* 4. 兜底：任何 .msg-jarvis / .msg-user 容器内子元素 */
/* 用 body[data-theme="cosmos"]:not(.blm-dark)（特异性 0,3,1）压过 theme-switcher.js 行 8
   body:not(.blm-dark) .msg-user,body:not(.blm-dark) .msg-jarvis{color:#1d1d1f!important}（0,2,1） */
body[data-theme="cosmos"]:not(.blm-dark) .msg-jarvis,
body[data-theme="cosmos"]:not(.blm-dark) .msg-jarvis *,
body[data-theme="cosmos"]:not(.blm-dark) .msg-user,
body[data-theme="cosmos"]:not(.blm-dark) .msg-user * {
  color: inherit;
}
body[data-theme="cosmos"]:not(.blm-dark) .msg-jarvis,
body[data-theme="cosmos"]:not(.blm-dark) .msg-user {
  color: var(--ink) !important;
}
/* 5. 第三方 markmap / stream 里的 title、徽章 */
[data-theme="cosmos"] [class*="title"],
[data-theme="cosmos"] [class*="label"]:not(.hs-label-badge) {
  color: var(--ink) !important;
}
/* ── JS 控制的小屏提示条（仅当 body 含 .screen-sm 时显示）── */
.screen-hint {
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
  display: none;  /* JS 根据 body.screen-sm 自动切到 flex */
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: rgba(15, 43, 34, 0.92);
  color: #f4efe3;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.5px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: screen-hint-in 0.4s ease-out;
}
.screen-hint .hint-icon { font-size: 14px; }
.screen-hint .hint-text b { color: #f9a847; font-weight: 700; }
.screen-hint .hint-close {
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  font-size: 16px;
  padding: 0 2px;
  line-height: 1;
}
.screen-hint .hint-close:hover { color: #fff; }
body.screen-sm .screen-hint { display: flex; }
@keyframes screen-hint-in {
  from { opacity: 0; transform: translate(-50%, -10px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

/* 全屏浮层（用户主动点 tab 打开栏时满屏遮罩，便于在窄屏阅读 L1/L2 内容） */
.panel-fullmask {
  position: fixed;
  inset: 0;
  background: rgba(15, 43, 34, 0.45);
  z-index: 5;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
body.screen-sm.l1-user-open .panel-fullmask,
body.screen-sm.l2-user-open .panel-fullmask {
  opacity: 1;
  pointer-events: auto;
}
/* 小屏下用户主动展开侧栏时，浮在 panel 之上；覆盖原 transform */
body.screen-sm.l1-user-open #panel-l1 { transform: translateX(0); z-index: 6; width: min(86vw, 360px); }
body.screen-sm.l2-user-open #panel-l2 { transform: translateX(0); z-index: 6; width: min(86vw, 360px); }

/* ════════════════════════════════════════════════════════════════════════
 * 「地坪常见100问」折叠头 — 重做（之前闪烁亮条太宽、颜色不够显眼）
 * 设计思路：去掉全宽的 background 闪烁，只让文字小药丸本身呼吸光晕；
 *           文字加深林绿、提示语改成铜金底白字的小标签，更"专业在线"感
 * ════════════════════════════════════════════════════════════════════════ */
.faq-toggle-label {
  /* 覆盖原 .faq-toggle-label 的全宽闪烁动画 + 默认色 */
  animation: none !important;
  background: transparent !important;
  color: var(--ink) !important;
  padding: 4px 6px !important;
  border-radius: 0 !important;
  border: 0 !important;
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  user-select: none !important;
  width: auto !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
/* 文字小药丸：紧贴文字大小，呼吸光晕只罩这一段，不再是全宽亮条 */
.faq-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px 5px 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(31, 90, 67, 0.10), rgba(196, 168, 90, 0.12));
  border: 1px solid rgba(31, 90, 67, 0.30);
  border-left: 3px solid var(--copper, #b6643c);
  box-shadow: 0 1px 2px rgba(31, 90, 67, 0.08);
  cursor: pointer;
  /* 呼吸光晕：只罩文字胶囊，不扩展到全宽 */
  animation: faq-pill-breathe 2.2s ease-in-out infinite;
  max-width: 100%;
  flex-wrap: nowrap;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.faq-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(31, 90, 67, 0.18);
  animation-play-state: paused;
}
.faq-pill-icon {
  font-size: 13px;
  flex: 0 0 auto;
  filter: saturate(1.15);
}
.faq-pill-text {
  font-size: 15px;
  font-weight: 800;
  color: #0f2b22;        /* 深林绿，比 var(--forest) 略深，醒目 */
  letter-spacing: 0.5px;
  white-space: nowrap;
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: none;      /* 去文字投影：小字号下白投影易糊 */
}
.faq-pill-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #c47a44, #a85a2e);
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: 0.3px;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(168, 90, 46, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  flex: 0 0 auto;
}
.faq-pill-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 4px #4ade80, 0 0 8px rgba(74, 222, 128, 0.45);
  animation: faq-pill-dot-blink 1.4s ease-in-out infinite;
  flex: 0 0 auto;
}
.faq-pill-arrow {
  font-size: 11px;
  color: var(--copper, #b6643c);
  margin-left: auto;
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
#faq-panel-brain:not(.collapsed) .faq-pill-arrow {
  transform: rotate(90deg);
}

/* 收紧 FAQ 面板与输入行之间的空白 */
#input-row {
  margin-top: 0;
}
#faq-panel-brain.collapsed {
  overflow: hidden;
}

/* 关键帧：呼吸光晕贴文字胶囊，扩散短（2px）不再糊字 */
@keyframes faq-pill-breathe {
  0%, 100% {
    box-shadow: 0 1px 2px rgba(31, 90, 67, 0.08);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(182, 100, 60, 0.12), 0 1px 2px rgba(31, 90, 67, 0.10);
  }
}
@keyframes faq-pill-dot-blink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.78); }
}

/* 「地坪知识库」品牌字：置顶顶栏样式（纯白，无渐变无阴影） */
#l1-brand-bar .brand-title,
#panel-l1 .panel-identity .brand-title {
  color: #ffffff !important;
  text-shadow: none !important;
}
#l1-brand-bar {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}


/* ═══ 左下角 AI 吉祥物（桌面端 brain-ui）═══ */
#panel-l1{overflow-y:auto;scrollbar-width:thin;}
#panel-l1::-webkit-scrollbar{width:4px;}
#panel-l1::-webkit-scrollbar-thumb{background:rgba(182,100,60,0.25);border-radius:2px;}
.l1-mascot-wrap{flex-shrink:0;margin:6px 0 4px;padding:4px 4px 2px;border-radius:14px;background:linear-gradient(180deg,rgba(200,164,92,0.10) 0%,rgba(15,43,34,0.06) 100%);border:1px dashed rgba(200,164,92,0.35);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:120px;max-height:132px;}
.l1-mascot-main{display:flex;align-items:flex-end;justify-content:center;width:100%;}
.l1-mascot-kw{display:flex;flex-direction:row;gap:8px;align-items:center;justify-content:center;padding:4px 0 2px;}
.l1-mascot-kw-btn{width:26px;height:26px;border-radius:50%;border:1px solid rgba(200,164,92,0.55);background:#fff;font-size:13px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;}
.l1-mascot-kw-btn:hover{background:var(--forest);color:#fff;border-color:var(--forest);}
.l1-mascot-kw-btn.on{background:var(--forest);color:#C8A45C;border-color:var(--forest);}
.l1-mascot-stage{width:80px;height:100px;position:relative;display:flex;align-items:flex-end;justify-content:center;}
.l1-mascot-turn{transform:none;}
.l1-mascot-lean{animation:mascot-sway 6.5s ease-in-out infinite;transform-origin:50% 96%;}
.l1-mascot-body{animation:mascot-breathe 4.2s ease-in-out infinite;transform-origin:50% 92%;}
.l1-mascot-body svg{display:block;width:80px;height:100px;}
@keyframes mascot-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes mascot-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
@keyframes mascot-hair-l{0%,100%{transform:rotate(0deg)}50%{transform:rotate(2deg)}}
@keyframes mascot-hair-r{0%,100%{transform:rotate(0deg)}50%{transform:rotate(-2deg)}}
.mascot-hair-l{animation:mascot-hair-l 5.2s ease-in-out infinite;transform-origin:top center;}
.mascot-hair-r{animation:mascot-hair-r 5.6s ease-in-out infinite;transform-origin:top center;}
@keyframes mascot-blink{0%,90%,100%{transform:scaleY(1)}94%,96%{transform:scaleY(0.12)}98%{transform:scaleY(1)}}
.mascot-eye{animation:mascot-blink 5.8s ease-in-out infinite;transform-origin:center;}
.mascot-eye-r{animation-delay:0.15s;}
.mascot-mouth{transform:scaleY(0.18);transform-origin:center;transition:transform .08s ease;}
.l1-mascot-body.speaking .mascot-mouth{animation:mascot-talk 0.26s ease-in-out infinite;}
@keyframes mascot-talk{0%,100%{transform:scaleY(0.18)}50%{transform:scaleY(1)}}
.mascot-brow{transition:transform .4s ease;transform-origin:center;}
.l1-mascot-body.thinking .mascot-brow{transform:translateY(-2px) rotate(-3deg);}
.l1-mascot-body.happy .mascot-cheek{opacity:0.9;}
.mascot-cheek{opacity:0;transition:opacity .4s ease;}
.l1-mascot-body.reading .mascot-eye{transform:scaleY(0.55);}
.l1-mascot-body.reading .mascot-pupil{transform:translateY(3px);}
.l1-mascot-caption{text-align:center;font-size:10px;color:var(--ink2);margin-top:2px;line-height:1.3;min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 6px;}

/* ── 桌面端商机地图 marker（兜底 + 增强）── */
.desktop-map-pin{position:relative;width:18px;height:18px;display:block;}
.desktop-map-pin .dot{position:absolute;top:5px;left:5px;width:8px;height:8px;border-radius:50%;background:#ff3b30 !important;box-shadow:0 0 8px 2px rgba(255,59,48,0.7) !important;z-index:2;}
.desktop-map-pin .ring{position:absolute;top:5px;left:5px;width:8px;height:8px;border-radius:50%;background:#ff3b30 !important;animation:desktopMapPulse 1.8s ease-out infinite;z-index:1;}
.desktop-map-pin.ov .dot{background:#ff9500 !important;box-shadow:0 0 8px 2px rgba(255,149,0,0.7) !important;}
.desktop-map-pin.ov .ring{background:#ff9500 !important;animation-duration:2.2s;}
@keyframes desktopMapPulse{0%{transform:scale(0.55);opacity:1}70%{transform:scale(2.6);opacity:0}100%{transform:scale(2.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.desktop-map-pin .ring{animation:none !important;opacity:0.5 !important;}}

/* ════════════════════════════════════════════════════════════════════════
 * 全球商机大屏（hotspot-panel）字体清晰化修复
 * 问题：平板/高 DPI 屏上，列表与卡片文字发虚。根因是多层 backdrop-filter:blur
 *        叠加在半透明背景上，造成整体“雾化”；另小字号在 Retina 上不易读。
 * 修复：透明背景改实色、去掉所有模糊滤镜、开启字体平滑、适当放大字号、提对比。
 * ════════════════════════════════════════════════════════════════════════ */

/* 整体大屏字体渲染优化：抗锯齿 + 整数像素对齐，避免亚像素模糊 */
.hotspot-panel,
.hotspot-panel * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.hotspot-panel {
  /* 强制实色底，杜绝任何透明叠加导致的发虚 */
  background: #f8f3e8 !important;
  /* 关键：移除任何遗留的模糊滤镜 */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif !important;
}

/* 统计条 / 各列表卡片：实色底 + 无模糊 + 实色细边 */
.hotspot-panel .hs-stats-bar,
.hotspot-panel .hs-list-card {
  background: #fffbf3 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(23, 34, 28, 0.10) !important;
  box-shadow: none !important;
}

/* 统计数字加大、加粗、提对比，便于后排观众看清 */
.hotspot-panel .hs-stat-value {
  font-size: 19px !important;
  font-weight: 800 !important;
  color: #0f2b22 !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.3px;
}
.hotspot-panel .hs-stat-label {
  font-size: 12px !important;
  color: #4a554d !important;
  font-weight: 600 !important;
}
.hotspot-panel .hs-stat-delta {
  font-size: 11px !important;
  color: #6b7370 !important;
}

/* 列表项文字放大、行高放松，平板演示更清晰 */
.hotspot-panel .hs-list-card .hs-platform-name {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #17221c !important;
}
.hotspot-panel .hs-card-badge,
.hotspot-panel .hs-card-update {
  font-size: 11px !important;
  color: #fff !important;
  background: var(--forest) !important;
  padding: 2px 7px !important;
  border-radius: 6px !important;
}

.hotspot-panel .hs-item {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #17221c !important;
  padding: 7px 4px !important;
  border-bottom: 1px solid rgba(23, 34, 28, 0.06) !important;
}
.hotspot-panel .hs-item-text {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #1d2620 !important;
}
.hotspot-panel .hs-rank {
  font-size: 12px !important;
  font-weight: 800 !important;
  color: #fff !important;
  background: var(--forest) !important;
  border-radius: 6px !important;
  min-width: 20px !important;
  height: 20px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.hotspot-panel .hs-rank-top1 { background: #c0392b !important; }
.hotspot-panel .hs-rank-top2 { background: #d98324 !important; }
.hotspot-panel .hs-rank-top3 { background: #b8860b !important; }
.hotspot-panel .hs-label-badge,
.hotspot-panel .hs-area-badge {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #fff !important;
  background: var(--forest) !important;
  border: 1px solid rgba(31, 90, 67, 0.4) !important;
  border-radius: 6px !important;
  padding: 2px 7px !important;
}

/* 区域商机情报 / 招投标卡片标题与项 */
.hotspot-panel #hs-region-card .hs-platform-name,
.hotspot-panel #hs-bids-card .hs-platform-name {
  font-size: 14px !important;
  font-weight: 700 !important;
}
.hotspot-panel .hs-region-tab {
  font-size: 11px !important;
  font-weight: 600 !important;
}
.hotspot-panel .hs-region-name {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #1d2620 !important;
}
.hotspot-panel .hs-region-pct {
  font-size: 12px !important;
  font-weight: 800 !important;
  color: #0f2b22 !important;
}
.hotspot-panel .hs-bid-card {
  background: #fffbf3 !important;
  border: 1px solid rgba(23, 34, 28, 0.08) !important;
  border-radius: 8px !important;
  padding: 7px 9px !important;
  margin-bottom: 5px !important;
}
.hotspot-panel .hs-bid-card-title {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #17221c !important;
  line-height: 1.5 !important;
}
.hotspot-panel .hs-bid-card-loc,
.hotspot-panel .hs-bid-card-date {
  font-size: 11px !important;
  color: #5b655d !important;
}
.hotspot-panel .hs-bid-filter {
  padding: 5px 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 5px !important;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
}
.hotspot-panel .hs-bid-toolbar {
  padding: 8px 10px !important;
  gap: 6px !important;
}
.hotspot-panel .hs-bid-search {
  padding: 6px 10px !important;
  font-size: 12px !important;
  min-height: 28px !important;
  border-radius: 5px !important;
}
.hotspot-panel .hs-bid-send {
  padding: 6px 14px !important;
  font-size: 12px !important;
  min-height: 28px !important;
  border-radius: 5px !important;
}

/* 全球商机面板标题栏：深色背景 */
.hotspot-panel .hs-header{background:linear-gradient(135deg,#0f2b22 0%,#1a3a2e 100%)!important;border-bottom-color:rgba(200,164,92,0.25)!important;}
.hotspot-panel .hs-header .hs-brand-name{color:#f4efe3!important;}
.hotspot-panel .hs-header .hs-brand-status{color:rgba(244,239,227,0.6)!important;}
.hotspot-panel .hs-header .hs-brand-dot{color:#fff!important;}
.hotspot-panel .hs-title-zh{color:#f4efe3!important;background:transparent!important;padding:0!important;border-radius:0!important;font-size:18px;font-weight:800;}

/* 顶部标题栏大字更醒目 */
.hotspot-panel .hs-title-zh {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: 0.5px;
}
.hotspot-panel .hs-brand-name {
  font-size: 14px !important;
  font-weight: 700 !important;
}
.hotspot-panel .hs-header-tag {
  font-size: 11px !important;
  color: #fff !important;
}
.hotspot-panel .hs-tag-status {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #fff !important;
}

/* 3D 地球容器：取消半透明，给实色底托住文字浮层 */
.hotspot-panel #hs-earth-stats {
  background: rgba(255, 251, 243, 1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.hotspot-panel #hs-earth-stats > div[style*="font-size:10px"] {
  font-size: 11px !important;
  color: #4a554d !important;
}
.hotspot-panel #es-region-list > div,
.hotspot-panel #es-sub-list > div {
  font-size: 11px !important;
}

/* 底部跑马灯字号 */
.hotspot-panel .hs-ticker-inner {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #1d2620 !important;
}

/* 3D 地球容器：暖纸光晕托底 + 平板保持正圆，避免被挤成椭圆 */
.hotspot-panel #hs-earth-container {
  background: radial-gradient(circle at center, rgba(31, 90, 67, 0.10) 0%, rgba(255, 251, 243, 0.35) 65%, rgba(255, 251, 243, 0.9) 100%) !important;
}
.hotspot-panel #hs-earth-canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
}
.hotspot-panel #hs-earth-loading {
  font-size: 12px !important;
  color: rgba(23, 34, 28, 0.35) !important;
}
/* 商机分布图按钮移到左上角，不再挡住地球正中 */
.hotspot-panel #hs-map-btn {
  top: 12px !important;
  left: 12px !important;
  transform: none !important;
  padding: 6px 12px !important;
  border-radius: 18px !important;
  font-size: 11px !important;
}
.hotspot-panel #hs-map-btn span:last-child {
  font-size: 10px !important;
}

/* 平板/窄屏：地球容器占主导高度，商机列表固定占比，二者不再互相挤压 */
@media (max-width: 1200px) {
  .hotspot-panel .hs-col-right {
    gap: 8px !important;
  }
  .hotspot-panel #hs-earth-container {
    flex: 1 1 auto !important;
    min-height: 260px !important;
    max-height: none !important;
    height: 58% !important;
    margin: 0 auto !important;
  }
  /* 商机列表改为固定占比，加载数据后不会反向挤压地球容器 */
  .hotspot-panel .hs-list-card--bids {
    flex: 0 0 auto !important;
    height: 38% !important;
    min-height: 160px !important;
    max-height: 42% !important;
  }
}

/* 平板 / 触屏设备：整体再放大一档，确保后排可见（roadshow 场景） */
@media (pointer: coarse), (min-resolution: 2dppx) {
  .hotspot-panel .hs-item { font-size: 14px !important; padding: 8px 4px !important; }
  .hotspot-panel .hs-item-text { font-size: 14px !important; }
  .hotspot-panel .hs-stat-value { font-size: 21px !important; }
  .hotspot-panel .hs-platform-name,
  .hotspot-panel #hs-region-card .hs-platform-name,
  .hotspot-panel #hs-bids-card .hs-platform-name { font-size: 15px !important; }
  .hotspot-panel .hs-bid-card-title { font-size: 14px !important; }
  .hotspot-panel .hs-title-zh { font-size: 18px !important; }
}

/* ════════════════════════════════════════════════════════════════════════
 * 主聊天面板（brain-ui）在平板/高 DPI 屏上的文字清晰化修复
 * 问题：两侧 .panel 使用 backdrop-filter:blur(16px) + 半透明玻璃背景，
 *        在 Retina/平板上会让面板内文字（尤其是 #chat-suggestions 快捷标签）发虚。
 * 修复：触屏/高 DPI 下把面板改成实色背景并移除模糊；放大快捷标签字号与对比。
 * ════════════════════════════════════════════════════════════════════════ */
@media (pointer: coarse), (min-resolution: 2dppx), (max-width: 1200px) {
  /* 左右两侧常驻面板：玻璃改实色，去模糊 */
  .panel {
    background: #fffbf3 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(182, 100, 60, 0.18) !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06) !important;
  }

  /* 推荐问题 / 快捷标签条：与顶部 kb-tag-btn 格式统一（透明底、森林绿细边、10px） */
  #chat-suggestions {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  #chat-suggestions > span {
    font-size: 10px !important;
    padding: 2px 8px !important;
    border-radius: 10px !important;
    font-weight: 400 !important;
    color: var(--forest) !important;
    border: 1px solid rgba(31, 90, 67, 0.15) !important;
    background: transparent !important;
  }
  #chat-suggestions > span:hover {
    background: rgba(31, 90, 67, 0.08) !important;
  }

  /* 字体抗锯齿，确保亚像素不糊 */
  .panel,
  .panel * {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }
}

/* ════════════════════════════════════════════════════════════════════════
 * 聊天窗口顶部操作按钮去方框：只保留图标+文字，去掉圆角方形底框
 * ════════════════════════════════════════════════════════════════════════ */
/* 100问头部同一行操作按钮：小字横向排列，不占独立行 */
.faq-header-btn {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border: 1px solid rgba(182, 100, 60, 0.25) !important;
  border-radius: 8px !important;
  background: rgba(255, 251, 243, 0.6) !important;
  box-shadow: none !important;
  padding: 2px 6px !important;
  font-size: 14px !important;
  color: var(--ink2) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  flex-shrink: 0 !important;
  transition: all .15s !important;
  line-height: 1.2 !important;
}
.faq-header-btn:hover {
  background: rgba(255, 251, 243, 0.95) !important;
  border-color: rgba(31, 90, 67, 0.35) !important;
  color: var(--forest) !important;
  transform: translateY(-1px) !important;
}
.faq-header-btn:active {
  transform: scale(0.95) !important;
}
.faq-btn-ico {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 12px !important;
}
.faq-btn-cap {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 12px !important;
  color: inherit !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

/* ═══ 快捷操作栏（聊天/搜索/品牌/客服/设置/全屏）迁入聊天头同一排 ═══
 * 原位于左面板底部（l1-dock），现移动到「专家在线·秒回」之后、首页/关闭之前。
 * 保留 .l1-dock 类名以复用原有按钮样式与 cosmos 覆盖；此处覆盖容器在行内的布局。 */
#chat-window-actions {
  max-width: 90% !important; /* 让 6 个快捷按钮 + 首页/关闭 能放下，不再被 50% 掐断 */
}
#chat-window-actions .l1-dock {
  margin-top: 0 !important;
  border-top: none !important;
  padding: 0 2px !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  gap: 3px !important;
  flex: 0 0 auto !important;
}
#chat-window-actions .l1-dock-btn {
  padding: 3px 7px !important;
  font-size: 11px !important;
  white-space: nowrap !important;
}
/* 首页/关闭 与快捷按钮统一外观：同款绿调浅底 + 圆角 + 紧凑内边距 */
#chat-window-actions .faq-header-btn {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 29px !important; /* 与 .l1-dock-btn 在本行渲染高度对齐 */
  box-sizing: border-box !important;
  padding: 3px 7px !important;
  border: 1px solid rgba(31, 90, 67, 0.11) !important;
  border-radius: 8px !important;
  background: rgba(31, 90, 67, 0.03) !important;
  box-shadow: none !important;
  color: var(--ink2) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
  transition: all .15s !important;
}
#chat-window-actions .faq-header-btn:hover {
  background: rgba(31, 90, 67, 0.08) !important;
  border-color: rgba(31, 90, 67, 0.2) !important;
  color: var(--forest) !important;
  transform: none !important;
  box-shadow: none !important;
}
#chat-window-actions .faq-header-btn:active {
  transform: scale(0.95) !important;
}
#chat-window-actions .faq-btn-ico {
  font-size: 13px !important;
  line-height: 1 !important;
}
#chat-window-actions .faq-btn-cap {
  font-size: 11px !important;
  font-weight: 500 !important;
  color: inherit !important;
  line-height: 1 !important;
}
/* 深空主题：行内快捷按钮文字保持浅色（沿用原 .l1-dock 的 cosmos 覆盖规则） */
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .l1-dock-btn,
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .l1-dock-btn span {
  color: #e8e4f0 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .l1-dock-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .l1-dock-btn:hover span {
  color: #ffd866 !important;
  border-color: rgba(255, 216, 102, 0.75) !important;
}

/* ═══ 环氧树脂实时行情卡片（今日行业速览）═══ */
.epoxy-card {
  margin-top: 10px;
  padding: 10px 11px 9px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(31,90,67,0.07), rgba(182,100,60,0.10));
  border: 1px solid rgba(182,100,60,0.22);
  box-shadow: 0 2px 10px rgba(182,100,60,0.06);
}
[data-theme="dark"] .epoxy-card,
[data-theme="midnight"] .epoxy-card {
  background: linear-gradient(135deg, rgba(31,90,67,0.16), rgba(182,100,60,0.14));
  border-color: rgba(182,100,60,0.30);
  box-shadow: 0 2px 14px rgba(0,0,0,0.25);
}
.epoxy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 9px;
}
.epoxy-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--forest, #1f5a43);
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  letter-spacing: .02em;
}
.epoxy-src {
  font-size: 8.5px;
  font-weight: 500;
  color: var(--dim);
  letter-spacing: .04em;
}
.epoxy-link {
  font-size: 9px;
  color: var(--copper, #b6643c);
  text-decoration: none;
  opacity: .85;
  transition: opacity .15s;
}
.epoxy-link:hover { opacity: 1; text-decoration: underline; }

.epoxy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.epoxy-item {
  position: relative;
  padding: 7px 9px 6px;
  border-radius: 9px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(182,100,60,0.16);
  overflow: hidden;
  transition: transform .15s, box-shadow .15s;
}
.epoxy-item::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--copper, #b6643c);
  opacity: .55;
}
.epoxy-item.epoxy-up::before { background: #d9433b; }
.epoxy-item.epoxy-down::before { background: #2f9e63; }
.epoxy-item:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(182,100,60,0.12); }
[data-theme="dark"] .epoxy-item,
[data-theme="midnight"] .epoxy-item {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.08);
}
.epoxy-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 4px;
}
.epoxy-spec {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: .02em;
}
.epoxy-tag {
  flex: 0 0 auto;
  font-size: 8px;
  font-weight: 600;
  color: var(--copper, #b6643c);
  background: rgba(182,100,60,0.12);
  border-radius: 5px;
  padding: 1px 5px;
  white-space: nowrap;
}
.epoxy-price {
  display: flex;
  align-items: baseline;
  gap: 3px;
  font-variant-numeric: tabular-nums;
}
.epoxy-num {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 15px;
  font-weight: 800;
  color: var(--copper, #b6643c);
  line-height: 1;
}
.epoxy-item.epoxy-up .epoxy-num { color: #e0493f; }
.epoxy-item.epoxy-down .epoxy-num { color: #2f9e63; }
.epoxy-unit {
  font-size: 8.5px;
  color: var(--dim);
  font-weight: 500;
}
.epoxy-region {
  display: block;
  margin-top: 3px;
  font-size: 8.5px;
  color: var(--dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.epoxy-bench {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 9px;
  padding: 6px 9px;
  border-radius: 8px;
  background: rgba(31,90,67,0.10);
  border: 1px dashed rgba(31,90,67,0.22);
}
.epoxy-bench-label {
  font-size: 9.5px;
  font-weight: 600;
  color: var(--forest, #1f5a43);
  letter-spacing: .03em;
}
.epoxy-bench-num {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 12px;
  font-weight: 800;
  color: var(--forest, #1f5a43);
}
.epoxy-stamp {
  margin-top: 7px;
  font-size: 8.5px;
  color: var(--dim);
  text-align: right;
  font-family: ui-monospace, monospace;
  letter-spacing: .02em;
}
.epoxy-loading, .epoxy-empty {
  font-size: 10px;
  color: var(--dim);
  padding: 8px 4px;
  text-align: center;
}

/* ══ 今日行业速览 · 可点击条目 ═══ */
.l1-clickable {
  cursor: pointer;
  transition: background .2s, transform .15s;
  border-radius: 8px;
}
.l1-clickable:hover {
  background: rgba(31,90,67,0.08);
  transform: translateX(2px);
}
.l1-clickable:active {
  transform: translateX(0) scale(.98);
}
.l1-clickable .l1-news-text::after {
  content: ' ↗';
  opacity: 0;
  font-size: 10px;
  transition: opacity .2s;
  color: var(--copper, #b6643c);
  margin-left: 3px;
}
.l1-clickable:hover .l1-news-text::after {
  opacity: .7;
}

/* 环氧树脂牌号卡片可点击 */
.epoxy-clickable {
  cursor: pointer;
  transition: box-shadow .2s, transform .15s, border-color .2s;
}
.epoxy-clickable:hover {
  box-shadow: 0 2px 10px rgba(0,0,0,.12);
  transform: translateY(-1px);
  border-color: var(--forest, rgba(31,90,67,.35));
}
.epoxy-clickable:active {
  transform: translateY(0) scale(.98);
}

/* ═══ cosmos（深空星河）主题可读性修复 ═══
 * 仅 [data-theme="cosmos"] 生效；其它主题保持原样。
 * 背景问题：左侧新闻/最近对话/行情卡片原本是浅色半透明底+浅色文字，深空下几乎看不清。
 * 聊天输入框被浅色主题规则锁成近白底深字 → 星空下改透明底+白字。 */
[data-theme="cosmos"] .l1-news-item,
[data-theme="cosmos"] .l1-recent-item,
[data-theme="cosmos"] .epoxy-item {
  background: rgba(10, 14, 30, 0.55) !important;
  border-color: rgba(255, 216, 102, 0.16) !important;
  color: var(--ink) !important;
}
[data-theme="cosmos"] .l1-news-text {
  color: rgba(232, 228, 240, 0.94) !important;
}
[data-theme="cosmos"] .l1-news-meta,
[data-theme="cosmos"] .epoxy-unit,
[data-theme="cosmos"] .epoxy-region,
[data-theme="cosmos"] .epoxy-stamp {
  color: rgba(232, 228, 240, 0.55) !important;
}
[data-theme="cosmos"] .l1-block-title,
[data-theme="cosmos"] .epoxy-title,
[data-theme="cosmos"] .epoxy-spec,
[data-theme="cosmos"] .epoxy-bench-num {
  color: #ffd866 !important;
}
[data-theme="cosmos"] .epoxy-num {
  color: #ffd866 !important;
}
[data-theme="cosmos"] .epoxy-item.epoxy-up .epoxy-num {
  color: #ff8a80 !important;
}
[data-theme="cosmos"] .epoxy-item.epoxy-down .epoxy-num {
  color: #7ee2a6 !important;
}
[data-theme="cosmos"] .l1-quick,
[data-theme="cosmos"] .l1-recent-item,
[data-theme="cosmos"] .l1-empty {
  color: rgba(232, 228, 240, 0.85) !important;
  background: rgba(10, 14, 30, 0.35) !important;
  border-color: rgba(255, 216, 102, 0.14) !important;
}

/* 聊天输入框：透明底 + 白色字体（仅 cosmos） */
[data-theme="cosmos"] #msg-input {
  background: transparent !important;
  border: 1px solid rgba(255, 216, 102, 0.22) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
[data-theme="cosmos"] #msg-input:focus {
  border-color: rgba(255, 216, 102, 0.45) !important;
  box-shadow: 0 0 0 2px rgba(255, 216, 102, 0.12) !important;
}
[data-theme="cosmos"] #msg-input::placeholder {
  color: rgba(255, 255, 255, 0.45) !important;
}
/* 聊天区本身也保持通透，贴合星空背景 */
[data-theme="cosmos"] #chat-history,
[data-theme="cosmos"] #chat-messages {
  background: transparent !important;
}
/* 行情/商机卡片写死的深色或浅蓝底文字 */
[data-theme="cosmos"] .hs-stat-label,
[data-theme="cosmos"] .hs-bid-card-loc {
  color: rgba(232, 228, 240, 0.62) !important;
}
[data-theme="cosmos"] .hs-bid-card-date {
  color: rgba(232, 228, 240, 0.45) !important;
}
[data-theme="cosmos"] .hs-bid-card-tag {
  background: rgba(255, 216, 102, 0.16) !important;
  color: #ffd866 !important;
}
[data-theme="cosmos"] .hs-feed-card-title {
  color: #ffd866 !important;
}
/* "💡 试试这样问我" 提示：无 class 的直接子 div，默认暖灰 rgb(168,158,140) 在黑底偏淡 */
body[data-theme="cosmos"] #chat-scenarios > div {
  color: rgba(232, 228, 240, 0.72) !important;
}

/* ── cosmos 第四波覆盖（2026-08-02 15:45）：压过末尾巨块 [class*="btn"]:not(...) (0,2,0) + !important ──
   用 body[data-theme="cosmos"]:not(.blm-dark) 前缀升特异性到 (0,3,1) 绝对胜出
   涵盖：底部 dock 36+ 按钮、l1 吉祥物按钮、设置面板保存按钮、FAQ tab 按钮、TTS 切换器、hs-lang-btn 等 */
body[data-theme="cosmos"]:not(.blm-dark) .dock-btn,
body[data-theme="cosmos"]:not(.blm-dark) .l1-mascot-kw-btn,
body[data-theme="cosmos"]:not(.blm-dark) .settings-save-btn,
body[data-theme="cosmos"]:not(.blm-dark) .l1-tool-btn,
body[data-theme="cosmos"]:not(.blm-dark) .l1-quick,
body[data-theme="cosmos"]:not(.blm-dark) .l1-recent-item,
body[data-theme="cosmos"]:not(.blm-dark) .l1-empty {
  color: rgba(232, 228, 240, 0.92) !important;
  background: rgba(255, 216, 102, 0.06) !important;
  border-color: rgba(255, 216, 102, 0.22) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .dock-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) .l1-mascot-kw-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) .settings-save-btn:hover {
  background: rgba(255, 216, 102, 0.14) !important;
  border-color: rgba(255, 216, 102, 0.42) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .dock-btn .dock-label {
  color: inherit !important;
}
/* FAQ 知识库 tab 按钮：默认暖白半透明 rgba(255,251,243,0.8) 在黑底刺眼 */
body[data-theme="cosmos"]:not(.blm-dark) .faq-tab-brain {
  background: rgba(20, 24, 46, 0.62) !important;
  border-color: rgba(255, 216, 102, 0.22) !important;
  color: rgba(232, 228, 240, 0.88) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .faq-tab-brain.active,
body[data-theme="cosmos"]:not(.blm-dark) .faq-tab-brain[data-active="true"] {
  background: rgba(255, 216, 102, 0.16) !important;
  color: #ffd866 !important;
}
/* TTS 切换器（chat.js initTtsSwitcher 创建，#blm-tts-switcher 内联白底+黑字） */
body[data-theme="cosmos"]:not(.blm-dark) #blm-tts-switcher {
  background: rgba(8, 10, 22, 0.85) !important;
  border-color: rgba(255, 216, 102, 0.32) !important;
  color: #e8e4f0 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-tts-switcher button {
  background: rgba(255, 216, 102, 0.08) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255, 216, 102, 0.24) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-tts-switcher button[style*="forest"] {
  background: #ffd866 !important;
  color: #1a0e02 !important;
  border-color: #ffd866 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-tts-switcher select {
  background: rgba(8, 10, 22, 0.95) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255, 216, 102, 0.32) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-tts-switcher > div:last-child {
  color: rgba(232, 228, 240, 0.55) !important;
}
/* hs-lang-btn 黑底黑字 */
body[data-theme="cosmos"]:not(.blm-dark) .hs-lang-btn {
  background: rgba(255, 216, 102, 0.10) !important;
  border-color: rgba(255, 216, 102, 0.32) !important;
  color: #ffd866 !important;
}
/* 无 class 裸按钮（chat-area 中"🤖 AI 自由 / 🛠 纠错 / 🎤 / ⚙"等），半透明白底 */
body[data-theme="cosmos"]:not(.blm-dark) .chat-area button:not([class*="btn"]):not(.faq-tab-brain),
body[data-theme="cosmos"]:not(.blm-dark) .console button:not([class*="btn"]):not(.faq-tab-brain) {
  background: rgba(20, 24, 46, 0.55) !important;
  border-color: rgba(255, 216, 102, 0.22) !important;
  color: rgba(232, 228, 240, 0.92) !important;
}
/* ── cosmos 终极兜底（2026-08-02 15:50）：用 html+body+元素选择器把特异性拉到 (0,4,1) 绝对压过末尾巨块 ──
   实测 [class*="btn"]:not(...) 巨块特异性算 (0,3,0) 而非 (0,2,0)，所以用 4 个 class/attr + 1 元素 必胜 */
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.dock-btn,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.l1-mascot-kw-btn,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.l1-mascot-kw-btn.on,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.settings-save-btn,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.l1-tool-btn {
  color: rgba(232, 228, 240, 0.92) !important;
  background-color: rgba(255, 216, 102, 0.08) !important;
  border-color: rgba(255, 216, 102, 0.26) !important;
}
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.dock-btn .dock-label,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.l1-mascot-kw-btn {
  color: rgba(232, 228, 240, 0.92) !important;
}
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.dock-btn:hover,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.l1-mascot-kw-btn:hover,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) button.settings-save-btn:hover {
  background-color: rgba(255, 216, 102, 0.18) !important;
  border-color: rgba(255, 216, 102, 0.48) !important;
}
/* ── cosmos 第五波（2026-08-02 15:58）：#func-dock 容器暖白底 rgba(255,251,243,0.9) 在黑底刺眼 ──
   巨块特异性算 (0,3,0)，所以用 html+body+元素选择器 (0,4,1) 压过 */
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock {
  background: linear-gradient(180deg, rgba(20, 24, 46, 0.72) 0%, rgba(8, 10, 22, 0.78) 100%) !important;
  border-color: rgba(255, 216, 102, 0.22) !important;
  backdrop-filter: blur(20px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.4) !important;
}
/* #func-dock 内部 fd-row / fd-category / fd-cat-row 也走深色玻璃，保持透明继承父级 */
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock .fd-row,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock .fd-category,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock .fd-cat-row,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock #func-dock-track {
  background: transparent !important;
}

/* Round 22: func-dock.open 展开态兜底（防止 app.js 缓存导致暖白底刺眼） */
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock.open,
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock.func-dock.open {
  background: linear-gradient(180deg, rgba(20, 24, 46, 0.72) 0%, rgba(8, 10, 22, 0.78) 100%) !important;
  border-color: rgba(255, 216, 102, 0.22) !important;
  backdrop-filter: blur(20px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.4) !important;
  opacity: 1 !important;
}
/* 防御性：func-dock-track 内部背景透明继承父级 */
html[data-theme="cosmos"] body[data-theme="cosmos"]:not(.blm-dark) #func-dock.open #func-dock-track {
  background: transparent !important;
}

/* Round 24: 用户明确要求底部栏 cosmos 下文字保持黑色（容器仍是奶白胶囊）。
   注意：applyTheme() 只设 body[data-theme]，<html> 无 data-theme——所以不能用 html 前缀。
   特异性 0,3,1 压过末尾 [class*="label"] 巨块 0,1,0（同位置的话 cascade 后写胜出）。 */
body[data-theme="cosmos"]:not(.blm-dark) .bb-btn,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar button:not(#blm-vip-btn),
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar .bb-btn:not(#blm-vip-btn),
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar #flooring-dash-btn,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar #flooring-dash-btn span,
body[data-theme="cosmos"]:not(.blm-dark) .bb-icon-label {
  color: #1d1d1f !important;
}
/* 例外保留：#blm-vip-btn（金底胶囊）+ .bb-icon（深绿底）emoji 文字保持白 */
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar #blm-vip-btn,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar #blm-vip-btn span,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar .bb-icon {
  color: #ffffff !important;
}

/* ── cosmos：输入框下方工具栏按钮白色文字（2026-08-03）──
   #input-row 内的 kb-mode-toggle / kb-correct-btn / mic-btn /
   quick-action-container 按钮 / quick-action-edit-btn 在深空背景上文字不可见 → 统一改浅色 */
body[data-theme="cosmos"]:not(.blm-dark) #input-row button,
body[data-theme="cosmos"]:not(.blm-dark) #quick-action-container .quick-action-btn,
body[data-theme="cosmos"]:not(.blm-dark) #quick-action-edit-btn {
  color: #e8e4f0 !important;
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(255,216,102,0.18) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #input-row button:hover,
body[data-theme="cosmos"]:not(.blm-dark) #quick-action-container .quick-action-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) #quick-action-edit-btn:hover {
  background: rgba(255,216,102,0.1) !important;
  border-color: rgba(255,216,102,0.35) !important;
}
/* send-btn 保持森林绿底白字 */
body[data-theme="cosmos"]:not(.blm-dark) #send-btn {
  color: #ffffff !important;
}

/* ── cosmos 终极兜底（2026-08-02 17:55）：hotspot-panel 商机大屏全套配色
   特异性 (0,3,1) 压过样式表 L782-L935 的 (0,3,0) hotspot 规则
   根因：hotspot-panel 模板大量 inline background:#fffbf3!important + color:#17221c 深绿黑，
   原 styles.css cosmos 块只覆盖 hs-stat-value/hs-stat-label/hs-title-zh/hs-bid-card-title，没碰：
   - hs-platform-name     → 改成 #ffd866 金色
   - hs-card-update       → 浅紫白
   - hs-item / hs-item-text → 浅紫白
   - hs-region-name / hs-region-pct → 浅紫白 / 金色
   - hs-bid-card-loc / hs-bid-card-date → 浅紫白
   - hs-stat-delta / hs-bid-search → 浅紫白
   - hs-bid-filter / hs-region-tab（非 active）→ 浅紫白
   - 4 张列表卡片 hs-stats-bar / hs-list-card / hs-bid-card 背景 → 深蓝玻璃
   - 顶部按钮 hs-lang-btn / hs-doughnut-voice / hs-fullscreen-btn / hs-exit-btn / horse-mascot → 浅紫白 */
/* 5.1 4 张卡片 + 顶部统计条 + 投标卡片 全部深色玻璃 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-stats-bar,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-list-card,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-card {
  background: rgba(20, 30, 55, 0.78) !important;
  border-color: rgba(255, 216, 102, 0.18) !important;
  box-shadow: 0 0 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,216,102,0.08) !important;
  color: #e8e4f0 !important;
}
/* 5.2 文字：原本是 #17221c / #1d2620 / #5b655d / #6b7370 / #3f4a42 深绿黑系列 → 全部浅紫白 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-platform-name,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-card-update,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-item,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-item-text,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-name,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-pct,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-card-loc,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-card-date,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-stat-delta,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-search {
  color: rgba(232, 228, 240, 0.85) !important;
}
/* 5.3 标题层级：平台名 / 投标标题 — 用金色提升层级 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-platform-name {
  color: #ffd866 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-card-title {
  color: #ffd866 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-pct {
  color: #ffd866 !important;
}
/* 5.4 列表项边框线：原 rgba(23,34,28,0.06) 在深色玻璃上看不见 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-item {
  border-bottom-color: rgba(255, 216, 102, 0.10) !important;
}
/* 5.5 筛选标签：active（绿底白字 → 保留）；非 active 浅紫白 + 透明背景 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-filter,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-tab {
  color: #e8e4f0 !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 216, 102, 0.18) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-bid-filter.active,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-tab.active {
  color: #fff !important;
  background: var(--forest) !important;
  border-color: rgba(255, 216, 102, 0.45) !important;
}
/* 5.6 顶部入口按钮：hotspot-panel.js 写了 inline background:var(--paper);color:#17221c
     cosmos 下 --paper = #000000 → 黑底+深绿字难看 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-lang-btn,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel #hs-doughnut-voice,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel #hs-fullscreen-btn,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel #hs-exit-btn,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel #horse-mascot {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255, 216, 102, 0.25) !important;
}
/* 5.7 顶部标题：inline background:rgba(255,251,243,0.9) 透明掉，避免奶白胶囊 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-title-zh {
  background: transparent !important;
}
/* 5.8 hs-item 偶发 inline 死色 #17221c → 保险 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-item,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-item-text,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-platform-name,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-card-update,
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-region-name {
  color: rgba(232, 228, 240, 0.85) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-platform-name {
  color: #ffd866 !important;
}

/* ── cosmos 主题：聊天窗口顶部"主题/首页/关闭"按钮组显眼版（2026-08-02 18:25 补充）
   根因：styles.css L225 的 [class*="btn"]:not(...) 巨块（特异性 0,8,0）会把所有 .faq-header-btn
   强行覆盖成 rgba(0,0,0,0.04) 黑底 + #1d1d1f 黑色字，cosmos 深空背景下完全看不见。
   第一步：把 .faq-header-btn 加入巨块的 :not() 排除列表，巨块不再影响它。
   第二步：在 cosmos 主题下重写为深蓝玻璃 + 金色描边 + 浅紫白字 + 金色高亮 hover。
   arctic 主题保持 styles.css L1054-L1099 原暖色风格不动。 */
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .faq-header-btn {
  background: rgba(12, 16, 34, 0.78) !important;
  border: 1px solid rgba(255, 216, 102, 0.45) !important;
  border-radius: 8px !important;
  color: #e8e4f0 !important;
  padding: 3px 7px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  box-shadow: none !important;
  transition: all .15s ease !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .faq-header-btn:hover {
  background: rgba(255, 216, 102, 0.18) !important;
  border-color: rgba(255, 216, 102, 0.75) !important;
  color: #ffd866 !important;
  transform: none !important;
  box-shadow: none !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .faq-header-btn:active {
  transform: scale(0.95) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .faq-btn-ico {
  font-size: 13px !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-window-actions .faq-btn-cap {
  font-size: 11px !important;
  font-weight: 500 !important;
  color: inherit !important;
}

/* ═══════════════════════════════════════════════════════════════
   JARVIS 实时语音面板（所有主题显示）
   ═══════════════════════════════════════════════════════════════ */
.blm-jarvis {
  position: relative;
  width: 100%;
  margin: 2px 0 10px;
  padding: 12px 12px 14px;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background:
    radial-gradient(120% 60% at 50% 0%, rgba(56,110,255,0.14), transparent 55%),
    radial-gradient(90% 70% at 50% 115%, rgba(255,216,102,0.10), transparent 60%),
    linear-gradient(180deg, rgba(7,10,22,0.96), rgba(4,6,14,0.94));
  background-size: auto, auto, auto;
  border: 1px solid rgba(94,214,255,0.28);
  box-shadow: 0 0 24px rgba(74,158,255,0.10), inset 0 1px 0 rgba(140,220,255,0.14);
  color: #e8e4f0;
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.blm-jarvis[hidden] { display: none !important; }

/* 亮色主题（暖纸/竹青/陶土/暮铜/松烟/晴岚 等）下：JARVIS 面板外层换成暖色玻璃，
   与浅色系聊天背景（晴岚 #e6ecf0、陶土 #f3e7dc 等）协调一致，避免深空蓝紫玻璃突兀；
   内部核心球/HUD 角标/状态条/聊天气泡均保持品牌识别，不受影响。
   cosmos 深空主题下维持原深空玻璃（不应用此规则）。 */
body:not(.blm-dark):not([data-theme="cosmos"]) .blm-jarvis{
  background:
    radial-gradient(120% 60% at 50% 0%, rgba(31,90,67,0.10), transparent 55%),
    radial-gradient(90% 70% at 50% 115%, rgba(182,100,60,0.10), transparent 60%),
    linear-gradient(180deg, rgba(255,253,248,0.92), rgba(250,246,238,0.94)) !important;
  border: 1px solid rgba(182,100,60,0.30) !important;
  box-shadow: 0 0 24px rgba(31,90,67,0.08), inset 0 1px 0 rgba(255,253,248,0.6) !important;
  color: var(--ink, #17221c) !important;
}

/* 四角 HUD 取景框 + 顶部扫描光 */
.blm-jarvis .hud-corner { position: absolute; width: 12px; height: 12px; pointer-events: none; z-index: 4; opacity: .95; }
.blm-jarvis .hud-c-tl { left: 7px; top: 7px; border-left: 2px solid rgba(94,214,255,0.8); border-top: 2px solid rgba(94,214,255,0.8); border-top-left-radius: 5px; }
.blm-jarvis .hud-c-tr { right: 7px; top: 7px; border-right: 2px solid rgba(94,214,255,0.8); border-top: 2px solid rgba(94,214,255,0.8); border-top-right-radius: 5px; }
.blm-jarvis .hud-c-bl { left: 7px; bottom: 7px; border-left: 2px solid rgba(94,214,255,0.8); border-bottom: 2px solid rgba(94,214,255,0.8); border-bottom-left-radius: 5px; }
.blm-jarvis .hud-c-br { right: 7px; bottom: 7px; border-right: 2px solid rgba(94,214,255,0.8); border-bottom: 2px solid rgba(94,214,255,0.8); border-bottom-right-radius: 5px; }
.blm-jarvis .lv-scan { position: absolute; left: 10px; right: 10px; top: 0; height: 1px; pointer-events: none; z-index: 4; background: linear-gradient(90deg, transparent, rgba(94,214,255,0.7), rgba(255,216,102,0.5), transparent); animation: blmJvScanPulse 3s ease-in-out infinite; }
@keyframes blmJvScanPulse { 0%,100% { opacity: .25; } 50% { opacity: .95; } }

/* 头部 */
.blm-jarvis .lv-head { display: flex; align-items: center; gap: 7px; width: 100%; justify-content: center; position: relative; }
.blm-jarvis .lv-dot { width: 8px; height: 8px; border-radius: 50%; background: #4a9eff; box-shadow: 0 0 8px #4a9eff; flex: none; }
.blm-jarvis .lv-dot.on { background: #7ee2a6; box-shadow: 0 0 10px #7ee2a6; }
.blm-jarvis .lv-dot.err { background: #f87171; box-shadow: 0 0 10px #f87171; }
.blm-jarvis .lv-title { font-size: 13px; font-weight: 800; letter-spacing: .08em; background: linear-gradient(180deg,#fff3cf,#ffd866 55%,#d9a52e); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; filter: drop-shadow(0 0 8px rgba(255,216,102,0.35)); }
.blm-jarvis .lv-status { font-size: 10px; color: rgba(140,200,255,0.85); letter-spacing: .06em; }
.blm-jarvis .lv-telemetry { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 3px; font-size: 8px; letter-spacing: .14em; color: rgba(140,225,255,0.95); font-weight: 700; white-space: nowrap; text-shadow: 0 0 8px rgba(94,214,255,0.35); }
.blm-jarvis .lv-telemetry i { font-style: normal; color: rgba(140,200,255,0.6); font-weight: 600; }

/* 对话区 */
.blm-jarvis .lv-chat { width: 100%; flex: 1; min-height: 60px; max-height: 120px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; padding: 2px 2px; scrollbar-width: thin; scrollbar-color: rgba(94,214,255,0.25) transparent; }
.blm-jarvis .lv-chat::-webkit-scrollbar { width: 4px; }
.blm-jarvis .lv-chat::-webkit-scrollbar-thumb { background: rgba(94,214,255,0.25); border-radius: 2px; }
.blm-jarvis .lv-empty { color: rgba(170,215,255,0.85); font-size: 11px; text-align: center; margin: auto; letter-spacing: .08em; text-shadow: 0 0 12px rgba(94,214,255,0.35); }
.blm-jarvis .lv-msg { max-width: 88%; padding: 8px 10px; border-radius: 10px; font-size: 12px; line-height: 1.55; word-break: break-word; animation: blmJvRise .25s ease both; position: relative; font-family: inherit; }
.blm-jarvis .lv-msg .lv-lbl { display: block; font-size: 8px; font-weight: 700; letter-spacing: .14em; margin-bottom: 3px; }
.blm-jarvis .lv-msg.user .lv-lbl { color: rgba(255,216,102,0.75); }
.blm-jarvis .lv-msg.ai .lv-lbl { color: rgba(94,214,255,0.8); }
.blm-jarvis .lv-msg.user { align-self: flex-end; background: linear-gradient(135deg, rgba(56,90,150,0.34), rgba(18,28,58,0.5)); border: 1px solid rgba(94,214,255,0.32); color: #fff; border-bottom-right-radius: 4px; box-shadow: 0 0 14px rgba(74,158,255,0.12); }
.blm-jarvis .lv-msg.ai { align-self: flex-start; background: linear-gradient(135deg, rgba(10,14,30,0.9), rgba(8,10,22,0.85)); border: 1px solid rgba(94,214,255,0.28); color: rgba(232,228,240,0.94); border-bottom-left-radius: 4px; box-shadow: 0 0 14px rgba(94,214,255,0.08); }
.blm-jarvis .lv-msg.ai::before { content: ''; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 2px; border-radius: 2px; background: linear-gradient(180deg,#53e6ff,rgba(94,214,255,0.1)); box-shadow: 0 0 8px rgba(94,214,255,0.6); }
.blm-jarvis .lv-msg.ai.live { opacity: .75; }
.blm-jarvis .lv-msg.sys { align-self: center; background: transparent; color: rgba(140,180,255,0.55); font-size: 10.5px; padding: 3px 8px; border: 0; letter-spacing: .04em; }
.blm-jarvis .lv-msg.err { align-self: center; background: rgba(248,113,113,0.1); color: #fca5a5; font-size: 11px; border: 1px solid rgba(248,113,113,0.25); }
@keyframes blmJvRise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* 音乐播放条 */
.blm-jarvis .lv-music { position: relative; z-index: 2; width: 100%; display: flex; flex-direction: column; gap: 5px; padding: 8px 10px; border-radius: 9px; background: linear-gradient(135deg, rgba(20,32,64,0.5), rgba(10,14,30,0.62)); border: 1px solid rgba(94,214,255,0.22); box-shadow: inset 0 0 18px rgba(74,158,255,0.08); }
.blm-jarvis .lv-music[hidden],
.blm-jarvis .lv-music-list[hidden],
.blm-jarvis .lv-err[hidden] { display: none !important; }
.blm-jarvis .lv-music-title { font-size: 11px; color: #ffd866; font-weight: 700; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: inherit; }
.blm-jarvis .lv-music audio { display: none; }
.blm-jarvis .lv-player { display: flex; align-items: center; gap: 7px; }
.blm-jarvis .lv-play { width: 26px; height: 26px; flex: none; border-radius: 50%; border: 1px solid rgba(94,214,255,0.4); background: rgba(10,16,34,0.7); color: #ffd866; font-size: 11px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .15s ease; box-shadow: 0 0 10px rgba(94,214,255,0.15); font-family: inherit; }
.blm-jarvis .lv-play:hover { border-color: rgba(255,216,102,0.7); box-shadow: 0 0 14px rgba(255,216,102,0.3); }
.blm-jarvis .lv-track { flex: 1; height: 4px; border-radius: 999px; background: rgba(94,214,255,0.24); box-shadow: inset 0 1px 2px rgba(0,0,0,0.5); position: relative; cursor: pointer; overflow: hidden; }
.blm-jarvis .lv-track-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0%; background: linear-gradient(90deg,#53e6ff,#ffd866); box-shadow: 0 0 8px rgba(94,214,255,0.5); border-radius: 999px; transition: width .15s linear; }
.blm-jarvis .lv-track-knob { position: absolute; top: 50%; left: 0; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #fff; box-shadow: 0 0 6px rgba(94,214,255,0.8); opacity: 0; transition: opacity .15s; }
.blm-jarvis .lv-player:hover .lv-track-knob { opacity: 1; }
.blm-jarvis .lv-time { font-size: 9px; color: rgba(140,200,255,0.7); letter-spacing: .04em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.blm-jarvis .lv-music-list { display: flex; flex-direction: column; gap: 4px; max-height: 90px; overflow-y: auto; }
.blm-jarvis .lv-music-list button { text-align: left; font-size: 10px; color: rgba(232,228,240,0.85); background: rgba(255,255,255,0.04); border: 1px solid rgba(94,214,255,0.16); border-radius: 6px; padding: 4px 8px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: inherit; }
.blm-jarvis .lv-music-list button:hover { background: rgba(94,214,255,0.12); color: #fff; }

/* 核心按钮（反应堆） */
.blm-jarvis .lv-orb-wrap { position: relative; z-index: 1; width: 84px; height: 84px; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.blm-jarvis .lv-orb {
  width: 84px; height: 84px; border-radius: 22%; border: 0; cursor: pointer; position: relative; z-index: 2;
  clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
  background:
    radial-gradient(circle at 50% 50%, #fffbe8 0%, #ffd866 24%, #e8a33d 46%, rgba(30,42,80,0.35) 70%, rgba(6,10,26,0.55) 100%),
    radial-gradient(circle at 32% 26%, rgba(255,255,255,0.6), rgba(255,255,255,0) 45%),
    radial-gradient(circle at 50% 50%, rgba(94,214,255,0.25), transparent 62%);
  color: #0b1026; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 18px rgba(255,216,102,0.5), 0 0 50px rgba(74,158,255,0.22), inset 0 0 22px rgba(255,240,200,0.5), inset 0 -8px 20px rgba(90,50,5,0.5);
  transition: transform .15s ease, box-shadow .3s ease; outline: none; border: 1px solid rgba(255,244,204,0.65);
}
.blm-jarvis .lv-orb:active { transform: scale(.93); }
.blm-jarvis .lv-orb.active {
  background:
    radial-gradient(circle at 50% 50%, #fff6e0 0%, #ffd9a0 30%, #fb923c 52%, rgba(40,20,60,0.4) 76%, rgba(10,6,26,0.6) 100%),
    radial-gradient(circle at 32% 26%, rgba(255,255,255,0.4), rgba(255,255,255,0) 42%),
    radial-gradient(circle at 50% 50%, rgba(255,94,94,0.22), transparent 62%);
  color: #fff; border-color: rgba(255,220,180,0.75);
  box-shadow: 0 0 22px rgba(255,150,80,0.55), 0 0 60px rgba(255,94,94,0.22), inset 0 0 26px rgba(255,220,170,0.5);
  animation: blmJvPulse 1.6s infinite;
}
@keyframes blmJvPulse { 0%,100% { box-shadow: 0 0 22px rgba(255,150,80,0.5), 0 0 56px rgba(255,94,94,0.18); } 50% { box-shadow: 0 0 32px rgba(255,170,90,0.75), 0 0 76px rgba(255,120,90,0.32); } }
.blm-jarvis .lv-ic { width: 34px; height: 34px; position: absolute; filter: drop-shadow(0 1px 3px rgba(0,0,0,0.25)); }
.blm-jarvis .lv-ic-stop { display: none; }
.blm-jarvis .lv-orb.active .lv-ic-mic { display: none; }
.blm-jarvis .lv-orb.active .lv-ic-stop { display: block; width: 30px; height: 30px; }
.blm-jarvis .lv-rings span { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; border: 1px solid rgba(255,216,102,0.25); pointer-events: none; opacity: 0; }
.blm-jarvis .lv-orb-wrap.listening .lv-rings span { animation: blmJvRing 2s ease-out infinite; }
.blm-jarvis .lv-orb-wrap.listening .lv-rings span:nth-child(2) { animation-delay: .5s; }
.blm-jarvis .lv-orb-wrap.listening .lv-rings span:nth-child(3) { animation-delay: 1s; }
@keyframes blmJvRing { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(1.9); opacity: 0; } }
.blm-jarvis .lv-orb-wrap::before {
  content: ''; position: absolute; inset: -10px; border-radius: 50%; pointer-events: none; opacity: .85;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(94,214,255,0.8) 32deg, transparent 60deg, transparent 180deg, rgba(255,216,102,0.75) 214deg, transparent 244deg);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation: blmJvOrbit 5s linear infinite;
}
.blm-jarvis .lv-orb-wrap::after { content: ''; position: absolute; inset: -21px; border-radius: 50%; pointer-events: none; opacity: .6; border: 1px dashed rgba(94,214,255,0.3); animation: blmJvOrbitRev 16s linear infinite; }
.blm-jarvis .lv-radar { position: absolute; inset: -34px; border-radius: 50%; pointer-events: none; opacity: .55; }
.blm-jarvis .lv-radar::before { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(94,214,255,0.18); }
.blm-jarvis .lv-radar::after { content: ''; position: absolute; inset: 24%; border-radius: 50%; border: 1px dashed rgba(94,214,255,0.28); }
.blm-jarvis .lv-radar-sweep { position: absolute; inset: 0; border-radius: 50%; display: block; background: conic-gradient(from 0deg, rgba(94,214,255,0.02) 0deg, transparent 300deg, rgba(94,214,255,0.4) 352deg, rgba(94,214,255,0.75) 360deg); animation: blmJvSweep 4.5s linear infinite; }
@keyframes blmJvOrbit { to { transform: rotate(360deg); } }
@keyframes blmJvOrbitRev { to { transform: rotate(-360deg); } }
@keyframes blmJvSweep { to { transform: rotate(360deg); } }

/* 状态文字 + 提示 */
.blm-jarvis .lv-status-text { font-size: 12px; font-weight: 600; color: #8fe3ff; min-height: 18px; text-align: center; letter-spacing: .1em; text-shadow: 0 0 10px rgba(94,214,255,0.45); }
.blm-jarvis .lv-status-text::after { content: '▏'; margin-left: 2px; color: #ffd866; animation: blmJvBlink 1s steps(1) infinite; }
@keyframes blmJvBlink { 50% { opacity: 0; } }
.blm-jarvis .lv-hint { font-size: 9px; color: rgba(170,205,255,0.7); text-align: center; line-height: 1.7; max-width: 280px; letter-spacing: .05em; text-shadow: 0 0 8px rgba(94,214,255,0.2); }
.blm-jarvis .lv-hint b { color: #eaf4ff; font-weight: 600; }
.blm-jarvis .lv-err { font-size: 11px; color: #fca5a5; text-align: center; line-height: 1.6; max-width: 300px; }

/* ═══ JARVIS 实时交流核心：三张全息图标动态轮播 ═══ */
.blm-jarvis .lv-orb {
  border-radius: 50%;
  clip-path: none;
  background:
    radial-gradient(circle at 50% 50%, rgba(30,48,90,0.55), rgba(6,10,22,0.78) 72%);
  color: #fff;
  border: 1px solid rgba(94,214,255,0.6);
  box-shadow:
    0 0 22px rgba(94,214,255,0.4),
    0 0 60px rgba(74,158,255,0.18),
    inset 0 0 18px rgba(94,214,255,0.16);
}
.blm-jarvis .lv-orb.active {
  border-color: rgba(255,170,120,0.75);
  box-shadow:
    0 0 26px rgba(255,150,90,0.55),
    0 0 70px rgba(255,94,94,0.24),
    inset 0 0 20px rgba(255,170,120,0.2);
}
.blm-jarvis .lv-jarvis-fx {
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  pointer-events: none;
  animation: lvJarvisSpin 28s linear infinite;
}
.blm-jarvis .lv-jarvis-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  animation: lvJarvisCycle 9s ease-in-out infinite;
  -webkit-user-drag: none;
}
.blm-jarvis .lv-jarvis-img-1 { animation-name: lvJarvisCycle1; }
.blm-jarvis .lv-jarvis-img-2 { animation-name: lvJarvisCycle2; }
.blm-jarvis .lv-jarvis-img-3 { animation-name: lvJarvisCycle3; }
.blm-jarvis .lv-orb.active .lv-jarvis-img { animation-duration: 4.5s; }
.blm-jarvis .lv-orb.active .lv-jarvis-fx {
  filter: drop-shadow(0 0 10px rgba(255,140,100,0.55));
  animation-duration: 14s;
}
@keyframes lvJarvisSpin { to { transform: rotate(360deg); } }
@keyframes lvJarvisCycle1 { 0%, 30% { opacity: 1; } 33.3%, 100% { opacity: 0; } }
@keyframes lvJarvisCycle2 { 0%, 30% { opacity: 0; } 33.3%, 63.3% { opacity: 1; } 66.6%, 100% { opacity: 0; } }
@keyframes lvJarvisCycle3 { 0%, 63.3% { opacity: 0; } 66.6%, 96.6% { opacity: 1; } 100% { opacity: 0; } }

/* ═══ 浅色主题（arctic 等，非 cosmos/dark/midnight）JARVIS 浅色适配 ═══
   目标：浅色面板下 JARVIS 不黑成一团，改为浅玻璃 + 深色文字 + 蓝灰描边，
   与浅色 .panel（暖纸玻璃）协调；保留 HUD 取景框/反应堆光环动画（半透明描边在浅底也好看）。 */
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(244,247,252,0.66));
  border: 1px solid rgba(90,120,170,0.28);
  box-shadow: 0 4px 16px rgba(40,70,120,0.10), inset 0 1px 0 rgba(255,255,255,0.6);
  color: #2a3450;
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .hud-corner {
  border-color: rgba(90,120,170,0.7);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-scan {
  background: linear-gradient(90deg, transparent, rgba(90,140,210,0.6), rgba(120,170,230,0.4), transparent);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-title {
  background: linear-gradient(180deg,#3a6ea5,#2a5d92);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,0.08));
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-status,
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-telemetry,
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-telemetry i {
  color: rgba(70,100,150,0.85); text-shadow: none;
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-empty {
  color: rgba(90,110,140,0.9); text-shadow: none;
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.user {
  background: linear-gradient(135deg, rgba(90,140,210,0.16), rgba(60,100,170,0.22));
  border: 1px solid rgba(90,140,210,0.35); color: #243a5e; box-shadow: 0 1px 6px rgba(40,80,150,0.10);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.ai {
  background: linear-gradient(135deg, rgba(245,247,252,0.92), rgba(236,240,248,0.88));
  border: 1px solid rgba(90,120,170,0.3); color: #2a3450; box-shadow: 0 1px 6px rgba(40,70,120,0.08);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.ai::before {
  background: linear-gradient(180deg,#5a8cd2,rgba(90,140,210,0.1)); box-shadow: 0 0 6px rgba(90,140,210,0.4);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.user .lv-lbl { color: rgba(60,100,170,0.85); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.ai .lv-lbl { color: rgba(70,110,160,0.9); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.sys { color: rgba(120,140,170,0.8); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-msg.err {
  background: rgba(248,113,113,0.12); color: #c0392b; border: 1px solid rgba(248,113,113,0.3);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-music {
  background: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(244,247,252,0.6));
  border: 1px solid rgba(90,120,170,0.22); box-shadow: inset 0 0 14px rgba(90,140,210,0.06);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-music-title { color: #b8860b; }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-play {
  background: rgba(255,255,255,0.85); color: #b8860b; border: 1px solid rgba(90,140,210,0.4); box-shadow: 0 1px 6px rgba(90,140,210,0.15);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-track { background: rgba(90,120,170,0.22); box-shadow: inset 0 1px 2px rgba(0,0,0,0.08); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-track-fill { background: linear-gradient(90deg,#5a8cd2,#b8860b); box-shadow: 0 0 6px rgba(90,140,210,0.5); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-track-knob { background: #3a6ea5; box-shadow: 0 0 6px rgba(90,140,210,0.7); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-time { color: rgba(70,100,150,0.8); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-music-list button {
  color: rgba(50,70,110,0.9); background: rgba(255,255,255,0.5); border: 1px solid rgba(90,120,170,0.18);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-music-list button:hover { background: rgba(90,140,210,0.14); color: #243a5e; }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-status-text {
  color: #3a6ea5; text-shadow: none;
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-status-text::after { color: #b8860b; }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-hint {
  color: rgba(90,110,140,0.85); text-shadow: none;
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-hint b { color: #2a5d92; }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-err { color: #c0392b; }
/* 反应堆球：浅色主题下保留金属蓝质感，去掉深空黑底 */
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-orb {
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0%, #dce8f7 26%, #9bb8da 52%, rgba(120,150,190,0.35) 74%, rgba(180,200,225,0.2) 100%),
    radial-gradient(circle at 32% 26%, rgba(255,255,255,0.7), rgba(255,255,255,0) 45%);
  color: #1c2c4a;
  border: 1px solid rgba(90,130,180,0.6);
  box-shadow: 0 0 16px rgba(90,140,210,0.3), inset 0 0 18px rgba(255,255,255,0.5);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-orb.active {
  background:
    radial-gradient(circle at 50% 50%, #ffe9c8 0%, #ffd08a 30%, #f6a85a 54%, rgba(180,140,90,0.3) 78%, rgba(220,180,130,0.2) 100%);
  color: #6b3a10; border-color: rgba(220,160,90,0.8);
  box-shadow: 0 0 22px rgba(255,170,90,0.5), inset 0 0 22px rgba(255,230,190,0.5);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-orb-wrap::before {
  background: conic-gradient(from 0deg, transparent 0deg, rgba(90,140,210,0.7) 32deg, transparent 60deg, transparent 180deg, rgba(184,134,11,0.6) 214deg, transparent 244deg);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-orb-wrap::after {
  border: 1px dashed rgba(90,140,210,0.35);
}
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-radar::before { border: 1px solid rgba(90,140,210,0.2); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-radar::after { border: 1px dashed rgba(90,140,210,0.3); }
body:not([data-theme="cosmos"]):not(.blm-dark):not([data-theme="dark"]):not([data-theme="midnight"]) .blm-jarvis .lv-radar-sweep {
  background: conic-gradient(from 0deg, rgba(90,140,210,0.02) 0deg, transparent 300deg, rgba(90,140,210,0.35) 352deg, rgba(90,140,210,0.6) 360deg);
}

/* ═══ Obsidian 风格关系图谱（卡通人物下方「图谱」按钮触发）═══ */
#graph.graph-open {
  display: block !important;
  z-index: 95 !important;
  transform: none !important;
  background: radial-gradient(120% 100% at 50% 20%, #0a1226 0%, #05070f 70%, #000 100%);
  cursor: grab;
}
#graph.graph-open:active { cursor: grabbing; }
.l1-mascot-graph-btn .l1-graph-ico { width: 15px; height: 15px; color: #C8A45C; flex: none; }
.l1-mascot-graph-btn:hover .l1-graph-ico { color: #fff; }
body[data-theme="cosmos"]:not(.blm-dark) .l1-mascot-graph-btn .l1-graph-ico { color: #ffd866; }
body[data-theme="cosmos"]:not(.blm-dark) .l1-mascot-graph-btn:hover .l1-graph-ico { color: #fff; }

/* ═══ Obsidian 知识图谱全屏视图 ═══ */
#obsidian-graph-overlay { position: fixed; inset: 0; z-index: 95; background: radial-gradient(120% 100% at 50% 20%, #0a1226 0%, #05070f 70%, #000 100%); cursor: grab; }
#obsidian-graph-overlay:active { cursor: grabbing; }
#ogCanvas { position: absolute; inset: 0; display: block; }
.og-header { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; align-items: center; gap: 14px; padding: 8px 18px; border-radius: 999px; background: rgba(6,10,22,0.85); border: 1px solid rgba(94,214,255,0.3); box-shadow: 0 0 18px rgba(94,214,255,0.15); white-space: nowrap; }
.og-title { font-size: 14px; font-weight: 800; letter-spacing: .08em; color: #ffd866; }
.og-stats { font-size: 11px; color: rgba(140,200,255,0.85); letter-spacing: .04em; }
.og-close { padding: 5px 14px; border-radius: 999px; border: 1px solid rgba(255,120,120,0.5); background: rgba(255,80,80,0.12); color: #ffb3b3; font-size: 12px; cursor: pointer; font-family: inherit; }
.og-close:hover { background: rgba(255,80,80,0.25); color: #fff; }
.og-toggle { padding: 5px 14px; border-radius: 999px; border: 1px solid rgba(94,214,255,0.5); background: rgba(94,214,255,0.12); color: #8fe3ff; font-size: 12px; cursor: pointer; font-family: inherit; transition: background .18s, color .18s, box-shadow .18s; }
.og-toggle:hover { background: rgba(94,214,255,0.25); color: #fff; box-shadow: 0 0 12px rgba(94,214,255,0.4); }
.og-toggle.off { border-color: rgba(150,160,180,0.4); background: rgba(150,160,180,0.1); color: rgba(200,210,225,0.7); box-shadow: none; }
.og-legend { position: absolute; left: 16px; bottom: 16px; z-index: 10; display: flex; flex-direction: column; gap: 5px; padding: 10px 12px; border-radius: 10px; background: rgba(6,10,22,0.8); border: 1px solid rgba(255,216,102,0.2); }
.og-lg-item { display: flex; align-items: center; gap: 7px; font-size: 11px; color: rgba(232,228,240,0.9); }
.og-lg-item i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.og-tip { position: absolute; z-index: 12; max-width: 220px; padding: 9px 12px; border-radius: 10px; background: rgba(6,10,22,0.94); border: 1px solid rgba(94,214,255,0.4); color: #eef4ff; font-size: 12px; line-height: 1.5; box-shadow: 0 6px 20px rgba(0,0,0,0.5); pointer-events: none; }
.og-tip strong { color: #ffd866; }
.og-tip-sub { color: rgba(140,200,255,0.8); font-size: 10px; }
.og-tip-go { color: rgba(94,214,255,0.7); font-size: 10px; }
.og-panel { position: absolute; right: 16px; top: 70px; bottom: 16px; width: min(430px, calc(100vw - 40px)); z-index: 12; display: flex; flex-direction: column; border-radius: 14px; background: rgba(8,12,26,0.96); border: 1px solid rgba(255,216,102,0.3); box-shadow: 0 10px 40px rgba(0,0,0,0.6); overflow: hidden; }
.og-panel[hidden] { display: none; }
.og-panel-close { position: absolute; right: 10px; top: 10px; z-index: 2; width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(255,120,120,0.5); background: rgba(255,80,80,0.15); color: #ffb3b3; cursor: pointer; font-size: 12px; }
.og-panel-title { padding: 16px 42px 6px 16px; font-size: 14px; font-weight: 700; color: #ffd866; }
.og-panel-meta { padding: 0 16px 10px; font-size: 10px; color: rgba(140,200,255,0.75); letter-spacing: .04em; border-bottom: 1px solid rgba(255,216,102,0.15); }
.og-panel-body { flex: 1; overflow: auto; padding: 14px 16px; font-size: 12.5px; line-height: 1.75; color: rgba(232,240,255,0.92); white-space: pre-wrap; word-break: break-word; }

/* ═══ Obsidian 图谱动态特效 ═══ */
#obsidian-graph-overlay::before { content: ''; position: absolute; inset: 0; background: radial-gradient(58% 46% at 50% 45%, rgba(74,158,255,0.10), transparent 70%); animation: ogBgPulse 6s ease-in-out infinite; pointer-events: none; z-index: 0; }
@keyframes ogBgPulse { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes ogNodePulse { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
/* 性能优化：只有大节点（枢纽）做呼吸动画和辉光，普通节点保持静态避免卡顿 */
.og-node { animation: none; }
.og-node-hub { animation: ogNodePulse 2.4s ease-in-out infinite; filter: drop-shadow(0 0 6px rgba(255,216,102,0.7)); }
@keyframes ogLinkFlow { to { stroke-dashoffset: -28; } }
.og-link-flow { stroke-dasharray: 5 9; animation: ogLinkFlow 2.2s linear infinite; }
.og-label { user-select: none; pointer-events: none; font-weight: 600; letter-spacing: .02em; }

/* ═══ VIP 全部功能面板：不透明背景 + 菜单项始终保留背景框 ═══ */
#blm-vip-panel { background: #f7f3ea !important; color: #1d1d1f !important; }
#blm-vip-panel > div:first-child { background: linear-gradient(135deg, #1f5a43, #2d5a43) !important; }
#blm-vip-panel .vip-func-btn {
  background: #ffffff !important;
  border: 1px solid rgba(182,100,60,0.22) !important;
  color: #1d1d1f !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
}
#blm-vip-panel .vip-func-btn.role-recommended {
  background: linear-gradient(135deg, #fef9e7, #fff8e1) !important;
  border-color: #f59e0b !important;
}
#blm-vip-panel .vip-scenario-btn {
  background: rgba(255,251,243,0.95) !important;
  border: 1px solid rgba(182,100,60,0.22) !important;
  color: #3f4a42 !important;
}

/* ── Round 33: 自定义标题弹窗（brand-editor-box）在 cosmos 下强制黑体黑字 ──
   弹窗本身已 inline 写死 color:#000 + SimHei，但 cosmos 通用规则
   [data-theme="cosmos"] [class*="title"]{color:#ffd866!important} 等可能干扰。
   applyTheme() 只给 body 设 data-theme，<html> 没有，所以不能用 html 前缀。
   用 body[data-theme="cosmos"]:not(.blm-dark) 确保在深空星河主题下也是黑体纯黑字。 */
body[data-theme="cosmos"]:not(.blm-dark) #brand-editor-box,
body[data-theme="cosmos"]:not(.blm-dark) #brand-editor-box * {
  font-family: "SimHei", "Heiti SC", "PingFang SC", sans-serif !important;
  color: #000 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #brand-editor-box #brand-edit-save {
  color: #fff !important; /* 保存按钮：绿底白字保持不变 */
}
body[data-theme="cosmos"]:not(.blm-dark) #brand-editor-box #brand-edit-input::placeholder {
  color: rgba(0,0,0,0.4) !important;
}

/* ── Round 34: cosmos 下 l1-dock-btn（聊天/搜索/品牌/客服/全屏）白色文字 ──
   根因：L225 [class*="btn"] 巨块(0,9,0) 用 !important 把所有含"btn"的元素 color 锁为 #1d1d1f(黑)
   .l1-dock-btn 含 "btn" → 被命中，深空背景下黑字不可见。
   修复两步：
   ① 已把 .l1-dock-btn 加入巨块 :not() 排除列表（L225），巨块不再碰它；
   ② 浅色主题回落 L304 .l1-dock-btn{color:var(--ink2)}（暖灰，正常可见）；
      cosmos 下用下面 (0,3,1) 覆盖改白色，特异性压过 L304 (0,1,0)。 */
body[data-theme="cosmos"]:not(.blm-dark) .l1-dock .l1-dock-btn,
body[data-theme="cosmos"]:not(.blm-dark) .l1-dock .l1-dock-btn span {
  color: #e8e4f0 !important;
  border-color: rgba(255,216,102,0.28) !important;
  background: rgba(20,15,30,0.45) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .l1-dock .l1-dock-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) .l1-dock .l1-dock-btn:hover span {
  color: #fff !important;
  border-color: rgba(255,216,102,0.5) !important;
  background: rgba(20,15,30,0.6) !important;
}

/* ═══ Round 35: cosmos 下全部功能菜单（#blm-vip-panel）深色适配 + 悬浮不加亮 ═══ */
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel {
  background: rgba(15,20,30,1) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255,216,102,0.18) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel > div:first-child {
  background: linear-gradient(135deg, rgba(31,90,67,0.85), rgba(20,40,30,0.95)) !important;
  color: #ffd866 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-group-title {
  color: #ffd866 !important;
  border-left-color: #f59e0b !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-func-btn,
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-scenario-btn {
  background: rgba(255,216,102,0.08) !important;
  border-color: rgba(255,216,102,0.22) !important;
  color: #e8e4f0 !important;
  box-shadow: none !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-func-btn span,
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-scenario-btn span {
  color: inherit !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-func-btn.role-recommended {
  background: rgba(255,216,102,0.10) !important;
  border-color: rgba(255,216,102,0.35) !important;
}
/* 悬浮不加亮：保持深色底，只轻微增强边框/背景，确保文字始终可读 */
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-func-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-scenario-btn:hover {
  background: rgba(255,216,102,0.10) !important;
  border-color: rgba(255,216,102,0.45) !important;
  color: #fff !important;
  transform: none !important;
  box-shadow: none !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel .vip-func-btn.role-recommended:hover {
  background: rgba(255,216,102,0.12) !important;
  border-color: rgba(255,216,102,0.55) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel #vip-search {
  background: rgba(255,216,102,0.06) !important;
  border-color: rgba(255,216,102,0.18) !important;
  color: #e8e4f0 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-vip-panel #vip-search::placeholder {
  color: rgba(232,228,240,0.45) !important;
}

/* ═══ Round 36: 成本估算器（cost-estimator.js）在 cosmos 下的按钮与关闭图标修复 ═══
   根因 1：关闭按钮 class="blm-close-btn" 含 "btn"，被 L225 巨块覆盖成黑底黑字，
   在深绿 header 上完全看不见（用户截图反馈）。
   根因 2：保存/恢复默认按钮 class="blm-btn-*" 同样含 "btn"，被巨块覆盖成黑底黑字。
   修复：把 .blm-close-btn 加入 L225 巨块 :not() 排除列表；并在 cosmos 下显式
   重写关闭按钮 + 保存/恢复按钮为深空可读配色。 */
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-close-btn,
body[data-theme="cosmos"]:not(.blm-dark) #ce-header .blm-close-btn,
body[data-theme="cosmos"]:not(.blm-dark) #cost-close {
  background: rgba(255,255,255,0.18) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.35) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-close-btn:hover,
body[data-theme="cosmos"]:not(.blm-dark) #cost-close:hover {
  background: rgba(255,255,255,0.30) !important;
  border-color: rgba(255,255,255,0.55) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-btn-primary,
body[data-theme="cosmos"]:not(.blm-dark) #ce-save-price.blm-btn-primary {
  background: var(--forest) !important;
  color: #1a0e02 !important;
  border: 1px solid rgba(255,216,102,0.45) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-btn-primary:hover,
body[data-theme="cosmos"]:not(.blm-dark) #ce-save-price.blm-btn-primary:hover {
  background: #ffe082 !important;
  border-color: rgba(255,216,102,0.75) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-btn-secondary,
body[data-theme="cosmos"]:not(.blm-dark) #ce-reset-price.blm-btn-secondary {
  background: rgba(255,255,255,0.08) !important;
  color: #e8e4f0 !important;
  border: 1px solid rgba(255,216,102,0.25) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #cost-overlay .blm-btn-secondary:hover,
body[data-theme="cosmos"]:not(.blm-dark) #ce-reset-price.blm-btn-secondary:hover {
  background: rgba(255,216,102,0.12) !important;
  border-color: rgba(255,216,102,0.45) !important;
  color: #fff !important;
}

/* ═══ Round 37: 快捷方式编辑器（blm-shortcut-editor）在 cosmos 下深色适配 ═══
   根因：该弹窗 id 以 -editor 结尾，不被 L225 后的 cosmos 兜底脚本识别为 panel-like，
   因此 inline 写死的 #f4efe3 背景 + #1d1d1f 文字保持原样；而 cosmos 通用规则又把
   button/input 文字改成浅色，导致浅色文字落在浅色背景上看不见。
   修复：强制弹窗整体切到深蓝玻璃 + 浅紫白字，并显式处理 sec-add-btn 按钮。 */
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor > div {
  background: rgba(15,20,30,0.92) !important;
  border: 1px solid rgba(255,216,102,0.18) !important;
  box-shadow: 0 12px 60px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,216,102,0.08) !important;
  color: #e8e4f0 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor > div * {
  color: #e8e4f0 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor .sec-item,
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor .sec-item span {
  background: var(--forest) !important;
  color: #1a0e02 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor .sec-add-btn {
  background: rgba(255,255,255,0.08) !important;
  color: #e8e4f0 !important;
  border: 1px solid rgba(255,216,102,0.25) !important;
  border-radius: 6px !important;
  cursor: pointer !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor .sec-add-btn:hover {
  background: rgba(255,216,102,0.12) !important;
  border-color: rgba(255,216,102,0.45) !important;
  color: #fff !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor #sec-close,
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor #sec-reset {
  background: transparent !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor #sec-reset {
  color: #ff8a8a !important;
  border-color: rgba(239,68,68,0.35) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor input,
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor textarea,
body[data-theme="cosmos"]:not(.blm-dark) #blm-shortcut-editor select {
  background: rgba(255,216,102,0.06) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255,216,102,0.22) !important;
}

/* ═══ Round 38: 4 个非标准 id 弹窗（cosmos 兜底）═══
   这些弹窗 id 不以 -overlay/-panel/-ov/-modal/-popup/-drawer/-window/-bar 结尾，
   applyCosmosInlineForce() 的 _isPanelLike() 不会识别，所以 inline 写死的
   #f4efe3 / #fff / rgba(255,251,243,...) 浅色背景 + #1d1d1f 深色字 在深空下完全看不清。
   包含：user-info-panel / changelog-panel / personal-code-desktop-panel / update-diary-overlay
   以及 blm-onboarding（引导卡片）。
   统一：深蓝玻璃背景 + 浅紫白字；输入框深金底；主按钮绿底深字；次级按钮描边。
   注意：cs-qr-modal（二维码白卡）故意保持亮色，不在此列。 */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay > div,
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding #ob-card {
  background: rgba(15,20,30,0.94) !important;
  border: 1px solid rgba(255,216,102,0.18) !important;
  box-shadow: 0 12px 60px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,216,102,0.08) !important;
  color: #e8e4f0 !important;
}
/* 子元素全部浅紫白字（覆盖 inline #1d1d1f / var(--muted) / var(--ink) 深色） */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel *,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel *,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel *,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay *,
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding #ob-card * {
  color: #e8e4f0 !important;
}
/* 内部 #fff / rgba(255,251,243,...) 白卡 → 深蓝玻璃；保留浅紫白字 */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel div[style*="background:#fff"],
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel div[style*="background:#fff"],
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel div[style*="background:#fff"],
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay div[style*="background:#fff"],
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel div[style*="background:rgba(31,90,67"],
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel div[style*="background:rgba(31,90,67"],
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel div[style*="background:rgba(31,90,67"],
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay div[style*="background:rgba(31,90,67"],
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding div[style*="background:rgba(255,251,243"] {
  background: rgba(20,28,42,0.78) !important;
  border-color: rgba(255,216,102,0.18) !important;
}
/* 关闭按钮（✕ 用 background:none;border:none 写死，靠 color 显形；cosmos 下强制浅紫白） */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel #user-info-close,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel #changelog-close,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel #changelog-close2,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel #pc-close,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay .ud-close {
  background: transparent !important;
  color: #e8e4f0 !important;
  border: 1px solid rgba(255,216,102,0.25) !important;
  border-radius: 8px !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel #changelog-close2:hover,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel #pc-cancel-btn:hover {
  background: rgba(255,216,102,0.12) !important;
  color: #fff !important;
}
/* 输入框 / 下拉：深金底浅紫白字 + 描边 */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel input,
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel select,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel select,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel input,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel select,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay input,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay select,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay textarea,
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding input {
  background: rgba(255,216,102,0.06) !important;
  color: #e8e4f0 !important;
  border-color: rgba(255,216,102,0.22) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel input::placeholder,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel input::placeholder,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay input::placeholder,
body[data-theme="cosmos"]:not(.blm-dark) #update-diary-overlay textarea::placeholder {
  color: rgba(232,228,240,0.45) !important;
}
/* 主按钮（保存 / 下一步 / 更新日记）：绿底深字，保持品牌感且对比足够 */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel #ai-name-save,
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel #changelog-add,
body[data-theme="cosmos"]:not(.blm-dark) #changelog-panel #changelog-add,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel #pc-save-btn,
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding #ob-next {
  background: var(--forest) !important;
  color: #1a0e02 !important;
  border: 1px solid rgba(255,216,102,0.45) !important;
  border-radius: 8px !important;
}
/* 次级按钮（取消 / 跳过 / 量子链接 ui-qlink）：透明描边浅紫白 */
body[data-theme="cosmos"]:not(.blm-dark) #user-info-panel .ui-qlink,
body[data-theme="cosmos"]:not(.blm-dark) #personal-code-desktop-panel #pc-cancel-btn,
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding #ob-skip {
  background: rgba(255,255,255,0.06) !important;
  color: #e8e4f0 !important;
  border: 1px solid rgba(255,216,102,0.25) !important;
  border-radius: 10px !important;
}
/* 引导卡片圆点：非激活态在深空下改为暗金，避免 #d1d5db 灰在深底上突兀 */
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding .ob-dot {
  background: rgba(255,216,102,0.28) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding .ob-dot[data-dot="0"] {
  background: var(--forest) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   cosmos（深空星河）变量优先级修复 — 2026-08-14
   根因：theme-switcher 注入的 body:not(.blm-dark){--ink:#1d1d1f!important}
   （特异性 0,1,1）压过了 styles.css 顶部 [data-theme="cosmos"]{--ink:#e8e4f0!important}
   （特异性 0,1,0），导致 cosmos 主题下所有 CSS 变量仍取浅色值 → 深字黑底全站不可读。
   本块用 body[data-theme="cosmos"]:not(.blm-dark)（0,2,1）重声明全部变量，
   让用 var(--ink)/var(--muted) 等变量的元素在深空下自动变浅色。
   ═══════════════════════════════════════════════════════════════════ */
body[data-theme="cosmos"]:not(.blm-dark) {
  --paper: #000000 !important;
  --bg0: #000000 !important;
  --bg1: rgba(8,10,22,0.55) !important;
  --bg-deep: #000000 !important;
  --ink: #e8e4f0 !important;
  --ink2: rgba(232,228,240,0.62) !important;
  --dim: rgba(232,228,240,0.42) !important;
  --muted: rgba(232,228,240,0.42) !important;
  --card-bg: rgba(8,10,22,0.62) !important;
  --msg-bg: rgba(10,10,24,0.72) !important;
  --line: rgba(255,216,102,0.12) !important;
  --line-strong: rgba(255,216,102,0.22) !important;
  --panel: rgba(8,10,22,0.62) !important;
  --panel-border: rgba(255,216,102,0.18) !important;
  --glass-bg: rgba(8,10,22,0.55) !important;
  --glass-border: rgba(255,216,102,0.18) !important;
  --forest: #ffd866 !important;
  --copper: #ffd866 !important;
  --cool: #ffd866 !important;
  --warm: #fb923c !important;
  --glow-green: rgba(255,216,102,0.10) !important;
  --glow-blue: rgba(255,216,102,0.08) !important;
  --glow-orange: rgba(251,146,60,0.08) !important;
  --node-low: #6b5e3a !important;
  --node-high: #ffd866 !important;
  --link-stroke: rgba(255,216,102,0.18) !important;
  background: #000000 !important;
  color: #e8e4f0 !important;
}

/* ═══ cosmos（深空星河）通用浅色层覆盖 — 2026-08-14 ═══
 * 浅色层规则（[class*=btn/title/label/tab/input/modal] 等）用 !important 锁死
 * 深字（#1d1d1f），深空黑底下不可见。此处用 body[data-theme="cosmos"]:not(.blm-dark)
 * （0,2,1）镜像覆盖为深空风格（浅字 + 半透明暗底）。 */
body[data-theme="cosmos"]:not(.blm-dark) [class*="btn"]:not(.tool-btn):not(.hs-exit-btn):not(.hs-lang-btn):not(.page-btn):not(.bb-btn):not(.func-popup-btn):not(.fh-btn):not(.faq-header-btn):not(.msg-action-btn):not(.l1-dock-btn):not(.vip-func-btn):not(.vip-scenario-btn):not(.blm-close-btn),
body[data-theme="cosmos"]:not(.blm-dark) .dock-btn,
body[data-theme="cosmos"]:not(.blm-dark) .l1-mascot-kw-btn,
body[data-theme="cosmos"]:not(.blm-dark) .role-option-btn,
body[data-theme="cosmos"]:not(.blm-dark) .faq-btn-ico {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,216,102,0.22) !important;
  color: var(--ink) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="btn"]:not(.tool-btn):not(.hs-exit-btn):not(.hs-lang-btn):not(.page-btn):not(.bb-btn):not(.func-popup-btn):not(.fh-btn):not(.faq-header-btn):not(.msg-action-btn):not(.l1-dock-btn):not(.vip-func-btn):not(.vip-scenario-btn):not(.blm-close-btn):not(.xy-voice-btn):not(.xy-send-btn):hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: rgba(255,216,102,0.4) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .dock-label,
body[data-theme="cosmos"]:not(.blm-dark) [class*="label"]:not(.hs-label-badge) {
  color: var(--ink2) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="title"] {
  color: var(--ink) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="tab"]:not(.hs-tab):not(.theme-dot):not(.faq-tab-brain):not(.faq-tabs-brain) {
  color: var(--muted) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="tab"].active,
body[data-theme="cosmos"]:not(.blm-dark) [class*="tab"][data-active="true"] {
  color: var(--ink) !important;
  border-bottom-color: var(--cool) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="input"],
body[data-theme="cosmos"]:not(.blm-dark) [class*="Input"],
body[data-theme="cosmos"]:not(.blm-dark) input:not([type="range"]):not([type="checkbox"]),
body[data-theme="cosmos"]:not(.blm-dark) select {
  background: rgba(10,12,26,0.9) !important;
  border-color: rgba(255,216,102,0.16) !important;
  color: var(--ink) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="input"]::placeholder {
  color: var(--muted) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="modal"]:not(.settings-modal),
body[data-theme="cosmos"]:not(.blm-dark) [class*="Panel"]:not(.hotspot-panel):not(#panel-l1):not(#panel-l2),
body[data-theme="cosmos"]:not(.blm-dark) .settings-modal,
body[data-theme="cosmos"]:not(.blm-dark) #video-search-panel,
body[data-theme="cosmos"]:not(.blm-dark) #music-panel,
body[data-theme="cosmos"]:not(.blm-dark) #color-panel,
body[data-theme="cosmos"]:not(.blm-dark) #std-panel,
body[data-theme="cosmos"]:not(.blm-dark) #rs-window,
body[data-theme="cosmos"]:not(.blm-dark) #pj-window {
  background: rgba(8,10,22,0.85) !important;
  border-color: rgba(255,216,102,0.18) !important;
  color: var(--ink) !important;
}

/* 2026-08-19 修复：cosmos 主题下 #music-panel / #music-mini 内部大量 inline color:#1d1d1f 黑字压在深色半透背景看不清。
   这里要 !important + 高优先级选择器压过 inline (specificity 1,0,0,0)。
   - 默认色 #f0eedb（暖米白，与 cosmos 金色主题呼应）
   - 次级色 rgba(240,238,219,0.55) 用于序号 / 时长 / 艺术家
   - 当前播放项用金色（rgba(255,216,102,0.85) + 半透金底）
*/
body[data-theme="cosmos"]:not(.blm-dark) #music-panel,
body[data-theme="cosmos"]:not(.blm-dark) #music-mini {
  background: rgba(8,10,22,0.94) !important;
  border-color: rgba(255,216,102,0.22) !important;
  color: #f0eedb !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-mini #mini-title {
  color: #f0eedb !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-panel > div > div > span,
body[data-theme="cosmos"]:not(.blm-dark) #music-panel #mp-now-title {
  color: #f0eedb !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .mp-song-item > span {
  color: #f0eedb !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .mp-song-item > span:nth-child(1),
body[data-theme="cosmos"]:not(.blm-dark) .mp-song-item > span:nth-child(3),
body[data-theme="cosmos"]:not(.blm-dark) .mp-song-item > span:nth-child(4) {
  color: rgba(240,238,219,0.55) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-panel .mp-song-item {
  border-color: rgba(255,216,102,0.08) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #mp-prev,
body[data-theme="cosmos"]:not(.blm-dark) #mp-next {
  background: rgba(255,255,255,0.08) !important;
  color: #f0eedb !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-panel #mp-progress-track {
  background: rgba(255,255,255,0.12) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #mp-tab-chart,
body[data-theme="cosmos"]:not(.blm-dark) #mp-minimize,
body[data-theme="cosmos"]:not(.blm-dark) #mp-close {
  background: rgba(255,255,255,0.06) !important;
  color: rgba(240,238,219,0.7) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #mp-welcome {
  color: rgba(240,238,219,0.5) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #mp-welcome span:nth-child(2) {
  color: rgba(140,180,250,0.85) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-panel #mp-play {
  background: linear-gradient(135deg,#f5b942,#ffe88a) !important;
  color: #1a0e0e !important;
  box-shadow: 0 0 12px rgba(255,216,102,0.4) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-mini {
  background: rgba(8,10,22,0.94) !important;
  border-color: rgba(255,216,102,0.22) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-mini #mini-play {
  color: #ffd966 !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #music-mini #mini-next {
  color: rgba(255,217,102,0.6) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .settings-content th,
body[data-theme="cosmos"]:not(.blm-dark) .settings-content td,
body[data-theme="cosmos"]:not(.blm-dark) #rs-window th,
body[data-theme="cosmos"]:not(.blm-dark) #rs-window td,
body[data-theme="cosmos"]:not(.blm-dark) #pj-window th,
body[data-theme="cosmos"]:not(.blm-dark) #pj-window td,
body[data-theme="cosmos"]:not(.blm-dark) #search-modal th,
body[data-theme="cosmos"]:not(.blm-dark) #search-modal td {
  color: var(--ink) !important;
  border-color: rgba(255,216,102,0.12) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) [class*="hint"],
body[data-theme="cosmos"]:not(.blm-dark) [class*="desc"] {
  color: var(--muted) !important;
}
/* intro 特性卡片（brain-ui 内 intro overlay 同样加载 styles.css） */
body[data-theme="cosmos"]:not(.blm-dark) .featured-item,
body[data-theme="cosmos"]:not(.blm-dark) .ft-card,
body[data-theme="cosmos"]:not(.blm-dark) .value-card,
body[data-theme="cosmos"]:not(.blm-dark) .vc-title,
body[data-theme="cosmos"]:not(.blm-dark) .kb-icon,
body[data-theme="cosmos"]:not(.blm-dark) .fi-icon,
body[data-theme="cosmos"]:not(.blm-dark) .fi-label,
body[data-theme="cosmos"]:not(.blm-dark) .stat-item {
  color: var(--ink) !important;
}

/* ═══ cosmos 收尾覆盖：快捷按钮 / 底部主按钮 / 欢迎引导浮层 ═══ */
body[data-theme="cosmos"]:not(.blm-dark) .quick-action-btn,
body[data-theme="cosmos"]:not(.blm-dark) .quick-action-btn span,
body[data-theme="cosmos"]:not(.blm-dark) .quick-action-btn * {
  color: var(--ink) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar .bb-btn,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar .bb-btn span,
body[data-theme="cosmos"]:not(.blm-dark) .bottom-bar .bb-btn * {
  color: var(--ink) !important;
}
/* 欢迎引导浮层（JS 内联浅色样式，用 !important 覆盖） */
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding > div {
  background: rgba(8,10,22,0.92) !important;
  border-color: rgba(255,216,102,0.25) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding [data-i18n],
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding div[style*="color"] {
  color: var(--ink) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #blm-onboarding button[style] {
  background: rgba(255,255,255,0.08) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(255,216,102,0.3) !important;
}

/* ═══════════════════════════════════════════════════════════════
   DataV 大屏组件增强（2026-08-18）— 暖纸/森林绿/铜金体系
   1) 四角科技角标  2) 统计卡铜金描边+扫描高光  3) 数字翻牌器
   4) 标题渐变分割线  5) LED 跑马灯  6) 金额迷你条形  7) 区域环形图
   ═══════════════════════════════════════════════════════════════ */

/* ── 2. 统计卡：铜金渐变描边 + 顶部扫描高光 ── */
.hotspot-panel .hs-stat {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(182,100,60,0.22) !important;
  border-radius: 10px !important;
  background: linear-gradient(180deg, rgba(255,251,243,0.96), rgba(255,246,232,0.92)) !important;
}
.hotspot-panel .hs-stat::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #b6643c, #e8c98a, #b6643c, transparent);
  background-size: 200% 100%;
  animation: dv-scan 3.2s linear infinite;
  z-index: 2;
}
@keyframes dv-scan {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── 3. 数字翻牌器：数值金色发光 ── */
.hotspot-panel .dv-stat-value {
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 10px rgba(182,100,60,0.28);
  transition: color 0.2s;
}

/* ── 4. 标题栏渐变分割线 ── */
.hotspot-panel .hs-header {
  position: relative;
}
.hotspot-panel .hs-header::after {
  content: '';
  position: absolute;
  left: 12px; right: 12px; bottom: -1px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(182,100,60,0.35) 18%, rgba(232,201,138,0.65) 50%, rgba(182,100,60,0.35) 82%, transparent 100%);
  pointer-events: none;
}

/* ── 5. LED 科技跑马灯：发光文字 + 扫描线背景 ── */
.hotspot-panel .hs-ticker-bar {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(182,100,60,0.18) !important;
  background: rgba(255,251,243,0.55) !important;
}
.hotspot-panel .hs-ticker-bar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg,
    rgba(182,100,60,0.03) 0 2px, transparent 2px 6px);
  pointer-events: none;
  z-index: 1;
}
.hotspot-panel .hs-ticker-bar::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0; width: 90px;
  background: linear-gradient(90deg, transparent, rgba(232,201,138,0.16), transparent);
  animation: dv-ticker-scan 5.5s linear infinite;
  z-index: 1;
  pointer-events: none;
}
@keyframes dv-ticker-scan {
  0%   { left: -100px; }
  100% { left: 100%; }
}
.hotspot-panel .hs-ticker-inner {
  position: relative;
  z-index: 2;
  text-shadow: 0 0 8px rgba(182,100,60,0.30);
}

/* ── 6. 金额迷你条形（招投标卡片） ── */
.hs-amt-bar {
  display: inline-block;
  vertical-align: middle;
  flex: 0 0 auto;
  width: 36px;
  height: 4px;
  border-radius: 2px;
  background: rgba(23,34,28,0.08);
  overflow: hidden;
  margin: 0 3px;
}
.hs-amt-bar i {
  display: block;
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, #c9a227, #e08a2e);
  box-shadow: 0 0 5px rgba(224,138,46,0.5);
}

/* ── 7. 区域占比环形图（中柱 DataV） ── */
#hs-donut-container {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.dv-donut {
  position: relative;
  width: 120px;
  height: 120px;
  flex-shrink: 0;
}
.dv-donut-svg {
  width: 100%;
  height: 100%;
  display: block;
}
.dv-donut-seg {
  cursor: pointer;
  transition: stroke-width 0.2s, opacity 0.2s, filter 0.2s;
}
.dv-donut-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.dv-donut-center b {
  font-size: 15px;
  font-weight: 800;
  color: #1f5a43;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.dv-donut-center span {
  font-size: 8.5px;
  color: rgba(23,34,28,0.45);
  letter-spacing: 1px;
}
.dv-donut-legend-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}
.dv-donut-legend {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 9.5px;
  color: #3f4a42;
  cursor: pointer;
  line-height: 1.25;
  transition: opacity 0.2s, font-weight 0.2s;
  white-space: nowrap;
}
.dv-donut-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.dv-donut-legend b {
  margin-left: 4px;
  font-size: 9.5px;
  font-weight: 600;
  color: #1f5a43;
}
.dv-donut-legend-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dv-donut-legend-pct {
  margin-left: 4px;
  font-size: 9.5px;
  font-weight: 700;
  color: #1f5a43;
  font-variant-numeric: tabular-nums;
}
.dv-donut-empty {
  font-size: 10px;
  color: #8a8f87;
  padding: 6px 0;
}

/* 轮播：列表内容不足时避免 transform 残留 */
.hotspot-panel .hs-list {
  will-change: transform;
}

/* ═══ 2026-08-18 列表头遮挡修复（双保险：A z-index 隔离 + B padding/背景兜底）═══
   根因：.hs-list 有 will-change:transform（合成层/stacking context）且后绘制，
   header 无 z-index 隔离，item 顶边可渲染到 header 之上。
   方案A：header z-index:5 > list z-index:1 → 绘制顺序强制 header 在上层
   方案B：header 背景与卡片一致 + padding-bottom，list padding-top 8px → 物理占位兜底 */
.hotspot-panel .hs-list-card { position: relative; }
.hotspot-panel .hs-card-header {
  position: relative;
  z-index: 5;
  padding-bottom: 4px;
  background: #fffbf3;
}
.hotspot-panel .hs-list {
  position: relative;
  z-index: 1;
  padding-top: 8px;
}
/* cosmos 深色主题：header 背景跟随卡片深蓝玻璃，避免暖白块突兀 */
body[data-theme="cosmos"]:not(.blm-dark) .hotspot-panel .hs-card-header {
  background: rgba(20, 30, 55, 0.78);
}



/* ═══ 聊天窗口容器化（2026-08-20）：对话区明确窗口感，不破坏折叠态/交互 ═══ */
#chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, var(--paper) 90%, transparent) !important;
  backdrop-filter: blur(18px) saturate(1.15) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.15) !important;
  border: 1px solid rgba(31,90,67,0.16) !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 44px rgba(16,30,25,0.16), inset 0 1px 0 rgba(255,255,255,0.45) !important;
  overflow: hidden;
}
#chat-history {
  background: rgba(255,253,248,0.62) !important;
  border: 1px solid rgba(31,90,67,0.08) !important;
  border-radius: 12px !important;
  margin: 10px 12px 0 !important;
}
#chat-messages {
  padding: 12px 16px 10px !important;
}
#input-row {
  background: rgba(255,251,243,0.78) !important;
  border-top: 1px solid rgba(31,90,67,0.12) !important;
  margin: 0 12px 12px !important;
  border-radius: 0 0 12px 12px !important;
}
#msg-input {
  min-height: 40px !important;
  background: #fffdf8 !important;
  border: 1.5px solid rgba(31,90,67,0.28) !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  box-shadow: 0 2px 8px rgba(16,30,25,0.06) !important;
}
#msg-input:focus {
  border-color: var(--forest) !important;
  box-shadow: 0 0 0 3px rgba(31,90,67,0.14) !important;
}
/* 深色主题适配 */
body.blm-dark #chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, #0f172a 88%, transparent) !important;
  border-color: rgba(226,232,240,0.12) !important;
  box-shadow: 0 10px 44px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05) !important;
}
body.blm-dark #chat-history {
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(226,232,240,0.08) !important;
}
body.blm-dark #input-row {
  background: rgba(255,255,255,0.04) !important;
  border-top-color: rgba(226,232,240,0.1) !important;
}
body.blm-dark #msg-input {
  background: rgba(20,30,40,0.7) !important;
  border-color: rgba(226,232,240,0.15) !important;
  color: #e2e8f0 !important;
}
body.blm-dark #msg-input::placeholder { color: #94a3b8 !important; }
body[data-theme="cosmos"]:not(.blm-dark) #chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, #1a2436 92%, transparent) !important;
  border-color: rgba(212,137,90,0.18) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #chat-history {
  background: rgba(255,255,255,0.04) !important;
  border-color: rgba(212,137,90,0.1) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #input-row {
  background: rgba(255,255,255,0.03) !important;
  border-top-color: rgba(212,137,90,0.12) !important;
}
body[data-theme="cosmos"]:not(.blm-dark) #msg-input {
  background: rgba(20,30,55,0.7) !important;
  border-color: rgba(212,137,90,0.2) !important;
  color: #e2e8f0 !important;
}


/* ═══ 全局字体渲染优化（2026-08-20）：消除整体发虚/模糊 ═══
 * 对齐 hotspot-panel 已验证的解法：开启字体平滑 + 毛玻璃改实色。
 * 毛玻璃(backdrop-filter)会让文字在 GPU 合成层上降采样，外接/低分屏明显发虚。 */
html, body, body * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* 侧栏面板：去毛玻璃 + 背景实色化 */
.panel {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: color-mix(in srgb, var(--paper) 96%, white) !important;
}
body.blm-dark .panel {
  background: rgba(15, 23, 42, 0.94) !important;
}
/* 聊天窗口：默认暖纸保持实色（字体清晰）；晴岚/深空主题恢复玻璃质感（2026-08-21） */
#chat-area.console:not(.collapsed) {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: color-mix(in srgb, var(--paper) 96%, white) !important;
}
/* 晴岚（冷调浅底）：暖色玻璃——半透明暖纸 + 轻微模糊，与冷调背景冷暖协调 */
body.blm-chat-bg5 #chat-area.console:not(.collapsed) {
  backdrop-filter: blur(14px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.2) !important;
  background: color-mix(in srgb, #f6e7d8 72%, transparent) !important;
  border-color: rgba(214, 166, 124, 0.35) !important;
  box-shadow: 0 10px 44px rgba(30, 45, 60, 0.18), inset 0 1px 0 rgba(255,255,255,0.5) !important;
}
/* 深空星河（cosmos）：深空玻璃质感保持 */
body[data-theme="cosmos"]:not(.blm-dark) #chat-area.console:not(.collapsed) {
  backdrop-filter: blur(14px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.2) !important;
  background: color-mix(in srgb, #1a2436 78%, transparent) !important;
  border-color: rgba(212,137,90,0.22) !important;
}
body.blm-dark #chat-area.console:not(.collapsed) {
  background: rgba(15, 23, 42, 0.94) !important;
}
/* 聊天背景主题 1-4（2026-08-21 换新配色：竹青/陶土/暮铜/松烟，色相差异明显） */
body.blm-chat-bg1 #chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, #bcdcc6 94%, transparent) !important;
}
body.blm-chat-bg2 #chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, #d8b4a0 94%, transparent) !important;
}
/* 混凝土（2026-08-21）：青白水泥色底 + 细颗粒纹理，模拟混凝土表面 */
body.blm-chat-bg3 #chat-area.console:not(.collapsed) {
  background-color: color-mix(in srgb, #c6ccd0 94%, transparent) !important;
  background-image: radial-gradient(rgba(120,128,134,0.16) 1px, transparent 1px), radial-gradient(rgba(104,112,118,0.1) 1px, transparent 1px) !important;
  background-size: 7px 7px, 11px 11px !important;
  background-position: 0 0, 4px 4px !important;
}
body.blm-chat-bg4 #chat-area.console:not(.collapsed) {
  background: color-mix(in srgb, #c5d2c8 94%, transparent) !important;
}
#chat-history {
  background: rgba(255, 253, 248, 0.9) !important;
}
#input-row {
  background: rgba(255, 251, 243, 0.94) !important;
}
