/* ======================================================================
   电池串并联计算器 · 独立设计（电芯排布 / 电池组主题）
   浅色 = 草地白 + 能量绿；深色 = 暗仓 + 荧光绿
   ====================================================================== */
.bat{
  --ink:#15241b; --sub:#58705f; --faint:#94ab9b;
  --bg:#f2f7f3; --card:#ffffff; --card2:#e9f2ec; --line:#d5e3d9; --line2:#e4eee6;
  --pri:#16a34a; --pri-2:#22c55e; --pri-soft:#e2f5e8; --pri-ink:#15803d;
  --pos:#dc2626; --neg:#334155;
  --amber:#b45309; --amber-soft:#fdf3e2;
  --red:#b42323; --red-soft:#fdecec;
  --r:14px;
  --shadow:0 1px 2px rgba(21,36,27,.06),0 10px 28px rgba(21,36,27,.08);
  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(880px 420px at 86% -140px, rgba(34,197,94,.10), transparent 60%),
    radial-gradient(640px 320px at -8% 150px, rgba(220,38,38,.05), transparent 60%),
    var(--bg);
  padding:0 16px 56px;
}
:root[data-theme="dark"] .bat{
  --ink:#e2f0e6; --sub:#9bb5a3; --faint:#66806f;
  --bg:#0d1410; --card:#15201a; --card2:#1b2a21; --line:#2a4034; --line2:#22362b;
  --pri:#4ade80; --pri-2:#86efac; --pri-soft:rgba(74,222,128,.12); --pri-ink:#bbf7d0;
  --pos:#f87171; --neg:#94a3b8;
  --amber:#fbbf24; --amber-soft:rgba(251,191,36,.10);
  --red:#f87171; --red-soft:rgba(248,113,113,.12);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.4);
}
.bat *{box-sizing:border-box;}
.bat b{font-weight:700;}
.bat-wrap{max-width:1120px;margin:0 auto;}
.bat input,.bat pre,.bat .bat-mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace;}

/* ---------- 首屏 ---------- */
.bat-hero{margin-top:22px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:26px 28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.bat-hero-txt{flex:1;min-width:280px;}
.bat-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--pri-ink);background:var(--pri-soft);border:1px solid var(--pri);border-radius:999px;padding:4px 14px;}
.bat-hero h1{margin:12px 0 8px;font-size:clamp(24px,3.6vw,32px);font-weight:900;line-height:1.3;}
.bat-hero p{margin:0;color:var(--sub);font-size:15px;max-width:660px;}
.bat-hero p em{font-style:normal;color:var(--pri-ink);font-weight:800;}
.bat-hero-cells{display:flex;gap:6px;align-items:flex-end;}
.bat-hcell{width:16px;border-radius:5px 5px 3px 3px;background:linear-gradient(180deg,var(--pri-2),var(--pri));position:relative;box-shadow:inset 0 1px 2px rgba(255,255,255,.4);}
.bat-hcell::before{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:7px;height:4px;border-radius:2px;background:var(--pri);}
.bat-hcell:nth-child(1){height:34px;}.bat-hcell:nth-child(2){height:46px;}.bat-hcell:nth-child(3){height:58px;}.bat-hcell:nth-child(4){height:70px;}

/* ---------- 工作台 ---------- */
.bat-desk{display:grid;grid-template-columns:400px 1fr;gap:18px;margin-top:20px;}
@media (max-width:920px){.bat-desk{grid-template-columns:1fr;}}
.bat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 18px 16px;}
.bat-card h2{margin:0 0 4px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;}
.bat-card h2 .bat-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:var(--pri);color:#fff;font-size:12px;font-weight:800;}
:root[data-theme="dark"] .bat-card h2 .bat-num{color:#0d1410;}
.bat-tip{font-size:12.5px;color:var(--sub);margin:0 0 12px;}
.bat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.bat-chip{border:1px solid var(--line);background:var(--card2);color:var(--sub);border-radius:999px;padding:5px 14px;font-size:13px;cursor:pointer;font-weight:700;transition:all .15s;}
.bat-chip:hover{border-color:var(--pri-2);color:var(--pri-ink);}
.bat-chip.on{background:var(--pri);border-color:var(--pri);color:#fff;}
:root[data-theme="dark"] .bat-chip.on{color:#0d1410;}
.bat-field{margin-bottom:12px;}
.bat-field label{display:block;font-size:13px;font-weight:700;color:var(--sub);margin-bottom:4px;}
.bat-field label i{font-style:normal;color:var(--faint);font-weight:600;}
.bat-in{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--ink);font-size:14px;outline:none;transition:border-color .15s;}
.bat-in:focus{border-color:var(--pri-2);box-shadow:0 0 0 3px var(--pri-soft);}
.bat-sp{display:flex;align-items:center;gap:10px;}
.bat-sp input{flex:1;text-align:center;font-size:18px;font-weight:800;}
.bat-sp button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--pri-ink);font-size:18px;font-weight:900;cursor:pointer;}
.bat-sp button:hover{border-color:var(--pri-2);background:var(--pri-soft);}
.bat-custom{display:none;}
.bat-custom.show{display:block;}
.bat-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;}
.bat-btn{border:none;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:800;cursor:pointer;transition:all .15s;}
.bat-btn-go{background:var(--pri);color:#fff;}
:root[data-theme="dark"] .bat-btn-go{color:#0d1410;}
.bat-btn-go:hover{background:var(--pri-2);}
.bat-btn-ghost{background:var(--card2);color:var(--pri-ink);border:1px solid var(--line);}
.bat-btn-ghost:hover{border-color:var(--pri-2);}
.bat-msg{margin-top:10px;font-size:13px;min-height:20px;font-weight:600;}
.bat-msg.err{color:var(--red);}
.bat-msg.ok{color:var(--pri);}

/* ---------- 结果 ---------- */
.bat-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;}
.bat-box{background:var(--card2);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;text-align:center;}
.bat-box .k{font-size:12px;color:var(--sub);font-weight:700;}
.bat-box .v{font-size:21px;font-weight:900;color:var(--pri-ink);font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;}
.bat-box .s{font-size:11.5px;color:var(--faint);}
.bat-pack{margin-top:14px;border:1px dashed var(--line);border-radius:12px;padding:14px;background:var(--card2);overflow:auto;}
.bat-pack-head{display:flex;justify-content:space-between;font-size:12px;font-weight:800;margin-bottom:8px;}
.bat-pack-head .p{color:var(--pos);}.bat-pack-head .n{color:var(--neg);}
.bat-cols{display:flex;gap:10px;}
.bat-col{display:flex;flex-direction:column;gap:4px;align-items:center;}
.bat-cell{width:22px;height:44px;border-radius:4px;background:linear-gradient(90deg,var(--pri),var(--pri-2));position:relative;box-shadow:inset 0 0 3px rgba(0,0,0,.25);}
.bat-cell::before{content:"";position:absolute;top:-3px;left:50%;transform:translateX(-50%);width:8px;height:3px;border-radius:2px;background:var(--pri);}
.bat-cell::after{content:"";position:absolute;left:3px;right:3px;top:38%;height:3px;background:rgba(255,255,255,.55);border-radius:2px;}
.bat-link{height:4px;width:10px;align-self:center;background:var(--neg);border-radius:2px;margin-top:22px;}
.bat-sys{margin-top:12px;font-size:13px;color:var(--sub);background:var(--pri-soft);border-left:3px solid var(--pri);border-radius:0 10px 10px 0;padding:9px 12px;}
.bat-sys b{color:var(--pri-ink);}
.bat-note{margin-top:10px;font-size:13px;color:var(--sub);background:var(--amber-soft);border-left:3px solid var(--amber);border-radius:0 10px 10px 0;padding:9px 12px;}
.bat-note b{color:var(--amber);}
.bat-out{width:100%;min-height:150px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--ink);padding:12px 14px;font-size:12.5px;line-height:1.7;overflow:auto;white-space:pre;margin:12px 0 0;font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;}

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