/* ========== 内置CSS · 《透世之眼》 ========== */
/* ========== 暖米白纸感 · 舒适耐读版（v1） ========== */
/* 说明：①变量置于:root（壳丢失时var()仍生效）②选择器无前缀，作用于气泡内内容
   ③平台自动包裹 .khorra-output——不设底色，内容直接落在平台气泡上 */

/* ---------- 0. CSS变量 ---------- */
:root{
  --bg:#f6f2e9; --surface:#fffdf8; --surface2:#f4efe4; --surface3:#ece5d6;
  --line:#e4dcc8; --line2:#d5cbb2;
  --text:#3d3a33; --dim:#8a8374; --faint:#a89f8d;
  --cyan:#2f8fc9; --cyan2:#3a9fdb; --cyan-dim:#b8d8ea;
  --pink:#c25f80; --pink2:#b04f70; --pink-dim:#eec9d6;
  --amber:#e8933a; --amber2:#ffab4a; --amber-dim:#f0d3a8;
  --green:#5f9e73; --red:#c96060;
  --purple:#7a68a8; --purple-dim:#d5cbeb;
  --gold:#c9973f;
  --dark-bg:#2e3d52; --dark-line:#42536c; --dark-text:#eef3f8;
}
.khorra-output{
  color:var(--text); line-height:1.9;
}

/* ---------- 1. 根排版 ---------- */
.narrative-p{
  margin:10px 0; font-size:.94rem; line-height:2; color:var(--text);
  text-indent:2em;
}
.inner-monologue{
  margin:10px 0; padding:10px 14px;
  background:linear-gradient(135deg,#fdeef2,#f8e3ea);
  border-left:3px solid var(--pink2);
  color:#7a4a58; font-size:.86rem; line-height:1.9;
  border-radius:0 8px 8px 0;
}

/* ---------- 2. 前置检查（深色思维链） ---------- */
details.cot-check-details{
  margin:8px 0; background:var(--dark-bg); border:1px solid var(--dark-line);
  border-radius:8px; padding:0; overflow:hidden;
}
details.cot-check-details > summary{
  cursor:pointer; padding:10px 14px; color:#cfe0f0; font-size:.8rem;
  font-weight:700; letter-spacing:.1em; list-style:none;
  background:linear-gradient(120deg,#35465e,#2a3a4f);
}
details.cot-check-details > summary::-webkit-details-marker{ display:none; }
details.cot-check-details > summary::before{ content:" "; }
details.cot-check-details[open] > summary{ border-bottom:1px solid var(--dark-line); }
details.cot-check-details .details-body{ padding:10px 14px; }
details.cot-check-details .cot-exec-content{
  font-size:.72rem; line-height:2; color:#b8c9dd; white-space:pre-wrap;
  font-family:Consolas,'Courier New',monospace;
}
details.cot-check-details .cot-exec-content b{ color:var(--gold); }

/* ---------- 3. 时间锚头（深藏青块） ---------- */
.time-header{
  margin:12px 0; padding:12px 16px;
  background:linear-gradient(135deg,#35465e,#243447);
  border:1px solid var(--dark-line); border-left:4px solid var(--cyan);
  border-radius:6px; color:var(--dark-text);
}
.time-row-main{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.time-day{ font-size:.88rem; font-weight:700; color:#ffd27a; letter-spacing:.08em; }
.time-sep{ color:#6d7f96; }
.time-period{ font-size:.76rem; color:#cfe0f0; }
.time-clock{
  font-size:.72rem; color:#ffe3a8; background:rgba(255,210,122,.12);
  border:1px solid rgba(255,210,122,.32); padding:1px 10px; border-radius:10px;
}
.time-round{
  font-size:.72rem; color:#a8e6c8; background:rgba(95,158,115,.15);
  border:1px solid rgba(95,158,115,.4); padding:1px 10px; border-radius:10px;
}
.time-row-loc{ margin-top:6px; font-size:.78rem; color:#b8c9dd; }
.time-row-weather{ margin-top:2px; font-size:.74rem; color:#a3b4c8; }
.time-row-affinity{ margin-top:4px; font-size:.72rem; color:#ffd27a; }
.time-divider{
  margin:8px 0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(62,198,255,.45),transparent);
}

/* ---------- 4. 对话系统 · 无头像文字气泡 ---------- */
.jy-msg{ margin:10px 0; }
.jy-name{
  display:block; font-size:.74rem; font-weight:700; letter-spacing:.14em;
  color:var(--pink); line-height:1.4; margin-bottom:2px;
}
.jy-text{
  display:block; max-width:88%;
  background:linear-gradient(135deg,#fdeef2,#f9e4ec);
  border:1px solid #f0cdd9; border-left:3px solid var(--pink2);
  border-radius:4px 14px 14px 14px;
  padding:8px 14px; color:#5a3a44; line-height:1.8; font-size:.9rem;
}
.us-msg{ margin:10px 0; }
.us-name{ display:block; text-align:right; font-size:.72rem; font-weight:700; letter-spacing:.14em; color:var(--cyan); margin-bottom:2px; }
.us-text{
  display:block; margin-left:auto; max-width:80%; text-align:left;
  background:linear-gradient(135deg,#eef7fb,#e3f0f7);
  border:1px solid #cfe4f0; border-right:3px solid var(--cyan);
  border-radius:14px 4px 14px 14px; padding:8px 14px;
  color:#3f5a6e; line-height:1.8; font-size:.9rem;
}
.npc-msg{ margin:6px 0 6px 12px; text-align:left; }
.npc-name{ font-size:.72rem; font-weight:700; letter-spacing:.14em; color:var(--dim); display:block; margin-bottom:2px; }
.npc-text{
  display:inline-block; max-width:85%; text-align:left;
  background:rgba(255,255,255,.8); border:1px solid var(--line);
  border-radius:14px; padding:8px 14px; color:#5a564c; line-height:1.8; font-size:.9rem;
}

/* ---------- 5. 眼镜状态面板 ---------- */
details.eye-panel{
  margin:12px 0; border:1px solid #b9cfc4; border-radius:10px;
  background:#eef5f1; overflow:hidden;
  box-shadow:0 2px 10px rgba(60,130,100,.12);
}
details.eye-panel > summary{
  cursor:pointer; padding:11px 16px; list-style:none;
  background:linear-gradient(120deg,#2e5a4a,#3a7a60);
  color:#f2f6fa; font-size:.86rem; font-weight:700; letter-spacing:.08em;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
details.eye-panel > summary::-webkit-details-marker{ display:none; }
details.eye-panel > summary::before{ content:"▾ "; color:#a8e6c8; }
details.eye-panel[open] > summary::before{ content:"▸ "; }
details.eye-panel > summary .panel-summary-sub{
  margin-left:auto; font-size:.62rem; font-weight:400; letter-spacing:.2em;
  color:#9fc4b2; font-family:Consolas,monospace;
}
details.eye-panel .details-body{ padding:14px 16px; }
.player-status{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:8px 10px; background:var(--surface2); border:1px solid var(--line);
  border-radius:8px; margin-bottom:10px;
}
.player-status span{ font-size:.76rem; color:var(--text); }
.player-status b{ color:var(--cyan); }
.app-task-list{ display:flex; flex-direction:column; gap:6px; }
.app-task-item{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:8px 12px; border-radius:8px;
  background:#faf7ef; border:1px solid var(--line);
}
.app-task-item.done{ background:#eef6ef; border-color:#cfe3d4; }
.app-task-star{ font-size:.72rem; color:var(--green); min-width:28px; font-weight:700; }
.app-task-text{ flex:1; min-width:0; font-size:.8rem; color:var(--text); line-height:1.7; }
.app-task-item.done .app-task-text{ color:#4a7a5c; }
.app-task-state{ font-size:.66rem; padding:1px 8px; border-radius:10px; white-space:nowrap; }
.app-task-state.todo{ color:#7a93a8; border:1px solid #d0dde8; }
.app-task-state.ok{ color:#3f7a52; border:1px solid #a9cfb4; }
.app-foot{
  margin-top:10px; padding-top:10px; border-top:1px dashed var(--line);
  display:flex; gap:8px; flex-wrap:wrap; font-size:.7rem;
}
.app-refresh{ color:var(--faint); }
.app-target{ color:var(--pink); font-weight:700; margin-left:auto; letter-spacing:.06em; }

/* ---------- 6. 通用面板骨架 ---------- */
details.panel-details{
  margin:10px 0; border:1px solid #d6ccb6; border-radius:8px;
  background:#f7f4ec; overflow:hidden;
  box-shadow:0 1px 6px rgba(90,80,60,.08);
}
details.panel-details > summary{
  cursor:pointer; padding:11px 16px; list-style:none;
  background:linear-gradient(120deg,#2e4a6e,#3a5a80);
  color:#f2f6fa; font-size:.86rem; font-weight:700; letter-spacing:.08em;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
details.panel-details > summary::-webkit-details-marker{ display:none; }
details.panel-details > summary::before{ content:"▾ "; color:#ffd27a; }
details.panel-details[open] > summary::before{ content:"▸ "; }
details.panel-details > summary .panel-summary-icon{ font-size:.9rem; }
details.panel-details > summary .panel-summary-sub{
  margin-left:auto; font-size:.62rem; font-weight:400; letter-spacing:.2em;
  color:#9fb4cc; font-family:Consolas,monospace;
}
details.panel-details .panel-body{ padding:14px 16px; }


/* ---------- 6.5 玩家面板 ---------- */
details.player-panel{ border-color:#c6d8e4; background:#f2f7fa; }
details.player-panel > summary{
  background:linear-gradient(120deg,#3a5a80,#4a6d95);
  color:#f2f6fa;
}
details.player-panel > summary::before{ color:#b8d8ea; }
details.player-panel > summary .panel-summary-sub{ color:#a9c4da; }
.player-head{ margin-bottom:10px; }
.player-name{ font-size:1.05rem; font-weight:800; color:#2e4a6e; letter-spacing:.12em; }
.player-class{ font-size:.72rem; color:#7a93a8; margin-top:2px; }
.player-status{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.player-status span{
  font-size:.72rem; color:var(--text); background:var(--surface2);
  border:1px solid var(--line); padding:3px 10px; border-radius:8px;
}
.player-status b{ color:var(--cyan); }
.player-sub{ display:flex; flex-direction:column; gap:8px; }
.player-sub .sub-block{ padding:9px 12px; border-radius:6px; background:#faf7ef; border:1px solid var(--line); }
.player-sub .sub-block.thoughts{ background:#eef7fb; border-color:#cfe4f0; }

/* ---------- 9.5 固定面板 ---------- */
details.fix-panel{ border-color:#c8d8c4; background:#f3f8f2; }
details.fix-panel > summary{
  background:linear-gradient(120deg,#4a7a5c,#5f9e73);
  color:#f2f8f3;
}
details.fix-panel > summary::before{ color:#b8e0c4; }
details.fix-panel > summary .panel-summary-sub{ color:#b4d4be; }
.fix-detail{
  border-radius:8px; overflow:hidden;
  background:#fff; border:1px solid #cfe0d0; border-left:3px solid var(--green);
}
.fix-detail > summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:8px 12px;
}
.fix-detail > summary::-webkit-details-marker{ display:none; }
.fix-detail > summary::after{ content:"▾"; margin-left:auto; color:#8fc4a0; font-size:.72rem; }
.fix-detail[open] > summary::after{ content:"▴"; }
.fix-detail[open] > summary{ border-bottom:1px solid #e0ece2; }
.fix-detail > summary + .details-body{ padding:10px 12px; background:#f0f7f1; }
.f-name{ font-size:.82rem; font-weight:800; color:#3f7a52; letter-spacing:.08em; }
.f-sub{ font-size:.64rem; color:#7aa58a; border:1px solid #cfe0d0; padding:0 8px; border-radius:10px; white-space:nowrap; }
.f-tag{
  font-size:.64rem; color:#fff; background:linear-gradient(135deg,#5f9e73,#4a8a5e);
  padding:1px 9px; border-radius:10px; font-weight:700; white-space:nowrap;
}
.f-note{ font-size:.64rem; color:#7aa58a; white-space:nowrap; }
.fix-empty{
  padding:14px; text-align:center; font-size:.8rem; color:var(--faint);
  border:1px dashed var(--line); border-radius:8px;
}

/* ---------- 7. 当前女主档案 ---------- */
details.heroine-panel{ border-color:#e0c2cd; background:#fdf3f6; }
details.player-panel > summary{
  color:#f2f6fa !important;
  background:#3a5a80 !important;
  background:linear-gradient(120deg,#3a5a80,#4a6d95) !important;
}
details.fix-panel > summary{
  color:#f2f8f3 !important;
  background:#4a7a5c !important;
  background:linear-gradient(120deg,#4a7a5c,#5f9e73) !important;
}
details.heroine-panel > summary{
  background:linear-gradient(120deg,#b85c7e,#a34a6c);
  color:#fff0f5;
}
details.heroine-panel > summary::before{ color:#ffd7e6; }
.heroine-head{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.heroine-headinfo{ display:flex; flex-direction:column; gap:3px; }
.heroine-hname{ font-size:1.1rem; font-weight:800; color:#a14d6d; letter-spacing:.16em; }
.heroine-class{ font-size:.72rem; color:#b07a90; }
.heroine-next{
  display:inline-block; font-size:.68rem; color:#fff;
  background:linear-gradient(120deg,#e8933a,#ffab4a);
  padding:2px 10px; border-radius:10px; letter-spacing:.08em; font-weight:700;
  width:fit-content; box-shadow:0 1px 6px rgba(232,147,58,.3);
}
.heroine-status{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.heroine-status span{
  font-size:.72rem; color:var(--text); background:var(--surface2);
  border:1px solid var(--line); padding:3px 10px; border-radius:8px;
}
.heroine-status b{ color:var(--cyan); }
.heroine-sub{ display:flex; flex-direction:column; gap:8px; }
.heroine-sub .sub-block{ padding:9px 12px; border-radius:6px; }
.heroine-sub .sub-block:nth-child(1){ background:#faf7ef; border:1px solid var(--line); }
.heroine-sub .sub-block.thoughts{ background:#fdeef2; border:1px solid #f0cdd9; }
.sub-label{ font-size:.7rem; font-weight:700; color:var(--pink); letter-spacing:.12em; margin-bottom:3px; }
.sub-text{ font-size:.8rem; color:var(--text); line-height:1.8; }

/* ---------- 8. 隐秘档案（绝密卷宗风） ---------- */
details.secret-details{
  margin:12px 0 0; border:1px solid #3a2a24; border-radius:4px; overflow:hidden;
  background:#1a1412; box-shadow:inset 0 0 40px rgba(0,0,0,.55);
}
details.secret-details > summary{
  cursor:pointer; padding:9px 14px; list-style:none;
  background:linear-gradient(120deg,#2b1d18,#3d2a22);
  color:#e8d5c8; font-size:.8rem; font-weight:700; letter-spacing:.14em;
  display:flex; align-items:center; gap:8px;
  border-bottom:1px solid #4a352c;
}
details.secret-details > summary::-webkit-details-marker{ display:none; }
details.secret-details > summary::before{ content:"▾ "; color:#c8a08a; }
details.secret-details[open] > summary::before{ content:"▸ "; }
/* 绝密红章 */
details.secret-details .secret-stamp{
  flex-shrink:0; font-size:.6rem; font-weight:800; letter-spacing:.22em;
  color:#ff4d4d; border:1.5px solid #ff4d4d; border-radius:3px;
  padding:1px 6px 1px 8px; line-height:1.6;
  transform:rotate(-6deg);
  background:rgba(255,77,77,.08);
  box-shadow:0 0 0 1px rgba(255,77,77,.25), 0 0 12px rgba(255,77,77,.25);
  text-shadow:0 0 8px rgba(255,77,77,.5);
}
details.secret-details .secret-title{ color:#f2e6da; letter-spacing:.1em; }
details.secret-details .secret-badge{
  margin-left:auto; font-size:.54rem; color:#c8a08a; border:1px solid #5a4034;
  padding:1px 8px; border-radius:2px; letter-spacing:.24em;
  font-family:Consolas,'Courier New',monospace;
  background:rgba(90,64,52,.35);
}
/* 卷宗体：旧纸感深色 */
details.secret-details .secret-body{
  padding:12px 14px;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0 1px, transparent 1px 3px),
    radial-gradient(ellipse at 20% 10%, rgba(120,90,60,.14), transparent 55%),
    #221a16;
  color:#d9c4b4;
}
details.secret-details .secret-header{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding-bottom:8px; margin-bottom:8px;
  border-bottom:1px dashed #4a352c;
  font-family:Consolas,'Courier New',monospace; font-size:.64rem;
  color:#a8907c; letter-spacing:.06em;
}
details.secret-details .secret-file{ color:#c8a08a; }
details.secret-details .secret-time{ margin-left:auto; color:#8a7268; }
details.secret-details .secret-eye{
  font-size:.7rem; color:#b89a86; margin-bottom:9px;
  padding:5px 9px; background:rgba(0,0,0,.3); border-left:2px solid #8a4a3a;
  letter-spacing:.04em;
}
details.secret-details .secret-grid{ display:grid; grid-template-columns:1fr; gap:7px; }
details.secret-details .secret-item{
  display:flex; align-items:flex-start; gap:9px;
  background:rgba(0,0,0,.32); border:1px solid #3a2a24; border-radius:3px;
  padding:8px 10px;
}
details.secret-details .secret-index{
  flex-shrink:0; width:20px; height:20px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:.62rem; font-weight:800; color:#1a1412;
  background:linear-gradient(135deg,#c8a08a,#a8826a);
  margin-top:1px;
}
details.secret-details .secret-label{ font-size:.7rem; color:#d9a28a; font-weight:700; letter-spacing:.08em; }
details.secret-details .secret-text{ font-size:.8rem; color:#e0cdbc; margin-top:1px; line-height:1.7; }
details.secret-details .secret-footer{
  margin-top:10px; padding-top:8px;
  border-top:1px dashed #4a352c;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:.64rem; color:#8a7268; line-height:1.7;
}
details.secret-details .secret-rule{ color:#8a7268; }
details.secret-details .secret-sign{
  margin-left:auto; font-family:Consolas,'Courier New',monospace;
  color:#6a8a5a; letter-spacing:.1em; font-size:.6rem;
  border:1px solid rgba(106,138,90,.4); padding:1px 7px; border-radius:2px;
}

/* ---------- 9. 记录面板 ---------- */
details.record-panel{ border-color:#cbbfe2; background:#f6f3fb; }
details.record-panel > summary{
  background:linear-gradient(120deg,#5b4a8a,#6d5aa8);
  color:#f0ecff;
}
details.record-panel > summary::before{ color:#d5c8ff; }
details.record-panel > summary .panel-summary-sub{ color:#c4b8e8; }
.mem-sec{ margin-bottom:12px; }
.mem-sec:last-child{ margin-bottom:0; }
.mem-sec-label{
  font-size:.7rem; font-weight:700; color:#7a68a8;
  letter-spacing:.12em; margin-bottom:6px;
}
.memory-note{ font-size:.68rem; color:var(--faint); line-height:1.7; }
.info-wrap{ margin-bottom:6px; }
.info-wrap:last-child{ margin-bottom:0; }
.info-details{
  border-radius:8px; overflow:hidden;
  background:#fff; border:1px solid #ddd3f0; border-left:3px solid var(--purple);
}
.info-details > summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:8px 12px;
}
.info-details > summary::-webkit-details-marker{ display:none; }
.info-details > summary::after{ content:"▾"; margin-left:auto; color:#a89acf; font-size:.72rem; }
.info-details[open] > summary::after{ content:"▴"; }
.info-details[open] > summary{ border-bottom:1px solid #e6def5; }
.info-details .info-body{ padding:8px 12px; background:#f3effb; }
.info-name{ font-size:.82rem; font-weight:800; color:#5b4a8a; letter-spacing:.08em; }
.info-role{ font-size:.66rem; color:#8a7ac0; border:1px solid #ddd3f0; padding:0 8px; border-radius:10px; white-space:nowrap; }
.info-tag{
  font-size:.66rem; color:#fff; background:linear-gradient(135deg,#e8933a,#ffab4a);
  padding:1px 9px; border-radius:10px; font-weight:700; white-space:nowrap;
}
.info-times{ font-size:.66rem; color:#a06a1e; border:1px solid #ecd9b4; padding:0 8px; border-radius:10px; white-space:nowrap; }
.info-line{ font-size:.74rem; color:#6b655a; line-height:1.7; }
.event-row{
  padding:6px 10px; margin-bottom:5px; border-radius:6px;
  background:#f7f9fc; border:1px solid #dbe3ec;
  font-size:.74rem; color:#5a616e; line-height:1.7;
}
.event-row:last-child{ margin-bottom:0; }
.event-time{ color:#2f8fc9; font-weight:700; margin-right:4px; }
.warn-row{
  padding:6px 10px; margin-bottom:5px; border-radius:6px;
  background:#fdf3f3; border:1px solid #eccccc; border-left:3px solid var(--red);
  font-size:.74rem; color:#8f4a4a; line-height:1.7;
}
.warn-row:last-child{ margin-bottom:0; }
.warn-empty{
  padding:6px 10px; border-radius:6px; border:1px dashed var(--line);
  font-size:.72rem; color:var(--faint);
}
.todo-row{
  padding:6px 10px; margin-bottom:5px; border-radius:6px;
  background:#f0f7fb; border:1px solid #cfe0ec; border-left:3px solid var(--cyan);
  font-size:.74rem; color:#4a6272; line-height:1.7;
}
.todo-row:last-child{ margin-bottom:0; }
.todo-empty{
  padding:6px 10px; border-radius:6px; border:1px dashed var(--line);
  font-size:.72rem; color:var(--faint);
}
.record-empty{
  padding:14px; text-align:center; font-size:.8rem; color:var(--faint);
  border:1px dashed var(--line); border-radius:8px;
}

/* ---------- 10. 选择面板 ---------- */
.choice-panel{
  margin:14px 0; padding:12px 14px; background:#f7f3e9;
  border:1px solid #d6ccb6; border-radius:8px;
  box-shadow:0 1px 6px rgba(90,80,60,.08);
}
.choice-header{ margin-bottom:10px; }
.choice-title{ font-size:.82rem; font-weight:700; color:#2f6f9e; letter-spacing:.08em; }
.choice-list{ display:flex; flex-direction:column; gap:8px; }
.choice-card{
  display:flex; align-items:center; gap:10px; padding:10px 12px;
  border:1px solid var(--line); border-radius:8px; background:#fff;
  cursor:pointer; transition:all .2s ease;
}
.choice-card:hover{ border-color:#a8cfe8; box-shadow:0 2px 10px rgba(47,143,201,.12); }
.choice-card[data-choice="1"]{ border-left:3px solid var(--cyan); }
.choice-card[data-choice="2"]{ border-left:3px solid var(--amber); }
.choice-card[data-choice="3"]{ border-left:3px solid var(--pink); }
.choice-card.choice-skip{ border-left:3px dashed #c5bdb0; opacity:.75; }
.choice-left{ flex:1; min-width:0; }
.choice-label{
  display:block; font-size:.66rem; color:var(--cyan); font-weight:700;
  letter-spacing:.14em; margin-bottom:2px;
}
.choice-card[data-choice="2"] .choice-label{ color:var(--amber); }
.choice-card[data-choice="3"] .choice-label{ color:var(--pink); }
.choice-card.choice-skip .choice-label{ color:#a89f8d; }
.choice-text{ display:block; font-size:.8rem; color:var(--text); line-height:1.8; }
.choice-arrow{ color:#c5bdb0; font-size:.9rem; }

/* ---------- 11. 移动端适配 ---------- */
@media (max-width:640px){
  .khorra-output{ line-height:1.85; }
  .narrative-p{ font-size:.88rem; line-height:1.95; }
  .inner-monologue{ font-size:.82rem; padding:9px 12px; }
  .jy-msg,.us-msg{ margin:9px 0; }
  .jy-name,.us-name{ font-size:.7rem; }
  .jy-text{ max-width:96%; font-size:.88rem; padding:7px 12px; }
  .us-text{ max-width:calc(100% - 30px); font-size:.88rem; padding:7px 12px; }
  .npc-name{ font-size:.68rem; }
  .npc-text{ font-size:.86rem; }
  .jy-text,.us-text,.npc-text{ overflow-wrap:break-word; word-break:break-word; }
  .time-header{ padding:10px 12px; }
  .time-row-main{ gap:6px; }
  .time-day{ font-size:.82rem; }
  .time-period{ font-size:.7rem; }
  .time-clock{ font-size:.66rem; padding:1px 8px; }
  .time-row-loc{ font-size:.74rem; }
  .time-row-weather{ font-size:.7rem; }
  details.eye-panel > summary,details.panel-details > summary{ padding:10px 12px; font-size:.82rem; }
  details.eye-panel .details-body{ padding:12px 12px; }
  .player-status{ gap:6px; padding:7px 9px; }
  .player-status span{ font-size:.72rem; }
  .app-task-item{ flex-wrap:wrap; gap:6px; padding:7px 10px; }
  .app-task-star{ min-width:24px; }
  .app-task-text{ font-size:.78rem; }
  .app-task-state{ margin-left:auto; font-size:.62rem; }
  .app-foot{ font-size:.66rem; gap:6px; }
  .heroine-hname{ font-size:.98rem; }
  .heroine-class{ font-size:.68rem; }
  .heroine-next{ font-size:.64rem; padding:2px 8px; }
  .heroine-status{ gap:6px; }
  .heroine-status span{ font-size:.68rem; padding:3px 8px; }
  .sub-label{ font-size:.66rem; }
  .sub-text{ font-size:.78rem; }
  .secret-body{ padding:10px 10px; }
  .secret-item{ padding:7px 9px; }
  .secret-label{ font-size:.68rem; }
  .secret-text{ font-size:.78rem; }
  .mem-sec{ margin-bottom:10px; }
  .mem-sec-label{ font-size:.66rem; }
  .info-details > summary{ padding:7px 10px; gap:6px; }
  .info-name{ font-size:.78rem; }
  .info-role{ font-size:.6rem; padding:0 6px; }
  .info-tag,.info-times{ font-size:.6rem; padding:0 7px; }
  .info-details .info-body{ padding:7px 10px; }
  .info-line{ font-size:.7rem; }
  .event-row,.warn-row,.todo-row{ font-size:.7rem; padding:5px 9px; }
  .choice-panel{ padding:10px 10px; }
  .choice-card{ padding:9px 10px; gap:8px; }
  .choice-label{ font-size:.62rem; }
  .choice-text{ font-size:.78rem; }
  .record-empty{ font-size:.74rem; padding:12px; }
  details.cot-check-details > summary{ padding:9px 12px; font-size:.76rem; }
  details.cot-check-details .cot-exec-content{ font-size:.66rem; }
  .secret-note{ font-size:.62rem; }
  .warn-empty,.todo-empty{ font-size:.66rem; padding:5px 9px; }
}
@media (max-width:400px){
  .jy-text{ max-width:98%; }
  .us-text{ max-width:calc(100% - 16px); }
  .time-clock{ display:inline-block; margin-top:2px; }
  .heroine-status span{ flex:1 1 42%; }
  .choice-card .choice-arrow{ display:none; }
  .info-role{ display:none; }
  details.eye-panel > summary .panel-summary-sub,
  details.panel-details > summary .panel-summary-sub{ display:none; }
}

/* ---------- 12. 跨平台适配补丁（纯色兜底·防白字·防渐变丢失） ---------- */
.khorra-output{ color:#3d3a33; }
details.eye-panel > summary{
  color:#f2f6fa !important;
  background:#2e5a4a !important;
  background:linear-gradient(120deg,#2e5a4a,#3a7a60) !important;
}
details.panel-details > summary{
  color:#f2f6fa !important;
  background:#2e4a6e !important;
  background:linear-gradient(120deg,#2e4a6e,#3a5a80) !important;
}
details.heroine-panel > summary{
  color:#fff0f5 !important;
  background:#b85c7e !important;
  background:linear-gradient(120deg,#b85c7e,#a34a6c) !important;
}
details.record-panel > summary{
  color:#f0ecff !important;
  background:#5b4a8a !important;
  background:linear-gradient(120deg,#5b4a8a,#6d5aa8) !important;
}
details.secret-details > summary{
  color:#e8d5c8 !important;
  background:#2b1d18 !important;
  background:linear-gradient(120deg,#2b1d18,#3d2a22) !important;
}
details.cot-check-details{
  background:#2e3d52 !important;
  border:1px solid #42536c !important;
}
details.cot-check-details > summary{
  color:#cfe0f0 !important;
  background:#35465e !important;
}
.time-header{
  color:#eef3f8 !important;
  background:#2e3d52 !important;
  background:linear-gradient(135deg,#35465e,#243447) !important;
}
.narrative-p,.us-text,.jy-text,.npc-text,.sub-text,.choice-text,
.app-task-text,.app-refresh,.app-target,
.info-line,.event-row,.warn-row,.todo-row,.record-empty,
.heroine-status span{
  color:#3d3a33;
}
details.secret-details .secret-grid{ grid-template-columns:1fr !important; }