/* ============================================================
   req14 输入框簇修复（最后加载）
   ============================================================ */

/* ---------- #16/#18 去掉输入区外层“大黑块/大白块”和顶部分割线：
   外层容器透明，只保留 .composer-box 这张卡片本身的底色（对齐参考站） ---------- */
.ws-v2 .ws-composer { background: transparent !important; border-top: 0 !important; }
html[data-theme="light"] .ws-v2 .ws-composer,
html[data-theme="light"] .ws-v2 .ws-composer.cp-v2,
html[data-theme="light"] .ws-composer.cp-v2 { background: transparent !important; }

/* ---------- #19 聚焦/输入时不重排：工具栏/参数行/模式行恒显，杜绝高度跳动 ---------- */
.ws-v2 .ws-composer.cp-v2 .composer-toolbar,
.ws-v2 .ws-composer.cp-v2 .composer-params,
.ws-v2 .ws-composer.cp-v2 .mode-buttons { display: flex !important; }
.ws-v2 .ws-composer.cp-v2 .composer-params.is-empty { display: none !important; }
.ws-v2 .ws-composer.cp-v2 .composer-box,
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-box,
.ws-v2 .ws-composer.cp-v2.cp-expanded .composer-box { padding: 10px 14px 8px !important; }
.ws-v2 .ws-composer.cp-v2 .composer-box textarea,
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-box textarea { min-height: 40px !important; transition: none !important; }

/* ---------- #1 三组工具：仅在点入输入框（聚焦/展开）时浮现；
   全部绝对定位/淡出，不占文档流，出现与消失都不改变输入框尺寸、不跳动 ---------- */
@media (min-width: 861px) {
  /* 顶部创作大师轨：浮在卡片上沿，不挤入布局 */
  .ws-v2 .ws-composer.cp-v2 .cp-masters {
    position: absolute !important; left: 64px; right: 64px; bottom: calc(100% + 4px);
    margin: 0 auto; max-width: 1456px;
    display: flex !important; opacity: 0; visibility: hidden; pointer-events: none;
    transition: none !important;
  }
  .ws-v2 .ws-composer.cp-v2.cp-focused .cp-masters,
  .ws-v2 .ws-composer.cp-v2.cp-expanded .cp-masters,
  .ws-v2 .ws-composer.cp-v2:focus-within .cp-masters {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
  }
  /* 左右竖排工具列：本就绝对定位，仅改透明度，不影响布局 */
  .ws-v2 .ws-composer.cp-v2 .cp-side {
    display: flex !important; opacity: 0; visibility: hidden; pointer-events: none;
    transition: none !important;
  }
  .ws-v2 .ws-composer.cp-v2.cp-focused .cp-side,
  .ws-v2 .ws-composer.cp-v2.cp-expanded .cp-side,
  .ws-v2 .ws-composer.cp-v2:focus-within .cp-side {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
  }
}
/* 对话/智能体/语音本就无大师轨；窄屏不显示三组悬浮工具 */
.ws-composer.cp-v2.cat-chat .cp-masters,
.ws-composer.cp-v2.cat-agent .cp-masters,
.ws-composer.cp-v2.cat-tts .cp-masters { display: none !important; }
@media (max-width: 860px) {
  .ws-v2 .ws-composer.cp-v2 .cp-masters,
  .ws-v2 .ws-composer.cp-v2 .cp-side { display: none !important; }
}

/* ---------- #17 大师轨无框：去掉任何底板/描边/方块，只留彩色圆环 ---------- */
.cp-masters, .cp-master-rail { background: transparent !important; background-image: none !important; border: 0 !important; box-shadow: none !important; }
.cp-master.cm-tech { border: none !important; }
.cp-master.cm-tech.active { box-shadow: 0 0 0 2px #fff inset, 0 8px 24px color-mix(in srgb,var(--mc2) 60%,transparent) !important; }

/* #11 高级设置浮层：停掉占用 transform 的入场动画，交给 JS 锚定，避免偏位/跳动 */
.workspace-page .settings-pop{animation:none!important;}

/* #8 智能体成员（主管卡）去矩形框：对齐参考站，只留圆形头像+名字 */
#agentWorkspace .ag-expert-lead{border:0!important;background:transparent!important;box-shadow:none!important;padding:4px!important;}
html[data-theme="light"] #agentWorkspace .ag-expert-lead{background:transparent!important;box-shadow:none!important;}

/* ============ #2 思考过程面板：增强科技感（不改类名/打字机） ============ */
.ai-think{
  border-radius:16px !important;
  background:
    radial-gradient(120% 140% at 0% 0%,rgba(95,227,245,.10),transparent 55%),
    radial-gradient(120% 140% at 100% 100%,rgba(124,131,255,.12),transparent 55%),
    linear-gradient(180deg,rgba(15,24,38,.94),rgba(9,15,26,.94)) padding-box,
    linear-gradient(135deg,rgba(95,227,245,.65),rgba(124,131,255,.30) 45%,rgba(95,227,245,.14)) border-box !important;
  background-size:100% 100%,100% 100%,100% 100%,220% 220% !important;
  animation:aiThinkBorder 5s ease infinite;
}
@keyframes aiThinkBorder{0%,100%{background-position:0 0,0 0,0 0,0% 50%}50%{background-position:0 0,0 0,0 0,100% 50%}}
/* 细网格底纹 */
.ai-think .ai-think-body{
  background-image:linear-gradient(rgba(95,227,245,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(95,227,245,.05) 1px,transparent 1px);
  background-size:18px 18px;border-radius:0 0 12px 12px;
}
/* 思考中：整框呼吸辉光 */
.ai-think:not(.collapsed){animation:aiThinkBorder 5s ease infinite,aiThinkPulse 2.6s ease-in-out infinite;}
@keyframes aiThinkPulse{0%,100%{box-shadow:0 6px 24px rgba(3,10,22,.45),0 0 0 rgba(95,227,245,0)}50%{box-shadow:0 8px 30px rgba(3,10,22,.5),0 0 22px rgba(95,227,245,.18)}}
.ai-think-head{font-size:12.5px;letter-spacing:.6px;text-transform:uppercase;}
.ai-think-head .ai-think-title::after{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:2px;background:linear-gradient(135deg,#5fe3f5,#7c83ff);box-shadow:0 0 8px rgba(95,227,245,.7);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);}
html[data-theme=light] .ai-think{
  background:
    radial-gradient(120% 140% at 0% 0%,rgba(14,165,190,.08),transparent 55%),
    radial-gradient(120% 140% at 100% 100%,rgba(99,102,241,.08),transparent 55%),
    linear-gradient(180deg,#f5faff,#eef4fb) padding-box,
    linear-gradient(135deg,rgba(14,165,190,.55),rgba(99,102,241,.30)) border-box !important;
}

/* ============ #21 隐私模式：全站余额/积分/价格/账单打码（兼容 sp-privacy / privacy-mode） ============ */
body.sp-privacy [data-balance],body.sp-privacy .balance,body.sp-privacy .user-balance,body.sp-privacy .wallet-balance,
body.sp-privacy .cp-price,body.sp-privacy .cost-estimate,body.sp-privacy #cpPriceText,body.sp-privacy .price-num,
body.sp-privacy .um-balance,body.sp-privacy .billing-amount,body.sp-privacy .amount,body.sp-privacy .credits-num,
body.sp-privacy .w-balance,body.sp-privacy [class*=balance],body.sp-privacy [class*=Balance],
body.privacy-mode [data-balance],body.privacy-mode .balance,body.privacy-mode .user-balance,body.privacy-mode .wallet-balance,
body.privacy-mode .cp-price,body.privacy-mode .cost-estimate,body.privacy-mode #cpPriceText,body.privacy-mode [class*=balance]{
  filter:blur(7px);transition:filter .2s;user-select:none;pointer-events:none;
}
body.sp-privacy [data-balance]:hover,body.sp-privacy .balance:hover{filter:blur(0)}

/* ============ #27 工作台内价格簿（不跳第二菜单） ============ */
.sp-pb-mask{position:fixed;inset:0;z-index:3200;display:flex;align-items:center;justify-content:center;background:rgba(6,10,20,.6);backdrop-filter:blur(4px);padding:20px}
.sp-pb-box{width:min(760px,96vw);max-height:84vh;display:flex;flex-direction:column;border-radius:18px;border:1px solid rgba(34,211,238,.28);background:linear-gradient(165deg,#0d1424,#0a0f1c);box-shadow:0 30px 90px rgba(0,0,0,.6),inset 0 1px 0 rgba(124,131,255,.18);overflow:hidden}
.sp-pb-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.07)}
.sp-pb-head strong{font-size:16px;color:#e8f6ff;white-space:nowrap}
.sp-pb-search{flex:1;height:36px;border-radius:10px;border:1px solid rgba(124,131,255,.3);background:rgba(255,255,255,.04);color:#dbeafe;padding:0 12px;font-size:13px;outline:none}
.sp-pb-search:focus{border-color:#22d3ee;box-shadow:0 0 0 3px rgba(34,211,238,.12)}
.sp-pb-x{width:34px;height:34px;border-radius:10px;border:none;background:rgba(255,255,255,.06);color:#cfe3ff;font-size:18px;cursor:pointer}
.sp-pb-tabs{display:flex;gap:8px;padding:12px 18px;flex-wrap:wrap}
.sp-pb-tab{border:1px solid rgba(255,255,255,.12);background:transparent;color:#9fb6c9;border-radius:999px;padding:6px 16px;font-size:13px;cursor:pointer;transition:.15s}
.sp-pb-tab.on{color:#04121a;font-weight:700;border-color:transparent;background:linear-gradient(135deg,#22d3ee,#7c83ff)}
.sp-pb-list{flex:1;overflow:auto;padding:0 18px;display:grid;gap:8px;align-content:start}
.sp-pb-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.03)}
.sp-pb-row:hover{border-color:rgba(34,211,238,.35);background:rgba(34,211,238,.06)}
.sp-pb-name{font-size:13.5px;color:#e6f2ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-pb-price{font-style:normal;font-size:12.5px;color:#5fe3f5;white-space:nowrap;font-weight:600}
.sp-pb-empty{text-align:center;color:#7890a9;padding:40px 0;font-size:13px}
.sp-pb-foot{padding:12px 18px;border-top:1px solid rgba(255,255,255,.07);color:#7890a9;font-size:12px;margin:0}
html[data-theme=light] .sp-pb-box{background:linear-gradient(165deg,#fff,#f3f7ff)}
html[data-theme=light] .sp-pb-head{border-bottom-color:#e6edf7}
html[data-theme=light] .sp-pb-head strong{color:#16233a}
html[data-theme=light] .sp-pb-search{background:#f4f7fc;color:#1b2a40;border-color:#dbe4f0}
html[data-theme=light] .sp-pb-x{background:#eef2f8;color:#33415c}
html[data-theme=light] .sp-pb-tab{color:#52607a;border-color:#dde5f0}
html[data-theme=light] .sp-pb-row{background:#f7faff;border-color:#e6edf7}
html[data-theme=light] .sp-pb-name{color:#1b2a40}
html[data-theme=light] .sp-pb-foot{border-top-color:#e6edf7;color:#8294ab}

/* #15 逐模型附件悬停说明（科技感浮层，原生 title 兜底） */
.cp-frame-add[data-tip],.cp-ref-add[data-tip]{position:relative}
.cp-frame-add[data-tip]:hover::after,.cp-ref-add[data-tip]:hover::before{opacity:1;transform:translate(-50%,0);pointer-events:none}
.cp-frame-add[data-tip]::after,.cp-ref-add[data-tip]::after{
 content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,6px);
 background:linear-gradient(165deg,rgba(13,20,36,.97),rgba(10,15,28,.97));border:1px solid rgba(34,211,238,.35);
 color:#dff4ff;font-size:12px;line-height:1.5;white-space:nowrap;padding:7px 11px;border-radius:10px;z-index:60;
 box-shadow:0 10px 30px rgba(0,0,0,.5),inset 0 1px 0 rgba(124,131,255,.2);opacity:0;transition:.16s;max-width:78vw}
.cp-frame-add[data-tip]::before,.cp-ref-add[data-tip]::before{
 content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translate(-50%,6px) rotate(45deg);
 width:8px;height:8px;background:rgba(13,20,36,.97);border-right:1px solid rgba(34,211,238,.35);border-top:1px solid rgba(34,211,238,.35);
 opacity:0;transition:.16s;z-index:61}
html[data-theme=light] .cp-frame-add[data-tip]::after,html[data-theme=light] .cp-ref-add[data-tip]::after{background:linear-gradient(165deg,#fff,#f1f6ff);color:#1b2a40;border-color:rgba(56,120,200,.3)}
html[data-theme=light] .cp-frame-add[data-tip]::before,html[data-theme=light] .cp-ref-add[data-tip]::before{background:#fff;border-color:rgba(56,120,200,.3)}

/* ========== req15 #1 取消输入区“框中框”大色块：外层透明无边，仅保留一张干净卡片（对齐参考站） ========== */
.ws-v2 .ws-composer.cp-v2,
.ws-v2 .ws-composer,
.ws-composer { background: transparent !important; border: 0 !important; box-shadow: none !important; }
/* 深色：单张微浮层，去掉生硬描边 */
.ws-v2 .ws-composer.cp-v2 .composer-box,
.cp-v2 .composer-box {
  background: #141821 !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.42) !important;
}
.ws-composer.cp-v2.cp-expanded .composer-box { background: #141821 !important; }
.cp-v2 .composer-box:focus-within { border-color: rgba(34,211,238,.4) !important; box-shadow: 0 10px 30px rgba(0,0,0,.42),0 0 0 3px rgba(34,211,238,.05) !important; }
/* 浅色：单张干净白卡，极淡发丝边 + 柔影，无灰框 */
html[data-theme=light] .ws-v2 .ws-composer.cp-v2 .composer-box,
html[data-theme=light] .ws-v2 .composer-box {
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.07) !important;
  box-shadow: 0 6px 24px rgba(15,23,42,.06) !important; color:#1c2233 !important;
}
html[data-theme=light] .cp-v2 .composer-box:focus-within { border-color: rgba(34,211,238,.5) !important; box-shadow: 0 6px 24px rgba(15,23,42,.06),0 0 0 3px rgba(34,211,238,.08) !important; }

/* req15 补：ID 级彻底清除外层 composer 顶边（浅/深都不留框） */
#wsComposer.ws-composer,
html[data-theme=light] .ws-v2 #wsComposer.ws-composer { background: transparent !important; border: 0 !important; border-top: 0 !important; box-shadow: none !important; }

/* req15 #1b 取消参数行整条“黑/灰长条”：行容器透明、无分割线（只保留各参数胶囊自身） */
.cp-v2 .composer-params,
.ws-v2 .ws-composer.cp-v2 .composer-params,
.composer-params { background: transparent !important; border-top: 0 !important; }
html[data-theme=light] .cp-v2 .composer-params,
html[data-theme=light] .composer-params { background: transparent !important; }

/* ========== req15 #14 对话历史固定从【左侧】滑出（面板在 .ws-v2 外，ID 级强制，修正仍跑右侧的 BUG） ========== */
#historyPanel.history-panel{
  left:0 !important; right:auto !important; top:0 !important; bottom:0 !important;
  width:min(340px,86vw) !important; height:100dvh !important;
  border-left:0 !important; border-right:1px solid rgba(255,255,255,.08) !important;
  border-radius:0 18px 18px 0 !important;
  background:linear-gradient(180deg,#0e1320,#0b0f1a) !important;
  box-shadow:22px 0 60px rgba(0,0,0,.45) !important; z-index:1400 !important;
  animation:histSlideL .24s ease !important; padding:18px !important;
}
html[data-theme=light] #historyPanel.history-panel{
  background:linear-gradient(180deg,#ffffff,#f6f9ff) !important;
  border-right:1px solid #e6edf7 !important;
}
#historyPanel.history-panel.hidden{display:none !important;}

/* req15 #14 竖排历史 rail 垂直居中于侧栏右缘（对齐参考站边缘正中），并跟随侧栏宽度 */
.ws-v2 .sb-history-rail{top:50% !important;transform:translateY(-50%);}
.ws-v2 .sb-history-rail:hover{transform:translateY(-50%);}
@media (min-width:1920px){.ws-v2 .sb-history-rail{left:320px !important;}}
@media (max-width:1440px) and (min-width:1281px){.ws-v2 .sb-history-rail{left:288px !important;}}
@media (max-width:1280px){.ws-v2 .sb-history-rail{left:264px !important;}}
.ws-v2 .ws-sidebar.collapsed ~ .sb-history-rail{left:0 !important;}
@media (max-width:991px){.ws-v2 .sb-history-rail{display:none !important;}}
