.family-area { max-width: 1100px; margin: 0 auto; }
.family-card { padding: 1.5rem; margin-bottom: 1.5rem; }
.family-account { max-width: 680px; margin: 0 auto; }
.family-links { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 1rem; }
.family-state { font-weight: 700; color: #285d49; }
.family-help { margin: 2rem 0; text-align: center; }
.family-steps { padding-left: 1.5rem; }
.family-steps li { padding: .5rem 0; }
.family-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.5rem; }
.family-summary div { border-bottom: 1px solid #dde6e1; padding: .6rem 0; overflow-wrap: anywhere; }
.family-summary dt { font-weight: 700; }
.family-summary dd { margin: .3rem 0 0; }
.family-area input:not([type=checkbox]):not([type=hidden]), .family-area select, .family-area textarea { width: 100%; }
.family-area input[type=checkbox] { width: auto; margin-right: .5rem; }
.family-area [hidden] { display: none !important; }
.family-area .table-responsive { overflow-x: auto; }
.family-area .errorlist { color: #9b1c31; }
.family-home-entry { border: 1px solid #c3d6cb; border-radius: 18px; background: #f1f7f3; padding: 1.2rem; margin: 1.3rem 0; }
.family-home-entry h2 { margin: .35rem 0; }
.family-home-entry .button { gap: .8rem; white-space: normal; }
.portal-hero-panel .family-home-entry { color: #173a30; }
.portal-hero-panel .family-home-entry h2 { color: #173a30; }
.portal-hero-panel .family-home-entry p { color: #385b4c; margin: .7rem 0 1rem; }
.portal-hero-panel .family-home-entry .eyebrow { color: #2d6b50; }
.family-welcome { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, 1fr); gap: 2.5rem; padding: 2.5rem; margin-bottom: 1.7rem; border-radius: 24px; background: #1d4939; color: #fff; }
.family-welcome h1 { font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.12; margin: .7rem 0 1rem; color: #fff; }
.family-welcome .eyebrow { color: #c8e4d5; }
.family-welcome p { color: #e3eee7; line-height: 1.65; }
.family-welcome-note { border-left: 1px solid #547566; padding-left: 2rem; align-self: center; }
.family-welcome-note h2 { font-size: 1.2rem; margin: 1rem 0 .6rem; color: #fff; }
.family-step-number { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid #b8d4bf; border-radius: 50%; font-weight: 700; }
.family-welcome-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.family-welcome-tags span { font-size: .83rem; padding: .3rem .7rem; border: 1px solid #729782; border-radius: 20px; color: #fff; }
.family-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.7rem; }
.family-entry-card { display: flex; flex-direction: column; padding: 1.5rem; }
.family-entry-card h2 { margin: .6rem 0; font-size: 1.4rem; }
.family-entry-card p { flex: 1; color: #52685e; line-height: 1.6; }
.family-entry-card .button { width: 100%; margin-top: 1rem; text-align: center; }
.family-process h2 { margin-top: .5rem; }
.family-important { padding: 1rem; border-left: 4px solid #2d6b50; background: #eff6f1; border-radius: 0 8px 8px 0; }
.family-area .field { min-width: 0; }
.parent-signup-form .autocomplete-results { top: calc(100% + 4px); }
.parent-signup-form .fiscal-code-actions { margin-top: .7rem; }
.parent-signup-form .fiscal-code-actions .button { max-width: 100%; white-space: normal; }
.parent-signup-form .calculation-status.is-success { padding: .8rem; border-left: 4px solid currentColor; border-radius: 4px; background: #fff0f0; color: #9b1c31; font-size: .9rem; font-weight: 700; line-height: 1.5; }
.family-area input:disabled { color: #314e41; background: #eff4f1; opacity: 1; }
@media (max-width: 800px) { .family-entry-grid { grid-template-columns: 1fr; } .family-welcome { grid-template-columns: 1fr; gap: 1rem; padding: 1.5rem; } .family-welcome-note { border-left: 0; border-top: 1px solid #547566; padding: 1rem 0 0; } }
@media (max-width: 700px) { .family-summary { grid-template-columns: 1fr; } .family-card { padding: 1rem; } .family-links .button { width: 100%; } }
.family-field-heading { grid-column: 1 / -1; margin: 1rem 0 0; }
.wizard-step h2 { scroll-margin-top: 7rem; }
.family-privacy { max-width: 880px; margin-inline: auto; line-height: 1.7; }
.family-privacy h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.2; }
.family-privacy h2 { font-size: 1.2rem; line-height: 1.4; }
.privacy-version { color: #52685e; font-size: .85rem; overflow-wrap: anywhere; }
.privacy-index { margin: 1.5rem 0; padding: 1rem 1.3rem; background: #f1f6f3; border-radius: 12px; }
.privacy-index ul, .privacy-sources { padding-left: 1.2rem; }
.privacy-index li, .privacy-sources li { margin: .6rem 0; }
.privacy-section { border-top: 1px solid #dde6e1; padding-top: 1.2rem; margin-top: 1.5rem; scroll-margin-top: 7rem; overflow-wrap: anywhere; }
.family-area .privacy-ack { display: flex; align-items: flex-start; gap: .6rem; line-height: 1.5; }
.family-area .privacy-ack input[type=checkbox] { flex: 0 0 auto; margin: .25rem 0 0; width: 1.2rem; height: 1.2rem; }
.privacy-read-intro { margin-bottom: 1rem; }
.privacy-read-intro h2 { font-size: 1.1rem; margin: 0; }
.privacy-read-intro .button { white-space: normal; text-align: center; flex-wrap: wrap; gap: .3rem; }
.family-paper-receipt { border: 2px solid #b5862f; }
.family-paper-receipt h2 { margin-top: .5rem; }
.family-paper-warning { background: #fff6e5; color: #65480d; border-left: 4px solid #b5862f; border-radius: 6px; padding: 1rem 1.2rem; line-height: 1.6; }
.family-paper-warning p { margin: 0; }
.family-paper-warning p + p { margin-top: .5rem; }
.family-paper-reference { line-height: 1.6; }
.family-paper-reference strong { display: inline-block; padding: .15rem .5rem; background: #edf3ef; border-radius: 5px; overflow-wrap: anywhere; }
.family-area .family-paper-ack { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem; border: 1px solid #b8c9be; border-radius: 10px; background: #f5f8f6; line-height: 1.6; cursor: pointer; }
.family-area .family-paper-ack input[type=checkbox] { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; min-height: 0; margin: .25rem 0 0; }
.family-paper-help { color: #52685e; line-height: 1.5; font-size: .95rem; }
.family-paper-receipt .button { max-width: 100%; white-space: normal; text-align: center; }
.family-paper-receipt .button:disabled { opacity: 1; background: #e3e9e5; color: #526158; border-color: #c7d2cb; box-shadow: none; cursor: not-allowed; }
@media print { .family-privacy { max-width: none; box-shadow: none; border: 0; padding: 0; } .family-privacy .family-links, .family-help, .privacy-index { display: none; } .privacy-section { break-inside: avoid; } }
