:root{
  --bg:#0e0b11;
  --panel:#17121b;
  --panel2:#1d1621;
  --card:#211925;
  --line:rgba(255,255,255,.095);
  --line2:rgba(225,172,99,.30);
  --text:#f3ece6;
  --soft:#c2b5c1;
  --muted:#877b89;
  --gold:#dfa95f;
  --gold2:#f1d09c;
  --rose:#b86e87;
  --violet:#79546f;
  --blue:#758fa9;
  --green:#79a189;
  --red:#c96f78;
  --shadow:0 24px 70px rgba(0,0,0,.34);
  --radius:18px;
  --sans:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --serif:"Songti SC","Noto Serif SC","STSong",serif;
}
*{box-sizing:border-box}
body{
  margin:0;
  padding:24px 12px 56px;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 4%,rgba(119,73,104,.17),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(223,169,95,.09),transparent 24%),
    linear-gradient(180deg,#0b090e,#110d14);
  font-family:var(--sans);
  line-height:1.8;
}
.ld-output{
  width:min(960px,100%);
  margin:0 auto;
  border:1px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(160deg,rgba(28,21,32,.97),rgba(14,12,17,.98));
  box-shadow:var(--shadow);
}
.ld-head{
  position:relative;
  padding:24px 26px 22px;
  border-bottom:1px solid var(--line);
  background:
    linear-gradient(90deg,rgba(109,68,94,.18),transparent 48%),
    linear-gradient(180deg,rgba(255,255,255,.025),transparent);
}
.ld-head:before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--gold),var(--rose));
}
.ld-title-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
}
.ld-chapter{
  color:var(--gold2);font-size:11px;letter-spacing:.20em;text-transform:uppercase;
}
.ld-head h1{
  margin:7px 0 4px;font:500 29px/1.35 var(--serif);letter-spacing:.035em;
}
.ld-head-sub{color:var(--muted);font-size:12px}
.ld-time{
  flex:none;text-align:right;color:var(--soft);font-size:12px;
}
.ld-time b{display:block;color:var(--gold2);font-size:13px}
.ld-scene-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.ld-tag{
  padding:5px 9px;border:1px solid var(--line);border-radius:999px;
  color:var(--soft);font-size:10px;background:rgba(255,255,255,.025);
}
.ld-story{padding:28px 30px 12px}
.ld-story p{margin:0 0 17px;color:#ded4dc;font-size:15px}
.ld-story .lead:first-letter{
  float:left;margin:7px 7px 0 0;color:var(--gold2);
  font:500 46px/.82 var(--serif);
}
.ld-dialogue{
  margin:22px 0;padding:17px 19px;
  border-left:2px solid var(--gold);
  background:linear-gradient(90deg,rgba(223,169,95,.085),rgba(255,255,255,.015));
  border-radius:0 13px 13px 0;
}
.ld-speaker{color:var(--gold2);font-size:12px;font-weight:800;margin-bottom:6px}
.ld-dialogue p{margin:0;font:500 18px/1.85 var(--serif);color:#f5eee8}
.ld-action{
  margin:16px 0;padding:14px 16px;border:1px solid var(--line);
  border-radius:13px;background:rgba(0,0,0,.16);color:var(--soft);font-size:13px;
}
.ld-notice{
  margin:20px 0;padding:12px 15px;border:1px dashed var(--line2);
  border-radius:12px;color:#cdbac7;font-size:12px;background:rgba(122,77,106,.08);
}
.ld-choices{
  padding:8px 30px 28px;
}
.ld-choices h3{
  margin:0 0 12px;color:var(--gold2);font-size:13px;letter-spacing:.08em;
}
.ld-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ld-choice{
  padding:13px 14px;border:1px solid var(--line);border-radius:13px;
  background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(0,0,0,.09));
  color:#d9ced6;font-size:12px;
}
.ld-choice b{
  display:inline-grid;place-items:center;width:23px;height:23px;margin-right:8px;
  border:1px solid var(--line2);border-radius:50%;color:var(--gold2);font-size:10px;
}
.ld-choice.custom{grid-column:1/-1;border-style:dashed;color:var(--muted)}
.ld-divider{
  height:1px;margin:0 24px;background:linear-gradient(90deg,transparent,var(--line),transparent);
}
.ld-status{padding:24px}
.ld-status-title{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-bottom:12px;padding:14px 17px;border:1px solid var(--line2);
  border-radius:15px;background:linear-gradient(90deg,rgba(110,70,95,.22),rgba(223,169,95,.07));
}
.ld-status-title h2{
  margin:0;font:500 19px var(--serif);letter-spacing:.09em;
}
.ld-status-title span{color:var(--muted);font-size:10px}
.ld-section{
  margin-top:10px;border:1px solid var(--line);border-radius:15px;
  overflow:hidden;background:rgba(255,255,255,.018);
}
.ld-section>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:12px;padding:12px 15px;
  color:#e1d5df;font-size:13px;font-weight:800;
  background:linear-gradient(90deg,rgba(117,73,102,.16),rgba(255,255,255,.018));
}
.ld-section>summary::-webkit-details-marker{display:none}
.ld-section>summary:after{content:"＋";color:var(--gold);font-size:16px;font-weight:400}
.ld-section[open]>summary:after{content:"－"}
.ld-section[open]>summary{border-bottom:1px solid var(--line)}
.ld-body{padding:13px}
.ld-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ld-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.ld-card{
  min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;
  background:rgba(0,0,0,.14);
}
.ld-card.wide{grid-column:1/-1}
.ld-label{color:var(--gold2);font-size:10px;font-weight:800;margin-bottom:3px}
.ld-value{color:#d7ccd4;font-size:12px;word-break:break-word}
.ld-muted{color:var(--muted)}
.ld-meters{display:grid;gap:8px}
.ld-meter-top{display:flex;justify-content:space-between;gap:10px;color:var(--soft);font-size:10px}
.ld-track{height:8px;border-radius:999px;overflow:hidden;background:#2a222d}
.ld-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--rose),var(--gold))}
.ld-bar.blue{background:linear-gradient(90deg,#6b8199,#9c7c9c)}
.ld-bar.green{background:linear-gradient(90deg,#6f947e,#91ad99)}
.ld-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ld-chip{
  padding:4px 7px;border:1px solid var(--line);border-radius:999px;
  color:var(--soft);background:rgba(255,255,255,.025);font-size:9px;
}
.ld-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ld-mini-title{margin:0 0 8px;color:var(--gold2);font-size:11px;font-weight:800}
.ld-list{display:grid;gap:6px}
.ld-list-item{
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;
  background:rgba(0,0,0,.12);font-size:11px;color:var(--soft);
}
.ld-list-item b{color:#e7d9e4}
.ld-profile{display:grid;grid-template-columns:68px minmax(0,1fr);gap:11px;align-items:start}
.ld-avatar{
  width:68px;height:82px;border-radius:13px;overflow:hidden;
  border:1px solid var(--line2);background:#251c28;
}
.ld-avatar img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.ld-name{font:500 20px var(--serif);margin-bottom:3px}
.ld-meta{color:var(--muted);font-size:10px}
.ld-body-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ld-part{
  padding:8px 9px;border:1px solid var(--line);border-radius:9px;
  background:rgba(0,0,0,.13);font-size:10px;color:var(--soft);
}
.ld-part b{display:block;color:#d9b9cb;margin-bottom:2px}
.ld-adult{border-color:rgba(184,110,135,.28)}
.ld-adult>summary{
  background:linear-gradient(90deg,rgba(149,75,111,.19),rgba(255,255,255,.015));
}
.ld-adult-note{
  padding:11px 12px;border:1px dashed rgba(184,110,135,.3);border-radius:10px;
  color:#bca5b3;background:rgba(135,68,101,.075);font-size:11px;
}
.ld-task{
  position:relative;padding:8px 9px 8px 24px;border-bottom:1px dashed var(--line);
  color:var(--soft);font-size:11px;
}
.ld-task:last-child{border-bottom:0}
.ld-task:before{
  content:"";position:absolute;left:8px;top:15px;width:6px;height:6px;
  border-radius:50%;background:var(--gold);
}
.ld-task.urgent:before{background:var(--red)}
.ld-footer{
  padding:14px 24px 20px;text-align:center;color:#625968;font-size:9px;letter-spacing:.08em;
}
@media(max-width:720px){
  body{padding:8px 4px 28px}
  .ld-output{border-radius:16px}
  .ld-head,.ld-story,.ld-choices{padding-left:17px;padding-right:17px}
  .ld-title-row{display:block}.ld-time{text-align:left;margin-top:10px}
  .ld-choice-grid,.ld-grid,.ld-grid.three,.ld-split{grid-template-columns:1fr}
  .ld-choice.custom,.ld-card.wide{grid-column:auto}
  .ld-status{padding:15px 11px}
  .ld-body-parts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){
  .ld-body-parts{grid-template-columns:1fr}
  .ld-head h1{font-size:24px}
  .ld-dialogue p{font-size:16px}
}


/* =========================================================
   v2 平台兼容修复
   1. 强制覆盖宿主页面的深色字体、链接、标题和段落样式
   2. 防止卡片内容溢出
   3. 对意外生成的 pre/code 提供可读样式（仅兜底）
   ========================================================= */

.ld-output,
.ld-output article,
.ld-output section,
.ld-output header,
.ld-output footer,
.ld-output details,
.ld-output summary,
.ld-output div,
.ld-output p,
.ld-output span,
.ld-output b,
.ld-output strong,
.ld-output em,
.ld-output li {
  color: var(--text) !important;
  font-family: var(--sans) !important;
  text-shadow: none !important;
}

.ld-output {
  color-scheme: dark !important;
  background: linear-gradient(160deg, rgba(28,21,32,.99), rgba(14,12,17,.99)) !important;
}

.ld-output .ld-chapter,
.ld-output .ld-speaker,
.ld-output .ld-label,
.ld-output .ld-mini-title,
.ld-output .ld-choice b,
.ld-output .ld-time b {
  color: var(--gold2) !important;
}

.ld-output .ld-head-sub,
.ld-output .ld-time,
.ld-output .ld-tag,
.ld-output .ld-status-title span,
.ld-output .ld-muted,
.ld-output .ld-meta,
.ld-output .ld-chip,
.ld-output .ld-list-item,
.ld-output .ld-task,
.ld-output .ld-action {
  color: var(--soft) !important;
}

.ld-output .ld-story,
.ld-output .ld-story p,
.ld-output .ld-dialogue p,
.ld-output .ld-value,
.ld-output .ld-choice,
.ld-output .ld-card,
.ld-output .ld-part {
  color: #f1e8ee !important;
}

.ld-output .ld-notice,
.ld-output .ld-adult-note {
  color: #e0cbd7 !important;
}

.ld-output .ld-section > summary {
  color: #f2e8ef !important;
}

.ld-output .ld-section > summary::after {
  color: var(--gold) !important;
}

.ld-output .ld-list-item b,
.ld-output .ld-part b {
  color: #f1cadc !important;
}

.ld-output h1,
.ld-output h2,
.ld-output h3 {
  color: #fff5eb !important;
  opacity: 1 !important;
}

.ld-output a,
.ld-output a:visited {
  color: var(--gold2) !important;
}

.ld-output .ld-card,
.ld-output .ld-list-item,
.ld-output .ld-part,
.ld-output .ld-choice,
.ld-output .ld-dialogue,
.ld-output .ld-action,
.ld-output .ld-notice {
  opacity: 1 !important;
}

.ld-output .ld-grid > *,
.ld-output .ld-split > *,
.ld-output .ld-profile > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

.ld-output .ld-value,
.ld-output .ld-list-item,
.ld-output .ld-task,
.ld-output .ld-choice,
.ld-output .ld-part {
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* 平台可能给 details / summary 添加默认浅色背景 */
.ld-output details,
.ld-output summary {
  background-color: transparent !important;
}

.ld-output .ld-section {
  background: rgba(255,255,255,.025) !important;
}

.ld-output .ld-section > summary {
  background: linear-gradient(90deg,rgba(117,73,102,.24),rgba(255,255,255,.025)) !important;
}

/* 修复状态栏左右双栏过窄导致的内容挤压 */
@media (max-width: 980px) {
  .ld-output .ld-split {
    grid-template-columns: 1fr !important;
  }
}

/* 兜底：若模型仍错误输出代码块，不再出现刺眼白底 */
.ld-output pre,
.ld-output code {
  display: block !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
  padding: 12px !important;
  border: 1px dashed rgba(201,111,120,.38) !important;
  border-radius: 10px !important;
  background: #18131c !important;
  color: #f0c8d1 !important;
  font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace !important;
}

/* 宿主页面若给普通段落设定黑色 */
.ld-output p:not(.ignore),
.ld-output div:not(.ignore),
.ld-output span:not(.ignore) {
  opacity: 1 !important;
}

/* 保留各模块更具体的颜色层级 */
.ld-output .ld-story p { color:#f4edf2 !important; }
.ld-output .ld-dialogue p { color:#fff8f1 !important; }
.ld-output .ld-value { color:#eee3eb !important; }
.ld-output .ld-body { color:#eee3eb !important; }


/* =========================================================
   v3 顶部文字与首字错位修复
   ========================================================= */

/* 平台可能通过 text-fill-color 覆盖普通 color */
.ld-output .ld-head,
.ld-output .ld-head *,
.ld-output .ld-title-row,
.ld-output .ld-title-row *,
.ld-output .ld-chapter,
.ld-output .ld-head h1,
.ld-output .ld-head-sub,
.ld-output .ld-time,
.ld-output .ld-time b,
.ld-output .ld-scene-tags,
.ld-output .ld-scene-tags *,
.ld-output .ld-tag {
  opacity: 1 !important;
  text-shadow: none !important;
}

/* 顶部不同层级分别强制颜色 */
.ld-output .ld-chapter {
  color: #e7b86f !important;
  -webkit-text-fill-color: #e7b86f !important;
}

.ld-output .ld-head h1 {
  color: #fff5ed !important;
  -webkit-text-fill-color: #fff5ed !important;
}

.ld-output .ld-head-sub {
  color: #d8c8d3 !important;
  -webkit-text-fill-color: #d8c8d3 !important;
}

.ld-output .ld-time {
  color: #d8c8d3 !important;
  -webkit-text-fill-color: #d8c8d3 !important;
}

.ld-output .ld-time b {
  color: #f2c989 !important;
  -webkit-text-fill-color: #f2c989 !important;
}

.ld-output .ld-tag {
  color: #e7dce4 !important;
  -webkit-text-fill-color: #e7dce4 !important;
  border-color: rgba(241,208,156,.24) !important;
  background: rgba(255,255,255,.055) !important;
}

/* 防止宿主链接、按钮、动画状态继续压暗顶部内容 */
.ld-output .ld-head [style],
.ld-output .ld-head [class] {
  visibility: visible !important;
}

/* 取消首段首字下沉，修复第一个字脱离基线和挤占下一行 */
.ld-output .ld-story .lead::first-letter,
.ld-output .ld-story p:first-child::first-letter {
  float: none !important;
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  letter-spacing: inherit !important;
}

/* 保证首段与其他正文完全同一排版 */
.ld-output .ld-story .lead {
  display: block !important;
  margin: 0 0 17px !important;
  padding: 0 !important;
  text-indent: 0 !important;
  color: #f4edf2 !important;
  -webkit-text-fill-color: #f4edf2 !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
}

/* 对全部正文增加 text-fill-color 兜底 */
.ld-output .ld-story p,
.ld-output .ld-dialogue p,
.ld-output .ld-action,
.ld-output .ld-notice,
.ld-output .ld-choice,
.ld-output .ld-value,
.ld-output .ld-label,
.ld-output .ld-section > summary {
  -webkit-text-fill-color: currentColor !important;
}


/* =========================================================
   v4 统一高对比度配色
   所有文字先统一，再仅保留少量明确强调色
   ========================================================= */

.ld-output {
  --ld-text-main: #f6eef4;
  --ld-text-secondary: #d8ccd5;
  --ld-text-muted-safe: #b9acb7;
  --ld-text-gold: #f1c77f;
  --ld-text-pink: #efb8cf;
  --ld-text-cyan: #9edee1;
}

/* 最高优先级：容器内全部文字默认使用统一浅色 */
.ld-output,
.ld-output *,
.ld-output *::before,
.ld-output *::after {
  color: var(--ld-text-main) !important;
  -webkit-text-fill-color: var(--ld-text-main) !important;
  opacity: 1 !important;
  text-shadow: none !important;
  mix-blend-mode: normal !important;
  filter: none !important;
}

/* 正文、对白、选项和主要数值统一为主文字色 */
.ld-output .ld-story,
.ld-output .ld-story p,
.ld-output .ld-dialogue,
.ld-output .ld-dialogue p,
.ld-output .ld-choice,
.ld-output .ld-value,
.ld-output .ld-card,
.ld-output .ld-part,
.ld-output .ld-task,
.ld-output .ld-list-item,
.ld-output .ld-body {
  color: var(--ld-text-main) !important;
  -webkit-text-fill-color: var(--ld-text-main) !important;
}

/* 次级说明统一为仍然清晰的浅灰紫，不再使用暗灰 */
.ld-output .ld-head-sub,
.ld-output .ld-time,
.ld-output .ld-meta,
.ld-output .ld-action,
.ld-output .ld-status-title span,
.ld-output .ld-footer,
.ld-output .ld-muted {
  color: var(--ld-text-secondary) !important;
  -webkit-text-fill-color: var(--ld-text-secondary) !important;
}

/* 标签文字维持高对比，不再使用低透明色 */
.ld-output .ld-tag,
.ld-output .ld-chip {
  color: var(--ld-text-main) !important;
  -webkit-text-fill-color: var(--ld-text-main) !important;
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(241,199,127,.24) !important;
}

/* 金色强调：顶部信息、说话人、字段标题 */
.ld-output .ld-chapter,
.ld-output .ld-time b,
.ld-output .ld-speaker,
.ld-output .ld-label,
.ld-output .ld-mini-title,
.ld-output .ld-choice b,
.ld-output .ld-section > summary::after {
  color: var(--ld-text-gold) !important;
  -webkit-text-fill-color: var(--ld-text-gold) !important;
}

/* 大标题保持纯亮色，避免金色在小字号下不清楚 */
.ld-output .ld-head h1,
.ld-output .ld-status-title h2,
.ld-output .ld-name,
.ld-output h1,
.ld-output h2,
.ld-output h3 {
  color: #fff8f2 !important;
  -webkit-text-fill-color: #fff8f2 !important;
}

/* 折叠模块标题统一亮粉白 */
.ld-output .ld-section > summary {
  color: var(--ld-text-pink) !important;
  -webkit-text-fill-color: var(--ld-text-pink) !important;
}

/* 提示与成人状态使用安全的粉色，不再压暗 */
.ld-output .ld-notice,
.ld-output .ld-adult-note,
.ld-output .ld-adult .ld-section__head {
  color: var(--ld-text-pink) !important;
  -webkit-text-fill-color: var(--ld-text-pink) !important;
}

/* 链接和可交互提示统一青色 */
.ld-output a,
.ld-output a:visited,
.ld-output a:hover,
.ld-output button,
.ld-output .ld-collapse {
  color: var(--ld-text-cyan) !important;
  -webkit-text-fill-color: var(--ld-text-cyan) !important;
}

/* 页脚至少保持可读，不再接近背景色 */
.ld-output .ld-footer {
  color: var(--ld-text-muted-safe) !important;
  -webkit-text-fill-color: var(--ld-text-muted-safe) !important;
}

/* 防止宿主通过继承变量或style属性重新写黑色 */
.ld-output [style*="color"],
.ld-output [style*="opacity"],
.ld-output font,
.ld-output small,
.ld-output strong,
.ld-output b,
.ld-output em {
  opacity: 1 !important;
}

/* 表单或浏览器默认控件也使用深色背景与浅色字 */
.ld-output input,
.ld-output textarea,
.ld-output select,
.ld-output option {
  color: var(--ld-text-main) !important;
  -webkit-text-fill-color: var(--ld-text-main) !important;
  background-color: #18131c !important;
  border-color: rgba(255,255,255,.14) !important;
}

/* 继续取消首字下沉，防止平台重新应用 */
.ld-output .ld-story p::first-letter,
.ld-output .ld-story .lead::first-letter {
  float: none !important;
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
}

/* 兜底：HTML意外被解析为代码时仍保持深色与浅色字 */
.ld-output pre,
.ld-output code {
  color: var(--ld-text-main) !important;
  -webkit-text-fill-color: var(--ld-text-main) !important;
  background: #17121b !important;
}