/* ============================================================
 * 菌脉回春 · 样式 (TMA 移动优先, 暗色)
 * ============================================================ */
:root {
  --bg0:#0d1520; --bg1:#2a3848;
  --ink:#e8ecf0; --muted:#9fb0c2;
  --green:#5fd06a; --orange:#e09a3c; --purple:#a99cff; --poll:#c04fd0;
  --fertile:#2f4a3c; --barren:#1c2633; --dead:#6b4f38; --rock:#3a3a44;
  --panel:rgba(10,16,24,.82); --bd:#3a5a78;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; margin:0; }
body {
  font-family: -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  background: linear-gradient(160deg, var(--bg0), var(--bg1));
  color: var(--ink); overscroll-behavior:none;
  user-select:none; -webkit-user-select:none;
}
#app { max-width:480px; margin:0 auto; height:100%; position:relative; overflow:hidden; }
.screen { position:absolute; inset:0; display:none; flex-direction:column; }
.screen.active { display:flex; }
.hidden { display:none !important; }

/* ---------- 通用按钮 ---------- */
.btn { display:block; width:100%; margin:10px 0; padding:14px; font-size:15px;
  border:1px solid var(--bd); border-radius:12px; color:var(--ink); background:var(--panel);
  cursor:pointer; transition:transform .06s; }
.btn:active { transform:scale(.98); }
.btn-primary { border-color:var(--green); color:#0d1520; background:var(--green); font-weight:700; }
.btn-danger { border-color:#c2504f; color:#ffd2d1; }
.icon-btn { border:1px solid var(--bd); background:var(--panel); color:var(--ink);
  border-radius:10px; width:38px; height:38px; font-size:26px; line-height:1; cursor:pointer; }
.topbar { display:flex; align-items:center; gap:12px; padding:14px 16px; }
.topbar h2 { margin:0; font-size:18px; }

/* ---------- 主菜单 ---------- */
#s-menu { align-items:center; justify-content:center; padding:24px; text-align:center; }
.logo { font-size:46px; font-weight:800; margin:0 0 6px; letter-spacing:2px;
  text-shadow:0 0 24px rgba(95,208,106,.45); }
.logo span { color:var(--green); }
.brand-en { margin:0 0 4px; font-size:13px; letter-spacing:8px; text-indent:8px;
  color:var(--muted); font-weight:600; }
.sub { color:var(--muted); font-size:13px; margin:0 0 22px; }
.stat-line { font-size:13px; color:var(--muted); margin-bottom:8px; }
.stat-line b { color:var(--ink); }
.menu-btns { width:100%; max-width:300px; }

/* ---------- 选关 ---------- */
.lv-grid { flex:1; overflow:auto; padding:8px 16px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-content:start; }
.lv-cell { aspect-ratio:1/1; border:1px solid var(--bd); border-radius:14px; background:var(--panel);
  display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; }
.lv-cell.locked { opacity:.28; }
.lv-cell .n { font-size:22px; font-weight:800; }
.lv-cell .nm { font-size:11px; color:var(--muted); text-align:center; }
.lv-cell .st { font-size:12px; color:var(--orange); letter-spacing:1px; }

/* ---------- 游戏区 ---------- */
#s-game { padding:8px; }
.play-area { position:relative; flex:1; border:1px solid var(--bd); border-radius:16px;
  background:var(--panel); overflow:hidden; }
#board { position:absolute; inset:0; width:100%; height:100%; display:block; }
#hud { position:absolute; left:10px; right:10px; top:10px; display:flex; gap:8px; justify-content:center; }
.hud-item { background:rgba(8,13,20,.72); border:1px solid var(--bd); border-radius:10px;
  padding:6px 12px; text-align:center; font-size:15px; font-weight:700; min-width:64px; }
.hud-item .lbl { display:block; font-size:10px; color:var(--muted); font-weight:400; }

#toolbar { display:flex; gap:8px; padding:10px 4px 0; }
.tbtn { flex:1; height:64px; border:1px solid var(--bd); border-radius:14px;
  background:var(--panel); color:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; }
.tbtn i { font-style:normal; width:26px; height:26px; border-radius:50%; font-size:12px;
  display:flex; align-items:center; justify-content:center; color:#0d1520; font-weight:800; }
.tbtn b { font-size:12px; margin-top:4px; }
.tbtn.selected { border-color:var(--accent,var(--green)); box-shadow:0 0 0 2px var(--accent,var(--green)) inset; }
.tN { --accent:var(--green); } .tD { --accent:var(--orange); } .tI { --accent:var(--purple); }
.tN i { background:var(--green); } .tD i { background:var(--orange); } .tI i { background:var(--purple); }
.tbtn-skip { flex:.6; height:64px; color:var(--muted); font-size:13px; }

/* ---------- 升级 / 成就 ---------- */
#up-list, #ac-list { flex:1; overflow:auto; padding:8px 16px 24px; }
.card { background:var(--panel); border:1px solid var(--bd); border-radius:14px; padding:14px; margin-bottom:12px; }
.card .tt { font-weight:700; }
.card .ds { color:var(--muted); font-size:12px; margin:4px 0; }
.card .lv { color:var(--orange); font-size:12px; }
.maxed { color:var(--green); font-size:13px; font-weight:700; }
.ach-locked { opacity:.45; }
.ach-locked .nm { color:var(--muted); }

/* ---------- 设置 ---------- */
.settings { padding:16px; }
.info-card { background:var(--panel); border:1px solid var(--bd); border-radius:14px; padding:14px;
  font-size:13px; color:var(--muted); margin-top:16px; line-height:1.7; }

/* ---------- 覆盖浮层 ---------- */
.overlay { position:absolute; inset:0; background:rgba(6,10,16,.82); backdrop-filter:blur(3px);
  z-index:5; display:flex; align-items:center; justify-content:center; padding:24px; }
.toast { position:absolute; left:50%; top:70px; transform:translateX(-50%); z-index:6;
  background:rgba(20,28,40,.95); border:1px solid var(--bd); color:var(--ink);
  padding:10px 18px; border-radius:10px; font-size:13px; }
.overlay-card { width:100%; max-width:360px; background:var(--panel); border:1px solid var(--bd);
  border-radius:18px; padding:22px; text-align:center; }
.overlay-card h2 { margin:0 0 6px; }
.overlay-card .big { font-size:15px; color:var(--muted); margin-bottom:14px; }
.overlay-card .meta { font-size:13px; color:var(--muted); margin-bottom:8px; }
.hint { font-size:12px; color:var(--muted); margin-top:16px; }

/* 演示广告红框 */
.demo-ad { border:2px solid #e45; border-radius:8px; display:block; width:100%; padding:12px;
  background:rgba(120,20,25,.25); color:#ffd2d4; font-size:13px; margin:8px 0; cursor:pointer; }

/* 静默演示标签(用于确认非真实广告) */
.demo-tag { font-size:10px; color:var(--muted); margin-top:4px; }