.family-navigation{border-bottom:1px solid var(--ds-border-subtle);grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:520px;margin:0 auto;padding:6px 16px 12px;display:grid}.family-navigation a{border-radius:var(--radius-button);text-align:center;min-height:44px;color:var(--ds-text-sec);font-size:14px;font-family:var(--ds-font-display);border:1px solid #0000;padding:12px 2px;text-decoration:none}.family-navigation a:hover{background:var(--ds-surface)}.family-navigation a:focus-visible,.family-portal a:focus-visible{outline-offset:2px;outline:2px solid silver}.family-portal{overflow-wrap:anywhere;max-width:520px;margin:auto;padding:24px 16px}.family-portal article{background:var(--ds-card);border:1px solid var(--ds-border-subtle);border-radius:var(--radius-card);margin:16px 0;padding:16px}.family-portal h2{font-size:1.1rem}.family-portal a{color:var(--ds-text);text-decoration-color:silver}.family-details{margin-top:20px}.family-details.stack,.family-details .stack{flex-direction:column;gap:16px;display:flex}.family-details fieldset{border:1px solid var(--ds-border);border-radius:16px;min-width:0;margin:0;padding:16px}.family-details legend{overflow-wrap:anywhere;padding:0 6px;font-weight:500}.family-details label{color:var(--ds-text-sec);flex-direction:column;gap:8px;display:flex}.family-details input{border:1px solid var(--ds-border);background:var(--ds-card);width:100%;min-height:48px;color:var(--ds-text);border-radius:12px;padding:12px;font-size:16px}.family-details button{border:1px solid var(--ds-accent);background:var(--ds-accent);min-height:48px;color:var(--ds-on-accent,#09090b);cursor:pointer;border-radius:12px;padding:12px 16px;font-weight:500}.family-details button.secondary{color:var(--ds-text);border-color:var(--ds-border);background:0 0}.family-details button:disabled,.family-details fieldset:disabled{opacity:.6}.family-details [role=alert]{color:var(--ds-danger,#ef4444)}.family-details p{margin:0}.family-account{max-width:520px}.family-details button:not(.secondary){background:var(--ds-button-silver-bg);color:var(--ds-button-silver-text);border:1px solid var(--ds-button-silver-border);border-radius:var(--radius-button);box-shadow:var(--ds-button-silver-shadow)}@media (hover:hover){.family-details button:not(.secondary):hover:not(:disabled):not([aria-disabled=true]){background:var(--ds-button-silver-hover)}}.family-details button:not(.secondary):active:not(:disabled):not([aria-disabled=true]){background:var(--ds-button-silver-active);box-shadow:var(--ds-button-silver-shadow-active)}.family-details button:not(.secondary):disabled{opacity:.5;cursor:not-allowed}.family-navigation a[aria-current=page]{color:var(--ds-text);border-color:var(--ds-border-subtle);background:var(--ds-card)}.family-appointments-heading{margin-bottom:20px}.family-appointments-heading h1{letter-spacing:-.04em;margin:4px 0 8px;font-size:30px;font-weight:600}.family-appointments-heading p{color:var(--ds-text-sec);font-size:14px;line-height:1.5}.family-appointments-heading .family-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px}.family-booking-links{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.family-booking-links a{box-sizing:border-box;overflow-wrap:anywhere;border-radius:var(--radius-button);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:66px;padding:12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.family-booking-links .family-booking-primary{background:var(--ds-button-silver-bg);color:var(--ds-button-silver-text);border:1px solid var(--ds-button-silver-border);box-shadow:var(--ds-button-silver-shadow)}.family-booking-primary small{margin-top:3px;font-size:11px;font-weight:400}.family-booking-secondary{background:var(--ds-card);border:1px solid var(--ds-border-subtle)}.family-cancellation-rules{color:var(--ds-text-sec);margin:16px 0 28px;font-size:12px}.family-cancellation-rules summary,.family-appointment-manage summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:44px;list-style:none;display:flex}.family-cancellation-rules summary::-webkit-details-marker{display:none}.family-appointment-manage summary::-webkit-details-marker{display:none}.family-cancellation-rules summary:after,.family-appointment-manage summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;flex-shrink:0;width:8px;height:8px;margin-right:4px;transform:rotate(45deg)}.family-cancellation-rules[open]>summary:after,.family-appointment-manage[open]>summary:after{transform:rotate(225deg)}.family-cancellation-rules p{padding:4px 0 12px;line-height:1.65}.family-portal .family-section-heading{align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.family-section-heading span{background:var(--ds-card);border:1px solid var(--ds-border-subtle);color:var(--ds-text-sec);border-radius:20px;padding:2px 7px;font-size:11px}.family-appointment-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.family-appointment-top h2{font-size:20px;font-weight:500}.family-offer-name{color:var(--ds-text-sec);margin-top:4px;font-size:13px;line-height:1.5}.family-status{border:1px solid var(--ds-border-subtle);color:var(--ds-text-sec);border-radius:20px;flex-shrink:0;padding:5px 8px;font-size:10px}.family-status[data-confirmed=true]{color:var(--ds-text);background:#c0c0c01a}.family-appointment-date{align-items:center;gap:14px;margin:22px 0 18px;font-size:13px;line-height:1.6;display:flex}.family-date-tile{border:1px solid var(--ds-border-subtle);text-align:center;background:var(--ds-surface);border-radius:12px;flex-shrink:0;width:52px;padding:6px}.family-date-tile span{text-transform:uppercase;color:var(--ds-text-sec);letter-spacing:.06em;font-size:10px;display:block}.family-date-tile strong{font-size:23px;font-weight:500;line-height:1.2}.family-time-range{font-size:16px;font-weight:500}.family-pending-note,.family-report-note{color:var(--ds-text-sec);margin-bottom:12px;font-size:13px}.family-appointment-manage{border-top:1px solid var(--ds-border-subtle);font-size:13px}.family-appointment-manage summary{padding-top:4px}.family-appointment-actions{flex-direction:column;gap:16px;padding-top:12px;font-size:13px;line-height:1.6;display:flex}.family-appointment-actions .stack{flex-direction:column;gap:10px;display:flex}.family-appointment-actions button{border:1px solid var(--ds-border-subtle);border-radius:var(--radius-button);min-height:44px;color:var(--ds-text);background:var(--ds-surface);cursor:pointer;padding:10px 14px}.family-appointment-actions textarea{background:var(--ds-surface);border:1px solid var(--ds-border-subtle);border-radius:var(--radius-button);width:100%;min-height:80px;color:var(--ds-text);padding:12px;display:block}.family-appointments summary:focus-visible,.family-appointment-actions button:focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px}.family-appointment-actions [role=alert]{color:var(--ds-danger,#ef4444)}@media (hover:hover){.family-booking-links .family-booking-primary:hover{background:var(--ds-button-silver-hover)}}.family-booking-links .family-booking-primary:active{background:var(--ds-button-silver-active);box-shadow:var(--ds-button-silver-shadow-active)}.family-camp-content{flex-direction:column;gap:16px;display:flex}.family-camp-content>h2:not(:first-child){margin-top:12px}.family-empty-state{background:var(--ds-card);border:1px solid var(--ds-border-subtle);border-radius:var(--radius-card);align-items:flex-start;gap:14px;padding:20px 16px;display:flex}.family-empty-icon{border:1px solid var(--ds-border-subtle);width:42px;height:42px;color:var(--ds-text-sec);background:var(--ds-surface);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.family-empty-state h3{margin:0 0 6px;font-size:15px;font-weight:500}.family-empty-state p{color:var(--ds-text-sec);margin:0;font-size:13px;line-height:1.6}.family-camp-content article{margin:0}.family-camp-content .stack{flex-direction:column;gap:12px;display:flex}.family-camp-content article h3{font-size:18px;font-weight:500}.family-camp-content article p{color:var(--ds-text-sec);font-size:13px;line-height:1.6}.family-camp-content label{flex-direction:column;gap:8px;font-size:14px;display:flex}.family-camp-content select{border:1px solid var(--ds-border-subtle);border-radius:var(--radius-button);width:100%;min-height:48px;color:var(--ds-text);background:var(--ds-surface);padding:12px;font-size:16px}.family-camp-content .consent{flex-direction:row;align-items:flex-start;font-size:13px;line-height:1.6}.family-camp-content .consent input{flex-shrink:0;width:20px;height:20px;margin-top:2px}.family-camp-content button{border-radius:var(--radius-button);background:var(--ds-button-silver-bg);min-height:44px;color:var(--ds-button-silver-text);border:1px solid var(--ds-button-silver-border);box-shadow:var(--ds-button-silver-shadow);cursor:pointer;padding:12px 16px;font-weight:500}.family-camp-content button.secondary{background:var(--ds-surface);color:var(--ds-text);border-color:var(--ds-border-subtle);box-shadow:none}.family-camp-content button:disabled{opacity:.5;cursor:not-allowed}.family-camp-content :focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px}.family-camp-content [role=alert]{color:var(--ds-danger,#ef4444)}.family-camp-content [role=status]{border:1px solid var(--ds-border-subtle);border-radius:var(--radius-button);padding:12px}@media (hover:hover){.family-camp-content button:not(.secondary):hover:not(:disabled){background:var(--ds-button-silver-hover)}}.family-camp-content button:not(.secondary):active:not(:disabled){background:var(--ds-button-silver-active);box-shadow:var(--ds-button-silver-shadow-active)}.family-portal>h1{letter-spacing:-.04em;margin:0 0 20px;font-size:30px;font-weight:600;line-height:1.2}.family-portal>h2{margin:28px 0 12px;font-size:19px;font-weight:500}.family-portal>p{margin:12px 0;font-size:14px;line-height:1.6}.family-portal article p{font-size:14px;line-height:1.6}.family-portal .family-link-card{background:var(--ds-card);border:1px solid var(--ds-border-subtle);border-radius:var(--radius-button);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:14px 16px;font-size:14px;text-decoration:none;display:flex}.family-link-card:after{content:"";border-top:1.5px solid;border-right:1.5px solid;flex-shrink:0;width:7px;height:7px;transform:rotate(45deg)}.family-portal .family-empty-message{background:var(--ds-card);border:1px solid var(--ds-border-subtle);border-radius:var(--radius-card);color:var(--ds-text-sec);padding:20px 16px}.family-account article>p{color:var(--ds-text-sec);margin-top:8px}.family-account article>ul{flex-wrap:wrap;gap:8px;margin-top:20px;padding:0;list-style:none;display:flex}.family-account article>ul li{border-radius:var(--radius-button);border:1px solid var(--ds-border-subtle);padding:6px 12px;font-size:13px}.family-portal .core-workflow button{border:1px solid var(--ds-button-silver-border);border-radius:var(--radius-button);background:var(--ds-button-silver-bg);min-height:48px;box-shadow:var(--ds-button-silver-shadow);color:var(--ds-button-silver-text);cursor:pointer;padding:12px 16px}.family-portal .core-workflow button.secondary{background:var(--ds-card);color:var(--ds-text);border-color:var(--ds-border);box-shadow:none}.family-portal .core-workflow button:disabled{opacity:.5;cursor:not-allowed}@media (hover:hover){.family-portal .core-workflow button:not(.secondary):hover:not(:disabled){background:var(--ds-button-silver-hover)}}.family-portal .core-workflow button:not(.secondary):active:not(:disabled){background:var(--ds-button-silver-active);box-shadow:var(--ds-button-silver-shadow-active)}.family-finance>.muted{margin-top:12px;font-size:14px}.family-finance h2{font-size:18px;font-weight:500}.family-finance .family-empty-state h3{font-size:15px}.family-finance .family-empty-state p{font-size:13px}.family-finance .family-empty-message{color:var(--ds-text-sec);margin-top:24px}.family-portal{padding-bottom:max(40px, env(safe-area-inset-bottom))}.family-navigation{box-sizing:border-box;width:100%}.family-portal .family-eyebrow{color:var(--ds-text-sec);text-transform:uppercase;letter-spacing:.09em;margin:0 0 6px;font-size:11px}.family-provider-name{color:var(--ds-text-sec);margin-top:3px;font-size:12px!important}.family-appointment-top>div{min-width:0}.family-appointment-top{flex-wrap:wrap}.family-portal .family-cancelled{margin-top:32px}.family-cancelled article{border-style:dashed}.family-link-card strong,.family-link-card small{display:block}.family-link-card small{color:var(--ds-text-sec);margin-top:4px;font-size:13px;line-height:1.5}.family-feedback-text{white-space:pre-wrap}.family-account>section>h2{margin:28px 0 12px;font-size:17px}.family-account article h3{margin:0;font-size:20px}.family-account .settings-item{text-decoration:none}.family-account .settings-item--danger{color:var(--ds-danger,#ef4444)}.family-portal input,.family-portal textarea,.family-portal select{box-sizing:border-box;max-width:100%;font-size:16px}.family-portal summary:focus-visible,.family-details :is(input,button):focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px}.family-portal .family-report-actions{flex-direction:column;gap:12px;display:flex}.family-report-actions p{color:var(--ds-text-sec)}.family-delay-options{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:360px){.family-navigation{gap:0;padding-inline:8px}.family-navigation a{font-size:12px}.family-booking-links a{padding:10px 8px;font-size:13px}}.family-back{text-underline-offset:4px;align-items:center;min-height:44px;margin:-12px 0 16px;font-size:13px;display:inline-flex}.family-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.family-card-heading>:first-child{min-width:0}.family-camp-content .family-camp-price{flex-direction:column;gap:2px;display:flex}.family-camp-price strong,.family-finance-amount{font-family:var(--ds-font-display);color:var(--ds-text);font-variant-numeric:tabular-nums;font-size:25px;font-weight:600}.family-camp-price span{font-size:13px}.family-camp-days{border-block:1px solid var(--ds-border-subtle);margin:0;padding:0;list-style:none}.family-camp-days li{flex-direction:column;gap:3px;padding:10px 0;font-size:13px;display:flex}.family-camp-days li+li{border-top:1px solid var(--ds-border-subtle)}.family-camp-days span{color:var(--ds-text-sec)}.family-camp-conditions summary{cursor:pointer;align-items:center;min-height:44px;font-size:14px;display:flex}.family-camp-conditions summary:after{content:"+";margin-left:auto;padding-left:8px}.family-camp-conditions[open] summary:after{content:"−"}.family-camp-content .family-confirmation{border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:12px;padding:16px}.family-camp-content .family-confirmation button{width:100%}.family-finance .entry>p{color:var(--ds-text-sec);margin-top:10px}.family-finance .family-status{white-space:normal;font-size:12px}.family-finance-group+.family-finance-group{border-top:1px solid var(--ds-border);margin-top:32px}.family-locations .family-location-steps{color:var(--ds-text-sec);flex-wrap:wrap;gap:8px 20px;margin-bottom:24px;padding:0 0 0 20px;font-size:13px;display:flex}.family-locations .family-location-school{border-top:1px solid var(--ds-border);margin-top:24px;padding-top:20px}.family-locations h2{margin:0 0 20px;font-size:20px}.family-locations h3{margin:24px 0 12px;font-size:16px}.family-locations p{margin:10px 0;font-size:14px;line-height:1.6}.family-locations .family-location-note{color:var(--ds-text-sec)}.family-locations form{flex-direction:column;gap:16px;margin:16px 0;display:flex}.family-locations label{flex-direction:column;gap:8px;font-size:14px;display:flex}.family-locations :is(input,select,textarea){border:1px solid var(--ds-border);background:var(--ds-card);width:100%;min-width:0;min-height:48px;color:var(--ds-text);font:inherit;border-radius:12px;padding:12px;font-size:16px}.family-locations textarea{resize:vertical}.family-locations button{border:1px solid var(--ds-button-silver-border);background:var(--ds-button-silver-bg);min-height:48px;color:var(--ds-button-silver-text);box-shadow:var(--ds-button-silver-shadow);cursor:pointer;border-radius:12px;padding:12px 16px}.family-locations button:disabled{opacity:.5;cursor:not-allowed}.family-locations .family-location-add{border:1px solid var(--ds-border);background:var(--ds-card);border-radius:16px;padding:0 16px 16px}.family-location-add summary{cursor:pointer;min-height:48px;padding-top:12px;font-size:14px}.family-location-add:not([open]){padding-bottom:0}.family-location-add label{margin:16px 0}.family-location-add button{width:100%}.family-locations .family-location-request{background:var(--ds-card)}.family-location-request>button{width:100%}.family-location-feedback{border:1px solid var(--ds-border);border-radius:12px;padding:14px}.family-locations :focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px}.family-count{color:var(--ds-text-sec);margin-left:6px;font-size:12px}@media (hover:hover){.family-locations button:hover:not(:disabled){background:var(--ds-button-silver-hover)}}
