@charset "utf-8";
/* 评测实验台追加层：不改动 style.css 里任何画面、唱片与声谱规则 */
:root{
  --mono:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;
}
html,body{height:auto}
body{overflow-x:hidden;overflow-y:auto}

.lab{
  position:relative;z-index:5;
  margin-left:clamp(250px,23vw,360px);
  margin-right:clamp(90px,12vw,200px);
  padding-top:86px;
  padding-bottom:36px;
  max-width:1000px;
}

/* 長頁面：頁腳回到文檔流，不再懸浮遮住面板 */
.footer{
  position:static;right:auto;bottom:auto;left:auto;
  justify-content:flex-end;
  margin:0 clamp(90px,12vw,200px) calc(var(--spectrum-h) + 32px) clamp(250px,23vw,360px);
  padding:14px 0 0;border-top:1px solid var(--hair);
}

/* 页头 */
.lab-head{padding:0 0 22px;border-bottom:1px solid rgba(59,54,45,.22);margin-bottom:22px}
.lab-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--cinnabar);margin-bottom:12px}
.lab-head h1{
  margin:0 0 14px;font-family:var(--serif);font-weight:600;
  font-size:clamp(25px,2.6vw,36px);line-height:1.45;letter-spacing:.02em;color:var(--ink);
}
.lab-lead{font-size:14px;line-height:1.95;color:var(--ink-soft);margin:0 0 16px;max-width:70ch}
.lab-scope{
  font-size:12px;line-height:1.9;color:var(--ink-soft);
  background:rgba(111,129,120,.075);border-left:2px solid var(--jade);
  padding:11px 14px;
}
.lab-scope b{color:var(--ink)}
.lab-scope a{color:var(--cinnabar);margin-left:6px;white-space:nowrap}

/* 面板 */
.panel{
  background:rgba(252,248,237,.76);
  border:1px solid rgba(59,54,45,.17);
  border-left:3px solid rgba(111,129,120,.58);
  padding:20px 22px 18px;margin:0 0 18px;
}
.panel.revealed{border-left-color:var(--cinnabar);background:rgba(253,246,232,.92)}
.panel-head{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}
.panel-no{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--cinnabar);flex:0 0 auto}
.panel h2{margin:0;font-family:var(--serif);font-size:18.5px;font-weight:600;letter-spacing:.04em;color:var(--ink)}
.panel h3{margin:0 0 8px;font-size:14px;letter-spacing:.06em}
.panel p{font-size:13px;line-height:1.9;color:var(--ink-soft);margin:0 0 13px}
.panel .src{font-size:11.5px;line-height:1.85;color:var(--ink-faint);margin:12px 0 0;padding-top:10px;border-top:1px dashed rgba(59,54,45,.18)}
.lab-footnote{font-size:11.5px;line-height:1.85;color:var(--ink-faint);margin-top:14px}

/* 协议卡 */
.proto{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(59,54,45,.15);border:1px solid rgba(59,54,45,.15);margin:14px 0}
.proto>div{background:rgba(255,252,243,.9);padding:10px 12px;display:flex;flex-direction:column;gap:5px}
.proto b{font-family:var(--mono);font-size:10.5px;font-weight:400;letter-spacing:.06em;color:var(--ink-faint)}
.proto span{font-family:var(--mono);font-size:15px;color:var(--ink)}
.blind{
  display:flex;justify-content:space-between;gap:16px;align-items:center;
  font-size:12px;line-height:1.85;color:var(--ink-soft);
  background:rgba(167,70,53,.055);border-left:2px solid var(--cinnabar);padding:11px 14px;
}
.blind b{color:var(--cinnabar-deep)}
.ci{font-family:var(--mono);font-size:11px;color:var(--jade);white-space:nowrap}
.ci.bad{color:var(--cinnabar)}

/* 列表、标签 */
.checks{list-style:none;margin:0 0 14px;padding:0}
.checks li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px dashed rgba(59,54,45,.16);font-size:12.5px}
.checks b{flex:0 0 168px;font-weight:600;color:var(--ink)}
.checks span{color:var(--ink-soft);line-height:1.75}
.chips,.dim-chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
.chip{
  font-size:11.5px;line-height:1.6;padding:5px 10px;
  border:1px solid rgba(59,54,45,.22);background:rgba(255,252,243,.7);color:var(--ink-soft);
}
.chip.red{border-color:rgba(167,70,53,.5);color:var(--cinnabar-deep);background:rgba(167,70,53,.06)}
.dim-chips .chip{border-color:rgba(111,129,120,.45);color:var(--jade)}
.dims{font-size:12.5px;color:var(--ink-soft);margin:16px 0 0}
.dims b{color:var(--ink);margin-right:10px}

/* 表格 */
.table-wrap{overflow-x:auto;margin-top:14px}
.dt{width:100%;border-collapse:collapse;font-size:12.5px;min-width:460px}
.dt th,.dt td{padding:8px 10px;text-align:left;border-bottom:1px solid rgba(59,54,45,.13);white-space:nowrap}
.dt th{font-size:10.5px;font-weight:400;letter-spacing:.08em;color:var(--ink-faint);border-bottom-color:rgba(59,54,45,.3)}
.dt td.num{font-family:var(--mono)}
.dt td.good{color:var(--jade)}
.dt td.bad{color:var(--cinnabar)}
.dt tr.out td{opacity:.55}
.dt caption{caption-side:bottom;text-align:left;font-size:11px;color:var(--ink-faint);padding-top:9px;line-height:1.7}

/* 按钮 */
.btn{
  font-family:inherit;font-size:12.5px;letter-spacing:.06em;
  padding:8px 15px;border:1px solid rgba(59,54,45,.36);
  background:rgba(255,252,243,.85);color:var(--ink);cursor:pointer;transition:.2s;
}
.btn:hover:not(:disabled){border-color:var(--cinnabar);color:var(--cinnabar)}
.btn:disabled{opacity:.42;cursor:not-allowed}
.btn.ghost{background:transparent;border-color:rgba(59,54,45,.22);color:var(--ink-soft)}
.btn.primary{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff6e6}
.btn.primary:hover:not(:disabled){background:var(--cinnabar-deep);color:#fff}
.btn.primary:disabled{background:rgba(167,70,53,.4);border-color:transparent}
.btn.on{border-color:var(--cinnabar);color:var(--cinnabar)}

/* 引文与一票否决 */
.quote{
  margin:12px 0;padding:12px 16px;font-family:var(--kai);font-size:15px;line-height:1.9;
  color:var(--ink);background:rgba(255,252,242,.6);border-left:2px solid var(--gold);
}
.quote.big{font-size:16px;line-height:2}
.quote cite{display:block;margin-top:7px;font-family:var(--serif);font-size:11px;font-style:normal;color:var(--ink-faint);letter-spacing:.06em}
.veto-box,.good-box{margin-top:16px;padding:14px 16px;border:1px solid rgba(59,54,45,.16);background:rgba(255,252,243,.55)}
.good-box{border-left:2px solid var(--jade)}
.good-box>b{font-size:12.5px;letter-spacing:.06em}
.veto-stamp{
  display:inline-block;transform:rotate(-6deg);margin:4px 0 8px;
  border:2px solid var(--cinnabar);color:var(--cinnabar);
  font-family:var(--kai);font-size:19px;letter-spacing:.18em;padding:5px 12px;
}
.veto-box p{font-size:12.5px;margin:6px 0 0}

/* 五根支柱 */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:14px 0}
.pillar{border:1px solid rgba(59,54,45,.17);background:rgba(255,252,243,.62);padding:11px 13px}
.pillar b{display:block;font-size:12.5px;margin-bottom:5px;color:var(--ink)}
.pillar span{font-size:11.5px;line-height:1.8;color:var(--ink-soft)}

/* 180 格盲评网格 */
.grid-toolbar{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 8px;font-size:12px;color:var(--ink-soft);letter-spacing:.06em}
.progress{font-family:var(--mono);font-size:12.5px;color:var(--cinnabar)}
.score-scroll{overflow-x:auto;border:1px solid rgba(59,54,45,.2);background:rgba(255,252,243,.55);padding:10px}
.score-grid{display:grid;grid-template-columns:46px repeat(6,minmax(46px,1fr));gap:3px;min-width:400px}
.gh{
  font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--ink-faint);
  display:flex;align-items:center;justify-content:center;height:24px;
}
.gh.q{justify-content:flex-start}
.cell{
  font-family:var(--mono);font-size:11.5px;height:24px;line-height:24px;text-align:center;
  border:1px solid transparent;background:rgba(59,54,45,.055);color:transparent;
  cursor:pointer;user-select:none;transition:background .12s;
}
.cell:hover{border-color:rgba(167,70,53,.55)}
.cell.filled{background:rgba(111,129,120,.26);color:var(--ink)}
.cell.filled.hi{background:rgba(176,141,79,.36)}
.cell.filled.lo{background:rgba(167,70,53,.20);color:var(--cinnabar-deep)}
.grid-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:12px}
.grid-actions .btn.primary{margin-left:auto}

/* 解密结果 */
.reveal-table{width:100%;border-collapse:collapse;font-size:12.5px;margin:6px 0 16px}
.reveal-table th,.reveal-table td{padding:9px 10px;border-bottom:1px solid rgba(59,54,45,.14);text-align:left}
.reveal-table th{font-size:10.5px;font-weight:400;letter-spacing:.08em;color:var(--ink-faint)}
.reveal-table td.mono{font-family:var(--mono)}
.reveal-table tr.mvp{background:rgba(176,141,79,.16)}
.reveal-table tr.out{opacity:.58}
.mvp-card{
  border:1px solid var(--gold);background:rgba(255,250,235,.9);
  padding:16px 18px;margin:14px 0;
}
.mvp-card .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--cinnabar)}
.mvp-card b{display:block;font-family:var(--mono);font-size:19px;margin:7px 0;color:var(--ink)}
.mvp-card p{margin:0;font-size:12.5px}

/* 职责边界 */
.split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px}
.split-col{border:1px solid rgba(59,54,45,.18);padding:14px 16px;background:rgba(255,252,243,.6)}
.split-col.soft{border-top:2px solid var(--jade)}
.split-col.hard{border-top:2px solid var(--cinnabar)}
.split-col p{font-size:12.5px;margin:0 0 8px}
.split-col small{font-size:11px;color:var(--ink-faint);letter-spacing:.06em}

/* 响应式 */
@media (max-width:1000px){
  .lab{margin-left:clamp(200px,26vw,270px);margin-right:clamp(80px,10vw,120px);padding-top:76px}
  .proto{grid-template-columns:repeat(2,1fr)}
  .checks b{flex-basis:140px}
}
@media (max-width:680px){
  .lab{margin-left:14px;margin-right:14px;padding-top:68px;padding-bottom:24px}
  .footer{margin:0 14px calc(var(--spectrum-h) + 26px)}
  .lab-head{padding-right:74px}
  .lab-head h1{font-size:21px}
  .panel{padding:16px 14px 15px}
  .panel h2{font-size:16px}
  .proto,.pillars,.split{grid-template-columns:1fr}
  .checks li{flex-direction:column;gap:2px}
  .checks b{flex-basis:auto}
  .blind{flex-direction:column;align-items:flex-start}
  .grid-actions .btn.primary{margin-left:0;width:100%}
  .master-wrap{opacity:.22;pointer-events:none}
  .topbar-mid{display:none}
}
