/* ======================================================================
   麻将番数计算器 · 绿呢牌桌 + 象牙牌主题
   浅色 = 翡翠绿呢 + 象牙白牌；深色 = 深夜包厢 + 暖灯牌面
   ====================================================================== */
.maj{
  --ink:#1c2b22; --sub:#5d7266; --faint:#93a89c;
  --bg:#dcebe0; --card:#f4f8f2; --card2:#e3eee4; --line:#c2d6c6; --line2:#d4e3d6;
  --felt:#1d6b45; --felt-2:#175738; --felt-soft:#d2e8da;
  --pri:#0f5132; --pri-2:#197a4c; --pri-soft:#d8ecdf; --pri-ink:#0b3d26;
  --tile:#f8f4e6; --tile-line:#d8cfb4; --tile-ink:#1d5c3d; --tile-red:#b3261e;
  --gold:#a8791f; --gold-soft:#f4e9cf;
  --ok:#2f7d5a; --warn:#a16207; --warn-soft:#f8efd6;
  --bad:#a63b2a; --bad-soft:#f8e7e1;
  --r:14px;
  --shadow:0 1px 2px rgba(28,43,34,.08),0 12px 28px rgba(28,43,34,.12);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.75;
  background:
    radial-gradient(1000px 460px at 50% -180px, rgba(29,107,69,.16), transparent 62%),
    repeating-conic-gradient(rgba(29,107,69,.03) 0% 25%, transparent 25% 50%) 0 0/26px 26px,
    var(--bg);
  padding:0 16px 56px;
}
:root[data-theme="dark"] .maj{
  --ink:#e2ece5; --sub:#93a89c; --faint:#5f7568;
  --bg:#0c150f; --card:#14201a; --card2:#1a2a21; --line:#2b4437; --line2:#22382d;
  --felt:#2e8b5c; --felt-2:#1d6b45; --felt-soft:rgba(46,139,92,.16);
  --pri:#5fd39a; --pri-2:#8be6b6; --pri-soft:rgba(95,211,154,.12); --pri-ink:#a9f0c9;
  --tile:#efe8d2; --tile-line:#c9bf9d; --tile-ink:#14472d; --tile-red:#8f1f18;
  --gold:#d9a84a; --gold-soft:rgba(217,168,74,.14);
  --ok:#6ee7b7; --warn:#fbbf24; --warn-soft:rgba(251,191,36,.12);
  --bad:#f87171; --bad-soft:rgba(248,113,113,.12);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 34px rgba(0,0,0,.5);
}
.maj *{box-sizing:border-box;}
.maj b{font-weight:700;}
.maj-wrap{max-width:1120px;margin:0 auto;}
.maj-mono{font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;}

/* ---------- Hero：牌桌 ---------- */
.maj-hero{margin-top:22px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);background:linear-gradient(165deg,var(--felt),var(--felt-2));padding:26px 28px;position:relative;}
.maj-hero::after{content:"";position:absolute;inset:10px;border:1.5px solid rgba(248,244,230,.18);border-radius:10px;pointer-events:none;}
.maj-hero h1{margin:0 0 8px;font-size:clamp(23px,3.4vw,31px);font-weight:900;color:#f8f4e6;}
.maj-hero h1 em{font-style:normal;color:#ffd97a;}
.maj-hero p{margin:0;color:rgba(248,244,230,.82);font-size:15px;max-width:720px;}
.maj-hero p b{color:#fff;}
.maj-hero-tiles{display:flex;gap:6px;margin-top:14px;}
.maj-hero-tiles i{font-style:normal;width:34px;height:46px;border-radius:6px;background:var(--tile);border:1px solid var(--tile-line);box-shadow:0 2px 0 rgba(0,0,0,.25);display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:17px;color:var(--tile-ink);}
.maj-hero-tiles i.r{color:var(--tile-red);}

/* ---------- 规则切换 ---------- */
.maj-modes{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
.maj-mode{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 20px;font-size:14.5px;font-weight:900;cursor:pointer;color:var(--sub);transition:all .15s;}
.maj-mode.on{background:var(--pri);border-color:var(--pri);color:#eafff2;box-shadow:var(--shadow);}
:root[data-theme="dark"] .maj-mode.on{color:#08150e;}
.maj-mode small{display:block;font-size:11px;font-weight:600;opacity:.8;}

/* ---------- 牌型勾选 ---------- */
.maj-desk{display:grid;grid-template-columns:1fr 380px;gap:18px;margin-top:18px;}
@media (max-width:920px){.maj-desk{grid-template-columns:1fr;}}
.maj-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;}
.maj-card h2{margin:0 0 4px;font-size:16px;font-weight:900;display:flex;align-items:center;gap:8px;}
.maj-card h2 s{text-decoration:none;color:var(--pri);font-family:ui-monospace,monospace;font-size:14px;}
.maj-tip{font-size:12.5px;color:var(--sub);margin:0 0 12px;}
.maj-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;}
.maj-tile{position:relative;background:var(--tile);border:1px solid var(--tile-line);border-bottom:3px solid var(--tile-line);border-radius:9px;padding:10px 12px;cursor:pointer;transition:all .12s;user-select:none;}
.maj-tile:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(28,43,34,.18);}
.maj-tile input{position:absolute;opacity:0;pointer-events:none;}
.maj-tile b{display:block;font-size:14.5px;color:var(--tile-ink);font-weight:900;}
.maj-tile b i{font-style:normal;float:right;color:var(--tile-red);font-family:ui-monospace,monospace;font-size:13px;}
.maj-tile span{display:block;font-size:11.5px;color:#8a8168;margin-top:2px;line-height:1.5;}
.maj-tile.on{outline:2px solid var(--pri);outline-offset:1px;background:#fffdf3;}
:root[data-theme="dark"] .maj-tile.on{background:var(--card);}
.maj-group{margin-top:14px;}
.maj-group h3{margin:0 0 8px;font-size:13px;font-weight:900;color:var(--sub);letter-spacing:.06em;}

/* ---------- 结果 ---------- */
.maj-total{background:linear-gradient(165deg,var(--felt),var(--felt-2));border-radius:12px;color:#f8f4e6;padding:18px;text-align:center;margin-bottom:14px;}
.maj-total span{display:block;font-size:12px;letter-spacing:.14em;opacity:.8;}
.maj-total b{display:block;font-size:38px;font-family:ui-monospace,monospace;color:#ffd97a;line-height:1.2;}
.maj-total small{font-size:12px;opacity:.85;}
.maj-win{display:flex;gap:8px;margin-bottom:12px;}
.maj-win button{flex:1;border:1px solid var(--line);background:var(--card2);border-radius:9px;padding:8px 0;font-size:13.5px;font-weight:800;cursor:pointer;color:var(--sub);}
.maj-win button.on{background:var(--pri);border-color:var(--pri);color:#eafff2;}
:root[data-theme="dark"] .maj-win button.on{color:#08150e;}
.maj-list{font-size:13px;color:var(--sub);margin-bottom:12px;}
.maj-list li{margin:4px 0;}
.maj-list b{color:var(--ink);}
.maj-note{border-radius:10px;padding:10px 13px;font-size:13px;border:1px solid;margin-bottom:8px;}
.maj-note.ok{background:var(--pri-soft);border-color:var(--pri);color:var(--pri-ink);}
.maj-note.warnn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);}
.maj-note.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad);}
.maj-note b{color:inherit;}
.maj-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.maj-btn{border:none;border-radius:9px;padding:9px 17px;font-size:13.5px;font-weight:800;cursor:pointer;transition:all .15s;}
.maj-btn-go{background:var(--pri);color:#eafff2;}
:root[data-theme="dark"] .maj-btn-go{color:#08150e;}
.maj-btn-go:hover{background:var(--pri-2);}
.maj-btn-ghost{background:var(--card2);color:var(--pri-ink);border:1px solid var(--line);}
.maj-btn-ghost:hover{border-color:var(--pri-2);}
.maj-msg{margin-top:10px;font-size:13px;min-height:20px;font-weight:700;}
.maj-msg.err{color:var(--bad);}
.maj-msg.ok{color:var(--ok);}

/* ---------- FAQ ---------- */
.maj-faq{margin-top:34px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;box-shadow:var(--shadow);}
.maj-faq h2{margin:0 0 12px;font-size:19px;font-weight:900;}
.maj-faq h3{margin:18px 0 6px;font-size:15.5px;font-weight:800;color:var(--pri-ink);}
.maj-faq p{margin:0;color:var(--sub);font-size:14px;}
.maj-faq p b{color:var(--ink);}
.maj-note2{margin-top:12px;font-size:12.5px;color:var(--faint);}
