/* ============================================================
   temp-assistance-calc.css
   临时救助金额测算 · 应急指挥台风格
   青蓝 teal/cyan 主色 + 深墨蓝底纹；急难型=警示橙红轨道，支出型=青蓝轨道
   Design tokens（浅主题默认，深主题覆盖在文末）
   ============================================================ */

.tac {
  --tac-teal: #0e9f8f;
  --tac-teal-soft: #e2f6f3;
  --tac-teal-deep: #0b7468;
  --tac-cyan: #17a2c9;
  --tac-cyan-soft: #e0f2fa;
  --tac-cyan-deep: #0e7490;
  --tac-navy: #0c2237;
  --tac-navy-2: #123152;
  --tac-warn: #f4622c;
  --tac-warn-soft: #ffe8df;
  --tac-warn-deep: #c2410c;
  --tac-ink: #122637;
  --tac-ink-soft: #5a7184;
  --tac-line: #dbe7ef;
  --tac-bg: #f2f7fb;
  --tac-card: #ffffff;
  --tac-shadow: 0 2px 10px rgba(12, 34, 55, 0.07), 0 1px 3px rgba(12, 34, 55, 0.05);
  --tac-shadow-lg: 0 16px 40px rgba(12, 34, 55, 0.16), 0 4px 12px rgba(12, 34, 55, 0.08);
  --tac-radius: 14px;
  --tac-radius-sm: 10px;
  /* 轨道强调色：随 .mode-urgent / .mode-expense 切换 */
  --tac-accent: var(--tac-warn);
  --tac-accent-soft: var(--tac-warn-soft);
  --tac-accent-deep: var(--tac-warn-deep);
}
.tac.mode-urgent {
  --tac-accent: var(--tac-warn);
  --tac-accent-soft: var(--tac-warn-soft);
  --tac-accent-deep: var(--tac-warn-deep);
}
.tac.mode-expense {
  --tac-accent: var(--tac-cyan);
  --tac-accent-soft: var(--tac-cyan-soft);
  --tac-accent-deep: var(--tac-cyan-deep);
}

.tac {
  max-width: 1160px;
  margin: 0 auto;
  padding: 28px 20px 40px;
  color: var(--tac-ink);
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.75;
  background: var(--tac-bg);
}

.tac-wrap { position: relative; z-index: 1; }

/* ========== Hero（深墨蓝指挥台） ========== */
.tac-hero {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: 38px 44px;
  margin-bottom: 22px;
  background:
    radial-gradient(120% 150% at 8% 0%, rgba(14, 159, 143, 0.35) 0%, transparent 55%),
    radial-gradient(110% 130% at 100% 100%, rgba(23, 162, 201, 0.30) 0%, transparent 60%),
    linear-gradient(135deg, var(--tac-navy) 0%, var(--tac-navy-2) 100%);
  border: 1px solid #1c3f63;
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 30px;
  align-items: center;
  color: #eaf4fb;
}
.tac-hero-scan {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 26px),
    radial-gradient(50% 60% at 85% 15%, rgba(244, 98, 44, 0.16), transparent 70%);
  pointer-events: none;
}
.tac-badge {
  display: inline-block;
  padding: 5px 14px;
  font-size: 12px;
  color: #9fe8dd;
  background: rgba(14, 159, 143, 0.18);
  border: 1px solid rgba(14, 159, 143, 0.45);
  border-radius: 999px;
  letter-spacing: 0.5px;
  margin-bottom: 16px;
  font-weight: 600;
}
.tac-hero h1 {
  font-size: 32px;
  line-height: 1.25;
  margin: 0 0 12px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #ffffff;
}
.tac-hero h1 i {
  font-style: normal;
  background: linear-gradient(90deg, #2dd4bf 0%, var(--tac-accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: background .25s ease;
}
.tac-hero p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.75;
  color: #b9cfe2;
}
.tac-hero p em {
  font-style: normal;
  font-weight: 600;
  color: #eaf4fb;
  border-bottom: 1px dashed rgba(45, 212, 191, 0.6);
}
.tac-hero-panel {
  position: relative;
  width: 100%;
  max-width: 330px;
  padding: 20px 20px 16px;
  background: rgba(8, 22, 38, 0.72);
  border-radius: 14px;
  box-shadow: var(--tac-shadow-lg);
  border: 1px solid #1f4468;
  font-size: 12.5px;
  line-height: 1.95;
  font-family: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace;
  color: #cfe3f2;
}
.tac-hero-line { position: relative; padding-left: 14px; }
.tac-hero-line::before {
  content: "";
  position: absolute; left: 0; top: 10px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--tac-teal);
}
.tac-hero-line-hot::before { background: var(--tac-accent); }
.tac-hero-line-title {
  padding: 0; margin-bottom: 8px;
  font-family: -apple-system, "PingFang SC", sans-serif;
  font-weight: 700; font-size: 13.5px;
  color: #7fd8cd;
  border-bottom: 1px dashed #24507a; padding-bottom: 7px;
}
.tac-hero-line-title::before { display: none; }

/* ========== 双轨大开关 ========== */
.tac-track {
  margin-bottom: 20px;
  background: var(--tac-card);
  border: 1px solid var(--tac-line);
  border-radius: var(--tac-radius);
  padding: 18px 22px 14px;
  box-shadow: var(--tac-shadow);
}
.tac-track-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 10px;
}
.tac-track-btn {
  position: relative;
  border: 2px solid var(--tac-line);
  background: #f7fbfd;
  padding: 15px 18px 13px;
  border-radius: 14px;
  font-size: 17px; font-weight: 800;
  color: var(--tac-ink-soft);
  cursor: pointer;
  text-align: left;
  transition: all .2s ease;
  font-family: inherit;
}
.tac-track-btn small {
  display: block;
  font-size: 12px; font-weight: 500;
  margin-top: 3px;
  color: var(--tac-ink-soft);
}
.tac-track-btn:hover { border-color: var(--tac-accent); }
.tac-track-btn.on {
  border-color: var(--tac-accent);
  background: linear-gradient(135deg, var(--tac-accent-soft) 0%, #ffffff 90%);
  color: var(--tac-accent-deep);
  box-shadow: 0 8px 18px rgba(12, 34, 55, 0.10), inset 0 0 0 1px var(--tac-accent);
}
.tac-track-btn.on small { color: var(--tac-accent-deep); opacity: .8; }
.tac-track-btn.on::after {
  content: "";
  position: absolute; left: 18px; bottom: 8px;
  width: calc(100% - 36px); height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--tac-accent), transparent);
}
.tac-track-hint {
  margin: 4px 0 0; font-size: 13px;
  color: var(--tac-ink-soft); line-height: 1.7;
  padding: 10px 14px;
  background: var(--tac-accent-soft);
  border-radius: 10px;
  border-left: 3px solid var(--tac-accent);
  transition: background .2s ease;
}

/* ========== 主面板 ========== */
.tac-desk {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 26px;
}
.tac-card {
  background: var(--tac-card);
  border: 1px solid var(--tac-line);
  border-radius: var(--tac-radius);
  padding: 24px 24px 22px;
  box-shadow: var(--tac-shadow);
}
.tac-card h2 {
  margin: 0 0 18px;
  font-size: 17px; font-weight: 800;
  color: var(--tac-ink);
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--tac-line);
}
.tac-card h2 span {
  font-size: 12px; font-weight: 600;
  color: var(--tac-accent-deep);
  background: var(--tac-accent-soft);
  padding: 2px 10px; border-radius: 999px;
  margin-left: 6px;
}

.tac-lab {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--tac-ink);
  margin: 15px 0 8px;
}
.tac-lab .tac-hint {
  font-size: 12px;
  font-weight: 400;
  color: var(--tac-ink-soft);
}

/* 事由 chips（单选） */
.tac-reasons {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 4px;
}
.tac-reason {
  padding: 8px 14px;
  border: 1px solid var(--tac-line);
  background: #f7fbfd;
  border-radius: 999px;
  font-size: 13px; font-weight: 600;
  color: var(--tac-ink-soft);
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.tac-reason[hidden] { display: none; }
.tac-reason:hover { border-color: var(--tac-accent); color: var(--tac-accent-deep); }
.tac-reason.on {
  border-color: var(--tac-accent);
  background: var(--tac-accent);
  color: #fff;
  box-shadow: 0 4px 10px rgba(12, 34, 55, 0.16);
}

/* 字段：滑块 + 数字混合 */
.tac-field { margin-bottom: 4px; }
.tac-mix {
  display: grid;
  grid-template-columns: 1fr 110px;
  gap: 12px;
  align-items: center;
}
.tac-mix input[type="range"] {
  width: 100%;
  accent-color: var(--tac-accent);
  cursor: pointer;
}
.tac-mix input[type="number"],
.tac-num {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 1px solid var(--tac-line);
  border-radius: var(--tac-radius-sm);
  font-size: 14px;
  color: var(--tac-ink);
  background: #f7fbfd;
  font-family: inherit;
  transition: border-color .15s;
}
.tac-mix input[type="number"] { text-align: center; font-weight: 700; }
.tac-num:focus, .tac-mix input:focus {
  outline: none;
  border-color: var(--tac-accent);
  background: #fff;
}

/* 低保开关 */
.tac-switch {
  display: flex; align-items: center; gap: 10px;
  margin: 14px 0 4px;
  cursor: pointer;
  user-select: none;
}
.tac-switch input { position: absolute; opacity: 0; pointer-events: none; }
.tac-slider {
  flex-shrink: 0;
  width: 42px; height: 22px;
  border-radius: 999px;
  background: var(--tac-line);
  position: relative;
  transition: background .2s;
}
.tac-slider::after {
  content: "";
  position: absolute; top: 3px; left: 3px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.25);
  transition: left .2s;
}
.tac-switch input:checked + .tac-slider { background: var(--tac-accent); }
.tac-switch input:checked + .tac-slider::after { left: 23px; }
.tac-switch-txt { font-size: 13.5px; color: var(--tac-ink); }
.tac-switch-txt b { color: var(--tac-accent-deep); }

/* 困难程度 */
.tac-sevs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 6px;
}
.tac-sev {
  padding: 9px 8px;
  border: 1px solid var(--tac-line);
  background: #f7fbfd;
  border-radius: 10px;
  font-size: 13px; font-weight: 600;
  color: var(--tac-ink-soft);
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.tac-sev:hover { border-color: var(--tac-accent); }
.tac-sev.on {
  border-color: var(--tac-accent);
  background: var(--tac-accent-soft);
  color: var(--tac-accent-deep);
  box-shadow: inset 0 0 0 1px var(--tac-accent);
}

/* 对照勾选 */
.tac-checkline {
  display: flex; align-items: center; gap: 8px;
  margin: 12px 0 2px;
  font-size: 13.5px;
  color: var(--tac-ink);
  cursor: pointer;
  user-select: none;
}
.tac-checkline input { width: 15px; height: 15px; margin: 0; accent-color: var(--tac-accent); }
.tac-checkline b { color: var(--tac-accent-deep); }

.tac-row {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 18px;
}
.tac-btn {
  padding: 11px 22px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .18s;
  font-family: inherit;
}
.tac-btn-go {
  background: linear-gradient(90deg, var(--tac-teal) 0%, var(--tac-accent) 130%);
  color: #fff; border: none;
  box-shadow: 0 4px 12px rgba(14, 159, 143, 0.32);
}
.tac-btn-go:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 16px rgba(14, 159, 143, 0.42);
}
.tac-btn-ghost {
  background: #fff;
  border: 1px solid var(--tac-line);
  color: var(--tac-ink-soft);
}
.tac-btn-ghost:hover {
  border-color: var(--tac-accent);
  color: var(--tac-accent-deep);
}

/* ========== 结果区 ========== */
.tac-summary { margin-top: 4px; }
.tac-summary-ph {
  text-align: center;
  padding: 34px 16px;
  color: var(--tac-ink-soft);
}
.tac-summary-ph p { margin: 10px 0 0; font-size: 13.5px; line-height: 1.75; }
.tac-ph-icon { font-size: 40px; margin-bottom: 8px; }

.tac-result { margin-top: 8px; }
.tac-banner {
  padding: 14px 18px;
  border-radius: 12px;
  margin-bottom: 18px;
  font-size: 14px;
  line-height: 1.8;
  display: flex; align-items: flex-start; gap: 12px;
}
.tac-banner-icon { font-size: 22px; flex-shrink: 0; line-height: 1.3; }
.tac-banner.tac-banner-ok {
  background: var(--tac-teal-soft);
  border: 1px solid #b5e6de;
  color: #0b6157;
}
.tac-banner.tac-banner-warn {
  background: var(--tac-accent-soft);
  border: 1px solid var(--tac-accent);
  color: var(--tac-accent-deep);
}
.tac-banner.tac-banner-info {
  background: var(--tac-cyan-soft);
  border: 1px solid #bfe4f2;
  color: #0e6a84;
}

/* 金额区间条 */
.tac-range { padding: 6px 4px 2px; }
.tac-range-amount {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--tac-accent-deep);
  letter-spacing: 0.5px;
}
.tac-range-amount small {
  font-size: 13px; font-weight: 600;
  color: var(--tac-ink-soft);
  letter-spacing: 0;
  margin-left: 8px;
}
.tac-range-bar {
  position: relative;
  height: 16px;
  margin: 26px 8px 34px;
  border-radius: 999px;
  background: linear-gradient(90deg, #e5eef5 0%, #e5eef5 100%);
  border: 1px solid var(--tac-line);
}
.tac-range-fill {
  position: absolute; top: -1px; bottom: -1px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--tac-teal) 0%, var(--tac-accent) 100%);
  box-shadow: 0 3px 10px rgba(12, 34, 55, 0.22);
  transition: left .3s ease, width .3s ease;
}
.tac-range-cap {
  position: absolute; top: -22px; right: 0;
  font-size: 11px; color: var(--tac-ink-soft);
}
.tac-mark {
  position: absolute; top: calc(100% + 8px);
  transform: translateX(-50%);
  text-align: center;
  font-size: 12px;
  color: var(--tac-ink-soft);
  white-space: nowrap;
}
.tac-mark::before {
  content: "";
  position: absolute; bottom: 100%; left: 50%;
  transform: translateX(-50%);
  width: 2px; height: 12px;
  background: var(--tac-ink-soft);
  opacity: .55;
}
.tac-mark b { display: block; font-size: 13.5px; color: var(--tac-ink); }
.tac-mark-mid b { color: var(--tac-accent-deep); font-size: 15px; }
.tac-mark-mid::before { background: var(--tac-accent); opacity: 1; height: 16px; }

/* 分步卡 */
.tac-steps { display: flex; flex-direction: column; gap: 10px; }
.tac-step {
  padding: 12px 16px;
  border: 1px solid var(--tac-line);
  border-left: 4px solid var(--tac-accent);
  border-radius: 12px;
  background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}
.tac-step-t {
  font-size: 13.5px; font-weight: 700;
  color: var(--tac-ink);
  margin-bottom: 4px;
}
.tac-step-t em {
  font-style: normal;
  display: inline-block;
  font-size: 11px; font-weight: 700;
  color: var(--tac-accent-deep);
  background: var(--tac-accent-soft);
  border-radius: 999px;
  padding: 1px 9px;
  margin-right: 8px;
}
.tac-step-f {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 12.5px;
  color: var(--tac-ink-soft);
  background: #eef5f9;
  border: 1px dashed var(--tac-line);
  border-radius: 8px;
  padding: 7px 12px;
  line-height: 1.8;
  word-break: break-all;
}
.tac-step-f b { color: var(--tac-teal-deep); }

/* 对照表 */
.tac-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tac-table th, .tac-table td {
  padding: 9px 12px;
  border: 1px solid var(--tac-line);
  text-align: center;
}
.tac-table th {
  background: var(--tac-navy);
  color: #dcebf7;
  font-weight: 700;
}
.tac-table td:first-child { text-align: left; color: var(--tac-ink-soft); }
.tac-table tr.tac-table-hit td { background: var(--tac-accent-soft); color: var(--tac-accent-deep); font-weight: 700; }

/* 路径 / 材料 / 时限 */
.tac-path { display: flex; flex-direction: column; gap: 8px; }
.tac-path-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 11px 14px;
  border-radius: 11px;
  border: 1px solid var(--tac-line);
  background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
  font-size: 13.5px;
  line-height: 1.75;
}
.tac-path-item .tac-ico { font-size: 18px; line-height: 1.4; flex-shrink: 0; }
.tac-path-item b { color: var(--tac-accent-deep); }
.tac-path-item.tac-path-hot {
  border-color: var(--tac-accent);
  background: var(--tac-accent-soft);
}

.tac-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tac-doc {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 9px 12px;
  border: 1px dashed var(--tac-line);
  border-radius: 10px;
  font-size: 13px;
  color: var(--tac-ink);
  background: #f7fbfd;
}
.tac-doc .tac-ico { flex-shrink: 0; }
.tac-doc b { color: var(--tac-teal-deep); }

.tac-time { display: flex; flex-direction: column; gap: 8px; }
.tac-time-item {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13.5px; line-height: 1.8;
  padding: 10px 14px;
  border-radius: 11px;
  background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
  border: 1px solid var(--tac-line);
}
.tac-time-item b { color: var(--tac-accent-deep); }

.tac-section { margin-bottom: 20px; }
.tac-section h3 {
  font-size: 14px; font-weight: 800;
  color: var(--tac-ink);
  margin: 0 0 12px;
  padding-left: 10px;
  border-left: 3px solid var(--tac-accent);
}

/* ========== 政策速查 ========== */
.tac-policy {
  background: var(--tac-card);
  border: 1px solid var(--tac-line);
  border-radius: var(--tac-radius);
  padding: 24px;
  box-shadow: var(--tac-shadow);
  margin-bottom: 22px;
}
.tac-policy-head h2 {
  margin: 0 0 8px;
  font-size: 18px; font-weight: 800;
  color: var(--tac-ink);
}
.tac-policy-head p {
  margin: 0 0 18px; font-size: 13.5px;
  color: var(--tac-ink-soft); line-height: 1.75;
}
.tac-policy-head p b { color: var(--tac-teal-deep); }
.tac-policy-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.tac-policy-card {
  padding: 16px 18px;
  border-radius: 12px;
  border: 1px solid var(--tac-line);
  background: linear-gradient(180deg, #f7fbfd 0%, #ffffff 100%);
}
.tac-policy-card h4 {
  margin: 0 0 10px;
  font-size: 14px; font-weight: 800;
  color: var(--tac-teal-deep);
}
.tac-policy-card ul {
  margin: 0; padding-left: 18px;
  font-size: 12.5px; line-height: 1.9;
  color: var(--tac-ink-soft);
}
.tac-policy-card ul li { margin-bottom: 2px; }
.tac-policy-card ul li::marker { color: var(--tac-teal); }
.tac-policy-card ul b { color: var(--tac-ink); }

/* ========== 风险提示 ========== */
.tac-disclaimer {
  padding: 14px 18px;
  background: #f4fafc;
  border: 1px dashed #9fd4e3;
  border-radius: 12px;
  text-align: center;
}
.tac-disclaimer p {
  margin: 0; font-size: 13px;
  color: var(--tac-ink-soft); line-height: 1.8;
}
.tac-disclaimer b { color: var(--tac-cyan-deep); }

/* ========== 响应式 ========== */
@media (max-width: 860px) {
  .tac-hero { grid-template-columns: 1fr; padding: 26px 20px; }
  .tac-hero h1 { font-size: 26px; }
  .tac-hero-panel { order: -1; max-width: none; }
  .tac-desk { grid-template-columns: 1fr; }
  .tac-track-switch { grid-template-columns: 1fr; }
  .tac-docs { grid-template-columns: 1fr; }
  .tac-policy-grid { grid-template-columns: 1fr; }
  .tac-range-amount { font-size: 34px; }
}
@media (max-width: 540px) {
  .tac { padding: 16px 12px 24px; }
  .tac-card, .tac-policy, .tac-track { padding: 16px 16px 14px; }
  .tac-btn { padding: 9px 16px; font-size: 13px; }
  .tac-sevs { grid-template-columns: 1fr; }
  .tac-mix { grid-template-columns: 1fr 90px; }
}

/* ========== 深主题覆盖 ========== */
:root[data-theme="dark"] .tac {
  --tac-teal-soft: #0e2f2b;
  --tac-cyan-soft: #0d2a38;
  --tac-warn-soft: #3a1c10;
  --tac-navy: #0a1622;
  --tac-navy-2: #10233a;
  --tac-ink: #e2eef7;
  --tac-ink-soft: #8ba6bd;
  --tac-line: #24405c;
  --tac-bg: #0a1420;
  --tac-card: #0f1e2e;
  --tac-shadow: 0 2px 8px rgba(0,0,0,0.35);
  --tac-shadow-lg: 0 16px 40px rgba(0,0,0,0.55);
}
:root[data-theme="dark"] .tac.mode-urgent { --tac-accent-deep: #ff8b5e; }
:root[data-theme="dark"] .tac.mode-expense { --tac-accent-deep: #4cc9e8; }
:root[data-theme="dark"] .tac-hero {
  background:
    radial-gradient(120% 150% at 8% 0%, rgba(14, 159, 143, 0.28) 0%, transparent 55%),
    radial-gradient(110% 130% at 100% 100%, rgba(23, 162, 201, 0.22) 0%, transparent 60%),
    linear-gradient(135deg, #081119 0%, #0c1e33 100%);
  border-color: #1c3f63;
}
:root[data-theme="dark"] .tac-hero-panel { background: rgba(4, 12, 22, 0.8); border-color: #1f4468; }
:root[data-theme="dark"] .tac-track-btn,
:root[data-theme="dark"] .tac-reason,
:root[data-theme="dark"] .tac-sev,
:root[data-theme="dark"] .tac-num,
:root[data-theme="dark"] .tac-mix input[type="number"],
:root[data-theme="dark"] .tac-btn-ghost,
:root[data-theme="dark"] .tac-doc,
:root[data-theme="dark"] .tac-path-item,
:root[data-theme="dark"] .tac-time-item,
:root[data-theme="dark"] .tac-step {
  background: #0f1e2e; border-color: #24405c; color: var(--tac-ink-soft);
}
:root[data-theme="dark"] .tac-track-btn.on,
:root[data-theme="dark"] .tac-reason.on,
:root[data-theme="dark"] .tac-sev.on {
  background: var(--tac-accent-soft); color: var(--tac-accent-deep);
}
:root[data-theme="dark"] .tac-reason.on { background: var(--tac-accent); color: #06121d; }
:root[data-theme="dark"] .tac-step {
  background: linear-gradient(180deg, #0d1c2c 0%, #0f1e2e 100%);
}
:root[data-theme="dark"] .tac-step-f { background: #0a1622; border-color: #24405c; color: #9fc3dd; }
:root[data-theme="dark"] .tac-step-f b { color: #56d6c4; }
:root[data-theme="dark"] .tac-range-bar { background: #12263a; }
:root[data-theme="dark"] .tac-mark b { color: var(--tac-ink); }
:root[data-theme="dark"] .tac-table th { background: #0a1622; color: #cfe3f2; }
:root[data-theme="dark"] .tac-table td { background: #0f1e2e; color: var(--tac-ink); }
:root[data-theme="dark"] .tac-table tr.tac-table-hit td { background: var(--tac-accent-soft); color: var(--tac-accent-deep); }
:root[data-theme="dark"] .tac-policy-card {
  background: linear-gradient(180deg, #0d1c2c 0%, #0f1e2e 100%);
  border-color: #24405c;
}
:root[data-theme="dark"] .tac-policy-card h4 { color: #56d6c4; }
:root[data-theme="dark"] .tac-disclaimer { background: #0c1c28; border-color: #1f5a70; }
:root[data-theme="dark"] .tac-disclaimer b { color: #4cc9e8; }
:root[data-theme="dark"] .tac-path-item b,
:root[data-theme="dark"] .tac-time-item b { color: var(--tac-accent-deep); }
:root[data-theme="dark"] .tac-doc b { color: #56d6c4; }
:root[data-theme="dark"] .tac-banner.tac-banner-ok { color: #6fe0cf; }
:root[data-theme="dark"] .tac-banner.tac-banner-info { color: #6fd2ee; }
