/* ============================================================
   composer-v2.css —— 1:1 对齐参考站输入框
   大师横排 + 左右工具列 + 参考图区 + 参数行
   ============================================================ */
.ws-v2 .ws-composer.cp-v2 {
  background: #0a0a0c;
  border-top: none;
  padding: 6px 14px 14px;
  position: relative;
}

/* ---------- 创作大师横排（聚焦才显示） ---------- */
.cp-masters {
  max-width: 1180px; margin: 0 auto 6px;
  padding-left: 58px; /* 对齐输入框（左工具列宽） */
  display: none;
}
/* req11 防跳动：创作大师仅在用户主动展开(.cp-expanded)时出现，聚焦/悬停不再自动顶高输入区 */
.ws-composer.cp-v2.cp-expanded .cp-masters { display: flex; animation: cpMastersIn .18s ease; }
@keyframes cpMastersIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.cp-master-bubble {
  display: inline-block;
  background: #000; border: 1px solid #222; border-radius: 10px;
  padding: 8px 16px; max-width: 320px; text-align: center;
}
.cp-master-bubble strong { display: block; font-size: 13.5px; color: #fff; font-weight: 700; }
.cp-master-bubble span { display: block; font-size: 11px; color: #9a9aa5; margin-top: 3px; line-height: 1.5; }
.cp-master-rail {
  display: flex; gap: 8px; margin-top: 8px; overflow-x: auto; overflow-y: hidden;
  scrollbar-width: none; padding: 10px 4px 10px 0;
}
.cp-master-rail::-webkit-scrollbar { display: none; }
.cp-master {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  border: 2px solid transparent; cursor: pointer; padding: 0;
  background-size: cover; background-position: center; position: relative;
  transition: transform .15s, border-color .15s;
}
.cp-master:hover { transform: translateY(-2px); }
.cp-master.active { border-color: #22d3ee; box-shadow: 0 0 10px rgba(34,211,238,.5); }
.cp-master .cm-emoji {
  width: 100%; height: 100%; border-radius: 50%;
  display: grid; place-items: center; font-size: 19px;
  background: linear-gradient(135deg, var(--mc1,#22d3ee), var(--mc2,#6366f1));
}

/* ---------- 整体三栏布局 ---------- */
.cp-layout { display: flex; align-items: center; gap: 8px; max-width: 1180px; margin: 0 auto; }
.cp-side { display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; align-self: center; }
.cp-side-left { margin-bottom: 0; }
.cp-side-right { margin-bottom: 0; }

/* ---------- 圆形工具钮 ---------- */
.cp-tool {
  width: 42px; height: 42px; border-radius: 50%;
  background: #1c1c21; border: 1px solid #2c2c33; color: #c8c8d2;
  display: grid; place-items: center; cursor: pointer; padding: 0;
  transition: all .15s;
}
.cp-tool svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cp-tool:hover { background: #26262d; color: #fff; border-color: #3a3a44; }
.cp-tool.cp-tool-on { color: #22d3ee; border-color: rgba(34,211,238,.55); background: rgba(34,211,238,.08); }
.cp-tool-help { font-size: 17px; font-weight: 700; color: #22d3ee; border-color: rgba(34,211,238,.4); }

/* ---------- 输入框主体 ---------- */
.cp-v2 .composer-box {
  flex: 1; min-width: 0;
  background: #17171b; border: 1px solid #2a2a31; border-radius: 18px;
  padding: 10px 14px 8px; transition: border-color .15s, box-shadow .15s;
}
.cp-v2 .composer-box:focus-within { border-color: rgba(34,211,238,.45); box-shadow: 0 0 0 3px rgba(34,211,238,.06); }

/* 拉大状态 */
.ws-composer.cp-v2.cp-expanded .composer-box { background: #141418; }
.ws-composer.cp-v2.cp-expanded textarea { min-height: 220px; }

/* ---------- 参考图区 ---------- */
.cp-refs { display: none; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.cp-refs.has-ref { display: flex; }
.cp-ref-add {
  width: 64px; height: 78px; border-radius: 10px; flex-shrink: 0;
  border: 1.5px dashed #3a3a44; background: #101014; color: #7a7a85;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  cursor: pointer; transition: .15s;
}
.cp-ref-add:hover { border-color: #22d3ee; color: #22d3ee; }
.c-ref-plus { font-size: 20px; line-height: 1; }
.cp-ref-add em { font-style: normal; font-size: 10.5px; }
.cp-ref-item {
  width: 64px; height: 78px; border-radius: 10px; position: relative; overflow: hidden;
  border: 1.5px solid #fff2; background: #1c1c22;
}
.cp-ref-item img { width: 100%; height: 100%; object-fit: cover; }
.cp-ref-item .cp-ref-del {
  position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; border-radius: 50%;
  border: none; background: rgba(0,0,0,.65); color: #fff; font-size: 12px; line-height: 1;
  cursor: pointer; display: grid; place-items: center;
}
.cp-ref-item .cp-ref-name {
  position: absolute; left: 0; right: 0; bottom: 0; font-size: 9px; color: #fff;
  background: linear-gradient(transparent, rgba(0,0,0,.7)); padding: 8px 4px 3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ---------- 工具行 ---------- */
.cp-v2 .composer-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.cp-v2 .composer-toolbar .upload-btn,
.cp-v2 .composer-toolbar #stackBtn {
  background: transparent; border: 1px solid #2c2c33; color: #9a9aa5;
  border-radius: 8px; padding: 5px 11px; font-size: 12px; cursor: pointer;
}
.cp-v2 .composer-toolbar .upload-btn:hover,
.cp-v2 .composer-toolbar #stackBtn:hover { border-color: rgba(34,211,238,.5); color: #22d3ee; }
.cp-v2 .billing-chip {
  margin-left: auto; background: transparent; border: none; padding: 0;
  font-size: 12px; color: #b8a137; cursor: default;
}
.cp-v2 .billing-chip b { color: #fbbf24; }
.cp-v2 .billing-chip span {
  display: inline-grid; place-items: center; width: 14px; height: 14px; border-radius: 50%;
  border: 1px solid #555; color: #999; font-size: 9px; margin-left: 3px; cursor: help;
}

/* ---------- 输入框 ---------- */
.cp-v2 .composer-box textarea {
  width: 100%; border: none; background: transparent; resize: none; outline: none;
  color: #e8e8f0; font-size: 14px; line-height: 1.6; min-height: 52px; max-height: 320px;
  padding: 4px 0;
}
.cp-v2 .composer-box textarea::placeholder { color: #6a6a75; }

/* ---------- 底部参数行 ---------- */
.cp-v2 .composer-bottom { display: flex; align-items: center; gap: 8px; margin-top: 4px; flex-wrap: wrap; }
.cp-v2 .mode-buttons { display: flex; gap: 7px; flex: 1; flex-wrap: wrap; }
.cp-v2 .mode-buttons button {
  border: 1px solid #2c2c33; background: #1e1e24; color: #b0b0bc;
  border-radius: 9px; padding: 6px 11px; font-size: 12px; cursor: pointer;
  white-space: nowrap; transition: .15s; display: inline-flex; align-items: center; gap: 4px;
}
.cp-v2 .mode-buttons button em { font-style: normal; color: #e8e8f0; font-weight: 700; }
.cp-v2 .mode-buttons button:hover { border-color: rgba(34,211,238,.5); color: #22d3ee; }
.cp-v2 .mode-buttons [data-mode-panel="best"] { color: #22d3ee; border-color: rgba(34,211,238,.35); }
.cp-v2 .mode-buttons [data-mode-panel="count"] { color: #c9b458; border-color: rgba(201,180,88,.35); background: rgba(201,180,88,.08); }

/* 发送钮 */
.cp-v2 .send-btn {
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg,#22d3ee,#0ea5e9); color: #04141a;
  border: none; font-size: 19px; font-weight: 900; cursor: pointer;
  display: grid; place-items: center; transition: .15s; box-shadow: 0 4px 16px rgba(34,211,238,.3);
}
.cp-v2 .send-btn:hover { filter: brightness(1.1); transform: scale(1.05); }
.cp-v2 .send-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* ---------- 旧悬浮工具在 v2 隐藏（功能已并入左右工具列；这两个节点在 .ws-v2 容器外，故不加前缀） ---------- */
.floating-user, .quick-tools { display: none !important; }

/* ---------- 弹窗（角色/编辑/资产/扫码/帮助） ---------- */
.cp-modal-mask {
  position: fixed; inset: 0; background: rgba(0,0,0,.6); backdrop-filter: blur(3px);
  z-index: 9000; display: none; align-items: center; justify-content: center;
}
.cp-modal-mask.show { display: flex; }
.cp-modal {
  width: min(520px, 92vw); max-height: 84vh; overflow-y: auto;
  background: #141418; border: 1px solid #2c2c33; border-radius: 16px; padding: 22px;
}
.cp-modal-head { display: flex; align-items: center; margin-bottom: 14px; }
.cp-modal-head strong { font-size: 16px; color: #fff; }
.cp-modal-head button { margin-left: auto; width: 30px; height: 30px; border-radius: 50%; border: 1px solid #2c2c33; background: transparent; color: #999; cursor: pointer; font-size: 16px; }
.cp-modal p.cp-tip { color: #9a9aa5; font-size: 13px; line-height: 1.7; margin-bottom: 12px; }
.cp-modal .cp-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.cp-modal .cp-opt {
  border: 1px solid #2c2c33; border-radius: 12px; padding: 14px 10px; text-align: center;
  background: #1a1a20; color: #d0d0da; cursor: pointer; font-size: 12.5px; transition: .15s;
}
.cp-modal .cp-opt:hover { border-color: #22d3ee; color: #22d3ee; }
.cp-modal .cp-opt .ico { font-size: 22px; display: block; margin-bottom: 6px; }
.cp-qr {
  width: 180px; height: 180px; margin: 8px auto; border-radius: 12px;
  background: #fff; display: grid; place-items: center; padding: 12px;
}
.cp-qr canvas, .cp-qr img { width: 100%; height: 100%; }
.cp-modal .cp-input {
  width: 100%; background: #101014; border: 1px solid #2c2c33; border-radius: 10px;
  color: #e8e8f0; padding: 10px 12px; font-size: 13px; outline: none; margin-bottom: 10px;
}
.cp-choice-list { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-choice {
  border: 1px solid #2c2c33; background: #1e1e24; color: #c0c0cc;
  border-radius: 999px; padding: 7px 15px; font-size: 12.5px; cursor: pointer;
}
.cp-choice:hover, .cp-choice.sel { border-color: #22d3ee; color: #22d3ee; background: rgba(34,211,238,.08); }

/* ---------- 创作参数行（enhance.js 生成：数量/比例/画质/时长/费用） ---------- */
/* 参考站输入框内不放模型头像条（模型在左侧栏选择），隐藏避免挤占布局 */
.cp-v2 .model-avatar-bar { display: none !important; }
.cp-v2 .composer-params {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap; overflow: visible;
  border-top: none; padding: 6px 0 2px; margin-top: 2px;
}
.cp-v2 .composer-params::-webkit-scrollbar { display: none; }
.cp-v2 .param-chip {
  flex-shrink: 0; height: 30px; padding: 0 11px; border-radius: 9px;
  background: #1e1e24; border: 1px solid #2c2c33; color: #b0b0bc; font-size: 12px;
  position: relative; cursor: pointer; white-space: nowrap;
}
.cp-v2 .param-chip:hover { border-color: rgba(34,211,238,.5); color: #22d3ee; background: #22222a; }
.cp-v2 .param-chip.param-active { color: #22d3ee; border-color: rgba(34,211,238,.35); background: rgba(34,211,238,.08); }
.cp-v2 .param-chip .param-val { color: #e8e8f0; font-weight: 700; }
.cp-v2 .cost-estimate { margin-left: auto; flex-shrink: 0; font-size: 12px; color: #8a8a95; }
.cp-v2 .cost-estimate .cost-val { color: #fbbf24; font-weight: 700; }
.cp-v2 .param-dropdown-menu {
  position: absolute; bottom: calc(100% + 6px); left: 0; min-width: 150px; z-index: 60;
  background: #17171b; border: 1px solid #2c2c33; border-radius: 10px; padding: 5px;
  display: none; box-shadow: 0 10px 30px rgba(0,0,0,.5);
}
.cp-v2 .param-dropdown-menu.show { display: block; }
.cp-v2 .param-dropdown-menu button {
  display: block; width: 100%; text-align: left; background: transparent; border: none;
  color: #c0c0cc; font-size: 12.5px; padding: 7px 10px; border-radius: 7px; cursor: pointer;
}
.cp-v2 .param-dropdown-menu button:hover,
.cp-v2 .param-dropdown-menu button.selected { background: rgba(34,211,238,.12); color: #22d3ee; }

/* ---------- 窄屏适配 ---------- */
@media (max-width: 860px) {
  .cp-side { display: none !important; }
  .cp-masters { padding-left: 0; }
}

/* ============================================================
   对齐参考站：未聚焦时只留“简洁输入条 + 发送钮”，
   点击/聚焦输入框后才浮现左右工具列、上传/高级、参数行与创作大师
   ============================================================ */
/* req11 防跳动：工具栏常驻显示，仅遗留的 .cp-side/.mode-buttons 隐藏，聚焦不再新增行 */
.ws-v2 .ws-composer.cp-v2 .cp-side,
.ws-v2 .ws-composer.cp-v2 .mode-buttons { display: none; }
/* 参数控制栏：有参数时默认显示（对齐参考站始终可见），空时由is-empty隐藏 */
.ws-v2 .ws-composer.cp-v2 .composer-params { display: flex; }
.ws-v2 .ws-composer.cp-v2 .composer-params.is-empty { display: none !important; }
/* 内外恒定：未聚焦与聚焦同 padding、同最小高度，杜绝点击/输入时上下跳动 */
.ws-v2 .ws-composer.cp-v2 .composer-box { padding: 10px 14px 8px; }
.ws-v2 .ws-composer.cp-v2 .composer-box textarea { min-height: 40px; transition: none; }
.ws-v2 .ws-composer.cp-v2 .composer-bottom { margin-top: 2px; justify-content: flex-end; }

.ws-v2 .ws-composer.cp-v2.cp-focused .cp-side { display: none; }
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-toolbar,
.ws-v2 .ws-composer.cp-v2.cp-expanded .composer-toolbar { display: flex; }
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-params,
.ws-v2 .ws-composer.cp-v2.cp-expanded .composer-params { display: flex; }
.ws-v2 .ws-composer.cp-v2.cp-focused .mode-buttons,
.ws-v2 .ws-composer.cp-v2.cp-expanded .mode-buttons { display: none; }
/* req11 防跳动：聚焦态 padding/最小高度与未聚焦完全一致，不再变化 */
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-box,
.ws-v2 .ws-composer.cp-v2.cp-expanded .composer-box { padding: 10px 14px 8px; }
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-bottom { justify-content: flex-end; }
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-box textarea { min-height: 40px; }

/* ============================================================
   v3 统一修正层：lucide 线性图标 / 方形参考图缩略图 / hover 提示
   ============================================================ */
/* 所有内联图标统一为参考站 lucide 线性风格 */
.cp-v2 svg { fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.cp-v2 .composer-toolbar svg,
.cp-v2 .mode-buttons svg,
.cp-v2 .composer-params .param-ico svg { width: 15px; height: 15px; flex-shrink: 0; }
.cp-v2 .send-btn svg { width: 20px; height: 20px; stroke-width: 2.4; }
.cp-v2 .cp-ref-add svg { width: 18px; height: 18px; }
.cp-v2 .composer-params .param-ico { display: inline-grid; place-items: center; margin-right: 2px; vertical-align: -2px; }
.cp-v2 .composer-toolbar .upload-btn,
.cp-v2 .composer-toolbar #stackBtn { display: inline-flex; align-items: center; gap: 5px; }
.cp-v2 .composer-toolbar .upload-btn b { font-weight: 700; color: #22d3ee; }
.cp-v2 .mode-buttons button { gap: 5px; }
.cp-v2 .mode-buttons .mb-caret { font-style: normal; font-size: 11px; color: inherit; margin-left: 1px; opacity: .8; }

/* 参考图区：仅图像/视频类常驻显示；req11 防跳动——纯文本/音频类聚焦不再弹出空参考块 */
.ws-v2 .ws-composer.cp-v2 .cp-refs { display: none; }
.ws-v2 .ws-composer.cp-v2.cat-video .cp-refs,
.ws-v2 .ws-composer.cp-v2.cat-image .cp-refs,
.ws-v2 .ws-composer.cp-v2.cat-audio .cp-refs,
.ws-v2 .ws-composer.cp-v2.cat-music .cp-refs { display: flex; }
/* 仅当确有参考内容（缩略图/槽位）时，聚焦/展开才显示，避免空块把输入区顶高 */
.ws-v2 .ws-composer.cp-v2.cp-focused .cp-refs.has-items,
.ws-v2 .ws-composer.cp-v2.cp-expanded .cp-refs.has-items { display: flex; }
.cp-v2 .cp-refs { flex-wrap: wrap; gap: 8px; margin-bottom: 8px; align-items: flex-start; }
.cp-v2 .cp-ref-add { width: 64px; height: 78px; }
.cp-v2 .cp-ref-add em { font-style: normal; font-size: 10.5px; line-height: 1; }

/* 附件列表用 display:contents，让缩略图直接参与 cp-refs 的横向排列 */
.cp-v2 .attachment-list { display: contents; }
.cp-v2 .attachment-list.hidden { display: none; }
.cp-v2 .attachment-pill {
  position: relative; width: 64px; height: 78px; border-radius: 10px; overflow: hidden;
  border: 1px solid rgba(255,255,255,.14); background: #1c1c22; padding: 0; margin: 0; cursor: pointer; flex-shrink: 0;
}
.cp-v2 .attachment-pill.is-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-v2 .attachment-pill:not(.is-image) { display: grid; place-items: center; }
.cp-v2 .att-file-ic { font-size: 24px; }
.cp-v2 .att-x {
  position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; border-radius: 50%;
  background: rgba(0,0,0,.7); color: #fff; font-style: normal; font-size: 12px; line-height: 18px; text-align: center;
}
.cp-v2 .attachment-pill:hover .att-x { background: #ef4444; }

/* hover 工具提示气泡（替代原生 title，更贴近参考站） */
.cp-v2 [data-tip] { position: relative; }
.cp-v2 [data-tip]:hover::after {
  content: attr(data-tip); position: absolute; left: 50%; transform: translateX(-50%);
  bottom: calc(100% + 9px); background: #050507; border: 1px solid #2c2c33; color: #e8e8f0;
  font-size: 11.5px; white-space: nowrap; padding: 5px 10px; border-radius: 8px; z-index: 80;
  pointer-events: none; box-shadow: 0 6px 20px rgba(0,0,0,.55);
}
.cp-side-right [data-tip]:hover::after { left: auto; right: 0; transform: none; }
.cp-ref-add[data-tip]:hover::after { left: 0; transform: none; }

/* 创作大师首项气泡与轨道对齐 */
.cp-masters { padding-left: 0; }
@media (min-width: 861px) { .cp-masters { padding-left: 58px; } }

/* ============================================================
   v4 类型化输入框对齐层（2026-09-02）
   ============================================================ */
/* 下拉菜单：父级不再裁剪，菜单向下弹出且层级最高 */
.cp-v2 .composer-params { overflow: visible !important; flex-wrap: wrap; }
.cp-v2 .composer-params.is-empty { display: none !important; }
.cp-v2 .composer-box { position: relative; overflow: visible; }
.cp-v2 .param-dropdown-menu {
  bottom: calc(100% + 6px); top: auto; left: 0; z-index: 9999;
  min-width: 168px; max-height: 300px; overflow-y: auto;
  background: #1b1b20; border: 1px solid #34343d; border-radius: 12px; padding: 6px;
  box-shadow: 0 14px 40px rgba(0,0,0,.62);
}
.cp-v2 .param-caret { font-style: normal; margin-left: 2px; opacity: .7; font-size: 12px; }

/* 生成数量：参考站金色/琥珀胶囊 */
.cp-v2 .param-chip.param-gold {
  color: #d8c06a; border-color: rgba(212,184,92,.45);
  background: linear-gradient(180deg, rgba(212,184,92,.14), rgba(212,184,92,.06));
}
.cp-v2 .param-chip.param-gold .param-val { color: #e9d286; }
.cp-v2 .param-chip.param-gold:hover { border-color: rgba(212,184,92,.7); color: #e9d286; background: rgba(212,184,92,.14); }

/* 综合最优：参考站紫色胶囊 */
.cp-v2 .param-chip.param-purple {
  color: #a78bfa; border-color: rgba(167,139,250,.45);
  background: linear-gradient(180deg, rgba(167,139,250,.14), rgba(167,139,250,.06));
}
.cp-v2 .param-chip.param-purple .param-val { color: #c4b5fd; }
.cp-v2 .param-chip.param-purple:hover { border-color: rgba(167,139,250,.7); color: #c4b5fd; background: rgba(167,139,250,.14); }

/* 参考站 1:1 参数胶囊：[图标][当前值]，紧凑、无内部 label */
.cp-v2 .param-chip.param-ref { gap: 5px; padding: 6px 10px; font-weight: 600; white-space: nowrap; }
.cp-v2 .param-chip.param-ref .param-ico { display: inline-grid; place-items: center; margin-right: 0; }
.cp-v2 .param-chip.param-ref .param-ico svg { width: 14px; height: 14px; display: block; }
.cp-v2 .param-chip.param-ref .param-val { font-weight: 600; }
.cp-v2 .param-chip.param-ref.param-gold .param-ico svg { fill: #e9d286; }
.cp-v2 .param-chip.param-ref.param-purple .param-ico svg { fill: #c4b5fd; }
.cp-v2 .param-chip.param-ref:not(.param-gold):not(.param-purple) .param-ico svg { fill: #9fb3c8; }

/* 生成类模型（图/视频/音乐/语音/3D）：综合最优等已在参数胶囊行，隐藏旧的静态模式行，避免两排重复
   选择器带完整祖先以盖过 sp-17fix 的 .ws-v2 .ws-composer.cp-v2 .mode-buttons{display:flex!important} */
.ws-v2 .ws-composer.cp-v2.cat-image .mode-buttons,
.ws-v2 .ws-composer.cp-v2.cat-video .mode-buttons,
.ws-v2 .ws-composer.cp-v2.cat-music .mode-buttons,
.ws-v2 .ws-composer.cp-v2.cat-tts .mode-buttons,
.ws-v2 .ws-composer.cp-v2.cat-3d .mode-buttons { display: none !important; }
/* 对话类：参数行已含「综合最优」，隐藏静态行里重复的那一颗，保留高级设置/长期记忆/角色扮演 */
.ws-v2 .ws-composer.cp-v2 .mode-buttons [data-mode-panel="best"] { display: none !important; }
/* 生成类隐藏静态模式行后，发送/AI 帮写按钮靠右，避免堆到左侧 */
.ws-v2 .ws-composer.cp-v2.cat-image .composer-bottom,
.ws-v2 .ws-composer.cp-v2.cat-video .composer-bottom,
.ws-v2 .ws-composer.cp-v2.cat-music .composer-bottom,
.ws-v2 .ws-composer.cp-v2.cat-tts .composer-bottom,
.ws-v2 .ws-composer.cp-v2.cat-3d .composer-bottom { justify-content: flex-end !important; }

/* 输入框高度恒定：上传槽/已传附件按“有无内容”常驻，不再聚焦才冒出来（消除点击输入框时整体变高） */
.ws-v2 .ws-composer.cp-v2 .cp-refs { display: flex !important; }
.ws-v2 .ws-composer.cp-v2 .cp-refs:not(:has(.cp-frame-add)):not(:has(.ua-thumb)):not(:has(.ua-file)) { display: none !important; }

/* ===== 综合最优 · 智能调度面板（1:1 参考站 .channel-popup） ===== */
.ws-v2 .param-schedule .param-dropdown-menu { width: 288px; min-width: 288px; max-width: 300px; max-height: 70vh; overflow-y: auto; padding: 12px; background: rgba(20,24,34,.97); border: 1px solid rgba(148,163,184,.18); border-radius: 14px; box-shadow: 0 14px 44px rgba(0,0,0,.5); text-align: left; }
.ws-v2 .param-schedule .sp-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.ws-v2 .param-schedule .sp-title { font-size: 14px; font-weight: 700; color: #e8edf6; }
.ws-v2 .param-schedule .sp-tag { font-size: 11px; color:#a78bfa; background: rgba(167,139,250,.14); border:1px solid rgba(167,139,250,.3); padding:1px 8px; border-radius: 999px; }
.ws-v2 .param-schedule .sp-smart-tit { display:flex; align-items:center; gap:6px; font-size:12px; color:#9aa6bd; margin-bottom:8px; }
.ws-v2 .param-schedule .sp-smart-tit svg { color:#a78bfa; }
.ws-v2 .param-schedule .sp-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:6px; }
.ws-v2 .param-schedule .sp-cell { position:relative; display:flex; align-items:center; gap:7px; padding:9px 10px; border:1px solid rgba(148,163,184,.18); border-radius:10px; background:rgba(255,255,255,.03); color:#cdd6e6; font-size:12.5px; cursor:pointer; transition:.15s; }
.ws-v2 .param-schedule .sp-cell:hover { border-color: rgba(148,163,184,.4); background:rgba(255,255,255,.06); }
.ws-v2 .param-schedule .sp-cell-on { border-color:#a78bfa; background:rgba(167,139,250,.12); color:#fff; }
.ws-v2 .param-schedule .sp-ico { display:inline-flex; }
.ws-v2 .param-schedule .sp-name { font-weight:600; }
.ws-v2 .param-schedule .sp-check { position:absolute; top:5px; right:6px; color:#a78bfa; }
.ws-v2 .param-schedule .sp-ch-label { font-size:11px; color:#7c88a0; margin:10px 0 6px; }
.ws-v2 .param-schedule .sp-channels { display:flex; flex-direction:column; gap:6px; }
.ws-v2 .param-schedule .sp-ch { border:1px solid rgba(148,163,184,.14); border-radius:10px; padding:8px 10px; background:rgba(255,255,255,.02); }
.ws-v2 .param-schedule .sp-ch-h { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ws-v2 .param-schedule .sp-ch-name { font-size:12.5px; font-weight:600; color:#dbe2ee; }
.ws-v2 .param-schedule .sp-ch-stat { font-size:11px; color:#7c88a0; }
.ws-v2 .param-schedule .sp-ch-price { margin-top:4px; font-size:11px; color:#fbbf24; display:flex; align-items:center; gap:4px; }
.ws-v2 .param-schedule .sp-ch-price::before { content:"⚡"; font-size:10px; }

/* ===== 需求5：下拉浮层打开时层叠治理，杜绝浮层与其它参数胶囊重叠/穿透 ===== */
.cp-v2 .composer-params.param-menu-open .param-dropdown { z-index: 1; }
.cp-v2 .composer-params.param-menu-open .param-dropdown.param-active { z-index: 10001; }
.cp-v2 .composer-params.param-menu-open .param-chip:not(.param-active) { opacity: .55; }
.cp-v2 .param-dropdown.param-active { z-index: 10001; }
.cp-v2 .param-dropdown.param-active .param-dropdown-menu {
  z-index: 10002; background: #141822; border-color: rgba(34,211,238,.28);
  box-shadow: 0 18px 50px rgba(0,0,0,.72), 0 0 24px rgba(34,211,238,.1);
}
.ws-v2 .param-schedule .param-dropdown-menu { background: #141822 !important; }

/* 右上角扣费标识 */
.cp-v2 .cp-corner { position: absolute; top: 9px; right: 12px; z-index: 7; }
.cp-v2 .cp-price {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  height: 26px; padding: 0 6px 0 9px; border-radius: 8px;
  background: rgba(212,184,92,.08); border: 1px solid rgba(212,184,92,.28);
  color: #d8c06a; font-size: 12px; font-weight: 600; white-space: nowrap; transition: .15s;
}
.cp-v2 .cp-price:hover { border-color: rgba(212,184,92,.55); background: rgba(212,184,92,.14); }
.cp-v2 .cp-price .cp-bolt { width: 12px; height: 12px; fill: #f0c95a; stroke: #f0c95a; stroke-width: 1; flex-shrink: 0; }
.cp-v2 .cp-price #cpPriceText { color: #e6d289; }
.cp-v2 .cp-price-info {
  width: 16px; height: 16px; border-radius: 50%; padding: 0; cursor: pointer; flex-shrink: 0;
  background: transparent; border: 1px solid rgba(212,184,92,.5); color: #d8c06a;
  display: grid; place-items: center; font-size: 10px; font-weight: 800; line-height: 1;
}
.cp-v2 .cp-price-info svg { width: 12px; height: 12px; stroke-width: 2.2; }
.cp-v2 .cp-price-info:hover { border-color: #22d3ee; color: #22d3ee; }
.cp-v2 #billingChip.billing-chip, .cp-v2 .billing-chip {
  position: static; top: auto; right: auto; margin: 0; border-radius: 8px;
  background: rgba(212,184,92,.08); padding: 0 6px 0 9px; box-shadow: none;
}
.cp-v2 .composer-box textarea { padding-right: 150px; }

/* 视频首帧 / 尾帧 */
.cp-v2 .cp-frames { display: contents; }
.cp-v2 .cp-frame-arrow { align-self: center; color: #5a5a66; font-size: 16px; }
.cp-v2 .cp-frame-add {
  width: 84px; height: 70px; border-radius: 10px; flex-shrink: 0;
  border: 1.5px dashed #3a3a44; background: #101014; color: #7a7a85;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  cursor: pointer; transition: .15s;
}
.cp-v2 .cp-frame-add:hover { border-color: #22d3ee; color: #22d3ee; }
.cp-v2 .cp-frame-add svg { width: 18px; height: 18px; }
.cp-v2 .cp-frame-add em { font-style: normal; font-size: 10.5px; }

/* 大师横排仅图片/视频/音乐显示；当前大师说明气泡默认隐藏（悬停圆形头像看 title，贴近参考站纯圆形轨道） */
.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; }
.cp-v2 .cp-master-bubble { display: none !important; }
.cp-v2 .cp-masters { margin-bottom: 4px; }

/* 更宽更扁、工具列贴边 */
.cp-v2 .cp-layout { max-width: 1280px; gap: 8px; }
.cp-v2 .cp-side { gap: 8px; }
.cp-v2 .cp-tool { width: 38px; height: 38px; }
.cp-v2 .cp-tool svg { width: 18px; height: 18px; }
@media (min-width: 861px) { .cp-v2 .cp-layout { gap: 10px; } }

/* 价格详情弹窗 - 智能调度介绍（需求8） */
.cp-modal .cp-smart-dispatch {
  display: flex; gap: 12px; padding: 14px; margin-bottom: 14px;
  background: linear-gradient(135deg, rgba(34,211,238,.08), rgba(168,85,247,.05));
  border: 1px solid rgba(34,211,238,.15); border-radius: 12px;
}
.cp-modal .csd-ico { width: 36px; height: 36px; border-radius: 10px; background: rgba(34,211,238,.15); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.cp-modal .cp-smart-dispatch strong { display: block; font-size: 13px; color: #22d3ee; margin-bottom: 4px; }
.cp-modal .cp-smart-dispatch p { margin: 0; font-size: 12px; color: #94a3b8; line-height: 1.6; }
.cp-modal .cp-channels-title { font-size: 13px; font-weight: 700; color: #e2e8f0; margin: 16px 0 10px; padding-top: 12px; border-top: 1px solid #1e1e24; }
.cp-modal .cp-channel { background: rgba(255,255,255,.03); border: 1px solid #1e1e24; border-radius: 10px; padding: 12px; margin-bottom: 10px; }
.cp-modal .cp-ch-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.cp-modal .cp-ch-head strong { font-size: 13px; color: #e2e8f0; }
.cp-modal .cp-ch-tag { font-size: 10px; padding: 2px 8px; border-radius: 4px; background: rgba(34,211,238,.12); color: #22d3ee; font-weight: 600; }
.cp-modal .cp-ch-meta { display: flex; gap: 16px; font-size: 11px; color: #64748b; margin-bottom: 10px; }
.cp-modal .cp-ch-meta em { font-style: normal; color: #cbd5e1; font-weight: 600; }
.cp-modal .cp-ch-prices { display: flex; gap: 8px; }
.cp-modal .cp-price-item { flex: 1; text-align: center; padding: 8px 4px; background: rgba(0,0,0,.2); border-radius: 8px; }
.cp-modal .cp-price-item span { display: block; font-size: 10px; color: #64748b; margin-bottom: 4px; }
.cp-modal .cp-price-item em { font-style: normal; font-size: 13px; color: #f0c95a; font-weight: 700; }

/* 价格详情弹窗 */
.cp-modal .cp-price-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.cp-modal .cp-price-head strong { font-size: 15px; color: #fff; }
.cp-modal .cp-price-head span { font-size: 11.5px; color: #8a8a95; }
.cp-modal .cp-price-list { display: flex; flex-direction: column; gap: 6px; }
.cp-modal .cp-price-row {
  display: flex; align-items: center; justify-content: space-between;
  background: #1a1a20; border: 1px solid #2a2a31; border-radius: 10px; padding: 10px 14px; font-size: 13px;
}
.cp-modal .cp-price-row span { color: #c0c0cc; }
.cp-modal .cp-price-row em { font-style: normal; color: #f0c95a; font-weight: 700; }

/* 参数行聚焦且非空才显示 */
.ws-v2 .ws-composer.cp-v2.cp-focused .composer-params:not(.is-empty),
.ws-v2 .ws-composer.cp-v2.cp-expanded .composer-params:not(.is-empty) { display: flex; }

/* 高级/综合最优设置面板：浮在输入框正上方、水平居中（面板是 body 级元素，不能依赖 .ws-v2 祖先） */
.workspace-page .settings-pop {
  right: auto; left: 50%; transform: translateX(-50%); bottom: 116px;
  width: 340px; max-width: calc(100vw - 24px); z-index: 1300; max-height: min(62vh, 560px); overflow-y: auto;
  margin-left: 0;
}
@media (max-width: 860px) { .workspace-page .settings-pop { left: 12px; right: 12px; transform: none; width: auto; max-width: none; bottom: 104px; } }

/* 顶部栏建立层叠上下文，应用九宫格菜单不被对话英雄区/主区遮挡，且相对顶部栏定位 */
.ws-v2 .ws-topbar { position: relative; z-index: 200; }
.ws-v2 .app-center-pop { z-index: 9999; top: 52px; right: 14px; width: 380px; min-width: 380px; }
.ws-v2 .app-center-pop button { position: relative; z-index: 1; }

/* 左侧模型分类：8 类（全部/聊天/图片/视频/音乐/语音/智能体/灵感）自动换行全部可见，不被横向裁切；
   flex 列表面板中必须 flex:0 0 auto 禁止压缩，否则换行后的第二、三行只会溢出绘制、点击落到下方元素 */
.ws-v2 #wsCats.sb-subtabs,
.ws-v2 #sbAgentCats.sb-subtabs { flex-wrap: wrap; overflow: visible; row-gap: 4px; flex: 0 0 auto; min-height: fit-content; }
.ws-v2 #wsCats.sb-subtabs button,
.ws-v2 #sbAgentCats.sb-subtabs button { padding: 4px 10px; font-size: 11.5px; }

/* ===== 输入框横向溢出根治（v15）：flex 链 min-width:0 + 统一 border-box，杜绝 textarea 超出容器/页面横向滚动 ===== */
.ws-composer,.cp-v2 .cp-layout,.cp-layout{min-width:0;}
.cp-layout>*{min-width:0;}
.cp-v2 .composer-box,.composer-box{box-sizing:border-box;width:100%;max-width:100%;min-width:0;}
.cp-v2 .composer-box textarea,.composer-box textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;display:block;}

/* ===== 拖拽上传遮罩（v16） ===== */
#spDropOverlay{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.46);backdrop-filter:blur(2px);pointer-events:none;}
#spDropOverlay.show{display:flex;animation:spDropIn .15s ease;pointer-events:auto;cursor:pointer;}
#spDropOverlay .sp-drop-card small{font-size:12.5px;font-weight:400;opacity:.7;}
@keyframes spDropIn{from{opacity:0}to{opacity:1}}
#spDropOverlay .sp-drop-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 64px;border-radius:20px;border:2px dashed #22d3ee;background:rgba(13,20,33,.92);box-shadow:0 24px 70px rgba(34,211,238,.25);color:#e6fbff;font-size:17px;font-weight:600;}
#spDropOverlay .sp-drop-ico{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;color:#062a33;background:linear-gradient(135deg,#67e8f9,#22d3ee);animation:spDropBounce 1s ease-in-out infinite;}
@keyframes spDropBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
html[data-theme="light"] #spDropOverlay{background:rgba(226,232,240,.55);}
html[data-theme="light"] #spDropOverlay .sp-drop-card{background:#fff;color:#0f172a;border-color:#0ea5b7;}

/* ============================================================
   浅色模式：输入框参数行/下拉菜单/胶囊（item24/27，修复黑底深字、青底青字）
   ============================================================ */
html[data-theme="light"] .cp-v2 .param-chip{background:#f1f3f9;border:1px solid #e2e6f0;color:#4a5468;}
html[data-theme="light"] .cp-v2 .param-chip:hover{background:#e9f6f9;border-color:#7fd3de;color:#0e7490;}
html[data-theme="light"] .cp-v2 .param-chip.param-active{background:rgba(14,158,192,.10);border-color:rgba(14,158,192,.4);color:#0e7490;}
html[data-theme="light"] .cp-v2 .param-chip .param-val{color:#1c2233;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu{background:#ffffff;border:1px solid #e2e6f0;box-shadow:0 14px 40px rgba(30,42,80,.16);}
html[data-theme="light"] .cp-v2 .param-dropdown-menu button{color:#33405a;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu button:hover{background:#eef4fb;color:#0e7490;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu button.selected{background:#0e9ec0;color:#ffffff;}
html[data-theme="light"] .cp-v2 .param-chip.param-gold{color:#9a6b16;border-color:#ecd9a0;background:linear-gradient(180deg,#fdf6e3,#fbf1d6);}
html[data-theme="light"] .cp-v2 .param-chip.param-gold .param-val{color:#8a5a0e;}
html[data-theme="light"] .cp-v2 .param-chip.param-gold:hover{border-color:#dcb968;color:#8a5a0e;background:#fbf1d6;}
html[data-theme="light"] .cp-v2 .param-chip.param-purple{color:#6d4fd0;border-color:#d9cff7;background:linear-gradient(180deg,#f5f1fe,#efe9fd);}
html[data-theme="light"] .cp-v2 .param-chip.param-purple .param-val{color:#5b3fc0;}
html[data-theme="light"] .cp-v2 .param-chip.param-purple:hover{border-color:#b79df3;color:#5b3fc0;background:#efe9fd;}
html[data-theme="light"] .cp-v2 .cost-estimate{color:#7a8499;}
/* 输入框本体在浅色下不要发灰/发黑 */
html[data-theme="light"] .cp-v2 .composer-box,html[data-theme="light"] .ws-v2 .ws-composer.cp-v2{background:#ffffff;border-color:#e2e6f0;}
html[data-theme="light"] .cp-v2 #promptInput,html[data-theme="light"] .cp-v2 textarea{color:#1c2233;caret-color:#0e9ec0;}
html[data-theme="light"] .cp-v2 #promptInput::placeholder{color:#a7aebd;}
/* 侧栏/工具按钮浅色可读 */
html[data-theme="light"] .cp-side-tool,html[data-theme="light"] .composer-toolbar button{color:#525b70;}

/* 浅色：参数行整条灰带改透明、首/尾帧与参考图上传块改浅色（item27/24） */
html[data-theme="light"] .composer-params{background:transparent !important;}
html[data-theme="light"] .cp-v2 .cp-frame-add,
html[data-theme="light"] .cp-v2 .cp-ref-add{background:#f1f3f9;border:1.5px dashed #c6cdda;color:#64748b;}
html[data-theme="light"] .cp-v2 .cp-frame-add:hover,
html[data-theme="light"] .cp-v2 .cp-ref-add:hover{border-color:#0e9ec0;color:#0e7490;background:#e9f6f9;}
html[data-theme="light"] .cp-frames .cp-frame-arrow{color:#94a3b8;}
/* 浅色：创作大师圆形轨道/侧工具列、积分条 */
html[data-theme="light"] .cp-masters{background:transparent;}
html[data-theme="light"] .cost-estimate,html[data-theme="light"] .cp-price{color:#7a8499 !important;}

/* ============================================================
   创作大师：动态科技感线性图标（item10，替代卡通emoji，且不遮挡对话框）
   ============================================================ */
.cp-masters{gap:12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:12px 4px;position:static;flex-wrap:nowrap;}
.cp-masters::-webkit-scrollbar{display:none;}
.cp-master.cm-tech{
  position:relative;width:46px;height:46px;border-radius:50%;flex:0 0 auto;cursor:pointer;padding:0;border:none;
  background:conic-gradient(from 0deg,var(--mc1),var(--mc2),var(--mc1));
  display:grid;place-items:center;color:#eafcff;
  box-shadow:0 4px 14px color-mix(in srgb,var(--mc1) 38%,transparent);
  animation:cmFloat 4.6s ease-in-out infinite;animation-delay:calc(var(--mi,0) * .28s);
  transition:transform .18s ease,box-shadow .18s ease;
}
/* 内圈挖空，露出线性图标，形成科技圆环 */
.cp-master.cm-tech::before{content:"";position:absolute;inset:2px;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#1a2233,#0c111c);}
.cp-master.cm-tech .cm-svg{position:relative;z-index:1;width:23px;height:23px;display:grid;place-items:center;color:var(--mc1);
  filter:drop-shadow(0 0 6px color-mix(in srgb,var(--mc1) 70%,transparent));}
.cp-master.cm-tech .cm-svg svg{width:100%;height:100%;}
/* 旋转的高光环 */
.cp-master.cm-tech::after{content:"";position:absolute;inset:-2px;border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 70%,var(--mc1) 85%,transparent 100%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));
  animation:cmSpin 3.4s linear infinite;opacity:.8;}
.cp-master.cm-tech:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 8px 22px color-mix(in srgb,var(--mc1) 55%,transparent);}
.cp-master.cm-tech.active{transform:scale(1.1);box-shadow:0 0 0 2px #fff inset,0 8px 24px color-mix(in srgb,var(--mc2) 60%,transparent);}
@keyframes cmSpin{to{transform:rotate(360deg);}}
@keyframes cmFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
@media (prefers-reduced-motion:reduce){.cp-master.cm-tech,.cp-master.cm-tech::after{animation:none;}}
/* 浅色模式：内圈改白，图标保持品牌色 */
html[data-theme="light"] .cp-master.cm-tech::before{background:radial-gradient(circle at 32% 28%,#ffffff,#eef2f8);}
html[data-theme="light"] .cp-master.cm-tech{box-shadow:0 4px 14px rgba(30,42,80,.16);}

/* ===== 首帧/尾帧/参考图槽位填充后的缩略图（点哪个槽就填回哪个槽） ===== */
.cp-v2 .cp-frame-add.filled{position:relative;padding:0;overflow:hidden;border-style:solid;border-color:#22d3ee;cursor:default;width:55px;height:70px;border-radius:3px;}
.cp-v2 .cp-frame-add.filled img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.cp-v2 .cp-frame-add.filled em{display:none;} /* 点6：填充斜卡只显图，不显角色名/底部标签（参考站卡片无文字层） */
.cp-frame-x{position:absolute;top:2px;right:3px;width:16px;height:16px;line-height:14px;text-align:center;border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-size:12px;font-style:normal;z-index:3;cursor:pointer;}
.cp-frame-x:hover{background:#ef4444;}
.cp-v2 .cp-frame-add.filled svg{display:none;}
.cp-v2 .cp-frame-add.filled video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;background:#000;}
.cp-v2 .cp-frame-add.filled .cpf-file{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px;color:#22d3ee;font-size:18px;background:rgba(14,20,28,.92);text-align:center;}
.cp-v2 .cp-frame-add.filled .cpf-file small{font-size:9px;line-height:1.2;color:#c7d0dd;max-width:90%;word-break:break-all;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

/* ===== item5/28：参数下拉 fixed 锚定芯片 + 科技感动效 ===== */
.cp-v2 .param-dropdown-menu{position:fixed !important;bottom:auto !important;min-width:176px;
  background:linear-gradient(180deg,rgba(20,22,30,.98),rgba(12,14,21,.98));
  border:1px solid rgba(34,211,238,.28);border-radius:12px;padding:6px;z-index:10000;
  box-shadow:0 18px 48px rgba(0,0,0,.62),0 0 0 1px rgba(34,211,238,.06),inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transform-origin:top center;animation:cpDropIn .16s cubic-bezier(.2,.9,.3,1.15);}
@keyframes cpDropIn{from{opacity:0;transform:translateY(-6px) scale(.97);}to{opacity:1;transform:none;}}
.cp-v2 .param-dropdown-menu.drop-up{transform-origin:bottom center;animation-name:cpDropInUp;}
@keyframes cpDropInUp{from{opacity:0;transform:translateY(6px) scale(.97);}to{opacity:1;transform:none;}}
.cp-v2 .param-dropdown-menu button{position:relative;border-radius:8px;}
.cp-v2 .param-dropdown-menu button.selected::after{content:"✓";position:absolute;right:10px;color:#22d3ee;font-weight:800;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu{background:linear-gradient(180deg,#ffffff,#f5f8ff);border:1px solid #bfe6ee;box-shadow:0 18px 44px rgba(30,60,110,.18);backdrop-filter:blur(12px);}
/* ===== item10：创作大师图标行容器透明，去掉黑框 ===== */
.cp-masters,.cp-master-rail{background:transparent !important;background-image:none !important;border:none !important;box-shadow:none !important;}

/* item5 修正：相对芯片绝对定位，向下/向上弹，不被祖先 transform 影响 */
.cp-v2 .param-dropdown{position:relative;}
.cp-v2 .param-dropdown-menu{position:absolute !important;left:0;top:calc(100% + 6px);bottom:auto !important;}
.cp-v2 .param-dropdown-menu.drop-up{top:auto !important;bottom:calc(100% + 6px) !important;}

/* ===== 音乐模型 歌词|风格 双槽输入（1:1 参考站 Suno/海螺音乐） ===== */
.ws-v2 .composer-box.is-music #promptInput,
.ws-v2 .cp-music-style-input{margin:0;border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:14px 14px 12px;min-height:104px;resize:none;line-height:1.6;}
.ws-v2 .composer-box.is-music .cp-music-dual{position:relative;display:flex;align-items:stretch;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(255,255,255,.03);transition:border-color .18s,box-shadow .18s;overflow:hidden;}
.ws-v2 .composer-box.is-music .cp-music-dual:focus-within{border-color:rgba(34,211,238,.55);box-shadow:0 0 0 3px rgba(34,211,238,.10);}
.ws-v2 .cp-music-pane{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;}
.ws-v2 .cp-music-divider{flex:0 0 1px;width:1px;align-self:stretch;margin:12px 0;background:linear-gradient(180deg,transparent,rgba(148,163,184,.28),transparent);}
.ws-v2 .cp-lyrics-gen{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin:0 0 10px 12px;padding:4px 11px;font-size:12px;line-height:1;color:#cbd5e1;border:1px solid rgba(148,163,184,.25);border-radius:999px;background:rgba(34,211,238,.08);cursor:pointer;transition:all .16s;}
.ws-v2 .cp-lyrics-gen:hover{color:#22d3ee;border-color:rgba(34,211,238,.5);background:rgba(34,211,238,.16);box-shadow:0 0 12px rgba(34,211,238,.2);}
.ws-v2 .cp-music-style-input{color:inherit;}
@media (max-width:720px){.ws-v2 .composer-box.is-music .cp-music-dual{flex-direction:column;}.ws-v2 .cp-music-divider{flex:0 0 1px;height:1px;width:100%;margin:0;background:linear-gradient(90deg,transparent,rgba(148,163,184,.28),transparent);}}

/* ================= req9：输入区紧凑化（对标参考站 189px 级高度） ================= */
/* 橙色 AI 钮悬浮于发送钮上方，不再纵向撑高输入框 */
.cp-v2 .send-stack{position:relative;}
.cp-v2 .send-stack>.ai-writer-open{position:absolute;left:50%;right:auto;bottom:calc(100% + 6px);transform:translateX(-50%);}
.cp-v2 .send-stack>.ai-writer-open:hover{transform:translateX(-50%) scale(1.08);}
/* 参数行去掉多余上下内边距，单行紧凑 */
.cp-v2 .composer-params{padding:2px 0 0 !important;margin-top:0 !important;align-items:center;row-gap:6px;}
.cp-v2 .composer-bottom{margin-top:0 !important;}
/* 空输入框固定矮高度，长占位/介绍不再把框撑高（输入时再自动增高） */
.ws-v2 .ws-composer.cp-v2 .composer-box textarea{min-height:40px !important;padding-top:2px;padding-bottom:2px;line-height:1.55;}
.cp-v2 .cp-refs{margin-bottom:6px !important;}
.cp-v2 .composer-toolbar{margin-bottom:2px !important;}
.cp-v2 .param-chip{height:30px;border-radius:8px;font-size:12.5px;}

/* ================= req9：参考/首尾帧 斜切科技风上传槽（对标参考站 -8°/+8°） ================= */
.cp-v2 .cp-frame-add{
  width:72px;height:74px;border-radius:6px;
  border:1.5px dashed rgba(94,234,255,.42);
  background:linear-gradient(160deg,rgba(34,211,238,.10),rgba(99,102,241,.08)),#0e131c;
  color:#8fd9e6;box-shadow:inset 0 0 14px rgba(34,211,238,.10),0 2px 10px rgba(0,0,0,.35);
  position:relative;overflow:hidden;
}
.cp-v2 .cp-frame-add::before{content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 70%);pointer-events:none;}
.cp-v2 .cp-frame-add:hover{border-color:rgba(94,234,255,.9);color:#67e8f9;box-shadow:inset 0 0 16px rgba(34,211,238,.22),0 0 16px rgba(34,211,238,.30);}
.cp-v2 .cp-frame-arrow{color:rgba(94,234,255,.7);font-weight:700;text-shadow:0 0 10px rgba(34,211,238,.5);}
/* 仅双槽（首尾帧 / 参考图+音频等）向外斜切，单参考图保持正立 */
.cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:first-child{transform:rotate(-8deg);}
.cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:last-child{transform:rotate(8deg);}
.cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:first-child:hover{transform:rotate(-4deg) scale(1.04);}
.cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:last-child:hover{transform:rotate(4deg) scale(1.04);}

/* req9：逐模型参数行已含 综合最优/高级/记忆等，隐藏 composer-bottom 里重复的静态模式按钮行（保留发送钮） */
.cp-v2 .composer-params:not(.is-empty)~.composer-bottom .mode-buttons{display:none !important;}
.cp-v2 .composer-params:not(.is-empty)~.composer-bottom{justify-content:flex-end !important;min-height:38px;}

/* ================= 参数下拉：标题/说明头 + 选项图标（1:1 参考站） ================= */
.cp-v2 .param-dropdown-menu{max-height:388px;overflow-y:auto;padding:6px;display:none;flex-direction:column;}
.cp-v2 .param-dropdown-menu.show{display:flex;}
.cp-v2 .param-dropdown-menu .pdm-head{padding:8px 10px 10px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:6px;}
.cp-v2 .param-dropdown-menu .pdm-title{font-size:13px;font-weight:700;color:#e8ecf5;margin-bottom:5px;}
.cp-v2 .param-dropdown-menu .pdm-desc{font-size:11.5px;line-height:1.65;color:#9aa3b8;white-space:normal;}
.cp-v2 .param-dropdown-menu button{display:flex;align-items:center;gap:8px;text-align:left;font-weight:500;}
.cp-v2 .param-dropdown-menu button .pdm-ico{display:inline-grid;place-items:center;width:16px;height:16px;flex:0 0 16px;opacity:.75;}
.cp-v2 .param-dropdown-menu button .pdm-ico svg{width:15px;height:15px;display:block;fill:currentColor;}
.cp-v2 .param-dropdown-menu button .pdm-tx{flex:1;min-width:0;}
.cp-v2 .param-dropdown-menu button.selected .pdm-ico{opacity:1;}
/* 面板入口胶囊（高级设置/长期记忆/技能广场） */
.cp-v2 .param-chip.param-panel-btn{appearance:none;border:1px solid rgba(139,147,167,.22);background:rgba(255,255,255,.035);color:#c7cede;border-radius:9px;display:inline-flex;align-items:center;gap:5px;padding:6px 11px;font-size:12.5px;font-weight:600;cursor:pointer;transition:.16s;}
.cp-v2 .param-chip.param-panel-btn:hover{border-color:rgba(34,211,238,.5);color:#7fe7f2;background:rgba(34,211,238,.08);}
.cp-v2 .param-chip.param-panel-btn .param-ico{display:inline-grid;place-items:center;}
.cp-v2 .param-chip.param-panel-btn .param-ico svg{width:14px;height:14px;fill:#9fb0c9;transition:.18s;}
/* 三个面板入口各自的主题色（1:1 参考站彩色功能键） */
.cp-v2 .param-chip.param-panel-btn[data-panel="advanced"] .param-ico svg{fill:#60a5fa;filter:drop-shadow(0 0 4px rgba(96,165,250,.5));}
.cp-v2 .param-chip.param-panel-btn[data-panel="memory"] .param-ico svg{fill:#c084fc;filter:drop-shadow(0 0 4px rgba(192,132,252,.5));}
.cp-v2 .param-chip.param-panel-btn[data-panel="skill"] .param-ico svg{fill:#38bdf8;filter:drop-shadow(0 0 4px rgba(56,189,248,.5));}
.cp-v2 .param-chip.param-panel-btn[data-panel="advanced"]:hover .param-ico svg{fill:#93c5fd;}
.cp-v2 .param-chip.param-panel-btn[data-panel="memory"]:hover .param-ico svg{fill:#d8b4fe;}
.cp-v2 .param-chip.param-panel-btn[data-panel="skill"]:hover .param-ico svg{fill:#7dd3fc;}
.cp-v2 .param-chip.param-panel-btn:hover .param-ico svg{fill:#67e8f9;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu .pdm-head{border-bottom-color:rgba(0,0,0,.08);}
html[data-theme="light"] .cp-v2 .param-dropdown-menu .pdm-title{color:#1f2733;}
html[data-theme="light"] .cp-v2 .param-dropdown-menu .pdm-desc{color:#6b7688;}
html[data-theme="light"] .cp-v2 .param-chip.param-panel-btn{background:#fff;border-color:#d8deea;color:#3a465c;}

/* ===== 1:1 复刻增补：运镜广场弹窗 ===== */
.cp-cam-mask{position:fixed;inset:0;z-index:99990;background:rgba(4,7,13,.66);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:24px;}
.cp-cam-mask.show{display:flex;}
.cp-cam-box{width:min(880px,96vw);max-height:88vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#151a26,#0f131c);border:1px solid rgba(255,255,255,.09);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.6);overflow:hidden;color:#d7deec;}
.cp-cam-head{position:relative;padding:18px 20px 12px;border-bottom:1px solid rgba(255,255,255,.06);}
.cp-cam-ht{font-size:16px;font-weight:700;color:#eef2fb;}
.cp-cam-hd{font-size:12px;color:#93a0b8;margin-top:4px;line-height:1.5;}
.cp-cam-x{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:9px;border:none;background:rgba(255,255,255,.05);color:#9aa6bd;cursor:pointer;font-size:18px;}
.cp-cam-x:hover{background:rgba(244,63,94,.18);color:#ff8a8a;}
.cp-cam-tabs{display:flex;gap:6px;padding:12px 20px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.05);}
.cp-cam-tab{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#aab5c9;border-radius:20px;padding:5px 14px;font-size:12.5px;cursor:pointer;}
.cp-cam-tab.on{background:linear-gradient(90deg,rgba(21,184,214,.22),rgba(109,91,208,.22));border-color:rgba(103,232,249,.5);color:#8fe7f2;font-weight:700;}
.cp-cam-grid{flex:1;overflow-y:auto;padding:14px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:11px;}
.cp-cam-card{position:relative;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:11px;cursor:pointer;transition:border-color .2s, background .2s, box-shadow .2s;display:flex;flex-direction:column;gap:5px;}
.cp-cam-card:hover{border-color:rgba(103,232,249,.4);background:rgba(34,211,238,.05);}
.cp-cam-card:hover .cp-cam-thumb{border-color:rgba(255,255,255,.18);}
.cp-cam-card:hover .cam-ico{transform:scale(1.1);color:#ffffff;filter:drop-shadow(0 0 6px var(--cam-col));}
.cp-cam-card.on{border-color:var(--cam-col);box-shadow:0 0 0 1px var(--cam-col) inset, 0 0 14px -2px var(--cam-col);background:rgba(255,255,255,.05);}
.cp-cam-card.on .cp-cam-thumb{border-color:var(--cam-col);background:linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.02));}
.cp-cam-card.on .cam-ico{color:#ffffff;filter:drop-shadow(0 0 7px var(--cam-col)) drop-shadow(0 0 2px var(--cam-col));}
.cp-cam-thumb{width:100%;height:58px;border-radius:9px;background:linear-gradient(160deg,#1a2030,#0c0f18);border:1px solid rgba(255,255,255,.06);display:grid;place-items:center;color:var(--cam-col,#22d3ee);overflow:hidden;}
.cp-cam-thumb .cam-ico{transition:transform .2s ease, color .2s ease, filter .2s ease;}
.cp-cam-badge{align-self:flex-start;font-size:10px;padding:2px 8px;border-radius:6px;font-weight:700;}
.cp-cam-name{font-size:13.5px;font-weight:700;color:#e6ecf8;}
.cp-cam-desc{font-size:11.5px;color:#93a0b8;line-height:1.5;}
.cp-cam-check{position:absolute;right:9px;top:9px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#7c5cff,#19b6d2);color:#fff;display:grid;place-items:center;font-size:12px;}
.cp-cam-foot{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.06);}
.cp-cam-count{font-size:13px;color:#aab5c9;}
.cp-cam-count b{color:#4ade80;font-size:15px;}
.cp-cam-clear{margin-left:auto;background:rgba(255,255,255,.06);border:none;color:#c6cfE0;border-radius:10px;padding:8px 18px;font-size:13px;cursor:pointer;}
.cp-cam-ok{background:linear-gradient(90deg,#15b8d6,#6d5bd0);border:none;color:#fff;border-radius:10px;padding:8px 26px;font-size:13.5px;font-weight:700;cursor:pointer;}
@media(max-width:720px){.cp-cam-grid{grid-template-columns:repeat(2,1fr);}}
html[data-theme="light"] .cp-cam-box{background:#fff;color:#2a3346;}
html[data-theme="light"] .cp-cam-hd{color:#6b7689;}
html[data-theme="light"] .cp-cam-name{color:#1c2233;}
html[data-theme="light"] .cp-cam-desc{color:#6b7689;}
html[data-theme="light"] .cp-cam-card{background:#f6f8fc;border-color:#e2e6f0;}
html[data-theme="light"] .cp-cam-thumb{background:linear-gradient(160deg,#ffffff,#eef2f8);border-color:rgba(0,0,0,.06);}

/* ===== 运镜胶囊 ===== */
.cp-v2 .param-chip.param-plaza-btn{appearance:none;border:1px solid rgba(139,147,167,.22);background:rgba(255,255,255,.035);color:#c7cede;border-radius:9px;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:600;cursor:pointer;}
.cp-v2 .param-chip.param-plaza-btn:hover{border-color:rgba(34,211,238,.5);color:#7fe7f2;background:rgba(34,211,238,.08);}
.cp-v2 .param-plaza-cnt{font-size:11px;color:#8fe7f2;margin-left:2px;}

/* ===== 媒体模型：橙色发送按钮（聊天保持蓝色箭头） ===== */
.ws-v2 .ws-composer.cp-v2.cat-image .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-video .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-music .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-tts .send-btn{background:linear-gradient(135deg,#ff8a3d,#ff5d3b)!important;color:#fff;box-shadow:0 6px 18px rgba(255,110,60,.35);}
.ws-v2 .ws-composer.cp-v2.cat-image .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-video .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-music .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-tts .send-btn:hover{filter:brightness(1.08);}

/* ===== 槽位角标（翻/图/视频/音频） ===== */
.cp-v2 .cp-frame-add{position:relative;}
/* 点10：参考站斜卡无任何蓝色"图/翻"角标，整体隐藏（卡片只显图本身+右下圆形+，hover才显文件名气泡与X） */
.cp-v2 .cp-frame-add .cp-frame-badge{display:none !important;}

/* ===== 聊天/智能体：仅蓝色发送箭头，隐藏橙色 AI 帮写钮（媒体类保留） ===== */
.ws-v2 .ws-composer.cp-v2.cat-chat #aiWriterOpen,
.ws-v2 .ws-composer.cp-v2.cat-agent #aiWriterOpen { display: none !important; }


/* ============================================================
   作曲器附件/槽位 1:1 复刻（参考站 hz.lk888.ai 实测 getComputedStyle）
   - 附件摞：白边斜卡 + 右下小圆 +
   - hover：手牌扇形展开 + 上方文件名气泡 + 右上深色 X
   ============================================================ */


/* ---------- 绌烘Ы锛?闄勪欢 / 鍙傝€冨浘 / 棣栧抚 铏氭锛?:1 鍙傝€冪珯 initial-upload锛?---------- */
.cp-v2 .cp-refs .cp-frame-add {
  width: 42px; height: 52px; border-radius: 3px;
  background: #2d2f35; border: .67px dashed rgba(98,105,113,.6);
  color: #626971; flex-direction: column; gap: 3px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: width .35s cubic-bezier(.4,0,.2,1), height .35s, border-radius .35s, background .2s;
}
.cp-v2 .cp-refs .cp-frame-add .cp-plus-icon {
  font-size: 21px; font-weight: 300; line-height: 1; color: #626971;
}
.cp-v2 .cp-refs .cp-frame-add svg { display: none; }
.cp-v2 .cp-refs .cp-frame-add em {
  font-style: normal; font-size: 10.5px; line-height: 1; color: #626971;
}
.cp-v2 .cp-refs .cp-frame-add .cp-frame-count {
  display: block; font-size: 9px; line-height: 1; color: #626971;
}
.cp-v2 .cp-refs .cp-frame-add:hover { border-color: rgba(140,149,159,.9); color: #9aa4ad; }
/* 点6返工：所有空槽（附件/参考图/首帧/尾帧/参考视频/参考音频）统一 55×70，与斜卡相册一致 */
.cp-v2 .cp-refs .cp-frame-add:not(.filled) {
  width: 55px; height: 70px; border-radius: 3px;
}

/* 鏈夐檮浠跺悗锛?闄勪欢 妲芥敹鎴愬彸涓嬪皬鍦?+锛堝弬鑰冪珯 unified-upload-component.collapsed锛?*/
.cp-v2 .cp-refs.has-items { position: relative; }
/* 有附件后：「+附件 / +参考图」收成 30px 圆，叠在照片摞右下角（参考站 unified-upload-component.collapsed）*/
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="附件"],
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="参考图"] {
  position: absolute; left: 39px; top: 51px; width: 30px; height: 30px; border-radius: 50%;
  border: none; background: #31343c;
  box-shadow: 0 .125rem .5rem rgba(0,0,0,.3);
  margin: 0; z-index: 100;
}
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="附件"] .cp-plus-icon,
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="参考图"] .cp-plus-icon { font-size: 16px; }
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="附件"] em,
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="参考图"] em,
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="附件"] .cp-frame-count,
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="参考图"] .cp-frame-count { display: none; }
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="附件"]:hover .cp-frame-count,
.cp-v2 .cp-refs.has-items .cp-frame-add[data-frame-role="参考图"]:hover .cp-frame-count {
  display: block; position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%);
  font-size: 10px; color: #c9d1d6; background: rgba(40,42,48,.95); padding: 3px 8px; border-radius: 6px; white-space: nowrap;
}

/* ---------- 闄勪欢鎽炲崱鐗囷細鐧借竟鏂滃崱锛?:1 鍙傝€冪珯 fujian-card锛?---------- */
#attachmentList.sp-stack { display: block; width: 55px; height: 70px; position: relative; overflow: visible; }
#attachmentList.sp-stack .sp-stack-card {
  width: 52px; height: 66px; left: 0; top: 0;
  border: 1.5px solid #fff; border-radius: 3px; background: #2d2f35;
  box-shadow: rgba(0,0,0,.3) 0 3.8px 11.4px; overflow: hidden;
  transition: transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s cubic-bezier(.4,0,.2,1), border-color .2s;
  transform: rotate(var(--sr,0deg)) translateZ(0);
}
#attachmentList.sp-stack .sp-stack-card img,
#attachmentList.sp-stack .sp-stack-card video { width: 100%; height: 100%; object-fit: cover; border-radius: 1px; }
/* 涓嶅啀鏄剧ず鍙充笂瑙掓笎鍙樻暟瀛楄鏍囷紙鍙傝€冪珯璁℃暟鍦?+ 鎸夐挳鍐咃級 */
#attachmentList.sp-stack[data-count]::after { content: none !important; }
/* hover 鎵囧舰灞曞紑锛氫笌鍙傝€冪珯涓€鑷?卤8掳 */
#attachmentList.sp-stack:hover .sp-stack-card:not(:hover) {
  transform: translateX(calc(var(--i,0) * 50px)) rotate(var(--hr,0deg)) scale(1);
}
#attachmentList.sp-stack:hover .sp-stack-card:hover {
  transform: translateX(calc(var(--i,0) * 50px)) translateY(-11px) rotate(var(--sr,0deg)) scale(1.24);
  border-color: rgb(0,202,224);
  box-shadow: 0 0 0 2px rgba(0,202,224,.55), rgba(0,0,0,.45) 0 10px 22px;
  z-index: 1000;
}
/* 鍒犻櫎閽細娣辫壊灏忓渾锛堝弬鑰冪珯 delete-btn-expanded锛?*/
#attachmentList.sp-stack .sp-stack-card .sp-x {
  display: none; position: absolute; top: -8px; right: -8px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #1f2227; border: .67px solid #41474c; color: rgba(255,255,255,.9);
  font-size: 11px; line-height: 1; font-weight: 400; place-items: center;
  box-shadow: none; padding: 0; z-index: 1000;
}
#attachmentList.sp-stack .sp-stack-card:hover .sp-x { display: grid; }
/* 鏂囦欢鍚嶆皵娉★紙鍙傝€冪珯 file-tooltip锛?*/
#attachmentList.sp-stack .sp-stack-card .sp-name {
  bottom: calc(100% + 8px);
  background: rgba(56,60,68,.88); border: none;
  border-radius: 8.4px; padding: 6px 12px;
}
#attachmentList.sp-stack .sp-stack-card .sp-name::after { border-top-color: rgba(56,60,68,.88); }
#attachmentList.sp-stack .sp-stack-card .spn-name { font-size: 10.5px; color: #8c999f; }
#attachmentList.sp-stack .sp-stack-card .spn-size { font-size: 9px; color: #8c999f; }

/* ---------- 鏃т笂浼犲伐鍏锋爮 / 鏃?mode-buttons 闅愯棌锛堝弬鏁拌兌鍥婅宸叉浛浠ｏ級 ---------- */
.ws-v2 .ws-composer.cp-v2 .composer-toolbar { display: none !important; }


#uploadBtn { display: none !important; }

/* ============================================================
   任务C：帧槽（首帧/尾帧/参考图/参考视频/参考音频）填充卡
   统一为与聊天附件 deck 同族的白边斜卡 + 悬停抬升 + 深色删除X。
   保持首帧→尾帧的顺序语义（不重叠），仅统一视觉语言与动效。
   ============================================================ */
.cp-v2 .cp-refs .cp-frame-add.filled {
  border: 2px solid #fff;
  border-radius: 3px;
  box-shadow: rgba(0,0,0,.3) 0 4.2px 12.6px;
  transition: transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s cubic-bezier(.4,0,.2,1);
}
.cp-v2 .cp-refs .cp-frame-add.filled:hover {
  transform: translateY(-4px) scale(1.06);
  box-shadow: rgba(0,0,0,.45) 0 10px 22px;
  z-index: 50;
}
.cp-v2 .cp-refs .cp-frame-add.filled .cp-frame-x {
  top: -8px; right: -8px;
  width: 16px; height: 16px; line-height: 14px;
  background: #1f2227; border: .67px solid #41474c;
  color: #fff; font-size: 11px;
}
.cp-v2 .cp-refs .cp-frame-add.filled:hover .cp-frame-x { background: #1f2227; color: #fff; }
/* 空槽虚线 + 文字 + 加号：与参考站 initial-upload 对齐（暗底 + 虚线边） */
.cp-v2 .cp-refs .cp-frame-add:not(.filled) {
  background: #2d2f35;
  border: .67px dashed rgba(98,105,113,.6);
}

/* ============================================================
   v3 1:1 修正（参考站 hz.lk888.ai 实测 getComputedStyle 复核）
   ============================================================ */
/* 1) 发送键：参考站全分类统一青色 #00CAE0（橙色只是独立 AI 钮），
      取消 image/video/music/tts 的橙色发送强制覆盖 */
.ws-v2 .ws-composer.cp-v2.cat-image .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-video .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-music .send-btn,
.ws-v2 .ws-composer.cp-v2.cat-tts .send-btn{
  background:#00cae0 !important; color:#04202a;
  box-shadow:0 6px 18px rgba(0,202,224,.28);
}
.ws-v2 .ws-composer.cp-v2.cat-image .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-video .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-music .send-btn:hover,
.ws-v2 .ws-composer.cp-v2.cat-tts .send-btn:hover{ filter:brightness(1.08); }

/* 2) 作曲器卡片：对齐参考站 #1B1C21 底 / #1E1F25 边框 / 18.9 圆角 / 无重阴影 */
.cp-v2 .composer-box{
  background:#1b1c21;
  border:1px solid #1e1f25;
  border-radius:18.9px;
  box-shadow:none;
}
.ws-composer.cp-v2.cp-expanded .composer-box{ background:#1b1c21; }

/* 3) 所有空槽等大 67×81、统一暗灰虚线（取消首/尾帧不等大、参考图镀金） */
.cp-v2 .cp-refs .cp-frame-add:not(.filled){
  width:67px !important; height:81px !important; border-radius:3.15px !important;
  background:#2d2f35 !important;
  border:.67px dashed rgba(98,105,113,.6) !important;
}
.cp-v2 .cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:first-child,
.cp-v2 .cp-frames:has(.cp-frame-add~.cp-frame-add)>.cp-frame-add:last-child{ transform:none; }

/* 4) 斜卡摞：白边 2px、卡片 70×84、删除钮 30px（对齐参考站 stacked-card / delete-btn-expanded） */
#attachmentList.sp-stack{ width:70px; height:84px; }
#attachmentList.sp-stack .sp-stack-card{
  width:70px; height:84px; border:2px solid #fff; border-radius:3.15px;
}
#attachmentList.sp-stack .sp-stack-card .sp-x{
  width:30px; height:30px; top:-10px; right:-10px;
  font-size:14px; line-height:1; background:#1f2227;
}

