/* 家人 RC (family.html): page-only layout on top of style.css tokens and components */

/* ---------- member inputs: a table on wide screens, label/value cards below 900px ---------- */
.fam-in { padding: 0; overflow: hidden; }
.fam-head { display: flex; align-items: baseline; justify-content: space-between; gap: 4px 14px; flex-wrap: wrap; padding: 14px 18px 2px; }
.fam-head .ch { margin: 0; }
.fam-head .linkbtn { font-weight: 600; }
.fam-t { table-layout: fixed; }
.fam-t .c-rc { width: 13%; }
.fam-t .c-em { width: 12%; }
.fam-t .c-mo { width: 11%; }
.fam-t .c-exp { width: 148px; }
.fam-t .c-sw { width: 94px; }
.fam-t .c-del { width: 60px; }
.fam-t th { cursor: default; position: static; white-space: normal; line-height: 1.3; }
.fam-t th small { display: block; font-weight: 400; font-size: 11px; color: var(--ink-3); }
.fam-t td { vertical-align: middle; padding-top: 7px; padding-bottom: 7px; }
.fam-t tbody tr:last-child td { border-bottom: 0; }
.fam-t input { width: 100%; min-width: 0; padding: 5px 8px; font: 500 13.5px/1.3 var(--sans); }
.fam-t input.n { text-align: right; font: 600 14px/1.3 var(--num); font-variant-numeric: tabular-nums; }
.fam-t input.n::placeholder, .fam-t input::placeholder { color: var(--ink-3); opacity: .6; font-weight: 400; }
.fam-t input[type="month"] { font: 500 13px/1.3 var(--num); font-variant-numeric: tabular-nums; }
.fam-t .switch { padding: 4px 0; }
.fam-del { color: var(--ink-3); font-weight: 500; padding: 2px 0; }
.fam-del:hover { color: var(--red); }

.fam-opts { gap: 8px 22px; border-bottom: 0; }
.fam-opts .field { flex-wrap: wrap; }
.fam-opts input[type="date"] { font: 500 13px/1.3 var(--num); font-variant-numeric: tabular-nums; padding: 3px 6px; border-radius: 6px; border-color: var(--line); }
.fam-opts .seg { vertical-align: middle; }

@media (max-width: 900px) {
  .fam-t, .fam-t tbody { display: block; width: auto; }
  .fam-t colgroup, .fam-t thead { display: none; }
  .fam-t tr { position: relative; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 10px 14px; padding: 12px 16px 14px; border-bottom: 1px solid var(--line); }
  .fam-t tbody tr:last-child { border-bottom: 0; }
  .fam-t td, .fam-t td:first-child, .fam-t td:last-child { display: flex; flex-direction: column; gap: 4px; padding: 0; border: 0; min-width: 0; }
  .fam-t td::before { content: attr(data-l); font-size: 11.5px; color: var(--ink-3); }
  .fam-t td.c-name { grid-column: 1 / -1; padding-right: 56px; }
  .fam-t td.c-name input { font-weight: 600; }
  .fam-t td.c-del { position: absolute; top: 15px; right: 16px; }
  .fam-t td.c-name::before, .fam-t td.c-del::before { content: none; }
}

/* ---------- results ---------- */
.fam-res { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 14px; align-items: start; margin-bottom: 14px; }
.fam-res .card { margin-bottom: 0; min-width: 0; }
.fam-res .ch { margin-top: 0; }
.verdict .v-why.muted { font-size: 12px; margin-top: 8px; }
.fam-up { color: var(--good); }
.fam-dn { color: var(--ink-3); }
.fam-warn { color: var(--warn); }
td .fam-warn { white-space: normal; }
.fam-who td { vertical-align: top; }
.fam-who td:nth-child(2) { white-space: normal; min-width: 130px; }
.fam-who td small, .fam-cur td small, .fam-st td small { white-space: normal; }
.fam-u { display: block; white-space: nowrap; }
.fam-u i { font-style: normal; font-size: 11px; font-weight: 400; color: var(--ink-3); margin-left: 4px; }
.fam-cur td.num small, .fam-who td.num small { text-align: right; }

/* ---------- schedule ---------- */
.fam-sched { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 14px; align-items: start; }
.fam-sched .card { margin-bottom: 0; min-width: 0; }
.fam-s .ch { margin-top: 0; }
.fam-st td { vertical-align: top; }
.fam-st th small { display: block; font-weight: 400; }
.fam-p { margin: 10px 0 0; font-size: 12.5px; }
.fam-empty { color: var(--ink-2); font-size: 13.5px; }

.fam-src { margin-top: 12px; }
.fam-src .ch { margin-top: 0; }
.fam-links { margin: 0; padding-left: 18px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 4px 24px; font-size: 13px; }
.grid-notes .note a { white-space: nowrap; }

@media (max-width: 1200px) {
  .fam-res { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  /* who-does-what: each person becomes a label/value card */
  .fam-who, .fam-who tbody, .fam-who tr { display: block; width: auto; }
  .fam-who thead { display: none; }
  .fam-who tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  .fam-who tbody tr:last-child { border-bottom: 0; }
  .fam-who td, .fam-who td:first-child, .fam-who td:last-child { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; padding: 2px 0; border: 0; white-space: normal; text-align: left; min-width: 0; }
  .fam-who td::before { content: attr(data-l); color: var(--ink-3); font: 400 12px/1.6 var(--sans); }
  .fam-who td:first-child { display: block; font-size: 14.5px; padding-bottom: 4px; }
  .fam-who td:first-child::before { content: none; }
  .fam-who td.num small { text-align: left; }
  .fam-who .fam-u { display: inline; margin-right: 12px; }
  .fam-opts .field { width: 100%; justify-content: space-between; }
  .fam-opts .seg { flex: none; }
}
@media (max-width: 560px) {
  .fam-st th:nth-child(4), .fam-st td:nth-child(4) { display: none; }
  .fam-st td:nth-child(2) small { white-space: normal; }
  .verdict .v-eq > div:last-child { grid-column: 1 / -1; }
}
