/* 《方块人生》· v0.4 样式
 * 默认浅色（MC 草绿米白）；[data-theme="dark"] 深色霓虹
 */
:root {
  --bg: #e8e0cc;
  --bg2: #f5efdc;
  --card: #fffdf4;
  --card2: #f3ecd6;
  --ink: #3a3226;
  --muted: #8a7f6a;
  --green: #5a8f3c;
  --green2: #7cb342;
  --gold: #c9a227;
  --red: #c05545;
  --blue: #4a7ba6;
  --line: #d4c8ac;
  --shadow: 0 3px 0 #b8ac88, 0 6px 14px rgba(80, 66, 40, .18);
  --glow: none;
  --overlay-bg: rgba(60, 50, 30, .45);
}
html[data-theme="dark"] {
  --bg: #0d1410;
  --bg2: #141d16;
  --card: #1b2a1e;
  --card2: #233527;
  --ink: #e9e4d8;
  --muted: #8ba08c;
  --green: #7cb342;
  --green2: #a5d66f;
  --gold: #ffd54f;
  --red: #ef6a5a;
  --blue: #6fa8dc;
  --line: #2a3d2e;
  --shadow: 0 3px 0 #070c08, 0 6px 14px rgba(0, 0, 0, .5);
  --glow: 0 0 8px rgba(124, 179, 66, .35);
  --overlay-bg: rgba(0, 0, 0, .6);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: "Microsoft YaHei", "PingFang SC", monospace, sans-serif;
  background: var(--bg);
  color: var(--ink);
  background-image:
    radial-gradient(circle at 20% 10%, rgba(124, 179, 66, .10), transparent 40%),
    radial-gradient(circle at 85% 90%, rgba(201, 162, 39, .08), transparent 40%);
  image-rendering: pixelated;
  font-size: 14px;
  line-height: 1.55;
}
#app { max-width: 1100px; margin: 0 auto; padding: 12px; min-height: 100vh; }
button { font-family: inherit; cursor: pointer; }
.btn {
  background: var(--card2); color: var(--ink);
  border: 2px solid var(--line); border-radius: 6px;
  padding: 8px 14px; font-size: 14px;
  box-shadow: 0 2px 0 var(--line);
  transition: transform .05s, box-shadow .05s;
}
.btn:active { transform: translateY(2px); box-shadow: none; }
.btn-primary { background: var(--green); color: #fff; border-color: var(--green); }
.btn-primary { box-shadow: 0 2px 0 #3f6629; }
html[data-theme="dark"] .btn-primary { box-shadow: 0 2px 0 #2d4a1c; }
.btn.big { padding: 12px 20px; font-size: 16px; }
.btn.small { padding: 4px 10px; font-size: 12px; }
.btn.danger { background: var(--red); color: #fff; border-color: var(--red); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.gold { background: var(--gold); color: #3a2c00; border-color: var(--gold); }

/* ---------- 通用 ---------- */
.dim { color: var(--muted); font-size: 12px; }
.note { background: var(--card2); border-left: 4px solid var(--gold); padding: 8px 12px; border-radius: 4px; font-size: 13px; margin: 8px 0; }
hr { border: none; border-top: 1px dashed var(--line); margin: 12px 0; }
input {
  background: var(--bg2); color: var(--ink);
  border: 2px solid var(--line); border-radius: 6px;
  padding: 8px 12px; font-size: 14px; width: 100%;
}

/* ---------- 封面 / 创建 / 引导 ---------- */
.screen { min-height: calc(100vh - 24px); }
.cover-box, .setup-box, .guide-box, .ending-box {
  max-width: 560px; margin: 6vh auto; background: var(--card);
  border: 3px solid var(--line); border-radius: 10px; padding: 28px;
  box-shadow: var(--shadow); text-align: center;
}
.cover-logo { font-size: 44px; font-weight: bold; letter-spacing: 4px; }
.cover-logo span { color: var(--green); }
.cover-sub { color: var(--green); font-size: 16px; margin: 8px 0; }
.cover-note { color: var(--gold); margin: 8px 0; }
.cover-meta { color: var(--muted); margin: 12px 0 20px; }
.cover-foot { color: var(--muted); font-size: 12px; margin-top: 16px; }
.cover-box .btn, .setup-box .btn, .guide-box .btn { margin: 6px; }
.fld { text-align: left; margin: 14px 0; }
.fld input { margin-top: 6px; }
.sex-row { margin-top: 6px; }
.skin-row { display: flex; gap: 8px; margin-top: 6px; flex-wrap: wrap; }
.skin-cell {
  width: 64px; height: 64px; border: 2px solid var(--line); border-radius: 6px;
  background: var(--bg2); padding: 4px; cursor: pointer;
}
.skin-cell.sel { border-color: var(--green); box-shadow: var(--glow); }
.skin-cell img, .skin-img { width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }
.talent-row { display: flex; gap: 8px; margin-top: 6px; flex-wrap: wrap; }
.talent-cell {
  flex: 1; min-width: 120px; border: 2px solid var(--line); border-radius: 6px;
  background: var(--bg2); padding: 8px; cursor: pointer; font-size: 12px;
}
.talent-cell.sel { border-color: var(--green); }
.talent-mark { font-size: 18px; }
.talent-name { font-weight: bold; margin: 4px 0; }
.guide-box p { text-align: left; margin: 8px 0; }
.guide-box p.big { font-size: 18px; color: var(--green); }

/* ---------- 主界面 ---------- */
#game-root { position: relative; }
#float-tips { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 200; display: flex; flex-direction: column; gap: 4px; pointer-events: none; }
.ftip {
  background: var(--card); border: 2px solid var(--line); border-radius: 20px;
  padding: 4px 16px; font-weight: bold; box-shadow: var(--shadow);
  animation: ftip-in .3s;
}
.ftip.up { color: var(--green); }
.ftip.down { color: var(--red); }
.ftip.fade { opacity: 0; transition: opacity .4s; }
@keyframes ftip-in { from { transform: translateY(-10px); opacity: 0; } }
#toast {
  position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--ink); color: var(--bg); padding: 10px 20px; border-radius: 20px;
  opacity: 0; transition: all .25s; z-index: 300; max-width: 80%; font-size: 13px;
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
#toast.ok { background: var(--green); color: #fff; }

.topbar {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--card); border: 3px solid var(--line); border-radius: 10px;
  padding: 10px 16px; box-shadow: var(--shadow);
}
.top-left { display: flex; align-items: center; gap: 10px; }
.avatar { width: 48px; height: 48px; border: 2px solid var(--line); border-radius: 6px; background: var(--bg2); overflow: hidden; }
.avatar.sm { width: 32px; height: 32px; }
.avatar.xl { width: 96px; height: 96px; margin: 0 auto; }
.avatar img { width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }
.top-name { font-weight: bold; font-size: 16px; }
.top-gender { color: var(--muted); margin-left: 4px; }
.top-prof { background: var(--green); color: #fff; border-radius: 4px; padding: 1px 8px; font-size: 12px; margin-left: 6px; }
.vip-badge { background: var(--gold); color: #3a2c00; border-radius: 4px; padding: 1px 8px; font-size: 11px; margin-left: 6px; }
.top-right { display: flex; gap: 18px; align-items: center; }
.top-stat { text-align: right; }
.ts-label { display: block; font-size: 11px; color: var(--muted); }
.top-stat b { font-size: 15px; }
.top-stat .gold { color: var(--gold); }
.top-stat.rep .rep { color: var(--green); }

.menubar { display: grid; grid-template-columns: repeat(9, 1fr); gap: 8px; margin: 10px 0; }
.entry-btn {
  background: var(--card); border: 2px solid var(--line); border-radius: 8px;
  padding: 10px 4px; font-size: 13px; font-weight: bold; color: var(--ink);
  box-shadow: 0 2px 0 var(--line);
}
.entry-btn:hover { border-color: var(--green); box-shadow: var(--glow); }

.main-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 12px; }
.story-col, .side-col { display: flex; flex-direction: column; gap: 12px; }
.news-box, .daylog, .portrait, .ident-card, .act-panel, .stat-bars {
  background: var(--card); border: 3px solid var(--line); border-radius: 10px;
  padding: 12px; box-shadow: var(--shadow);
}
.side-title { font-weight: bold; color: var(--green); margin-bottom: 8px; font-size: 13px; }
.news-inner { display: flex; flex-direction: column; gap: 6px; max-height: 140px; overflow-y: auto; }
.news-item { font-size: 12px; line-height: 1.4; }
.news-day { color: var(--gold); margin-right: 6px; font-weight: bold; }
.daylog { max-height: 240px; overflow-y: auto; }
.daylog-item { font-size: 12px; padding: 4px 0; border-bottom: 1px dotted var(--line); }
.dl-time { display: inline-block; background: var(--card2); border-radius: 4px; padding: 0 6px; margin-right: 6px; font-size: 11px; color: var(--muted); }
.dl-delta { margin-left: 6px; font-size: 11px; font-weight: bold; }
.dl-delta.up { color: var(--green); }
.dl-delta.down { color: var(--red); }
.portrait { text-align: center; }
.port-tier { color: var(--gold); font-weight: bold; margin-top: 6px; }
.ident-row { display: flex; justify-content: space-between; font-size: 13px; padding: 3px 0; }
.ident-row span { color: var(--muted); }
.act-btn {
  display: block; width: 100%; text-align: left; margin: 6px 0;
  background: var(--card2); border: 2px solid var(--line); border-radius: 6px;
  padding: 10px 12px; font-size: 14px; font-weight: bold; color: var(--ink);
}
.act-btn:hover { border-color: var(--green); }
.act-btn.disabled { opacity: .5; cursor: not-allowed; }
.act-cost { float: right; font-weight: normal; color: var(--muted); font-size: 12px; }
.stat-label { display: block; font-size: 11px; color: var(--muted); margin: 6px 0 2px; }
.bar-wrap { position: relative; background: var(--bg2); border: 1px solid var(--line); border-radius: 4px; height: 16px; }
.bar { height: 100%; border-radius: 3px; transition: width .3s; }
.bar.hp { background: var(--green); }
.bar.int { background: var(--blue); }
.bar.mor { background: var(--gold); }
.bar.sk { background: var(--green2); }
.bar-num { position: absolute; inset: 0; text-align: center; font-size: 10px; line-height: 14px; color: var(--ink); }

.bottom-bar { margin-top: 12px; text-align: center; }
.bottom-bar .btn { width: 100%; }

/* ---------- 全屏弹窗（二级菜单） ---------- */
.modal-overlay {
  position: fixed; inset: 0; background: var(--overlay-bg);
  display: flex; align-items: center; justify-content: center; z-index: 100;
  backdrop-filter: blur(2px); padding: 16px;
}
.panel-overlay { padding: 24px; }
.panel {
  background: var(--bg); border: 3px solid var(--line); border-radius: 12px;
  width: 100%; max-width: 860px; max-height: calc(100vh - 48px);
  display: flex; flex-direction: column; box-shadow: var(--shadow);
}
.panel-head {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 16px; border-bottom: 2px solid var(--line);
}
.panel-title { font-weight: bold; font-size: 16px; color: var(--green); }
.panel-body { padding: 16px; overflow-y: auto; flex: 1; }
.panel-inner h3 { margin: 12px 0 6px; color: var(--green); }
.panel-inner p { margin: 6px 0; }

/* 职业卡 */
.prof-card, .job-card, .guild-card, .company-card {
  background: var(--card); border: 2px solid var(--line); border-radius: 8px;
  padding: 12px; margin: 8px 0;
}
.prof-card.locked { opacity: .55; }
.prof-name { font-weight: bold; font-size: 15px; color: var(--green); }
.prof-desc { font-size: 12px; color: var(--muted); margin: 4px 0; }
.prof-ladder { font-size: 12px; color: var(--gold); }
.tag-locked { display: inline-block; background: var(--red); color: #fff; border-radius: 4px; padding: 1px 8px; font-size: 11px; margin-top: 6px; }
.job-head { display: flex; align-items: center; gap: 10px; }
.job-name { font-size: 18px; font-weight: bold; }
.q-btn { width: 30px; height: 30px; border-radius: 50%; background: var(--gold); color: #3a2c00; font-weight: bold; border: none; }
.job-meta { margin: 8px 0; }
.jm-row { display: flex; justify-content: space-between; font-size: 13px; padding: 2px 0; }
.jm-row span { color: var(--muted); }
.skill-row { margin: 8px 0; }
.skill-label { font-size: 12px; color: var(--muted); margin-bottom: 4px; display: block; }
.job-fns { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.quit-prof { color: var(--red); border-color: var(--red); }
.ladder { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.ladder-row {
  display: grid; grid-template-columns: 36px 1fr 110px 180px; gap: 8px; align-items: center;
  background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 8px; font-size: 13px;
}
.ladder-row.cur { border-color: var(--green); box-shadow: var(--glow); }
.ladder-row.done { opacity: .6; }
.ladder-row.ceo-row { border-color: var(--gold); }
.ladder-lv {
  width: 28px; height: 28px; background: var(--card2); border: 2px solid var(--line);
  border-radius: 4px; text-align: center; line-height: 24px; font-weight: bold;
}
.ladder-tag { background: var(--green); color: #fff; border-radius: 4px; padding: 1px 6px; font-size: 10px; margin-left: 6px; }
.ladder-pay { color: var(--gold); font-size: 12px; }
.ladder-req { color: var(--muted); font-size: 11px; }

/* 公会 */
.guild-name { font-weight: bold; font-size: 15px; }
.guild-tag { background: var(--card2); border-radius: 4px; padding: 1px 8px; font-size: 11px; color: var(--muted); margin-left: 6px; }
.guild-open { float: right; color: var(--green); font-size: 12px; }
.guild-open.dim { color: var(--red); }
.guild-slogan { color: var(--gold); font-size: 12px; margin: 4px 0; }
.guild-lore { font-size: 12px; color: var(--muted); }
.guild-bonus, .guild-dept { font-size: 12px; margin-top: 4px; }
.create-box { display: flex; gap: 8px; margin: 8px 0; }
.create-box input { flex: 1; }
.comp-name { font-size: 20px; font-weight: bold; }
.comp-tag { background: var(--gold); color: #3a2c00; border-radius: 4px; padding: 1px 8px; font-size: 11px; margin-left: 8px; }
.comp-stats { display: flex; gap: 20px; margin: 8px 0; }
.cs-item { font-size: 12px; color: var(--muted); }
.cs-item b { display: block; font-size: 16px; color: var(--ink); }
.comp-state { color: var(--green); font-style: italic; font-size: 13px; }
.dept-card {
  width: 100%; text-align: left; background: var(--card); border: 2px solid var(--line);
  border-radius: 8px; padding: 10px 12px; margin: 6px 0; color: var(--ink);
}
.dept-card.open { border-color: var(--green); }
.dept-card.locked { opacity: .55; }
.dept-name { font-weight: bold; }
.dept-desc { font-size: 12px; color: var(--muted); }
.dept-body { background: var(--card2); border-radius: 6px; padding: 10px; margin: 6px 0; }
.lb-row, .build-row, .dip-row { font-size: 13px; padding: 4px 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.lb-row.me { color: var(--green); font-weight: bold; }
.tag-done { color: var(--green); font-size: 12px; }
.rar { border-radius: 4px; padding: 1px 6px; font-size: 11px; margin-right: 6px; }
.rar.r0 { background: var(--card2); color: var(--muted); }
.rar.r1 { background: var(--blue); color: #fff; }
.rar.r2 { background: var(--green); color: #fff; }
.rar.r3 { background: var(--gold); color: #3a2c00; }

/* 背包/好友/声望/成就/商店 */
.eq-row { display: flex; gap: 8px; margin: 8px 0; }
.eq-slot { flex: 1; background: var(--card2); border: 2px solid var(--line); border-radius: 6px; padding: 8px; text-align: center; font-size: 12px; }
.eq-name { font-weight: bold; font-size: 13px; }
.bag-row, .shop-row, .ach-row, .rep-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px dotted var(--line); font-size: 13px; }
.ach-row.done { color: var(--green); }
.ach-reward { background: var(--gold); color: #3a2c00; border-radius: 4px; padding: 0 6px; font-size: 11px; }
.rep-row.cur { color: var(--green); font-weight: bold; }
.rep-row.done { opacity: .6; }
.tag-cur { background: var(--green); color: #fff; border-radius: 4px; padding: 1px 6px; font-size: 11px; }
.friend-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px dotted var(--line); }
.friend-row .skin-img { width: 40px; height: 40px; }
.friend-info { flex: 1; }
.friend-name { font-weight: bold; font-size: 13px; }
.fav-bar { font-size: 11px; color: var(--muted); }
.friend-acts { display: flex; gap: 4px; }

/* 兑换中心 */
.vip-status { padding: 10px; border-radius: 6px; margin: 8px 0; background: var(--card2); font-size: 13px; }
.vip-status.ok { background: var(--green); color: #fff; }
.vip-status.err { background: var(--red); color: #fff; }
.vip-input { margin: 8px 0; }
.gift-row { font-size: 12px; padding: 4px 0; color: var(--muted); }

/* 设置 */
.theme-row { display: flex; justify-content: space-between; align-items: center; margin: 10px 0; }
.theme-label { font-weight: bold; }

/* ---------- 小游戏 ---------- */
.mg-overlay { z-index: 150; }
.mg-box { max-width: 520px; text-align: center; }
.mg-box h3 { margin: 8px 0; color: var(--green); }
.mg-hint { font-size: 13px; color: var(--muted); margin: 8px 0; }
.mg-stage { min-height: 200px; display: flex; align-items: center; justify-content: center; margin: 12px 0; }
.mg-timer { font-weight: bold; color: var(--gold); font-size: 14px; }
.mg-grid { display: grid; grid-template-columns: repeat(3, 72px); gap: 8px; }
.mg-hole {
  width: 72px; height: 72px; background: var(--card2); border: 2px solid var(--line);
  border-radius: 50%; position: relative; cursor: pointer;
}
.mg-hole.up::after {
  content: '🐹'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 36px;
}
.mg-mem { grid-template-columns: repeat(4, 64px); }
.mg-card {
  width: 64px; height: 64px; background: var(--green); border: 2px solid var(--line);
  border-radius: 6px; color: #fff; font-size: 24px; display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.mg-card.open { background: var(--blue); }
.mg-card.done { background: var(--gold); color: #3a2c00; cursor: default; }
.mg-wire { flex-direction: column; gap: 12px; }
.mg-seq { font-size: 20px; min-height: 28px; }
.mg-seq-ok { margin: 0 4px; }
.mg-wire-row { display: flex; gap: 10px; }
.mg-wire-btn { width: 56px; height: 44px; border: none; border-radius: 6px; font-weight: bold; }
.mg-react-zone { width: 100%; }
.mg-react-pad {
  width: 280px; height: 160px; border-radius: 10px; background: var(--card2);
  border: 3px solid var(--line); display: flex; align-items: center; justify-content: center;
  font-weight: bold; cursor: pointer; margin: 0 auto;
}
.mg-react-pad.go { background: var(--green); color: #fff; }
.mg-clicker { flex-direction: column; gap: 10px; }
.mg-mine { width: 120px; height: 120px; font-size: 48px; border-radius: 50%; background: var(--gold); border: none; }
.mg-cancel { margin-top: 10px; }

/* 事件弹窗 */
.event-modal { max-width: 480px; }
.modal-tag {
  display: inline-block; background: var(--gold); color: #3a2c00; border-radius: 4px;
  padding: 2px 10px; font-size: 11px; margin-bottom: 8px;
}
.event-modal h2 { margin: 8px 0; }
.ev-text { font-size: 13px; color: #222; margin: 8px 0; line-height: 1.6; }
.ev-opt { display: block; width: 100%; margin: 6px 0; }
.event-modal .close { margin-top: 8px; color: var(--muted); }

/* 结局 */
.ending-box h1 { color: var(--green); }
.ending-lead { color: var(--muted); margin: 12px 0; }
.ending-score { font-size: 18px; margin: 12px 0; }
.ending-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; font-size: 13px; margin: 12px 0; }
.ending-story { text-align: left; font-size: 12px; line-height: 1.8; margin: 12px 0; }

/* 滚动条 */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
::-webkit-scrollbar-track { background: transparent; }

@media (max-width: 800px) {
  .menubar { grid-template-columns: repeat(3, 1fr); }
  .main-grid { grid-template-columns: 1fr; }
  .ladder-row { grid-template-columns: 30px 1fr; }
  .ladder-pay, .ladder-req { grid-column: 1 / -1; }
  .top-right { gap: 10px; }
}

/* ============ v0.5 新增样式 ============ */

/* 最后10天红色倒数 */
.final-warn {
  background: #c0392b; color: #fff; padding: 10px 16px; margin: 8px 0;
  border-radius: 6px; font-weight: bold; text-align: center; cursor: pointer;
  box-shadow: 0 2px 0 #8e2a1f; user-select: none; animation: blink 1.5s infinite;
}
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: 0.85; } }

/* 属性条区（在公告上方） */
.stats-box { padding: 10px 14px; background: var(--card); border-radius: 8px; margin: 8px 0; box-shadow: var(--shadow); }
.stat-row { display: grid; grid-template-columns: 24px 60px 80px 1fr; align-items: center; gap: 8px; padding: 4px 0; }
.stat-q { width: 20px; height: 20px; border-radius: 50%; background: var(--card2); color: var(--muted); border: 1px solid var(--line); cursor: pointer; font-size: 11px; padding: 0; line-height: 1; }
.stat-q:hover { background: var(--green); color: #fff; border-color: var(--green); }
.stat-row-label { font-size: 12px; color: var(--muted); }
.stat-row-val { font-size: 12px; font-weight: bold; text-align: right; color: var(--ink); }

/* 结束今天 fixed 右下角 */
.end-today {
  position: fixed; right: 20px; bottom: 20px; z-index: 9999;
  user-select: none !important; -webkit-user-select: none !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}

/* 问号按钮通用 */
.q-btn {
  width: 22px; height: 22px; border-radius: 50%; background: var(--card2);
  color: var(--muted); border: 1px solid var(--line); cursor: pointer;
  font-size: 12px; padding: 0; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
}
.q-btn:hover { background: var(--green); color: #fff; border-color: var(--green); }

/* 学习答题弹窗 */
.quiz-modal { max-width: 480px; }
.quiz-q { font-size: 15px; margin: 12px 0; line-height: 1.7; }

/* QTE 小游戏（厨师火候） */
.mg-qte { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 12px; }
.qte-heatbar {
  position: relative; width: 300px; height: 24px; background: #444;
  border-radius: 12px; overflow: hidden; border: 2px solid #222;
}
.qte-green {
  position: absolute; top: 0; bottom: 0; background: #4caf50; opacity: 0.6;
}
.qte-pointer {
  position: absolute; top: 0; bottom: 0; width: 4px; background: #ffeb3b;
  left: 0; box-shadow: 0 0 4px #ffeb3b;
}
.qte-info { font-size: 13px; color: var(--muted); }
.qte-cook { min-width: 140px; padding: 12px 24px; font-size: 16px; }

/* 红石线文本顺序 */
.mg-seq-text {
  font-size: 15px; font-weight: bold; text-align: center; padding: 8px;
  background: var(--card2); border-radius: 6px; margin-bottom: 8px;
  font-family: monospace; letter-spacing: 2px;
}
.mg-user-step { font-size: 12px; color: var(--muted); text-align: center; margin-bottom: 8px; }

/* 商店分类 */
.panel-inner h4 { margin: 14px 0 6px 0; font-size: 14px; color: var(--green); border-bottom: 1px solid var(--line); padding-bottom: 4px; }
