.patient-shell{background:var(--surface);flex-direction:column;min-height:100vh;display:flex}.patient-skip{z-index:2000;border-radius:var(--radius-field);background:var(--paper);color:var(--blue);font-family:var(--ui);padding:12px 20px;font-weight:700;position:absolute;left:-9999px}.patient-skip:focus{outline:3px solid var(--blue);outline-offset:2px;top:16px;left:16px}.patient-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.patient-navigation a{min-height:48px}.patient-stage{flex:1;justify-content:center;padding:40px 16px;display:flex}.patient-stage:focus{outline:3px solid var(--blue);outline-offset:-3px}.patient-col{width:100%;max-width:480px}.patient-eyebrow{font-family:var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.6875rem;font-weight:800}.patient-title{font-family:var(--ui);letter-spacing:-.02em;color:var(--ink);margin:8px 0 6px;font-size:1.75rem;font-weight:800;line-height:1.15}.patient-title:focus{outline:3px solid var(--blue);outline-offset:2px}.patient-copy{font-family:var(--ui);color:var(--muted);margin:0 0 20px;font-size:.875rem;line-height:1.6}.patient-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);flex-direction:column;gap:16px;padding:24px;display:flex}.patient-hint{font-family:var(--ui);color:var(--muted);margin:0;font-size:.8125rem;line-height:1.5}.patient-alert{border:2px solid var(--danger);border-radius:var(--radius-field);font-family:var(--ui);color:var(--danger);background:var(--paper);margin:0;padding:14px 16px;font-size:.9375rem;line-height:1.5}.patient-alert:focus{outline:3px solid var(--blue);outline-offset:2px}.patient-status{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);flex-direction:column;gap:12px;margin-top:22px;padding:18px;display:flex}.patient-status:focus{outline:3px solid var(--blue);outline-offset:2px}.patient-status-title{font-family:var(--ui);color:var(--ink);margin:0;font-size:1rem;font-weight:700}.patient-link{min-height:48px;font-family:var(--ui);color:var(--blue);align-items:center;margin-top:16px;font-size:.875rem;font-weight:700;display:inline-flex}.patient-link:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.patient-back-link{margin:0 0 16px}.patient-desk{border-top:1px solid var(--line);background:var(--paper);padding:20px 24px}.patient-desk-help{width:100%;max-width:480px;font-family:var(--ui);color:var(--body);margin:0 auto;font-size:.875rem}
.appointment-tabs{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 0;padding:4px;display:grid}.appointment-tabs button{border-radius:var(--radius-field);min-height:48px;color:var(--body);font-family:var(--ui);background:0 0;border:1px solid #0000;padding:8px;font-weight:700}.appointment-tabs button[aria-selected=true]{border-color:var(--line);background:var(--paper);color:var(--blue);box-shadow:0 4px 12px var(--shadow-ink)}.appointment-tabs button:focus-visible,.patient-disabled-action:focus{outline:3px solid var(--blue);outline-offset:2px}.appointment-list,.appointment-actions{flex-direction:column;gap:16px;display:flex}.appointment-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);color:var(--body);font-family:var(--ui);box-shadow:0 12px 28px var(--shadow-ink);gap:14px;padding:clamp(18px,4vw,24px);display:grid}.appointment-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;display:flex}.appointment-card h3,.appointment-card p{margin:0}.appointment-card h3{color:var(--ink);font-family:var(--display);font-size:1.25rem;line-height:1.2}.appointment-card-meta{border-bottom:1px solid var(--line);gap:6px;padding-block:2px 14px;display:grid}.appointment-state{border:1px solid var(--line);border-radius:var(--radius-pill);width:fit-content;color:var(--teal);padding:4px 8px;font-size:.8125rem;font-weight:800}.appointment-card-action{justify-self:start}.appointment-doctor{color:var(--body);font-family:var(--ui);margin:0;font-size:1rem}.appointment-facts{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);font-family:var(--ui);box-shadow:0 12px 28px var(--shadow-ink);gap:0;margin:0;padding:0 clamp(18px,4vw,24px);display:grid}.appointment-facts>div{border-bottom:1px solid var(--line);padding-block:16px}.appointment-facts>div:last-child{border-bottom:0}.appointment-facts dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:800}.appointment-facts dd{color:var(--ink);margin:5px 0 0;font-weight:700}.appointment-primary-action{border-radius:var(--radius-field);background:var(--blue);min-height:48px;color:var(--paper);justify-content:center;align-self:stretch;padding-inline:18px;text-decoration:none}.appointment-secondary-actions{border-top:1px solid var(--line);gap:12px;padding-top:4px;display:grid}.patient-disabled-action{color:var(--muted);font-family:var(--ui);font-weight:700;display:inline-block}.booking-flow{flex-direction:column;gap:20px;display:flex}.booking-step{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);box-shadow:0 12px 28px var(--shadow-ink);gap:16px;padding:clamp(18px,4vw,26px);display:grid}.booking-heading{border-inline-start:3px solid var(--teal);color:var(--ink);font-family:var(--display);margin:0;padding-inline-start:12px;font-size:1.375rem;line-height:1.2}.booking-heading:focus{outline:3px solid var(--blue);outline-offset:2px}.booking-options,.booking-actions{grid-template-columns:1fr;gap:12px;min-width:0;display:grid}.booking-options{border:0;margin:0;padding:0}.booking-choice{border:1px solid var(--line);border-radius:var(--radius-field);background:var(--paper);width:100%;min-width:0;min-height:52px;color:var(--body);font-family:var(--ui);text-align:left;overflow-wrap:anywhere;padding:12px 16px;font-weight:700}.booking-choice[aria-pressed=true]{border-width:2px;border-color:var(--blue);background:var(--blue-surface);color:var(--blue);font-weight:800}.booking-choice:focus-visible,.booking-date:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.booking-label,.booking-selection{color:var(--body);font-family:var(--ui)}.booking-label{font-weight:700}.booking-date{border:1px solid var(--line);border-radius:var(--radius-field);background:var(--paper);width:100%;min-width:0;min-height:48px;color:var(--ink);font:inherit;padding:10px 12px}.booking-summary{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--blue-surface);color:var(--body);font-family:var(--ui);padding:18px}.booking-summary p,.booking-selection{margin:0;line-height:1.5}.booking-summary p+p{margin-top:10px}.booking-actions{padding-top:4px}.booking-primary-actions{border-top:1px solid var(--line);padding-top:16px}.booking-slots{grid-template-columns:1fr;gap:18px}.slot-day{gap:14px;display:grid}.slot-day-date{color:var(--muted);font-family:var(--ui);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8125rem;font-weight:800}.slot-part{gap:10px;display:grid}.slot-part-head{color:var(--ink);font-family:var(--ui);align-items:center;gap:10px;margin:0;font-size:.8125rem;font-weight:800;display:flex}.slot-part-icon{border-radius:var(--radius-pill);background:var(--blue-surface);place-items:center;width:24px;height:24px;font-size:.75rem;display:grid}.slot-part-count{color:var(--muted);margin-left:auto;font-weight:700}.slot-chips{grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:8px;display:grid}.slot-chip{border:1px solid var(--line);border-radius:var(--radius-field);background:var(--paper);min-height:48px;color:var(--ink);font-family:var(--ui);cursor:pointer;justify-content:center;align-items:center;gap:4px;padding:10px 8px;font-weight:700;display:flex}.slot-chip:hover{border-color:var(--blue);color:var(--blue)}.slot-chip[aria-pressed=true]{border-color:var(--blue);background:var(--blue);color:var(--paper);box-shadow:0 6px 16px -6px var(--shadow-ink);font-weight:800}.slot-chip-check{font-weight:800}.slot-disclosure{border:1px dashed var(--line);border-radius:var(--radius-field);background:var(--surface);width:100%;min-height:44px;color:var(--muted);font-family:var(--ui);text-align:left;cursor:pointer;align-items:center;gap:8px;padding:10px 12px;font-size:.8125rem;font-weight:700;display:flex}.slot-disclosure:hover{border-color:var(--blue);color:var(--blue)}.slot-chip:focus-visible,.slot-disclosure:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (prefers-reduced-motion:reduce){.slot-chip{transition:none}}@media (max-width:25rem){.appointment-tabs,.booking-slots{grid-template-columns:1fr}.booking-options,.booking-actions{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.appointment-card,.booking-choice{transition:none}}
.previsit-flow{width:100%;min-width:0}.patient-preview-frame{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--ink);min-width:0;box-shadow:0 16px 36px var(--shadow-ink);position:relative;overflow:hidden}.patient-preview-frame .patient-preview{border:0;border-radius:0;max-height:26rem;display:block}.previsit-preview-mark{z-index:1;color:var(--teal);position:absolute;top:.75rem;right:.75rem}.previsit-flow .patient-preview-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);min-width:0;box-shadow:0 12px 28px var(--shadow-ink);gap:1rem;padding:clamp(1rem,4vw,1.5rem);display:grid}.previsit-device-status{color:var(--ink);align-items:flex-start;gap:.75rem;margin:0;font-weight:800;display:flex}.previsit-status-icon{color:var(--teal)}.patient-consent-panel{gap:18px}.patient-consent-panel h2{color:var(--ink);font-family:var(--display);margin:0;font-size:1.375rem}.previsit-actions{border-top:1px solid var(--line);padding-top:4px}.previsit-test-audio{width:100%;min-width:0}.previsit-transition-message{border-inline-start:.25rem solid var(--blue);background:var(--surface);min-width:0;color:var(--body);overflow-wrap:anywhere;margin:0;padding:.75rem}@media (max-width:22.5rem){.previsit-flow .patient-actions{flex-direction:column;align-items:stretch}.previsit-flow .patient-actions>*,.previsit-test-audio{max-width:100%}}@media (prefers-reduced-motion:reduce){.patient-preview-frame,.previsit-transition-message{scroll-behavior:auto}}
.patient-shell{background:linear-gradient(180deg, var(--blue-surface) 0, var(--surface) 22rem)}.patient-stage{align-items:flex-start;padding-block:clamp(28px,6vw,64px)}.patient-col{max-width:960px}.patient-journey:not(.patient-home){max-width:680px}.patient-journey{flex-direction:column;gap:18px;display:flex}.patient-journey>.patient-eyebrow,.patient-journey>.patient-title,.patient-journey>.patient-copy{margin-block:0}.patient-eyebrow{color:var(--teal);letter-spacing:.12em}.patient-title{font-family:var(--display);letter-spacing:-.035em;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.05}.patient-copy{max-width:58ch;font-size:1rem}.patient-panel,.patient-status{box-shadow:0 12px 28px var(--shadow-ink)}.patient-panel{border-color:var(--line)}.patient-status{background:var(--paper);border-inline-start:4px solid var(--teal);gap:16px}.patient-alert{background:var(--paper)}.patient-link{border-radius:var(--radius-field);align-self:flex-start;margin-top:0;padding-inline:4px}.patient-desk{background:var(--blue-surface)}.previsit-flow,.waiting-flow{min-width:0}.patient-preview-panel,.patient-consent-text{overflow-wrap:anywhere}.patient-preview{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--ink);width:100%;max-height:360px}.patient-consent-text{white-space:pre-wrap;line-height:1.6}.patient-check{color:var(--body);font-family:var(--ui);align-items:flex-start;gap:12px;line-height:1.5;display:flex}.patient-check input{flex:none;width:22px;height:22px}.patient-check input:focus-visible,.previsit-flow .patient-alert:focus,.waiting-flow .patient-alert:focus{outline:3px solid var(--blue);outline-offset:2px}@media (min-width:600px){.previsit-flow .patient-actions,.waiting-flow .patient-actions{flex-flow:wrap}}@media (prefers-reduced-motion:reduce){.patient-shell *{scroll-behavior:auto;transition-duration:.01ms}}
.patient-home .patient-status{padding:clamp(20px,4vw,28px)}.patient-home .appointment-list{gap:12px}.patient-journey-list>div:first-child .appointment-card{border-color:var(--teal);border-width:2px}.waiting-status-card{border:1px solid var(--line);border-inline-start:4px solid var(--teal);border-radius:var(--radius-card);background:var(--paper);box-shadow:0 12px 28px var(--shadow-ink);gap:12px;padding:clamp(18px,4vw,26px);display:grid}.waiting-status-card>*{margin:0}.waiting-status-card .patient-status{border:0;border-bottom:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0 0 14px}.waiting-actions{border-top:1px solid var(--line);gap:12px;padding-top:4px;display:grid}.patient-ended .ended-assurance-card{border-inline-start:4px solid var(--teal);background:var(--blue-surface)}.ended-next-action{border:1px solid var(--line);background:var(--paper);width:fit-content;padding-inline:14px;text-decoration:none}@media (max-width:400px){.waiting-actions>*{max-width:100%}}@media (prefers-reduced-motion:reduce){.waiting-status-card{scroll-behavior:auto}}
.patient-care-dashboard{border-inline-start:0;padding:clamp(16px,3vw,24px)}.patient-dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(16rem,.72fr);gap:16px;min-width:0;display:grid}.patient-dashboard-primary,.patient-dashboard-quick{min-width:0}.patient-dashboard-hero .appointment-card{color:var(--ink);border-color:var(--line);background:var(--paper);box-shadow:0 14px 28px var(--shadow-ink)}.patient-dashboard-primary>.patient-status-title{color:var(--ink);border-color:var(--line);background:var(--paper);box-shadow:0 14px 28px var(--shadow-ink);border-radius:var(--radius-card);min-height:12rem;font-family:var(--display);padding:24px;font-size:1.5rem}.patient-dashboard-hero .appointment-card h3,.patient-dashboard-hero .appointment-card p,.patient-dashboard-hero .appointment-card .patient-link{color:var(--ink)}.patient-dashboard-hero .appointment-state{color:var(--teal);border-color:var(--teal);background:var(--blue-surface)}.patient-dashboard-hero .appointment-card .patient-link{border-top:1px solid var(--line);width:100%;color:var(--blue)}.patient-dashboard-quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.patient-dashboard-action,.patient-dashboard-progress{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--blue-surface);padding:14px}.patient-dashboard-action .patient-link{width:100%;height:100%;color:var(--blue);align-items:flex-start}.patient-dashboard-progress{grid-column:1/-1}.patient-dashboard-progress h2{color:var(--ink);font-family:var(--display);margin:0 0 12px;font-size:1.125rem}.patient-dashboard-progress-current{color:var(--ink);margin:-4px 0 12px;font-size:.875rem;font-weight:700}.patient-dashboard-progress ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.patient-dashboard-progress li{border-top:5px solid var(--line);min-width:0;color:var(--muted);font-family:var(--ui);overflow-wrap:anywhere;padding-top:12px;font-size:.75rem;font-weight:700}.patient-dashboard-progress li[aria-current=step]{border-color:var(--teal);color:var(--ink)}.patient-dashboard-progress li[data-complete=true]{border-color:var(--blue);color:var(--body)}.patient-care-surface{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);box-shadow:0 12px 28px var(--shadow-ink);padding:clamp(18px,4vw,28px)}.patient-care-surface>.patient-eyebrow+.patient-title,.patient-care-surface>.patient-back-link+.patient-eyebrow+.patient-title{border-bottom:1px solid var(--line);padding-bottom:16px}.patient-care-card,.patient-care-options .booking-choice{border-inline-start:4px solid var(--teal)}.patient-care-options{border-radius:var(--radius-card);background:var(--blue-surface);padding:12px}.patient-dashboard-secondary{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--blue-surface);padding:14px}@media (max-width:700px){.patient-dashboard-grid{grid-template-columns:minmax(0,1fr)}.patient-care-surface{padding:18px}}@media (max-width:400px){.patient-dashboard-quick{grid-template-columns:minmax(0,1fr)}.patient-dashboard-progress{grid-column:auto}.patient-dashboard-progress ol{grid-template-columns:minmax(0,1fr)}}
