/* ============================================================
   产后康复项目费用与疗程规划器 · 独立视觉体系
   暖珊瑚 + 奶油沙底 + 条目式疗程清单
   ============================================================ */

.prc-page {
  --prc-bg: #fdf7f3;
  --prc-card: #ffffff;
  --prc-soft: #fbeee7;
  --prc-soft-2: #f6e3d8;
  --prc-ink: #2a1a14;
  --prc-muted: #7a655c;
  --prc-line: #efdcd1;
  --prc-accent: #d9533a;
  --prc-accent-2: #f0915f;
  --prc-warn: #a16207;
  --prc-ok: #157f5b;
  --prc-c1: #e2725b;
  --prc-c2: #f0a868;
  --prc-c3: #d9a441;
  --prc-c4: #8aa78f;
  --prc-c5: #8c7ae6;
  background: var(--prc-bg);
  color: var(--prc-ink);
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  padding: 22px 16px 56px;
  min-height: 60vh;
}

:root[data-theme="dark"] .prc-page {
  --prc-bg: #150f0c;
  --prc-card: #1f1713;
  --prc-soft: #2a1f19;
  --prc-soft-2: #33261e;
  --prc-ink: #f6ece6;
  --prc-muted: #b09a8e;
  --prc-line: #3a2b23;
  --prc-accent: #f28b6b;
  --prc-accent-2: #f7b267;
  --prc-warn: #fbbf24;
  --prc-ok: #4ade80;
  --prc-c1: #f28b6b;
  --prc-c2: #f7b267;
  --prc-c3: #e5c07b;
  --prc-c4: #9ec5a3;
  --prc-c5: #b6a6f5;
}

.prc-page * { box-sizing: border-box; }

.prc-shell {
  max-width: 1180px;
  margin: 0 auto;
}

.prc-crumb {
  font-size: 12.5px;
  color: var(--prc-muted);
  margin-bottom: 14px;
  line-height: 1.7;
}
.prc-crumb a { color: var(--prc-muted); text-decoration: none; }
.prc-crumb a:hover { color: var(--prc-accent); }

/* ---------- Hero ---------- */
.prc-hero {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 26px;
  align-items: center;
  background: linear-gradient(120deg, var(--prc-card) 0%, var(--prc-soft) 100%);
  border: 1px solid var(--prc-line);
  border-left: 5px solid var(--prc-accent);
  border-radius: 18px;
  padding: 26px 28px;
  margin-bottom: 20px;
}
.prc-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--prc-accent);
  background: var(--prc-soft-2);
  border-radius: 999px;
  padding: 4px 12px;
  margin-bottom: 10px;
}
.prc-hero h1 {
  font-size: 32px;
  line-height: 1.32;
  margin: 0 0 10px;
  letter-spacing: -.01em;
}
.prc-hero p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.9;
  color: var(--prc-muted);
  max-width: 700px;
}
.prc-hero p b { color: var(--prc-ink); font-weight: 700; }

.prc-hero-badges {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 168px;
}
.prc-hero-badges div {
  background: rgba(217, 83, 58, .07);
  border: 1px solid var(--prc-line);
  border-radius: 11px;
  padding: 8px 12px;
  line-height: 1.35;
}
.prc-hero-badges b { display: block; font-size: 14px; color: var(--prc-accent); }
.prc-hero-badges span { font-size: 12px; color: var(--prc-muted); }

/* ---------- 主体网格 ---------- */
.prc-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 18px;
  align-items: start;
}
.prc-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }

.prc-card {
  background: var(--prc-card);
  border: 1px solid var(--prc-line);
  border-radius: 16px;
  padding: 18px 20px 20px;
}
.prc-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.prc-card-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .01em;
}
.prc-card-head h2 span {
  font-size: 12px;
  font-weight: 500;
  color: var(--prc-muted);
  margin-left: 8px;
}
.prc-link {
  border: 0;
  background: none;
  color: var(--prc-accent);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  padding: 2px 0;
  font-family: inherit;
}
.prc-link:hover { text-decoration: underline; }

/* ---------- 项目行 ---------- */
.prc-proj {
  border-top: 1px dashed var(--prc-line);
  padding: 13px 0 12px;
}
.prc-proj:first-of-type { border-top: 0; padding-top: 2px; }
.prc-proj.is-off { opacity: .5; }

.prc-proj-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
}
.prc-check {
  width: 17px;
  height: 17px;
  accent-color: var(--prc-accent);
  cursor: pointer;
  flex: none;
}
.prc-proj-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--prc-ink);
  cursor: pointer;
  flex: 1;
  min-width: 0;
}
.prc-tag {
  font-size: 11.5px;
  color: var(--prc-muted);
  background: var(--prc-soft);
  border-radius: 999px;
  padding: 2px 9px;
  white-space: nowrap;
}
.prc-tag.save { color: var(--prc-ok); background: rgba(21,127,91,.1); font-weight: 700; }

.prc-inputs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.prc-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.prc-field label {
  font-size: 11.5px;
  color: var(--prc-muted);
  line-height: 1.4;
}
.prc-input {
  width: 100%;
  height: 34px;
  border: 1px solid var(--prc-line);
  border-radius: 9px;
  background: var(--prc-card);
  color: var(--prc-ink);
  font-size: 13.5px;
  padding: 0 9px;
  font-family: inherit;
  font-variant-numeric: tabular-nums;
  transition: border-color .15s, box-shadow .15s;
}
.prc-input:focus {
  outline: none;
  border-color: var(--prc-accent);
  box-shadow: 0 0 0 3px rgba(217, 83, 58, .13);
}
.prc-input:disabled { background: var(--prc-soft); cursor: not-allowed; }

/* ---------- 通用输入行 ---------- */
.prc-row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.prc-row3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.prc-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--prc-ink);
}
.prc-label small {
  font-weight: 500;
  font-size: 11.5px;
  color: var(--prc-muted);
  margin-left: 4px;
}
.prc-hint {
  font-size: 11.5px;
  color: var(--prc-muted);
  line-height: 1.6;
  margin-top: 5px;
}
.prc-gap { margin-top: 14px; }

/* ---------- 结果卡 ---------- */
.prc-summary {
  background: var(--prc-card);
  border: 1px solid var(--prc-line);
  border-radius: 16px;
  padding: 18px 20px 20px;
  position: sticky;
  top: 14px;
}
.prc-sum-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.prc-sum-head h2 { margin: 0; font-size: 15px; font-weight: 800; }
.prc-badge {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--prc-accent);
  background: var(--prc-soft-2);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.prc-big {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--prc-accent);
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}
.prc-big small {
  font-size: 13px;
  font-weight: 600;
  color: var(--prc-muted);
  margin-left: 6px;
}
.prc-range {
  font-size: 12.5px;
  color: var(--prc-muted);
  margin-top: 4px;
  line-height: 1.6;
}
.prc-range s { color: var(--prc-muted); opacity: .8; }

.prc-save {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: rgba(21, 127, 91, .09);
  border: 1px solid rgba(21, 127, 91, .22);
  border-radius: 11px;
  padding: 9px 12px;
  font-size: 12.5px;
  color: var(--prc-ok);
  line-height: 1.5;
}
.prc-save b { font-size: 16px; }
.prc-save.none {
  background: var(--prc-soft);
  border-color: var(--prc-line);
  color: var(--prc-muted);
}

.prc-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 14px;
}
.prc-metric {
  background: var(--prc-soft);
  border-radius: 11px;
  padding: 10px 12px;
  line-height: 1.45;
}
.prc-metric span { display: block; font-size: 11.5px; color: var(--prc-muted); }
.prc-metric b { font-size: 16px; font-variant-numeric: tabular-nums; }

/* ---------- 对比条 ---------- */
.prc-bars { margin-top: 16px; }
.prc-bars h3 {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--prc-muted);
  margin: 0 0 8px;
}
.prc-bar-row {
  display: grid;
  grid-template-columns: 88px 1fr 58px;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
  font-size: 12px;
}
.prc-bar-row .nm {
  color: var(--prc-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.prc-bar-track {
  height: 9px;
  background: var(--prc-soft);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.prc-bar-track i {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: 999px;
  transition: width .35s ease;
}
.prc-bar-track i.a { background: linear-gradient(90deg, var(--prc-accent), var(--prc-accent-2)); }
.prc-bar-track i.b { background: var(--prc-c4); opacity: .85; }
.prc-bar-row .vl { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }

/* ---------- 明细 ---------- */
.prc-items { margin-top: 16px; }
.prc-items table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.prc-items th {
  text-align: left;
  font-weight: 600;
  color: var(--prc-muted);
  font-size: 11.5px;
  padding: 0 0 6px;
  border-bottom: 1px solid var(--prc-line);
}
.prc-items th.num, .prc-items td.num { text-align: right; }
.prc-items td {
  padding: 7px 0;
  border-bottom: 1px dashed var(--prc-line);
  vertical-align: top;
  line-height: 1.5;
}
.prc-items td.item b { display: block; font-size: 13px; }
.prc-items td.item span { color: var(--prc-muted); font-size: 11.5px; }
.prc-items td.num { font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.prc-items tr.total td {
  border-bottom: 0;
  padding-top: 10px;
  font-weight: 800;
  font-size: 13.5px;
}
.prc-items tr.total td.num { color: var(--prc-accent); font-size: 16px; }

/* ---------- 按钮 ---------- */
.prc-actions { display: flex; gap: 10px; margin-top: 16px; }
.prc-btn {
  flex: 1;
  height: 42px;
  border-radius: 11px;
  border: 1px solid transparent;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  color: #fff;
  background: linear-gradient(135deg, var(--prc-accent), var(--prc-accent-2));
  transition: transform .14s, box-shadow .18s;
}
.prc-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(217, 83, 58, .25); }
.prc-btn.ghost {
  flex: 0 0 auto;
  padding: 0 18px;
  background: transparent;
  border-color: var(--prc-line);
  color: var(--prc-ink);
  font-weight: 600;
}
.prc-btn.ghost:hover { box-shadow: none; border-color: var(--prc-accent); color: var(--prc-accent); }

/* ---------- 提示 / 错误 / AI ---------- */
.prc-error {
  font-size: 12.5px;
  line-height: 1.7;
  color: #dc2626;
  margin-top: 8px;
}
.prc-error:empty { display: none; }

.prc-tip {
  margin-top: 14px;
  background: var(--prc-soft);
  border-left: 3px solid var(--prc-accent-2);
  border-radius: 0 10px 10px 0;
  padding: 11px 13px;
  font-size: 12.5px;
  line-height: 1.85;
  color: var(--prc-ink);
}
.prc-tip b { color: var(--prc-accent); }

.prc-ai { margin-top: 14px; }
.prc-ai-btn {
  width: 100%;
  height: 40px;
  border-radius: 11px;
  border: 1px dashed var(--prc-accent);
  background: transparent;
  color: var(--prc-accent);
  font-size: 13.5px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s;
}
.prc-ai-btn:hover { background: var(--prc-soft); }
.prc-ai-btn:disabled { opacity: .6; cursor: wait; }
.prc-ai-note { font-size: 11.5px; color: var(--prc-muted); margin-top: 7px; line-height: 1.6; }
.prc-ai-status {
  font-size: 12.5px;
  line-height: 1.85;
  color: var(--prc-ink);
  margin-top: 10px;
  white-space: pre-wrap;
  background: var(--prc-soft);
  border-radius: 10px;
  padding: 10px 12px;
}
.prc-ai-status:empty { display: none; }
.prc-ai-status.err { color: #dc2626; }

/* ---------- 下方区块 ---------- */
.prc-block {
  background: var(--prc-card);
  border: 1px solid var(--prc-line);
  border-radius: 16px;
  padding: 20px 22px 22px;
  margin-top: 18px;
}
.prc-block h2 {
  font-size: 18px;
  margin: 0 0 6px;
  letter-spacing: .01em;
}
.prc-block > p {
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--prc-muted);
  line-height: 1.8;
}
.prc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.prc-table th {
  text-align: left;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--prc-muted);
  padding: 0 8px 8px;
  border-bottom: 1px solid var(--prc-line);
  white-space: nowrap;
}
.prc-table td {
  padding: 9px 8px;
  border-bottom: 1px dashed var(--prc-line);
  line-height: 1.5;
  vertical-align: top;
}
.prc-table th.num, .prc-table td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.prc-table tr.hl td { background: rgba(217, 83, 58, .06); font-weight: 700; }
.prc-table td.good { color: var(--prc-ok); font-weight: 700; }
.prc-table td.bad { color: var(--prc-warn); font-weight: 700; }
.prc-metric b.ok { color: var(--prc-ok); }
.prc-metric b.bad { color: var(--prc-warn); }
.prc-table .sub { display: block; font-size: 11px; color: var(--prc-muted); font-weight: 400; }

.prc-faq { margin-top: 18px; }
.prc-faq h2 { font-size: 18px; margin: 0 0 12px; }
.prc-faq details {
  border-bottom: 1px dashed var(--prc-line);
  padding: 11px 0;
}
.prc-faq summary {
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  list-style: none;
  position: relative;
  padding-right: 24px;
}
.prc-faq summary::-webkit-details-marker { display: none; }
.prc-faq summary::after {
  content: "+";
  position: absolute;
  right: 2px;
  top: 0;
  font-size: 17px;
  color: var(--prc-accent);
  font-weight: 400;
}
.prc-faq details[open] summary::after { content: "–"; }
.prc-faq p {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.9;
  color: var(--prc-muted);
}
.prc-faq p b { color: var(--prc-ink); }

.prc-disclaimer {
  margin-top: 20px;
  font-size: 11.5px;
  line-height: 1.8;
  color: var(--prc-muted);
  border-top: 1px solid var(--prc-line);
  padding-top: 12px;
}

/* ---------- 响应式 ---------- */
@media (max-width: 900px) {
  .prc-grid { grid-template-columns: 1fr; }
  .prc-summary { position: static; }
  .prc-hero { grid-template-columns: 1fr; padding: 22px; }
  .prc-hero h1 { font-size: 26px; }
  .prc-hero-badges { flex-direction: row; flex-wrap: wrap; min-width: 0; }
  .prc-hero-badges div { flex: 1 1 140px; }
  .prc-inputs { grid-template-columns: 1fr 1fr 1fr; }
  .prc-block { padding: 18px 16px; }
  .prc-table { display: block; overflow-x: auto; white-space: nowrap; }
}
@media (max-width: 560px) {
  .prc-page { padding: 14px 10px 40px; }
  .prc-hero h1 { font-size: 23px; }
  .prc-row3 { grid-template-columns: 1fr 1fr; }
  .prc-metrics { grid-template-columns: 1fr 1fr; }
  .prc-bar-row { grid-template-columns: 74px 1fr 52px; }
}

/* ---------- 打印 ---------- */
@media print {
  .prc-page { background: #fff; padding: 0; }
  .prc-crumb, .prc-hero-badges, .prc-actions, .prc-ai, .prc-faq, .prc-link, .prc-disclaimer { display: none !important; }
  .prc-hero { border: 0; border-left: 4px solid #d9533a; background: #fff; padding: 0 0 12px; }
  .prc-grid { grid-template-columns: 1fr; }
  .prc-summary { position: static; border: 1px solid #ddd; }
  .prc-card, .prc-block { border: 1px solid #ddd; box-shadow: none; }
  .prc-input { border: 0; }
}
