/* ══════════════════════════════════════════════════════════════
   🍊 橘子戏曲家 v0.8 — 编辑模式纸页化 + 聊天气泡层级
   ══════════════════════════════════════════════════════════════ */
/* 防御：编辑模式下彻底清除所有浮层与溢出 */
#script-content[style*="block"] ~ #stage-hero,
#script-content:not([style*="none"]) ~ #stage-hero{display:none!important}
#script-content[style*="block"] ~ #script-empty{display:none!important}
#script-content[style*="block"]{overflow:visible!important}
#stage-hero{overflow:hidden;z-index:1}
#panel-script{position:relative;overflow:hidden}
#script-content{position:relative;z-index:2}

/* ===== 场景容器纸页化 ===== */
#script-content #script-scenes{max-width:none;width:100%}
#script-content .scene-block{width:90%;max-width:none;margin:0 auto 36px;padding:24px 20px 20px;background:var(--panel-bg);border-radius:4px;border-left:none;border-right:none;box-shadow:0 1px 3px rgba(0,0,0,.03),0 6px 20px rgba(0,0,0,.05)}
#script-content .scene-block .scene-header{background:transparent;padding:0 0 12px;border-bottom:1px dotted var(--border-strong);margin-bottom:16px}
#script-content .scene-block .scene-body{padding:0}

/* ===== 场景标题 input ===== */
#script-content .s-name-inp{font-family:var(--font-display);font-size:20px;color:var(--accent);letter-spacing:.04em;border:none;background:transparent;flex:1;min-width:0;padding:4px 0}
#script-content .s-name-inp:focus{outline:none}
#script-content .s-location-inp{font-size:12px;color:var(--text-muted);border:none;border-bottom:1px dashed transparent;background:transparent;padding:2px 0;flex-shrink:0;width:100px}
#script-content .s-location-inp:focus{outline:none;border-bottom-color:var(--accent)}
#script-content .scene-drag{flex-shrink:0;opacity:.3}
#script-content .scene-toggle,#script-content .scene-del{flex-shrink:0}

/* ===== 台词行 ===== */
#script-content .dialogue-line{display:flex;gap:4px;align-items:center;padding:4px 0;overflow:hidden}
#script-content .dl-speaker{width:68px;flex-shrink:0;border:none;border-bottom:1px dashed transparent;background:transparent;font-family:var(--font-display);font-weight:700;font-size:13px;text-align:right;padding:3px 2px 3px 0;color:var(--text);transition:border-color .25s,background .25s;border-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#script-content .dl-speaker:hover{border-bottom-color:var(--border)}
#script-content .dl-speaker:focus{outline:none;border-bottom-color:var(--accent);background:var(--color-primary-light)}
#script-content .dl-line{flex:1;min-width:120px;border:none;border-bottom:1px dashed transparent;background:transparent;font-family:var(--font-body);font-size:16px;line-height:1.7;padding:4px 8px;color:var(--text);transition:border-color .25s,background .25s;border-radius:0}
#script-content .dl-line:hover{border-bottom-color:var(--border)}
#script-content .dl-line:focus{outline:none;border-bottom-color:var(--accent);background:var(--color-primary-light)}
#script-content .dl-emotion{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;font-size:10px;font-weight:700;color:#fff;cursor:pointer;padding:0 4px;user-select:none;transition:transform .15s;flex-shrink:0}
#script-content .dl-emotion:hover{transform:scale(1.12)}
#script-content .dl-emotion.stamped{min-width:20px;height:20px;padding:0 4px;transform:none;box-shadow:inset 0 1px 2px rgba(255,255,255,.2),0 1px 3px rgba(0,0,0,.1);text-shadow:none;filter:none}
#script-content .dl-del{opacity:.3;transition:opacity .2s;flex-shrink:0;width:20px;text-align:center}
#script-content .dl-del:hover{opacity:1}
#script-content .dl-play{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;font-size:11px;opacity:.35;transition:opacity .2s;padding:0}
#script-content .dl-play:hover{opacity:1}

/* ===== 道具/知识点 input ===== */
#script-content .props-inp,#script-content .kp-inp{width:100%;border:1px solid var(--border);background:var(--bg);font-size:13px;padding:4px 8px;border-radius:4px;color:var(--text-muted);transition:border-color .25s}
#script-content .props-inp:focus,#script-content .kp-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--color-primary-light)}

/* ===== 角色卡编辑区美化 ===== */
#script-characters .char-card input{border:none;border-bottom:1px dashed transparent;background:transparent;padding:2px 4px;transition:border-color .25s}
#script-characters .char-card input:focus{outline:none;border-bottom-color:var(--accent)}

/* ===== 场景容器全宽 ===== */
.script-lit-mode #script-scenes,
#script-content #script-scenes{max-width:none!important;width:100%!important}

/* ===== 生成舞台绝对防漏 ===== */
#generation-stage{display:none!important}
#generation-stage.generation-stage[style*="flex"]{display:none!important}
#script-content[style*="block"] ~ * #generation-stage,
#script-content:not([style*="none"]) ~ * #generation-stage{display:none!important}

/* ===== 删除/操作按钮弱化 ===== */
#script-content .btn-add-dialogue,#script-content .btn-xs{opacity:.5;transition:opacity .2s}
#script-content .btn-add-dialogue:hover,#script-content .btn-xs:hover{opacity:1}

/* ══════════════════════════════════════════════════════════════
   聊天面板消息气泡层级优化
   ══════════════════════════════════════════════════════════════ */
#chat-messages{display:flex;flex-direction:column;gap:14px;padding:16px}
.chat-msg{display:flex;gap:10px;max-width:85%;animation:chatMsgIn .3s var(--ease-smooth)}
@keyframes chatMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.chat-msg.assistant{align-self:flex-start;flex-direction:row}
.chat-msg.assistant .chat-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#FFB482,#E88944);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 2px 8px rgba(232,112,58,.2)}
.chat-msg.assistant .chat-bubble{background:var(--panel-bg);border-radius:14px 14px 14px 4px;padding:10px 16px;font-size:14px;line-height:1.6;box-shadow:0 2px 8px rgba(0,0,0,.04);color:var(--text)}
.chat-msg.user{align-self:flex-end;flex-direction:row-reverse}
.chat-msg.user .chat-bubble{background:var(--accent);color:#fff;border-radius:14px 14px 4px 14px;padding:10px 16px;font-size:14px;line-height:1.6;box-shadow:0 2px 8px rgba(232,112,58,.25)}
.chat-time{font-size:10px;color:var(--text-muted);margin-top:2px;opacity:.7}
.chat-msg.thinking .chat-bubble{animation:thinkPulse 1.2s ease-in-out infinite}
@keyframes thinkPulse{0%,100%{opacity:.5}50%{opacity:1}}
.chat-action-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.chat-action-btn{padding:4px 12px;border-radius:14px;border:1px solid var(--border);background:var(--panel-bg);font-size:12px;cursor:pointer;transition:all .2s;color:var(--accent)}
.chat-action-btn:hover{background:var(--color-primary-light);border-color:var(--accent)}

/* ══════════════════════════════════════════════════════════════
   移动端文学阅读模式优化
   ══════════════════════════════════════════════════════════════ */
@media(max-width:600px){
  .script-lit-mode .scene-block{padding:16px 12px 12px;margin:0 0 24px;border-radius:0;box-shadow:none;border-bottom:1px solid var(--border)}
  .script-lit-mode .scene-block::after{display:none}
  .script-lit-mode .dialogue-line-lit{grid-template-columns:1fr;gap:2px;padding:8px 0;border-left:2px solid transparent;padding-left:10px;margin-left:-12px}
  .script-lit-mode .dialogue-speaker-lit{text-align:left;font-size:12px;padding-top:0;color:var(--accent)}
  .script-lit-mode .dialogue-text-lit{font-size:15px;line-height:1.7}
  .script-lit-mode .dialogue-line-lit.pivot-line{padding:12px 14px;margin:10px 0}
  .script-lit-mode .dialogue-line-lit.pivot-line .dialogue-text-lit{font-size:16px}
  .script-lit-mode .script-epigraph-lit{font-size:15px;padding:20px 24px}
  .script-lit-mode .script-epigraph-lit::before,.script-lit-mode .script-epigraph-lit::after{font-size:32px}
  .script-lit-mode .knowledge-tag-lit{font-size:10px;padding:2px 8px}
}
/* TTS进度条：仅剧本可见时隐藏 */
#script-content:not([style*="none"]) ~ #stage-hero,
#panel-script:has(#script-content:not([style*="none"])) #stage-hero{display:none!important}
