/* PAGE · ep.css —— 多集共享组件（大厅卡片/页脚导航/各集交互件） */

/* 大厅案件列表 */
.case-list{padding:30px 0;border-top:1px solid var(--line)}
.list-head{font-family:var(--mono);font-size:13.5px;letter-spacing:4px;color:var(--ink-faint);margin-bottom:18px}
.case-list ol{list-style:none}
.case-card{
  display:grid;grid-template-columns:74px 220px 1fr 84px;gap:16px;align-items:baseline;
  padding:20px 18px;margin-bottom:12px;background:var(--card);border:1px solid var(--line);
  border-radius:4px;color:var(--ink);text-decoration:none;
  transition:border-color .2s,transform .15s,box-shadow .2s;
}
.case-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 18px rgba(33,31,27,.08);text-decoration:none}
.case-card .no{font-family:var(--mono);font-size:13.5px;color:var(--journal-red);letter-spacing:2px}
.case-card .t{font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:1px}
.case-card .client{font-size:14.5px;color:var(--ink-soft);line-height:1.7}
.case-card .go{font-family:var(--mono);font-size:13.5px;color:var(--journal-red);text-align:right}
.how{padding:30px 0 0;border-top:1px solid var(--line)}
.qs{margin:4px 0 0;padding-left:22px}
.qs li{margin:9px 0;color:var(--ink-soft);font-size:16px}

/* 页脚导航 */
.foot-nav{
  display:flex;justify-content:space-between;gap:12px;margin-top:56px;
  padding:20px 4px 0;border-top:1px solid var(--line);
}
.foot-nav a{
  font-family:var(--mono);font-size:13.5px;color:var(--ink-soft);text-decoration:none;
  padding:9px 14px;border:1px solid var(--line);border-radius:4px;background:var(--card);
}
.foot-nav a:hover{border-color:var(--ink);color:var(--ink)}

/* 背景故事：文档拼贴样式 */
.brief-subj{
  font-family:var(--mono);font-size:14px;font-weight:700;color:var(--ink);
  background:var(--paper-deep);border-left:3px solid var(--journal-red);
  padding:6px 12px;margin-bottom:14px;
}
.brief-quote{
  border-left:2px solid var(--line);margin:10px 0 10px 4px;padding:6px 14px;
  color:var(--ink-faint);font-size:15.5px;background:#F2EDE1;
}
.brief-sep{border-top:1px dashed var(--line);margin:14px 0}

/* EP02：设计按钮与曲线 */
.design-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.design-btn{
  appearance:none;background:var(--card);border:1px solid var(--line);border-radius:4px;
  color:var(--ink);padding:16px;font-size:15px;font-family:var(--sans);cursor:pointer;text-align:left;line-height:1.7;
}
.design-btn small{display:block;font-size:12.5px;color:var(--ink-faint);margin-top:4px;font-family:var(--mono)}
.design-btn.on{border-color:var(--journal-red);border-width:2px;background:#FBF1EF;font-weight:600}
.readout-row{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.readout{flex:1;min-width:150px;background:var(--paper-deep);border:1px solid var(--hairline);border-radius:4px;padding:14px;text-align:center}
.readout span{display:block;font-size:13px;color:var(--ink-soft)}
.readout b{display:block;font-family:var(--mono);font-size:25px;margin:4px 0;color:var(--ink)}
.readout i{display:block;font-style:normal;font-size:12.5px;color:var(--ink-faint)}
.readout.bad b{color:var(--journal-red)}
.km-wrap{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px;margin-top:6px}
.km-wrap svg{width:100%;height:auto;display:block}
.smoke{font-size:14px;color:var(--ink-soft);margin-top:14px}

/* EP03：数轴与滑杆 */
.ni-wrap{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:26px 20px 18px;margin-bottom:16px}
.ni-wrap svg{width:100%;height:auto;display:block}
.ni-slider-row{display:flex;align-items:center;gap:16px;margin:18px 0 6px}
.ni-slider-row input[type=range]{flex:1;accent-color:var(--journal-red)}
.ni-delta{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--journal-red);min-width:96px;text-align:right}
.ni-readout{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.stamp{
  display:inline-block;margin-top:18px;padding:14px 26px;border:2.5px solid var(--green);
  color:var(--green);font-family:var(--serif);font-size:24px;font-weight:800;letter-spacing:4px;
  border-radius:6px;transform:rotate(-3deg);background:#F0F6F1;
}
.stamp.fail{border-color:var(--ink-faint);color:var(--ink-faint);background:var(--paper-deep);transform:rotate(0deg);font-size:19px;letter-spacing:1px}
.launder{margin-top:22px;background:var(--paper-deep);border:1px solid var(--hairline);border-radius:4px;padding:18px 20px}
.launder h4{font-family:var(--serif);font-size:18px;margin-bottom:8px}
.launder p{font-size:15.5px;color:var(--ink-soft)}

/* EP04：终点货架 */
.endp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.endp-card{
  appearance:none;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:4px;
  padding:16px 18px;cursor:pointer;font-family:var(--sans);color:var(--ink);
  transition:border-color .2s,transform .15s;
}
.endp-card:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px)}
.endp-card:disabled{cursor:default}
.endp-card .en-name{font-size:17px;font-weight:700;display:block;margin-bottom:4px}
.endp-card .en-p{font-family:var(--mono);font-size:15px;margin:4px 0;display:block}
.endp-card .en-note{font-size:13.5px;color:var(--ink-soft);line-height:1.7;display:block;margin-top:6px}
.endp-verdict{font-family:var(--mono);font-size:13px;letter-spacing:2px;display:inline-block;padding:2px 10px;border-radius:3px;margin-bottom:6px}
.endp-verdict.pass{background:#EDF5EF;color:var(--green);border:1px solid var(--green)}
.endp-verdict.fail{background:var(--paper-deep);color:var(--ink-faint);border:1px solid var(--hairline)}
.endp-summary{margin-top:20px;background:var(--paper-deep);border:1px solid var(--hairline);border-radius:4px;padding:16px 20px;font-size:15.5px;color:var(--ink-soft)}

/* EP05：工具与评分 */
.tool-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.tool-check{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:14px 16px;cursor:pointer}
.tool-check input{width:19px;height:19px;margin-top:5px;accent-color:var(--journal-red)}
.tool-check .tl-name{font-size:16px;font-weight:700}
.tool-check .tl-note{font-size:13.5px;color:var(--ink-faint)}
.score-row{display:flex;align-items:center;gap:14px;margin:14px 0}
.score-row .bar{flex:1}
.score-row .bar>i{background:linear-gradient(90deg,var(--gold),var(--journal-red))}
.score-num{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--journal-red)}

/* EP06：分期盘面 */
.board{display:grid;grid-template-columns:1fr 54px 1fr;gap:0;align-items:stretch;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:24px}
.vs{display:flex;align-items:center;justify-content:center;font-family:var(--mono);color:var(--ink-faint);font-size:13px}
.col-head{display:flex;align-items:baseline;gap:12px;padding:0 6px 12px;border-bottom:1px solid var(--hairline);margin-bottom:14px}
.col-name{font-size:15px;letter-spacing:2px;color:var(--navy)}
#colIII .col-name{color:var(--coral)}
.pct{font-family:var(--mono);font-size:32px;font-weight:700;color:var(--ink);margin-left:auto;transition:color .5s}
.pct.up{color:var(--green)}
.delta{font-family:var(--mono);font-size:15px;color:var(--green);opacity:0;transition:opacity .5s}
.delta.show{opacity:1}
.dots{display:flex;flex-wrap:wrap;gap:8px;min-height:52px;padding:4px 2px}
.pt{
  width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10.5px;position:relative;transition:transform .4s ease,border-color .4s,background .4s;
}
.pt.alive{border:1.6px solid var(--navy);color:var(--navy)}
#colIII .pt.alive{border-color:var(--coral);color:var(--coral)}
.pt.dead{background:#F3E2E2;border:1.6px solid #C98A8A;color:#A66}
.pt.dead::after{content:"×";position:absolute;font-size:15px;top:-1px;left:5px;color:#A66}
.pt.mover{cursor:pointer}
.pt.mover.gold{border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 3px rgba(147,112,31,.2);transform:scale(1.1)}
.board-foot{display:flex;gap:20px;align-items:center;margin-top:16px;flex-wrap:wrap}
.deaths{margin-left:auto;font-size:14.5px;color:var(--ink-soft)}
.deaths b{font-family:var(--mono);font-size:17px}
.deaths.flash b{color:var(--journal-red)}
.act{padding:24px 0;text-align:center}
.pet-btn{
  appearance:none;background:var(--ink);color:var(--paper);border:none;cursor:pointer;
  font-size:16.5px;font-weight:700;font-family:var(--sans);padding:15px 34px;border-radius:4px;letter-spacing:1px;
  transition:transform .15s,opacity .3s;
}
.pet-btn:hover:not(:disabled){transform:translateY(-2px)}
.pet-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}

/* 揭示/结算/免责 */
.reveal-block{padding:30px 0;border-top:1px solid var(--line)}
.rev-headline{font-family:var(--serif);font-size:32px;font-weight:700;margin-bottom:22px}
.rev-p{color:var(--ink-soft);font-size:18px;max-width:760px;margin-bottom:18px}
.rev-p.echo{color:var(--ink);font-weight:600;font-size:19px}
.quote{margin:22px 0;padding:18px 24px;border-left:4px solid var(--journal-red);background:var(--paper-deep);border-radius:0 4px 4px 0;font-family:var(--serif);font-size:19px;color:var(--ink);max-width:720px}
.receipt-block{padding:36px 0 0}
.belief-stamp{border:2px solid var(--journal-red);border-radius:4px;padding:26px 30px;max-width:700px;transform:rotate(-1deg);background:var(--card)}
.belief-label{font-family:var(--mono);font-size:12.5px;letter-spacing:4px;color:var(--journal-red);margin-bottom:10px}
.belief-text{font-family:var(--serif);font-size:27px;font-weight:700;text-decoration:line-through;text-decoration-color:rgba(166,25,46,.75);text-decoration-thickness:2.5px}
.belief-truth{margin-top:12px;font-size:17px;color:var(--green);font-weight:600}
.next-eps{margin-top:46px}
.next-head{font-family:var(--mono);font-size:13px;letter-spacing:4px;color:var(--ink-faint);margin-bottom:14px}
.next-eps ol{list-style:none}
.next-eps li{display:flex;align-items:baseline;gap:18px;padding:15px 4px;border-bottom:1px solid var(--hairline)}
.next-eps li a{display:flex;gap:18px;align-items:baseline;color:var(--ink);text-decoration:none;width:100%}
.next-eps li a:hover .t{color:var(--journal-red)}
.next-eps .no{font-family:var(--mono);font-size:13.5px;color:var(--journal-red)}
.next-eps .t{font-size:17.5px;font-weight:600;white-space:nowrap}
.next-eps .tease{font-size:14.5px;color:var(--ink-faint)}
.disclaimer{margin-top:44px;font-size:13.5px;color:var(--ink-faint);font-family:var(--mono)}
.reveal-block.hidden{display:none}
.hidden{display:none}

@media (max-width:720px){
  .case-card{grid-template-columns:60px 1fr;grid-template-rows:auto auto}
  .case-card .client{grid-column:1/-1}
  .case-card .go{display:none}
  .design-btns{grid-template-columns:1fr}
  .endp-grid{grid-template-columns:1fr}
  .board{grid-template-columns:1fr;gap:8px}
  .vs{display:none}
  .cat-row{grid-template-columns:100px 1fr 80px 74px}
}

/* ---- 共享组件补全：此前缺失或散在内联样式里的排版，统一收口在此 ---- */
/* 滑杆标签（EP03/EP08 共用） */
.slider-label{font-size:13.5px;color:var(--ink-soft);min-width:96px}
/* 读数卡字号档位（默认大字 25px） */
.readout--sm b{font-size:16px}
.readout--md b{font-size:20px}
/* EP07 见报版面 */
.pub-title--lg{font-size:30px}
.pub-body{margin-top:14px;color:var(--ink-soft);font-size:17px}
.pub-footnote{font-size:14px;color:var(--ink-faint)}
/* EP08 登记表 */
.sys-table{width:100%;border-collapse:collapse;background:var(--card);font-size:14.5px}
.sys-table td{padding:9px 12px;border-bottom:1px solid var(--hairline);color:var(--ink-soft)}
.sys-table td.sk{font-family:var(--mono);font-size:13.5px;letter-spacing:2px;color:var(--ink-faint);border-bottom:1px solid var(--line)}
/* EP06 图例 */
.legend{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;color:var(--ink-soft)}
.dot-demo{width:13px;height:13px;border-radius:50%;display:inline-block}
.dot-demo.alive{border:1.6px solid var(--navy)}
.dot-demo.dead{background:#F3E2E2;border:1.6px solid #C98A8A}
/* SVG 图表文字统一字体（坐标轴/标注） */
.km-wrap svg text,.ni-wrap svg text{font-family:var(--mono)}

/* ---- 可访问性补充 ---- */
:focus-visible{outline:3px solid var(--journal-red);outline-offset:2px;border-radius:2px}
.cold-line,.cold-sub,.cat-note,.endp-note,.rev-p,.brief-body p,.stage-note,.smoke,.pub-body{max-width:40em}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}

/* 粘性页头下的锚点定位 */
section{scroll-margin-top:76px}
