.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}
