/* Appointment journey: reuse the portal's brand, forms and payment components. */
[data-portal-nav] [data-view="intake"]{display:none!important}
.appointments-heading-actions{margin:1.5rem 0}.appointment-subnav{display:flex;flex-wrap:wrap;gap:.5rem;border-bottom:1px solid #d4ddd4;padding-bottom:1rem;margin-bottom:1.5rem;max-width:66rem}.appointment-subnav .button{flex:1 1 11rem;min-height:44px;white-space:normal}
#appointment-questionnaires,#appointment-questionnaire-history{display:grid;gap:1.25rem;max-width:66rem;min-width:0}
.portal-app-shell .portal-workspace .appointment-subnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-app-shell .portal-workspace .appointment-subnav .button{min-width:0;max-width:none;white-space:normal;overflow-wrap:normal;word-break:normal;padding:.65rem .4rem}
@media(max-width:1100px){.portal-app-shell .portal-workspace .appointment-subnav{grid-template-columns:repeat(3,minmax(0,1fr))}}
#appointment-upcoming,#appointment-history{display:grid;gap:1.25rem;max-width:66rem;min-width:0}
.appointment-empty,.care-appointment-card{background:#fffefa;border:1px solid #d4ddd4;border-radius:18px;padding:clamp(1.1rem,3vw,2rem);box-shadow:0 5px 18px #173e3305;min-width:0;overflow-wrap:anywhere}
.appointment-empty{background:linear-gradient(120deg,#edf4ed,#fffefa);padding-block:3rem}.appointment-empty h2{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.2;max-width:24ch}.appointment-empty p{max-width:55ch}
.care-appointment-card h3{font-size:1.4rem;margin:.4rem 0}.care-appointment-card p{margin:.4rem 0}.appointment-date{font-weight:700;color:#173e33}.appointment-visit-type,.appointment-location{color:#50655f;line-height:1.5}
.appointment-statuses{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.45rem 1rem;border-block:1px solid #e1e6df;padding:1rem 0;margin:1.2rem 0}.appointment-statuses dt{color:#50655f}.appointment-statuses dd{margin:0;font-weight:600}
.appointment-details,.legacy-preparation{margin-top:1rem}.appointment-details summary,.legacy-preparation summary{min-height:44px;align-content:center;cursor:pointer;font-weight:600}.legacy-preparation .button{margin:.5rem .5rem .5rem 0}.preparation-note{padding:.8rem;background:#edf4ed;border-radius:8px;font-size:.9rem}
.appointment-back{margin-bottom:1rem}.booking-stages{display:none;list-style:none;padding:0;gap:1.5rem;margin:1.5rem 0 0;font-size:.9rem}.appointment-first-booking .booking-stages{display:flex}.booking-stages li{padding:.65rem 0;border-bottom:3px solid #d4ddd4;flex:1}.booking-stages [aria-current="step"]{border-color:#174b3f;font-weight:700;color:#123f33}
#appointment-review-summary,#continue-booking,#appointment-material-policy,#availability-prerequisites{display:none}
.appointment-first-booking #appointment-review-summary,.appointment-first-booking #appointment-material-policy,.appointment-first-booking #availability-prerequisites{display:block}
.appointment-first-booking #continue-booking{display:inline-flex;margin:1.5rem}
.appointment-first-booking[data-booking-stage="choose"] #appointment-review-summary,.appointment-first-booking[data-booking-stage="choose"] #appointment-payment-options,.appointment-first-booking[data-booking-stage="choose"] #booking-review,.appointment-first-booking[data-booking-stage="choose"] #appointment-material-policy{display:none!important}
.appointment-first-booking[data-booking-stage="review"] #available-booking>.booking-step:not(#booking-review),.appointment-first-booking[data-booking-stage="review"] #continue-booking{display:none!important}
.appointment-first-booking #appointment-review-summary{padding:1.5rem;background:#f3f6ee;border-bottom:1px solid #d4ddd4}.appointment-first-booking #booking-review>.booking-step-heading{display:none}
.appointment-first-booking #booking-review-details{display:grid;grid-template-columns:minmax(6rem,1fr) minmax(0,3fr);gap:.5rem 1rem;margin:1rem 0}.appointment-first-booking #booking-review-details dd{margin:0;overflow-wrap:anywhere}
.appointment-first-booking .booking-step-heading>span{display:none}.appointment-first-booking .booking-step{padding:1.5rem}.appointment-first-booking #first-visit-details{display:none!important}
.appointment-first-booking .booking-practitioners{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}.appointment-first-booking .booking-practitioner{min-width:0;height:auto;align-items:center}.appointment-first-booking .booking-practitioner>span{min-width:0}.appointment-first-booking .booking-practitioner strong{overflow-wrap:anywhere}
.appointment-first-booking .appointment-credit-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem}.appointment-first-booking .appointment-credit-option label{margin:0}.appointment-first-booking .buy-more-credits{margin:0;align-self:center}
.appointment-material-policy{font-size:.9rem;line-height:1.6;padding:1rem 1.5rem;background:#fff8e8;border-block:1px solid #e7dec7}.telehealth-location-confirm{padding:1rem;background:#f3f6ee}.payment-success>.button{margin:.7rem .7rem 0 0}
.appointment-first-booking select,.appointment-first-booking input,.appointment-first-booking textarea{font-size:max(16px,1rem)}
@media(min-width:1000px){#appointment-upcoming,#appointment-history{grid-template-columns:repeat(2,minmax(0,1fr))}#appointment-history>h2,#appointment-history>.care-history-filters,.appointment-empty,.legacy-preparation{grid-column:1/-1}}
@media(max-width:650px){.appointment-first-booking .appointment-credit-option{grid-template-columns:minmax(0,1fr)}.appointment-first-booking .buy-more-credits{margin-left:1.85rem;justify-self:start;max-width:calc(100% - 1.85rem);min-width:0;white-space:normal}.appointment-first-booking #booking-review-details{grid-template-columns:1fr;gap:.2rem}.appointment-first-booking #booking-review-details dd{margin-bottom:.6rem}.booking-stages{gap:.7rem}.appointment-first-booking .booking-step,.appointment-first-booking #appointment-review-summary{padding:1rem}.appointment-statuses{grid-template-columns:1fr;gap:.2rem}.appointment-statuses dd{margin-bottom:.5rem}.appointments-heading-actions .button{width:100%}.mobile-bottom-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}.mobile-bottom-nav [data-view]{min-width:0}.mobile-bottom-nav [data-view] span{overflow-wrap:normal}}
@media(prefers-reduced-motion:reduce){.appointment-first-booking *{scroll-behavior:auto!important;transition:none!important}}

/* Legacy inline history remains available through the History controller only. */
[data-portal-view="appointments"] #appointments-upcoming-history{display:none!important}

[data-portal-view="appointments"] .form-card:has(>#past-appointments){display:none!important}

/* In long clinical forms, actions stay in document flow so neither the bottom
   navigation nor an on-screen keyboard can cover save/validation controls. */
.wizard-actions,.followup-actions{position:sticky!important;bottom:var(--intake-bottom-offset,0px)!important;z-index:20;background:#fffefa;padding:.75rem;border-top:1px solid #d4ddd4;box-shadow:0 -4px 12px #173e3308;gap:.6rem}

.appointment-first-booking .buy-more-credits,.appointment-first-booking .text-button,.appointment-price-breakdown summary{min-height:44px!important;align-content:center}
.appointment-first-booking #appointment-payment-options>label,.appointment-credit-option>label{min-height:44px;align-content:center}
@media(max-width:760px){body{padding-bottom:calc(var(--intake-bottom-offset,155px) + 24px)!important}html{scroll-padding-bottom:calc(var(--intake-bottom-offset,155px) + 90px)}.wizard-panel input,.wizard-panel textarea,.followup-questionnaire input,.followup-questionnaire textarea{scroll-margin-bottom:calc(var(--intake-bottom-offset,155px) + 90px)}.mobile-bottom-nav [data-view] span{word-break:normal!important;overflow-wrap:normal!important}}

/* Keep all five existing clinical answers readable at narrow/text-zoom sizes. */
.current-state-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,5.5rem),1fr))!important}
.current-state-options .followup-option{min-width:0;overflow-wrap:anywhere}

#followup-questionnaire,#appointment-review-summary,#booking-title{scroll-margin-top:8rem}

/* Visit-selection instructions do not belong to the payment stage. */
.appointment-first-booking[data-booking-stage="review"] .booking-address{display:none}

.portal-workspace .button{text-decoration:none!important}
#visit-mode{margin-bottom:.8rem}
#booking-provider-error{color:#a12626;margin:.5rem 0}
.appointment-first-booking .appointment-credit-option{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.5rem}
.appointment-first-booking .appointment-credit-option>label{flex:0 1 auto}
.appointment-first-booking .buy-more-credits{margin:0;padding:.4rem .75rem;min-height:44px}
.saved-questionnaires{grid-column:1/-1}.saved-questionnaires .care-appointment-card{margin-top:1rem}

.appointment-subnav .button{padding:.65rem .45rem;overflow-wrap:normal;word-break:normal;min-height:3.25rem;align-self:stretch}
.portal-app-shell .portal-workspace .care-appointment-card .appointment-row-actions .button{flex:1 1 10rem;overflow-wrap:normal;word-break:normal}

.account-requests details{margin-block:1rem;border-top:1px solid var(--line,#cbd7cd);padding-block:1rem}.account-requests summary{cursor:pointer;font-weight:700;min-height:44px;padding:.65rem}.account-request-form{display:grid;gap:1rem;max-width:44rem;margin-block:1rem}.account-request-form label{display:grid;gap:.4rem}.account-request-form label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:.65rem}.account-request-form input[type=checkbox]{flex:none;inline-size:1.3rem;block-size:1.3rem}.account-request-form button{justify-self:start}.account-request-form textarea{min-height:8rem}

.automation-consent{padding:20px;margin-block:20px;border:1px solid #bbcdbf;border-radius:12px;background:#f2f6ee}.automation-consent label{display:flex;align-items:flex-start;gap:12px;margin-top:16px;line-height:1.5}.automation-consent input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:3px 0 0}.automation-consent input:focus-visible{outline:3px solid #997b35;outline-offset:3px}

#visit-mode-error{font-weight:400}
.buy-more-credits{font-size:.75rem!important;padding:.25rem .5rem!important;min-height:44px!important}
