.auth-card{max-width:28rem;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0 auto}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-field label{font-weight:var(--font-weight-semibold)}.form-field input[aria-invalid=true]{border-color:var(--color-error)}.form-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.form-alert{padding:var(--space-3);color:var(--color-error);background:var(--color-background);border:1px solid var(--color-error);border-radius:var(--radius);margin:0}.auth-switch{margin:var(--space-5) 0 0;font-size:var(--font-size-sm)}@media (width<=640px){.auth-card{padding:var(--space-5) var(--space-4)}}.admin-card{max-width:56rem;margin:0 auto}.admin-empty{padding:var(--space-5);color:var(--color-text-muted);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.patient-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.patient-row{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.patient-link{font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.patient-meta{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-basis:100%}.status-badge{padding:0 var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:1px solid var(--color-border);border-radius:var(--radius);display:inline-block}.status-needs_review{color:var(--color-heading);background:var(--color-accent);border-color:var(--color-accent)}.status-reviewed{color:var(--color-heading);background:var(--color-highlight);border-color:var(--color-primary)}.status-awaiting_submission{color:var(--color-text-muted);background:var(--color-background)}.profile-section{margin-top:var(--space-6)}.profile-section h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--font-size-base)}.answer-list{gap:var(--space-2) var(--space-4);margin:0 0 var(--space-4);grid-template-columns:minmax(0,max-content) minmax(0,1fr);display:grid}.answer-row{display:contents}.answer-list dt{color:var(--color-text-muted)}.answer-list dd{margin:0}.red-flag{font-weight:var(--font-weight-semibold);color:var(--color-heading);background:var(--color-accent);padding:0 var(--space-2);border-radius:var(--radius);justify-self:start}.not-submitted{padding:var(--space-4);color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.medication-list{padding-left:var(--space-5);margin:0}.note-list{gap:var(--space-3);margin:0 0 var(--space-5);flex-direction:column;padding:0;list-style:none;display:flex}.note-item{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius)}.note-content{margin-bottom:var(--space-2);white-space:pre-wrap;overflow-wrap:anywhere}.note-meta{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.note-form{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.note-form .form-field{align-self:stretch}.calendar-days{gap:var(--space-4);flex-direction:column;display:flex}.calendar-day{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.calendar-day-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.calendar-day-header h2{font-size:var(--font-size-base);margin:0}.calendar-hours{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.calendar-appointments{gap:var(--space-2);margin:var(--space-3) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.calendar-appointment{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-background);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius);flex-wrap:wrap;display:flex}.calendar-appointment a{overflow-wrap:anywhere}.appointment-status{color:var(--color-text-muted);font-size:var(--font-size-sm)}.appointment-cancelled{border-left-color:var(--color-border);color:var(--color-text-muted)}.appointment-cancelled strong{text-decoration:line-through}.calendar-join{margin-left:auto}.conflict-flag{padding:0 var(--space-2);color:var(--color-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-accent);border-radius:var(--radius);flex-basis:100%}.conflict-notice{padding:var(--space-3);color:var(--color-heading);background:var(--color-background);border:1px solid var(--color-accent);border-radius:var(--radius);border-left-width:4px}.availability-editor h2{font-size:var(--font-size-lg)}.availability-rows{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.availability-row{align-items:flex-end;gap:var(--space-2) var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.availability-row label{gap:var(--space-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.availability-row input{width:auto}.block-type{font-weight:var(--font-weight-semibold);flex-basis:100%}.block-blocked{color:var(--color-text-muted)}.availability-error{flex-basis:100%}.consultation-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.consultation-item{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius)}.consultation-item h3{margin:0 0 var(--space-3)}.intake-card{max-width:44rem;margin:0 auto}.intake-form{gap:var(--space-5);flex-direction:column;display:flex}.intake-section{gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;margin:0;display:flex}.intake-section[aria-invalid=true]{border-color:var(--color-error)}.intake-section>legend{padding:0 var(--space-2);color:var(--color-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.intake-measurements{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.intake-question{padding:0 0 var(--space-3);border:0;border-bottom:1px solid var(--color-border);margin:0}.intake-question:last-child{border-bottom:0}.intake-question>legend{margin-bottom:var(--space-2);padding:0}.intake-question[aria-invalid=true]>legend{color:var(--color-error)}.intake-choices{gap:var(--space-5);display:flex}.intake-choices label,.intake-none{align-items:center;gap:var(--space-2);cursor:pointer;display:inline-flex}.intake-choices input,.intake-none input{width:auto;accent-color:var(--color-primary)}.intake-medications{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.intake-medication{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;display:grid}.intake-section>.btn{align-self:flex-start}.intake-section>.error-text{margin:0}.intake-actions{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.intake-save-state{color:var(--color-text-muted);font-size:var(--font-size-sm)}@media (width<=640px){.intake-section{padding:var(--space-4)}.intake-measurements,.intake-medication{grid-template-columns:minmax(0,1fr)}.intake-actions .btn{width:100%}}.document-picker-label{font-weight:var(--font-weight-semibold)}.upload-results,.document-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.upload-ok{color:var(--color-text)}.document-list li{justify-content:space-between;gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.document-list a{overflow-wrap:anywhere}.document-meta,.document-empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.intake-card>h2,.document-continue{margin-top:var(--space-6)}.scheduling-card{max-width:44rem;margin:0 auto}.week-nav{justify-content:space-between;align-items:center;gap:var(--space-3);margin:0 0 var(--space-5);flex-wrap:wrap;display:flex}.week-range{color:var(--color-heading);font-weight:var(--font-weight-semibold);text-align:center}.slots-empty{padding:var(--space-5);color:var(--color-text-muted);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.slot-days{gap:var(--space-5);flex-direction:column;display:flex}.slot-day h2{margin-bottom:var(--space-3);font-size:var(--font-size-base)}.slot-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));margin:0;padding:0;list-style:none;display:grid}.slot-button{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);text-align:left;background:var(--color-background);border:1px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;flex-direction:column;display:flex}.slot-button:hover{background:var(--color-highlight)}.slot-clinician{color:var(--color-text-muted);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-details{gap:var(--space-1) var(--space-4);margin:0 0 var(--space-4);grid-template-columns:max-content 1fr;display:grid}.appointment-details dt{color:var(--color-text-muted)}.appointment-details dd{margin:0}.booking-confirm,.booking-confirmed,.cancel-dialog,.appointment-item{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.booking-confirmed,.cancel-dialog{border-top:3px solid var(--color-accent)}.appointment-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.button-row{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.btn-danger{color:var(--color-primary-contrast);background:var(--color-error)}.form-success{padding:var(--space-3);color:var(--color-text);background:var(--color-highlight);border:1px solid var(--color-primary);border-radius:var(--radius)}.consent-card{max-width:40rem;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0 auto}.consent-notice{max-height:22rem;margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);overflow-y:auto}.consent-notice h3{margin:var(--space-4) 0 var(--space-1);font-size:var(--font-size-base)}.consent-form{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.consent-check{align-items:flex-start;gap:var(--space-3);display:flex}.consent-check input{width:auto;margin-top:var(--space-1);accent-color:var(--color-primary)}.consent-form .error-text{margin:0}@media (width<=640px){.consent-card{padding:var(--space-5) var(--space-4)}.consent-form .btn{width:100%}}.consultation{max-width:56rem;margin:0 auto}.consultation-status{padding:var(--space-3);color:var(--color-heading);background:var(--color-highlight);border-left:3px solid var(--color-accent);border-radius:var(--radius)}.consultation-stage{margin-top:var(--space-4);aspect-ratio:16/9;background:var(--color-header-bg);border-radius:var(--radius);position:relative;overflow:hidden}.consultation-stage[hidden]{display:none}.consultation-remote,.consultation-remote video{object-fit:cover;width:100%;height:100%}.consultation-remote:not([data-present]) video{display:none}.consultation-local{right:var(--space-3);bottom:var(--space-3);aspect-ratio:4/3;border:2px solid var(--color-primary-contrast);border-radius:var(--radius);width:clamp(6rem,25%,12rem);position:absolute;overflow:hidden}.consultation-local video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.shell{flex-direction:column;min-height:100vh;display:flex}.shell-header{color:var(--color-header-text);background:var(--color-header-bg);border-bottom:3px solid var(--color-accent)}.shell-header-inner{align-items:center;gap:var(--space-2) var(--space-5);max-width:var(--content-max-width);padding:var(--space-4) var(--page-gutter);flex-wrap:wrap;margin:0 auto;display:flex}.shell-brand{color:var(--color-header-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);text-decoration:none}.shell-brand-accent{color:var(--color-primary)}.shell-portal-label{color:var(--color-accent);font-size:var(--font-size-sm);letter-spacing:.05em;text-transform:uppercase}.shell-nav{gap:var(--space-4);flex-wrap:wrap;margin-left:auto;display:flex}.shell-nav a{color:var(--color-header-text);text-decoration:none}.shell-nav a[aria-current=page]{color:var(--color-primary)}.shell-content{width:100%;max-width:var(--content-max-width);padding:var(--space-7) var(--page-gutter);flex:1;margin:0 auto}@media (width<=640px){.shell-nav{flex-basis:100%;margin-left:0}.shell-content{padding-top:var(--space-5)}}.shell-nav-button{color:var(--color-header-text);cursor:pointer;background:0 0;border:0;padding:0}.shell-nav-button:hover,.shell-nav a:hover{color:var(--color-primary)}:root{--nb-turquoise:#1fb5ad;--nb-dark-blue:#0f2a47;--nb-gold:#c9a24a;--nb-turquoise-tint:#e8f7f6;--nb-dark-blue-soft:#3d5570;--nb-white:#fff;--nb-surface:#f7f9fa;--nb-border:#dde3e8;--nb-danger:#b3261e;--color-primary:var(--nb-turquoise);--color-primary-contrast:var(--nb-white);--color-heading:var(--nb-dark-blue);--color-text:var(--nb-dark-blue);--color-text-muted:var(--nb-dark-blue-soft);--color-accent:var(--nb-gold);--color-background:var(--nb-white);--color-surface:var(--nb-surface);--color-border:var(--nb-border);--color-highlight:var(--nb-turquoise-tint);--color-header-bg:var(--nb-dark-blue);--color-header-text:var(--nb-white);--color-error:var(--nb-danger);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--font-size-2xl:2.25rem;--font-weight-regular:400;--font-weight-semibold:600;--line-height:1.6;--radius:6px;--content-max-width:72rem;--page-gutter:clamp(var(--space-4), 4vw, var(--space-7))}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background:var(--color-background);margin:0}h1,h2,h3{color:var(--color-heading);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-4);line-height:1.25}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-4)}a{color:var(--color-primary)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius);font-weight:var(--font-weight-semibold);cursor:pointer;border:1px solid #0000;text-decoration:none;display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:var(--color-primary-contrast);background:var(--color-primary)}.btn-secondary{color:var(--color-heading);border-color:var(--color-heading);background:0 0}.accent-rule{width:var(--space-7);height:3px;margin:0 0 var(--space-5);background:var(--color-accent);border:0}.error-text{color:var(--color-error);font-size:var(--font-size-sm)}
