/* batch26 · balance-selftest 医疗健康风 */
.bal-wrap {
  --bal-ink: #1e3a4f;
  --bal-ink-soft: #5e7f95;
  --bal-card: #ffffff;
  --bal-bg: #eef7fc;
  --bal-line: #d5e8f2;
  --bal-blue: #2f96d8;
  --bal-blue-2: #4fb0ec;
  --bal-ok: #2fa77a;
  --bal-warn: #e8a13c;
  --bal-risk: #dd5a5a;
  max-width: 960px;
  margin: 0 auto;
  padding: 18px 14px 60px;
  color: var(--bal-ink);
  font-size: 15.5px;
  line-height: 1.8;
}
html[data-theme="dark"] .bal-wrap {
  --bal-ink: #dcecf7;
  --bal-ink-soft: #8fadc2;
  --bal-card: #152430;
  --bal-bg: #1b3040;
  --bal-line: #29465c;
  --bal-blue: #4fb0ec;
  --bal-blue-2: #6cc4f5;
  --bal-ok: #4cc39a;
  --bal-warn: #f0b45c;
  --bal-risk: #ff8080;
}
.bal-wrap b { color: var(--bal-blue); font-weight: 700; }

/* hero */
.bal-hero { display: flex; gap: 24px; align-items: center; background: linear-gradient(160deg, var(--bal-bg), #e2f1fa); border: 1px solid var(--bal-line); border-radius: 22px; padding: 36px 32px; }
html[data-theme="dark"] .bal-hero { background: linear-gradient(160deg, var(--bal-bg), #22405480); }
.bal-hero-copy { flex: 1; }
.bal-kicker { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; letter-spacing: 1px; color: var(--bal-blue); background: var(--bal-card); border: 1px solid var(--bal-line); border-radius: 999px; padding: 4px 14px; margin-bottom: 12px; }
.bal-hero-copy h1 { font-size: 27px; line-height: 1.45; margin: 0 0 10px; }
.bal-sub { color: var(--bal-ink-soft); margin: 0 0 18px; max-width: 560px; }
.bal-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.bal-hero-art { flex: 0 0 160px; text-align: center; color: var(--bal-blue); }
.bal-ico-ring { stroke: currentColor; }
.bal-hero-cap { display: block; font-size: 12px; color: var(--bal-ink-soft); margin-top: 8px; }

/* warn */
.bal-warn { margin-top: 18px; border: 1px solid var(--bal-warn); background: rgba(232,161,60,.1); border-radius: 14px; padding: 12px 18px; font-size: 14px; }
.bal-warn b { color: var(--bal-warn); }

/* cards: medical report */
.bal-card { background: var(--bal-card); border: 1px solid var(--bal-line); border-radius: 18px; padding: 24px 26px; margin-top: 20px; box-shadow: 0 4px 16px rgba(47,150,216,.07); }
.bal-h2 { font-size: 19px; margin: 0 0 12px; display: flex; align-items: center; gap: 10px; }
.bal-no { font-size: 12px; color: var(--bal-blue); border: 1.5px solid var(--bal-blue); border-radius: 999px; padding: 1px 10px; }
.bal-tip { color: var(--bal-ink-soft); font-size: 14px; margin: 0 0 14px; }

/* timer */
.bal-timer-box { background: var(--bal-bg); border-radius: 16px; padding: 22px; text-align: center; }
html[data-theme="dark"] .bal-timer-box { background: var(--bal-bg); }
.bal-timer { font-size: 58px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--bal-blue); line-height: 1.1; font-family: Georgia, serif; }
.bal-timer i { font-style: normal; font-size: 20px; color: var(--bal-ink-soft); margin-left: 6px; }
.bal-timer-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 14px 0 12px; }
.bal-age-row { display: flex; gap: 10px; align-items: center; justify-content: center; flex-wrap: wrap; font-size: 14px; color: var(--bal-ink-soft); }
.bal-age-row select { border: 1px solid var(--bal-line); background: var(--bal-card); color: var(--bal-ink); border-radius: 10px; padding: 7px 12px; font-size: 14px; }

/* records */
.bal-records { margin-top: 18px; }
.bal-records h3 { font-size: 15px; margin: 0 0 8px; }
.bal-records ul { list-style: none; margin: 0 0 10px; padding: 0; }
.bal-records li { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--bal-line); border-radius: 10px; margin-bottom: 6px; font-size: 14px; }
.bal-records li .bal-rec-time { color: var(--bal-ink-soft); font-size: 12.5px; flex: 1; }
.bal-records li b { font-size: 16px; color: var(--bal-blue); font-family: Georgia, serif; }
.bal-records li .bal-del { border: none; background: transparent; color: var(--bal-ink-soft); cursor: pointer; font-size: 14px; }
.bal-records li .bal-del:hover { color: var(--bal-risk); }
.bal-empty { color: var(--bal-ink-soft); border-style: dashed !important; justify-content: center; }

/* table */
.bal-table-scroll { overflow-x: auto; }
.bal-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 560px; }
.bal-table th, .bal-table td { border: 1px solid var(--bal-line); padding: 9px 12px; text-align: center; }
.bal-table th { background: var(--bal-bg); color: var(--bal-ink-soft); font-weight: 600; }
.bal-table td:first-child { font-weight: 600; }
.bal-table td.cur { background: rgba(47,150,216,.12); color: var(--bal-blue); font-weight: 700; }
.bal-src { font-size: 12.5px; color: var(--bal-ink-soft); margin: 10px 0 0; }

/* extras */
.bal-extras { display: flex; flex-direction: column; gap: 14px; }
.bal-extra { border: 1px solid var(--bal-line); border-radius: 14px; padding: 14px 18px; }
.bal-extra h3 { margin: 0 0 4px; font-size: 15.5px; display: flex; align-items: center; gap: 8px; color: var(--bal-blue); }
.bal-extra > p { margin: 0 0 10px; font-size: 13.5px; color: var(--bal-ink-soft); }
.bal-score-opts { display: flex; gap: 8px; flex-wrap: wrap; }
.bal-sopt { flex: 1 1 30%; position: relative; }
.bal-sopt input { position: absolute; opacity: 0; }
.bal-sopt span { display: block; text-align: center; border: 1.5px solid var(--bal-line); border-radius: 10px; padding: 8px 10px; font-size: 13px; cursor: pointer; color: var(--bal-ink-soft); transition: all .12s; }
.bal-sopt input:checked + span { border-color: var(--bal-blue); color: var(--bal-blue); background: rgba(47,150,216,.08); font-weight: 600; }
.bal-err { display: block; color: var(--bal-risk); font-size: 13.5px; margin-top: 10px; min-height: 20px; }

/* buttons */
.bal-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.bal-btn { border: 1.5px solid var(--bal-line); background: var(--bal-card); color: var(--bal-ink); border-radius: 12px; padding: 10px 22px; font-size: 15px; cursor: pointer; font-family: inherit; transition: all .15s; }
.bal-btn.primary { background: var(--bal-blue); border-color: var(--bal-blue); color: #fff; font-weight: 700; }
.bal-btn.primary:hover { background: var(--bal-blue-2); }
.bal-btn.primary:disabled { opacity: .55; cursor: not-allowed; }
.bal-btn.ghost { color: var(--bal-ink-soft); }
.bal-msg { margin-top: 10px; font-size: 14px; color: var(--bal-ok); min-height: 20px; }

/* result report */
.bal-report { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.bal-report-item { background: var(--bal-bg); border-radius: 14px; padding: 16px; text-align: center; }
html[data-theme="dark"] .bal-report-item { background: var(--bal-bg); }
.bal-report-item span { display: block; font-size: 12.5px; color: var(--bal-ink-soft); margin-bottom: 6px; }
.bal-report-item b { font-size: 26px; color: var(--bal-blue); font-family: Georgia, serif; }
.bal-report-item b small { font-size: 14px; color: var(--bal-ink-soft); }
.bal-report-item em { display: block; font-style: normal; font-size: 12.5px; color: var(--bal-ink-soft); margin-top: 4px; }
.bal-report-item.risk b { color: var(--bal-warn); }
.bal-report-item.risk.hi b { color: var(--bal-risk); }
.bal-conclusion { border-left: 4px solid var(--bal-blue); background: var(--bal-bg); border-radius: 0 12px 12px 0; padding: 14px 18px; font-size: 14.5px; color: var(--bal-ink-soft); }
html[data-theme="dark"] .bal-conclusion { background: var(--bal-bg); }
.bal-conclusion b { color: var(--bal-ink); }
.bal-train h3 { font-size: 15.5px; margin: 16px 0 10px; }
.bal-train ol { margin: 0; padding-left: 20px; font-size: 14.5px; color: var(--bal-ink-soft); }
.bal-train li { margin-bottom: 8px; }
.bal-train li b { color: var(--bal-blue); }

/* docs */
.bal-steps { margin: 0; padding-left: 22px; }
.bal-steps li { margin-bottom: 10px; }
.bal-faq-item { border-bottom: 1px dashed var(--bal-line); padding: 10px 0; }
.bal-faq-item summary { cursor: pointer; font-weight: 700; }
.bal-faq-item p { margin: 8px 0 2px; color: var(--bal-ink-soft); }
.bal-disclaimer p { color: var(--bal-ink-soft); font-size: 14px; margin: 0; }

@media (max-width: 768px) {
  .bal-hero { flex-direction: column; padding: 26px 20px; }
  .bal-hero-art { flex: none; }
  .bal-hero-copy h1 { font-size: 22px; }
  .bal-report { grid-template-columns: 1fr; }
  .bal-sopt { flex: 1 1 100%; }
  .bal-timer { font-size: 46px; }
}

/* ===== v1.1 新增组件 ===== */
.bal-plan { margin-top: 18px; border-top: 1px dashed var(--bal-line); padding-top: 14px; }
.bal-plan h3 { font-size: 15.5px; margin: 0 0 8px; }
.bal-plan-note { font-size: 14px; color: var(--bal-ink-soft); margin: 0 0 12px; }
.bal-plan-week { margin-bottom: 14px; }
.bal-plan-week h4 { margin: 0 0 8px; font-size: 14px; color: var(--bal-blue); }
.bal-plan-day { display: flex; align-items: center; gap: 10px; background: var(--bal-card); border: 1px solid var(--bal-line); border-radius: 10px; padding: 9px 12px; margin-bottom: 6px; cursor: pointer; transition: border-color .15s; }
.bal-plan-day:hover { border-color: var(--bal-blue); }
.bal-plan-day input { accent-color: var(--bal-blue); }
.bal-plan-n { font-family: "Courier New", Consolas, monospace; font-size: 12.5px; color: var(--bal-blue); min-width: 26px; }
.bal-plan-act { flex: 1; font-size: 14px; }
.bal-plan-day.on { border-color: var(--bal-blue); background: rgba(47,150,216,.07); }
html[data-theme="dark"] .bal-plan-day.on { background: rgba(79,176,236,.12); }
.bal-plan-day.on .bal-plan-act { color: var(--bal-ink-soft); text-decoration: line-through; }
.bal-plan-mk { font-size: 12px; color: var(--bal-blue); opacity: 0; }
.bal-plan-day.on .bal-plan-mk { opacity: 1; }
.bal-plan-progress { margin: 8px 0 0; font-size: 14px; color: var(--bal-ink-soft); }
.bal-plan-progress b { color: var(--bal-blue); font-size: 17px; }

.bal-trend { margin-top: 14px; border: 1px solid var(--bal-line); border-radius: 12px; padding: 14px 16px; background: rgba(47,150,216,.05); }
html[data-theme="dark"] .bal-trend { background: rgba(47,150,216,.1); }
.bal-trend svg { color: var(--bal-ink-soft); display: block; }
.bal-trend-note { margin: 10px 0 0; font-size: 13.5px; color: var(--bal-ink-soft); line-height: 1.7; }
