/* Family cards share the Marche palette and keep editing controls within reach. */
.people-page { max-width: 1100px; }
.people-tools { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-block: 20px; }
.people-tools > .button { flex-shrink: 0; }
.check-row { display: flex; align-items: center; gap: 12px; min-height: 48px; padding-block: 8px; cursor: pointer; overflow-wrap: anywhere; }
.check-row input[type="checkbox"] { width: 24px; height: 24px; min-height: 24px; flex: 0 0 24px; margin: 0; accent-color: var(--accent); }
.people-list { display: grid; gap: 24px; }
.people-group { min-width: 0; }
.people-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; list-style: none; padding: 0; }
.person-card { padding: 20px; border: 1px solid var(--divider); border-radius: var(--radius-lg); background: var(--surface); min-width: 0; overflow-wrap: anywhere; }
.person-card h3 { font-family: Georgia, "Times New Roman", serif; font-size: 24px; }
.person-card p { margin-bottom: 12px; }
.person-card .button { width: 100%; }
.person-kind { color: var(--ink-muted); font-size: 14px; }
.person-archived { border-style: dashed; }
.person-editor { scroll-margin-top: 20px; }
.person-editor > .section-head { flex-wrap: wrap; }
.person-editor input[readonly] { background: var(--bg); }
.person-fieldset, .favorite-fieldset { margin: 24px 0 0; padding: 0; border: 0; min-width: 0; }
.person-fieldset > legend { font-family: Georgia, "Times New Roman", serif; font-size: 23px; font-weight: 600; padding: 0 0 12px; }
.favorite-fieldset > legend { font-weight: 650; font-size: 14px; }
.favorite-list { max-height: 280px; overflow: auto; padding: 8px; }
.absence-grid { display: grid; gap: 8px; }
.absence-day { display: grid; grid-template-columns: minmax(90px, 1fr) 1fr 1fr; align-items: center; gap: 8px; border-bottom: 1px solid var(--divider); }
.absence-day strong { font-size: 14px; }
.absence-day .check-row { gap: 6px; }
.person-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.person-actions .button { flex: 1 1 210px; }
.product-adder { margin-top: 24px; border-top: 1px solid var(--divider); padding-top: 12px; }
.product-adder summary { min-height: 48px; padding-block: 12px; cursor: pointer; font-weight: 650; }
.person-editor textarea, .person-editor p { overflow-wrap: anywhere; }
.family-home { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px; text-align: center; }
@media (min-width: 760px) {
  .people-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .people-group:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .person-editor { max-width: 720px; margin-inline: auto; padding: 32px; }
}
@media (max-width: 420px) {
  .person-editor { padding: 16px; }
  .absence-day { grid-template-columns: minmax(72px, 1fr) 1fr 1fr; gap: 4px; }
  .absence-day .check-row { font-size: 14px; }
}
@media print { .people-tools, .person-editor, .person-card .button { display: none; } }
