/* =====================================================================
   小游戏 · 盘口终端风格
   四个游戏（猜涨跌 / 投资模拟器 / 信号体检 / 估值温度计）共用：
   行情卡、K 线工具栏、报价条、账户条、提问区、结算页
   ===================================================================== */

.game-page .wrap{max-width:880px;padding-top:28px}
.game-page .wrap > h1{margin-bottom:8px}
.game-page .wrap > .lead{margin-bottom:22px;max-width:700px}
.game-page .wrap > .back{margin-bottom:10px}

/* ---------------------------------------------------------------------
   行情终端卡
   --------------------------------------------------------------------- */
.terminal{
  position:relative;overflow:hidden;
  background:var(--panel);border:1px solid var(--panel-line);
  border-radius:18px;margin-bottom:14px;
  box-shadow:0 18px 44px rgba(0,0,0,.24);
}
.terminal::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right,rgba(201,255,94,.028) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(201,255,94,.028) 1px,transparent 1px);
  background-size:36px 36px;
}
.terminal > *{position:relative;z-index:1}

.term-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 16px 11px;border-bottom:1px solid var(--panel-line);
}
.term-sym{display:flex;align-items:baseline;gap:9px;min-width:0}
.term-code{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--accent);white-space:nowrap;
}
.term-name{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;
  color:var(--panel-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.term-live{
  display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;
  color:var(--panel-muted);
}
.term-live i{
  width:5px;height:5px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
  animation:livePulse 2.4s ease-in-out infinite;
}
@keyframes livePulse{
  0%,100%{opacity:1}
  50%{opacity:.42}
}

/* 报价条 */
.quote-strip{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 16px;border-bottom:1px solid var(--panel-line);
  flex-wrap:wrap;
}
.q-main{display:flex;align-items:baseline;gap:9px}
.q-main b{
  font-family:var(--font-mono);font-size:23px;font-weight:600;line-height:1;
  color:var(--panel-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.q-main .ustat{
  font-family:var(--font-mono);font-size:11.5px;font-weight:600;
  letter-spacing:.01em;font-variant-numeric:tabular-nums;
}
.q-cells{display:flex;gap:14px;flex-wrap:wrap}
.q-cells span{display:flex;align-items:baseline;gap:5px}
.q-cells i{
  font-style:normal;font-family:var(--font-mono);font-size:8.5px;
  letter-spacing:.08em;color:var(--panel-muted);
}
.q-cells b{
  font-family:var(--font-mono);font-size:10.5px;font-weight:500;
  color:var(--panel-ink);font-variant-numeric:tabular-nums;
}

/* 图 */
.terminal canvas{
  display:block;width:100%;height:400px;touch-action:pan-y;
  cursor:crosshair;outline:none;
}
.terminal canvas:focus-visible{
  outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px;
}

/* 图表工具栏：周期 / 主图 / 副图 / 缩放 */
.ktool{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;
  padding:8px 12px;border-bottom:1px solid var(--panel-line);
  background:rgba(5,10,8,.28);
}
.ktool-grp{display:flex;align-items:center;gap:4px;min-width:0}
.ktool-k{
  font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;
  color:var(--panel-muted);margin-right:2px;white-space:nowrap;
}
.ktool-btn{
  font-family:var(--font-mono);font-size:10px;line-height:1;
  color:var(--panel-muted);background:transparent;
  border:1px solid var(--panel-line);border-radius:7px;
  padding:6px 8px;cursor:pointer;white-space:nowrap;
  transition:color .12s ease,background .12s ease,border-color .12s ease;
}
.ktool-btn:hover{color:var(--panel-ink);border-color:rgba(201,255,94,.5)}
.ktool-btn.on{
  color:#0b1210;background:var(--accent);border-color:var(--accent);font-weight:700;
}
.ktool-btn:disabled{opacity:.42;cursor:not-allowed}
.ktool-ic{min-width:28px;padding:6px 6px}
.ktool-zoom{margin-left:auto}

/* 离开右边界后提示还有多少根没看 */
.terminal > .ktool-jump{
  position:absolute;left:50%;bottom:60px;transform:translateX(-50%);
  z-index:3;border:1px solid var(--accent);border-radius:999px;
  padding:7px 11px;cursor:pointer;
  font-family:var(--font-mono);font-size:9.5px;line-height:1;
  color:#0b1210;background:var(--accent);
  box-shadow:0 6px 18px rgba(0,0,0,.3);
}
.terminal > .ktool-jump:hover{filter:brightness(1.06)}
.terminal > .ktool-jump[hidden]{display:none}

.term-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 16px 11px;border-top:1px solid var(--panel-line);
  font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;
  color:var(--panel-muted);
}
.term-foot span:first-child{opacity:.75}

/* 涨跌色（A 股习惯：红涨绿跌） */
.up{color:var(--up)}
.down{color:var(--down)}

/* ---------------------------------------------------------------------
   账户条（模拟器）
   --------------------------------------------------------------------- */
.acct{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:16px 18px;margin-bottom:14px;
}
.acct-main{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.acct-l{
  font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;
  color:var(--muted);text-transform:uppercase;
}
.acct-n{
  font-family:var(--font-mono);font-size:27px;font-weight:600;line-height:1;
  color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums;
}
.acct-d{
  font-family:var(--font-mono);font-size:13px;font-weight:600;
  font-variant-numeric:tabular-nums;
}
.acct-cells{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
  margin-top:14px;padding-top:13px;border-top:1px solid var(--line);
}
.acct-cells > div{display:flex;flex-direction:column;gap:4px;min-width:0}
.acct-cells span{
  font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;
  color:var(--muted);white-space:nowrap;
}
.acct-cells b{
  font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}

/* ---------------------------------------------------------------------
   提问区（猜涨跌）
   --------------------------------------------------------------------- */
.quest{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:16px 18px;margin-bottom:14px;
}
.quest-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:10px;
}
.quest-round,.quest-score{
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;
  color:var(--muted);
}
.quest-score{color:var(--brand)}
.quest-q{
  margin:0 0 13px;font-size:15px;font-weight:650;line-height:1.5;
  color:var(--ink);letter-spacing:-.01em;
}

.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choices .btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:14px 12px;
}
.c-ic{font-size:15px;line-height:1}
.c-tx{font-size:16px;font-weight:700;letter-spacing:-.01em;color:#fff}
/* 副标题不能用 opacity 压暗：半透明白落在深色底上会掉到 4:1 以下。
   用接近纯白的实色，靠字号和字重区分层级。 */
.c-sub{
  font-family:var(--font-mono);font-size:9.5px;font-weight:400;
  letter-spacing:.05em;color:rgba(255,255,255,.92);
}

.quest-fb{
  margin:12px 0 0;min-height:1.2em;text-align:center;
  font-size:12.5px;line-height:1.6;color:var(--muted);font-weight:500;
}
.quest-fb.good{color:var(--brand)}
.quest-fb.bad{color:var(--up)}
.quest-fb b{font-family:var(--font-mono);font-weight:600}

/* 每根的结果点 */
.dots{display:flex;gap:5px;margin-top:12px;justify-content:center;min-height:8px}
.dots i{
  width:8px;height:8px;border-radius:50%;display:block;
  background:var(--line);transition:all .2s ease;
}
.dots i.hit{background:var(--down);box-shadow:0 0 0 2px color-mix(in srgb,#0e9d6b 20%,transparent)}
.dots i.miss{background:var(--up);box-shadow:0 0 0 2px color-mix(in srgb,#ad3227 18%,transparent)}
.dots i.pending{background:transparent;border:1px dashed var(--line-2)}

/* ---------------------------------------------------------------------
   操作区（模拟器）
   --------------------------------------------------------------------- */
.acts{display:grid;gap:8px}
.acts-row{display:grid;gap:8px}
.acts-5{grid-template-columns:repeat(5,1fr)}
.acts-4{grid-template-columns:repeat(4,1fr)}
.acts-5 .btn,.acts-4 .btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:11px 4px;
}
.acts-5 .a-tx{font-size:13px}
.a-tx{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.a-tx{color:inherit}
.a-sub{
  font-family:var(--font-mono);font-size:8.5px;font-weight:400;
  letter-spacing:.04em;white-space:nowrap;
}
/* 深色按钮里的副标用实色白；浅色按钮里的副标继承主色，天然有对比 */
.btn.buy .a-sub,.btn.sell .a-sub,.btn.half .a-sub{color:rgba(255,255,255,.92)}
.btn.hold .a-sub,.btn.ghost .a-sub{color:var(--muted)}
/* 微调按钮：中性底，不抢目标档位的颜色语义 */
.btn.tune{
  padding:10px 6px;font-family:var(--font-mono);font-size:12.5px;
  background:var(--paper-2);color:var(--ink);border:1px solid var(--line);
}
.btn.tune:hover{border-color:var(--ink);filter:none}
.acts-hold{padding:11px 14px;font-size:13px}
.acts-note{
  margin:11px 0 0;font-size:11px;line-height:1.7;color:var(--muted);
}
.acts-wrap{margin-bottom:14px}

/* ---------------------------------------------------------------------
   日志
   --------------------------------------------------------------------- */
.log{
  background:var(--panel);border:1px solid var(--panel-line);
  border-radius:12px;padding:11px 14px;margin-bottom:14px;
  font-family:var(--font-mono);font-size:10.5px;line-height:1.85;
  color:var(--panel-muted);max-height:150px;overflow-y:auto;
}
.log p{margin:0;display:flex;gap:9px}
.log p i{
  font-style:normal;color:var(--accent);flex:0 0 auto;
  opacity:.8;font-size:9.5px;padding-top:1px;
}
.log b{color:var(--panel-ink);font-weight:600}
.log .log-buy{color:#ffb3a8}
.log .log-sell{color:#8fe3c0}
/* 不要用 opacity 压暗：深底上会掉到 4:1 以下。用中性灰 */
.log .log-flat{color:#8f9b95}
html[data-mode="night"] .log .log-flat{color:#8a9a90}
.log-empty{color:var(--panel-muted);opacity:.7;margin:0;display:block!important}

/* ---------------------------------------------------------------------
   结算页
   --------------------------------------------------------------------- */
.reveal{
  position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:24px 22px;margin-bottom:16px;
}
.reveal::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand),var(--accent));
}
.rev-badge{text-align:center;margin-bottom:8px}
.rev-badge span{
  display:inline-block;font-family:var(--font-mono);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brand);
  background:var(--paper-2);border:1px solid var(--line);
  border-radius:999px;padding:4px 11px;
}
.rev-title{
  margin:0 0 4px;text-align:center;font-size:23px;letter-spacing:-.025em;
  font-weight:750;line-height:1.3;
}
.rev-sub{
  margin:0 0 18px;text-align:center;font-size:12.5px;line-height:1.6;
  color:var(--muted);font-family:var(--font-mono);letter-spacing:.01em;
}

.rev-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px;
}
.rev-grid.six{grid-template-columns:repeat(3,1fr)}
.rev-cell{
  background:var(--paper-2);border:1px solid var(--line);border-radius:12px;
  padding:12px 10px;text-align:center;
}
.rev-cell span{
  display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;
  color:var(--muted);margin-bottom:6px;
}
.rev-cell b{
  display:block;font-family:var(--font-mono);font-size:17px;font-weight:600;
  letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.rev-cell b.up{color:var(--up)}
.rev-cell b.down{color:var(--down)}

.cmp-wrap{
  background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;
  padding:11px 12px 8px;margin-bottom:15px;
}
.cmp-legend{
  display:flex;gap:14px;margin-bottom:6px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;
  color:var(--panel-muted);
}
.cmp-legend span{display:inline-flex;align-items:center;gap:5px}
.cmp-legend i{width:12px;height:2px;border-radius:2px;display:block}
.lg-you{background:#c9ff5e}
.lg-bh{background:#7fb2f0}
.cmp-wrap canvas{display:block;width:100%;height:150px}

.rev-note{
  background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--brand);
  border-radius:10px;padding:13px 15px;margin-bottom:14px;
  font-size:12.5px;line-height:1.85;color:var(--ink-2);
}
.rev-links{
  display:flex;flex-direction:column;gap:7px;margin-bottom:16px;
}
.rev-links a{
  font-size:11.5px;line-height:1.6;color:var(--brand);
  border-bottom:1px solid transparent;align-self:flex-start;
}
.rev-links a:hover{border-color:currentColor}
.rev-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---------------------------------------------------------------------
   信号条（信号体检）：始终告诉玩家「这局验的是哪个信号、教科书怎么说」
   --------------------------------------------------------------------- */
.sig-box{
  display:flex;align-items:flex-start;gap:10px;
  background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--brand);
  border-radius:10px;padding:10px 13px;margin-bottom:13px;
}
.sig-tag{
  flex:0 0 auto;margin-top:1px;white-space:nowrap;
  font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;
  color:var(--brand);background:var(--card);
  border:1px solid var(--line);border-radius:999px;padding:3px 8px;
}
.sig-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.sig-body b{
  font-size:13.5px;font-weight:700;line-height:1.35;
  letter-spacing:-.01em;color:var(--ink);
}
.sig-body span{font-size:11.5px;line-height:1.6;color:var(--muted)}

/* ---------------------------------------------------------------------
   结算页的附加区：交叉验证表
   --------------------------------------------------------------------- */
.rev-extra{margin-bottom:15px}
.rev-extra-note{
  margin:10px 0 0;font-size:11.5px;line-height:1.75;color:var(--muted);
}
.rev-table-wrap{margin-top:12px;overflow-x:auto}
.rev-table{
  width:100%;border-collapse:collapse;
  font-family:var(--font-mono);font-size:10.5px;
  font-variant-numeric:tabular-nums;
}
.rev-table caption{
  caption-side:top;text-align:left;padding-bottom:8px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;color:var(--muted);
}
.rev-table th,.rev-table td{
  padding:7px 8px;text-align:right;white-space:nowrap;
  border-bottom:1px solid var(--line);color:var(--ink-2);
}
.rev-table thead th{
  font-size:8.5px;font-weight:500;letter-spacing:.06em;color:var(--muted);
  border-bottom:1px solid var(--line-2);
}
.rev-table tbody th{text-align:left;font-weight:600;color:var(--ink)}
.rev-table tbody th em{
  font-style:normal;margin-left:5px;padding:1px 5px;
  font-size:8px;letter-spacing:.06em;color:var(--brand);
  border:1px solid var(--line);border-radius:999px;
}
.rev-table tbody tr.is-self{background:var(--paper-2)}
.rev-table tbody tr:last-child th,.rev-table tbody tr:last-child td{border-bottom:0}
.rev-table td.up{color:var(--up)}
.rev-table td.down{color:var(--down)}
.rev-table td .zone{margin-left:2px;font-size:8.5px;letter-spacing:.04em;color:var(--muted)}
.rev-table tbody th .d{margin-left:6px;font-weight:400;color:var(--muted)}

/* ---------------------------------------------------------------------
   估值温度计
   --------------------------------------------------------------------- */
.thermo{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:15px 18px 13px;margin-bottom:14px;
}
.thermo-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:7px;
}
.thermo-k{
  font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);
}
.thermo-zone{
  font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;
  border:1px solid var(--line);border-radius:999px;padding:3px 9px;
  color:var(--muted);background:var(--paper-2);
}
.thermo-zone.z-low{color:#0c6b48;border-color:#9dc6b5}
.thermo-zone.z-high{color:#a83a2d;border-color:#d5aca5}
.thermo-num{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.thermo-num b{
  font-family:var(--font-mono);font-size:30px;font-weight:600;line-height:1;
  letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.thermo-num span{
  font-family:var(--font-mono);font-size:11px;color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.thermo-track{
  position:relative;height:9px;border-radius:999px;
  background:linear-gradient(90deg,#2f9e72 0%,#8fbe5a 26%,#d6c04a 50%,#dd9350 74%,#cd5a4b 100%);
}
.thermo-mark{
  position:absolute;top:-4px;left:0;width:3px;height:17px;border-radius:2px;
  background:var(--ink);box-shadow:0 0 0 2px var(--card);
  transform:translateX(-50%);
  transition:left .45s cubic-bezier(.4,0,.2,1);
}
.thermo-ticks{
  display:flex;justify-content:space-between;margin-top:6px;
  font-family:var(--font-mono);font-size:8.5px;color:var(--muted);
}
.thermo-note{margin:10px 0 0;font-size:11.5px;line-height:1.7;color:var(--muted)}

/* 三选一（估值温度计） */
.acts-3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.acts-3 .btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:13px 8px;
}

/* 进度点改成「你每次的仓位」：加仓红 / 保持黄 / 减仓绿 */
.dots i.add{background:var(--up)}
.dots i.hold{background:#c9b04a}
.dots i.cut{background:var(--down)}

.game-note{
  margin:16px 0 0;font-size:10.5px;line-height:1.8;color:var(--muted);
  text-align:center;max-width:640px;margin-inline:auto;
}

/* ---------------------------------------------------------------------
   按钮（两游戏共用）
   --------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;border:0;border-radius:12px;padding:14px 16px;
  font-size:15px;font-weight:650;line-height:1;cursor:pointer;
  /* day 底深字白；夜盘 --ink 变浅，必须把字改成深色，否则白底白字 */
  color:#fff;background:var(--ink);
  transition:transform .12s ease,filter .12s ease,opacity .12s ease;
  text-decoration:none;
}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn:disabled{
  cursor:not-allowed;filter:none;transform:none;
  /* 不用 opacity：整块透明会把白字压成浅色，对比度掉到 2:1。
     改成中性底 + 深字，禁用态依然可读。 */
  background:#d8d1c0!important;
  color:#3a4642!important;
  box-shadow:none;
}
html[data-mode="night"] .btn:disabled{
  background:#2b3733!important;
  color:#b9c6bd!important;
}
.btn.ghost{
  background:var(--card);color:var(--ink);border:1.5px solid var(--line);
}
.btn.ghost:hover{border-color:var(--ink);filter:none}
/* 次级按钮：宽度跟随内容，不要撑满整行 */
.btn.sm{width:auto;padding:11px 15px;font-size:13px;border-radius:10px}

.up-btn,.btn.up{background:var(--up);color:#fff}
.btn.down{background:#0a7a52;color:#fff}
.btn.buy{background:var(--up);color:#fff}
.btn.sell{background:#0a7a52;color:#fff}
.btn.half{background:#6b5a1f;color:#fff}
.btn.hold{background:var(--paper-2);color:var(--ink);border:1px solid var(--line)}

/* ---------------------------------------------------------------------
   游戏页首
   --------------------------------------------------------------------- */
.game-kicker{
  display:flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin:0 0 10px;
}
.game-kicker::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--sec,var(--accent));
  box-shadow:0 0 0 4px color-mix(in srgb,var(--sec,var(--accent)) 16%,transparent);
}
.game-page footer{margin-top:28px}

/* ---------------------------------------------------------------------
   响应式
   --------------------------------------------------------------------- */
@media(max-width:720px){
  .terminal canvas{height:320px}
  .acct-cells{grid-template-columns:repeat(2,1fr);row-gap:12px}
  .rev-grid{grid-template-columns:repeat(2,1fr)}
  .rev-grid.six{grid-template-columns:repeat(3,1fr)}
  .q-main b{font-size:20px}
}
@media(max-width:560px){
  .game-page .wrap{padding-top:18px}
  .game-page .wrap > .lead{font-size:13.5px}
  .terminal canvas{height:260px}
  .ktool{padding:6px 8px;gap:5px 7px}
  .ktool-k{display:none}
  .ktool-btn{font-size:9.5px;padding:5px 6px}
  .ktool-ic{min-width:24px}
  .ktool-zoom{margin-left:0}
  .term-head,.quote-strip,.term-foot{padding-left:12px;padding-right:12px}
  .q-main b{font-size:18px}
  .q-cells{gap:10px}
  .q-cells b{font-size:10px}
  .quest{padding:14px}
  .quest-q{font-size:14px}
  .c-tx{font-size:15px}
  .acts-5{grid-template-columns:repeat(5,1fr)}
  .acts-5 .btn{padding:9px 2px}
  .acts-5 .a-tx{font-size:12px}
  .acts-5 .a-sub{font-size:7.5px}
  .a-tx{font-size:14px}
  .log{font-size:10px;max-height:120px}
  .rev-acts{grid-template-columns:1fr}
  .reveal{padding:20px 16px}
  .rev-title{font-size:20px}
  .cmp-wrap canvas{height:130px}
  .sig-box{flex-direction:column;gap:7px}
  .sig-body b{font-size:13px}
  .thermo{padding:13px 14px 11px}
  .thermo-num b{font-size:26px}
  .acts-3 .btn{padding:12px 6px}
  .acts-3 .a-tx{font-size:13.5px}
  .acts-3 .a-sub{font-size:8px}
  .rev-table{font-size:9.5px}
  .rev-table th,.rev-table td{padding:6px 5px}
}
@media(prefers-reduced-motion:reduce){
  .term-live i{animation:none}
}

/* 页首已经有 .game-kicker，关掉全站自动的 h1::before 伪元素，避免两行 kicker */
.game-page .wrap > h1::before{display:none}

/* ---------------------------------------------------------------------
   夜盘：--up / --down 变成亮色（#ff6b5e / #2fd39b），
   白字压不住，改用深色文字；「半仓」也一起调亮。
   --------------------------------------------------------------------- */
html[data-mode="night"] .btn.up,
html[data-mode="night"] .btn.buy,
html[data-mode="night"] .btn.down,
html[data-mode="night"] .btn.sell{color:#0b1210}
/* 底色也要换成夜盘的亮绿，否则深字压在硬编码的深绿 #0a7a52 上只有 3.5:1 */
html[data-mode="night"] .btn.down,
html[data-mode="night"] .btn.sell{background:var(--down)}
html[data-mode="night"] .btn.up .c-tx,
html[data-mode="night"] .btn.down .c-tx,
html[data-mode="night"] .btn.buy .a-tx,
html[data-mode="night"] .btn.sell .a-tx{color:#0b1210}
html[data-mode="night"] .btn.up .c-sub,
html[data-mode="night"] .btn.down .c-sub,
html[data-mode="night"] .btn.buy .a-sub,
html[data-mode="night"] .btn.sell .a-sub{color:rgba(11,18,16,.78)}
html[data-mode="night"] .btn.half{background:#e0c05f;color:#0b1210}
html[data-mode="night"] .btn.half .a-sub{color:rgba(11,18,16,.78)}
html[data-mode="night"] .btn.tune{color:var(--ink);background:var(--paper-2);border-color:var(--line)}

/* 夜盘里 --brand 是亮青绿，做正文色对比不足；改用强调色 */
html[data-mode="night"] .game-play{color:var(--accent)}
html[data-mode="night"] .quest-score{color:var(--accent)}
html[data-mode="night"] .rev-badge span{color:var(--accent)}
html[data-mode="night"] .rev-links a{color:var(--accent)}
html[data-mode="night"] .game-item:hover .game-play{color:var(--ink)}
html[data-mode="night"] .sig-tag{color:var(--accent)}
html[data-mode="night"] .rev-table tbody th em{color:var(--accent)}
/* 温度计的档位标签：浅色档位在深底上对比不足，换成亮色 */
html[data-mode="night"] .thermo-zone.z-low{color:#6fe0b0;border-color:#2f5c4b}
html[data-mode="night"] .thermo-zone.z-high{color:#ff9b8f;border-color:#5e3a35}

/* 夜盘：默认按钮的 --ink 是浅色，白字会看不见 */
html[data-mode="night"] .btn{color:#0b1210}
html[data-mode="night"] .btn.ghost{color:var(--ink);background:var(--card);border-color:var(--line)}
html[data-mode="night"] .btn.hold{color:var(--ink)}

/* 日志区是 max-height + overflow-y，axe 要求可聚焦；页面已加 tabindex="0" */
.log:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* 游戏增强：怎么玩、最佳成绩、战绩分享 */
.game-help{
  display:inline-flex;align-items:center;gap:4px;margin:8px 0 0;
  padding:5px 11px;border:1px solid var(--line);border-radius:999px;
  background:transparent;color:var(--muted);font:inherit;font-size:11.5px;
  cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em;
}
.game-help:hover{border-color:var(--brand);color:var(--brand)}
.game-best{margin:8px 0 0;font-size:11.5px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em}
.game-best-line{margin:10px 0 0;font-size:12.5px;color:var(--muted);font-family:var(--font-mono)}
.game-rules{
  width:min(560px,calc(100vw - 32px));max-height:min(80vh,620px);overflow:auto;
  padding:26px 26px 22px;border:1px solid var(--line);border-radius:20px;
  background:var(--card);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.game-rules::backdrop{background:rgba(4,8,6,.62);backdrop-filter:blur(3px)}
.game-rules h2{margin:0 30px 12px 0;font-size:20px;letter-spacing:-.02em}
.game-rules ol{margin:0;padding-left:20px;display:grid;gap:8px;font-size:13px;line-height:1.7;color:var(--muted)}
.game-rules-note{margin:16px 0 0;padding-top:12px;border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}
.game-rules-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:18px;line-height:1;cursor:pointer}
.game-rules-close:hover{border-color:var(--brand);color:var(--brand)}
@media (max-width:520px){.game-rules{padding:22px 18px 18px}.game-rules h2{font-size:18px}}
