:root{color-scheme:light;--bg:#f5f5ef;--surface:#fff;--ink:#173d32;--muted:#53665e;--line:#d5dfd5;--soft:#e6eee3;--accent:#235742}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,sans-serif}header,main,nav,footer,#status{max-width:900px;margin:auto;padding:20px 24px}.test-banner{padding:10px 20px;text-align:center;background:#e8dec3;color:#433c27;font-size:13px}header{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line)}.brand{font:28px Georgia,serif}.brand small{display:block;font:12px system-ui;margin-top:6px;letter-spacing:1px}h1{font:36px/1.2 Georgia,serif;margin:12px 0 20px}h2{font-size:21px}h3{font-size:17px}p{margin:10px 0 18px}.muted,small{color:var(--muted)}section{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;margin:18px 0}.hero{background:var(--soft)}.actions{display:flex;flex-wrap:wrap;gap:12px}.actions>*{flex:1 1 180px}button,.button{display:inline-block;font:inherit;padding:12px 18px;min-height:46px;border:1px solid var(--line);background:var(--surface);border-radius:12px;color:var(--ink);cursor:pointer;text-decoration:none;text-align:center}button.primary,.button.primary,nav button[aria-current=page]{background:var(--accent);color:white}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #9a6a18;outline-offset:3px}label{display:block;margin:16px 0}input:not([type=checkbox]),textarea,select{display:block;width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:6px;background:white;color:var(--ink)}textarea{min-height:100px;resize:vertical}input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:8px}nav{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line)}nav button{flex:1}footer{font-size:14px;color:var(--muted)}#status:empty{padding:0}#status:not(:empty){background:var(--soft);border-radius:10px}.entry{white-space:pre-wrap;overflow-wrap:anywhere}.badge{display:inline-block;border-radius:20px;background:var(--soft);padding:4px 12px;font-size:13px}.date{font:26px Georgia,serif}.notice{border-left:3px solid var(--accent);padding-left:16px} [hidden]{display:none!important}@media(max-width:540px){header,main,nav,footer,#status{padding:16px}header{align-items:flex-start;flex-direction:column}h1{font-size:30px}section{padding:18px}nav button{font-size:14px;padding:10px}.brand{font-size:25px}}
.cancel-help{margin-top:24px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.cancel-help summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0}.cancel-help summary:focus-visible{outline:3px solid #9a6a18;outline-offset:3px}.cancel-help p{max-width:620px}

#install-help{max-width:900px;margin:auto;padding:12px 24px;color:var(--muted);font-size:14px}#install-help summary{cursor:pointer;min-height:44px;padding:10px 0}#install-help details{border-top:1px solid var(--line)}#install-help summary:focus-visible{outline:3px solid #9a6a18;outline-offset:3px}@media(display-mode:standalone){#install-help{display:none}body{padding-bottom:env(safe-area-inset-bottom)}}

.program-image{display:block;width:100%;height:auto;border-radius:12px;margin:16px 0}.exercise-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.exercise-grid section{margin:0}.technique{padding:20px;background:white;border:1px solid var(--line);border-radius:16px;margin:20px 0}.technique summary{cursor:pointer;font-weight:600;min-height:44px}.technique li{margin-bottom:12px}textarea[readonly]{background:var(--bg)}@media(max-width:600px){.exercise-grid{grid-template-columns:1fr}}
.rehab-compact{padding:18px}.rehab-compact h2{margin:0 0 4px}.pdf-actions{margin:12px 0}.pdf-actions .button{padding:10px;font-size:14px;flex-basis:120px}.exercise-entry{border-top:1px solid var(--line);padding:12px 0}.exercise-line label{font-weight:600;margin:0}.exercise-line>span{display:block;margin-left:32px;font-size:14px;color:var(--muted)}.exercise-entry details{margin:6px 0 0 32px;font-size:14px}.exercise-entry summary,.day-picker summary,.program-advice summary{cursor:pointer;padding:8px 0}.exercise-row{border-top:1px solid var(--line);padding:12px 0}.exercise-row summary span{display:block;font-size:14px}.day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.day-strip button{padding:7px 1px;border-radius:8px;min-width:0;font-size:12px}.day-strip span,.day-strip strong,.day-strip small{display:block}.day-strip [aria-current=date]{background:var(--accent);color:white}.day-strip [aria-current=date] small{color:white}.day-heading{display:flex;align-items:center;gap:10px}.day-heading label{flex:1;font-size:13px;margin:10px 0}.day-heading input{padding:7px}.day-caption{font-size:13px;margin:8px 0}.completion-count{font-size:14px;font-weight:600;margin:12px 0}.weekday-choices{display:flex;flex-wrap:wrap;gap:10px}.weekday-choices label{font-size:14px}.program-advice{border-top:1px solid var(--line);margin-top:14px;font-size:14px}
.account-actions{display:flex;flex-wrap:wrap;gap:8px}.account-actions button{font-size:14px;padding:10px 14px}.flexible-advice{background:var(--soft);padding:14px;border-radius:10px;margin:12px 0}.flexible-advice p{margin:8px 0}.flexible-advice details{margin:8px 0}.week-progress{font-size:14px}.week-progress small{display:block}fieldset{border:1px solid var(--line);border-radius:12px;margin:16px 0}legend{font-weight:600}

/* Navigation stays reachable above long clinician histories and programs. */
#nav{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding-top:10px;padding-bottom:10px;box-shadow:0 3px 8px #173d3210}#nav:empty{display:none}#nav button{min-width:0}html{scroll-padding-top:90px}@media(max-width:540px){#nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 16px}html{scroll-padding-top:130px}}

#nav{transition:transform 180ms ease}#nav.scroll-hidden{transform:translateY(-110%);pointer-events:none}#nav:focus-within{pointer-events:auto}@media(prefers-reduced-motion:reduce){#nav{transition:none}}

.plan-home-action{margin:22px 0}.plan-home-action button{display:block;width:100%;padding:24px 18px;font-size:22px;text-align:center;box-shadow:0 5px 14px #173d3220}.plan-home-action span{display:block;font-size:14px;font-weight:400;margin-top:8px}.review-pdf-link{margin:18px 0}.pdf-review{background:var(--soft)}.pdf-review details,.saved-preview{margin:16px 0}.pdf-review summary,.saved-preview>summary{cursor:pointer;font-weight:600;padding:12px 0}

.draft-editor{margin:20px 0}.draft-editor>summary{cursor:pointer;font-weight:600;padding:16px;border:1px solid var(--line);border-radius:12px;background:white}.draft-editor[open]>summary{margin-bottom:16px}#publish-review-heading:focus{outline:2px solid var(--accent);outline-offset:6px}

/* Bounded clinician directory, usable on a phone without a long select menu. */
.patient-search{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.patient-search label{flex:1 1 16rem;margin:0}.patient-search input{margin-bottom:0}.patient-result{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line,#d8e2d9)}.patient-result:last-child{border-bottom:0}.patient-result strong,.patient-result small{display:block}.patient-result small{overflow-wrap:anywhere;color:#52665e;margin-top:.25rem}.patient-result button{flex-shrink:0}@media(max-width:520px){.patient-result{align-items:flex-start;flex-direction:column;gap:.6rem}.patient-result button{width:100%}.patient-search button{flex:1}}

/* Keep the clinician toolbar to one comfortable row on phones. */
#nav .nav-more{display:none}
@media(max-width:540px){
 #nav.clinician-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:stretch}
 #nav.clinician-nav>.nav-secondary{display:none}
 #nav.clinician-nav>.nav-more{display:block;position:relative}
 .nav-more>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;height:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:14px;cursor:pointer;list-style:none}
 .nav-more>summary::-webkit-details-marker{display:none}
 .nav-more>summary::after{content:'⌄'}
 .nav-more[open]>summary::after{content:'⌃'}
 .nav-more>summary.current{background:var(--accent);color:white}
 .nav-more>summary:focus-visible{outline:3px solid #9a6a18;outline-offset:3px}
 .nav-more-menu{position:absolute;right:0;top:calc(100% + 8px);width:min(260px,calc(100vw - 32px));padding:8px;display:grid;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #173d3226}
 #nav .nav-more-menu button{text-align:left;padding:12px 14px;min-height:48px}
}

.alert-channels{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:12px;min-width:0}.alert-channels legend{font-weight:600;padding:0 6px}.alert-channels label{min-height:44px;display:flex;align-items:center;gap:8px}.alert-channels input{flex-shrink:0}
/* Patient shortcuts stay available at the bottom, including iPhone safe area. */
.plan-home-action{display:grid;gap:12px}.plan-home-action>.button{display:block;width:100%;padding:22px 18px;font-size:22px}
body.patient-layout{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
#nav.patient-nav{position:fixed;top:auto;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);border-bottom:0;box-shadow:0 -3px 12px #173d3210;transform:none;pointer-events:auto}
#nav.patient-nav button{padding:12px 3px;font-size:14px;min-height:48px;border-color:transparent}
@media(min-width:650px){.plan-home-action{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-home-action>*:only-child{grid-column:1/-1}}
#nav.patient-nav:empty{display:none}
.welcome-home{max-width:760px;margin:12px auto 0}.welcome-eyebrow{font-size:14px;letter-spacing:.06em;color:var(--muted)}.welcome-home h1{max-width:560px}.welcome-home>.muted{font-size:14px}.welcome-home .plan-home-action{align-items:stretch}.welcome-home .plan-home-action>*{display:flex;flex-direction:column;justify-content:center}.welcome-home details{margin:24px 0}

/* Approved House classic / pistachio and ember brand treatment. */
@font-face{font-family:'Playfair Display';src:url('/fonts/playfair-display-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('/fonts/poppins-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('/fonts/poppins-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
:root{--bg:#e8e6da;--surface:#faf9f4;--ink:#07454f;--muted:#4d6466;--line:#c9cfc2;--soft:#dbe2d3;--accent:#07454f;--pistachio:#98a882;--ember:#b54918;--sage-panel:#dbe2d3;--clay-panel:#f2ded5}
body{font-family:Poppins,system-ui,sans-serif}
h1,.date{font-family:'Playfair Display',Georgia,serif;font-weight:400}
h2{font-weight:600;font-size:20px;line-height:1.4}
h3{font-weight:600}
header{background:var(--accent);color:var(--bg);border:0;padding:24px 32px;min-height:124px;border-radius:0 0 20px 20px}
.brand{width:170px;flex-shrink:0;line-height:0}
.brand img{display:block;width:100%;height:auto}
.account-actions{justify-content:flex-end}
.account-actions button{background:transparent;color:var(--bg);border-color:#79969a;font-size:12px}
.test-banner{background:var(--bg);color:var(--ink);font-size:12px}
button,.button{border-radius:14px;font-weight:400}
button.primary,.button.primary,nav button[aria-current=page]{background:var(--accent);color:var(--bg)}
input[type=checkbox]{accent-color:var(--accent)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-color:var(--ember)}
section{border:0;border-radius:18px;background:var(--surface)}
input:not([type=checkbox]),textarea,select{background:var(--surface)}
.patient-layout main{max-width:760px}
.patient-layout .plan-home-action{grid-template-columns:1fr;gap:12px}
.patient-layout .plan-home-action button{font-family:'Playfair Display',Georgia,serif;font-size:28px;text-align:left;padding:26px 24px;border-radius:20px 20px 42px 20px;box-shadow:none}
.patient-layout .plan-home-action button span{font-family:Poppins,system-ui,sans-serif;font-size:14px;margin-top:16px}
.patient-layout .plan-home-action>.button{font-size:17px;padding:16px 20px;box-shadow:none}
.patient-layout .plan-home-action>.button span{font-size:12px}
.next-appointment{background:var(--sage-panel)}
.appointment-preparation{background:var(--clay-panel)}
.appointment-preparation .actions button{background:var(--surface);border-color:#d1b9aa;border-radius:24px}
.next-appointment .actions button,.alert-bubble{background:var(--sage-panel);color:var(--ink);border:1px solid #9bad8d;border-radius:24px}
.patient-layout .next-appointment .actions button{background:#edf0e8}
.patient-layout .pdf-actions .button{border-radius:18px;min-height:48px}
.patient-layout .pdf-actions .button.primary{background:#dabaa4;color:#493023;border:1px solid #bd8d74}
.patient-layout .pdf-actions .button:not(.primary){background:#e2e7da;color:var(--ink)}
.day-strip button{background:#eef0e7;border:0}
.day-strip [aria-current=date]{background:var(--accent);color:var(--bg)}
.day-strip [aria-current=date] small{color:var(--bg)}
.notes-composer{padding:4px 0 24px;margin:24px 0;border-bottom:1px solid var(--line);display:flow-root}
.notes-composer h2{border-left:3px solid var(--ember);padding-left:12px;font-size:18px}
.notes-composer textarea{background:#faf9f4;color:var(--ink);border:1px solid #cccbbf;border-radius:16px;min-height:160px;padding:18px;line-height:1.7}
.notes-composer textarea::placeholder{color:#65706b;opacity:1}
.notes-composer button{display:block;margin-left:auto;min-width:132px;border-radius:24px}
.saved-notes section{background:transparent;border-radius:0;border-bottom:1px solid var(--line);padding:18px 0;margin:0}
.saved-notes .badge{background:#dbe2d3}
.patient-layout fieldset{min-width:0;background:var(--surface);padding:18px;border:1px solid var(--line)}
.patient-layout form[data-form=notifications]>fieldset:first-child{background:var(--sage-panel)}
.patient-layout form[data-form=notifications] label:has(input[type=checkbox]){display:flex;align-items:center;min-height:44px;gap:8px}
.patient-layout input[type=checkbox]{flex-shrink:0}
.welcome-home>section{background:var(--sage-panel)}
.welcome-home h1{font-size:44px;max-width:460px}
.welcome-home #welcome-install{border-radius:24px;background:var(--clay-panel);border-color:#d1b9aa}
#nav.patient-nav{background:var(--surface);box-shadow:0 -3px 12px #07454f0a}
#nav.patient-nav button{position:relative;background:transparent;color:var(--ink);border-radius:12px;font-size:13px}
#nav.patient-nav button[aria-current=page]{background:var(--soft);font-weight:600}
#nav.patient-nav button[aria-current=page]::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:var(--ember);margin:4px auto -4px}
@media(max-width:540px){header{padding:22px 20px;flex-direction:row;align-items:center;gap:18px}.brand{width:134px}.account-actions{flex-direction:column;align-items:stretch}.account-actions button{font-size:11px;padding:8px 10px;min-height:44px}h1{font-size:30px}.welcome-home h1{font-size:36px}.patient-layout main{padding:20px 18px}.patient-layout .plan-home-action button{font-size:26px}.pdf-actions{gap:8px}.pdf-actions .button{flex-basis:120px;font-size:13px}.day-strip button{font-size:11px}.day-heading{flex-wrap:wrap}.day-heading label{min-width:140px}#nav.patient-nav button{font-size:12px}}

/* Owner's approved screenshot is the DARK preview, fixed across devices.
   Match its dark tokens rather than following OS appearance. */
:root{color-scheme:dark;--bg:#142f34;--surface:#1b3a3c;--ink:#e8e6da;--muted:#bfcac2;--line:#45615b;--soft:#304b41;--accent:#98a882;--sage-panel:#354c40;--clay-panel:#553c31}
header{background:#07454f;color:var(--ink)}
.account-actions button{color:var(--ink);border-color:var(--line)}
button.primary,.button.primary,nav button[aria-current=page]{background:var(--accent);color:#07454f}
.patient-layout .plan-home-action button.primary{background:#98a882;color:#07454f}
.appointment-preparation,.appointment-preparation .actions button{color:var(--ink)}
.appointment-preparation .muted{color:#e0d1c6}
.appointment-preparation .actions button{background:#715344;border-color:#a18370}
.next-appointment .actions button,.alert-bubble,.patient-layout .next-appointment .actions button{background:#354c40;color:var(--ink);border-color:#78927c}
.patient-layout .pdf-actions .button.primary{background:#714831;color:#fff4e9;border-color:#a77a5f}
.patient-layout .pdf-actions .button:not(.primary){background:#354c40;color:var(--ink);border-color:#617967}
.day-strip button{background:#304b41;color:var(--ink)}
.day-strip [aria-current=date]{background:var(--accent);color:#07454f}
.day-strip [aria-current=date] small{color:#07454f}
.notes-composer textarea{background:#243e40;color:var(--ink);border-color:#587171}
.notes-composer textarea::placeholder{color:#bfcac2}
.saved-notes .badge{background:#354c40}
.technique,.draft-editor>summary{background:var(--surface)}
.patient-result small{color:var(--muted)}
.welcome-home #welcome-install{background:var(--clay-panel);border-color:#a18370}
.notice{border-color:#98a882}
#nav.patient-nav button[aria-current=page]{background:transparent;color:var(--ink)}
#nav.patient-nav button:not([aria-current=page]){color:#b4c2ba}
#nav.patient-nav button[aria-current=page]::after{background:#c46d44}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-color:#cf9877}

/* Header shortcut to patient notification preferences. */
#account-notifications{background:#715344;color:var(--ink);border-color:#a18370}

/* Clinician navigation mirrors the patient bottom bar; history belongs to a patient. */
body.clinician-layout{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
#nav.clinician-nav{position:fixed;top:auto;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);border-bottom:0;transform:none;pointer-events:auto;box-shadow:0 -3px 12px #07454f0a}
#nav.clinician-nav:has(.nav-more){grid-template-columns:repeat(4,minmax(0,1fr))}
#nav.clinician-nav:empty{display:none}
#nav.clinician-nav>button,#nav.clinician-nav .nav-more>summary{padding:12px 3px;min-height:48px;font-size:13px;border-color:transparent;background:transparent;color:#b4c2ba;border-radius:12px;position:relative;text-align:center}
#nav.clinician-nav>button[aria-current=page],#nav.clinician-nav .nav-more>summary.current{color:var(--ink);font-weight:600}
#nav.clinician-nav>button[aria-current=page]::after{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#c46d44;margin:4px auto -4px}
#nav.clinician-nav>.nav-more{display:block;position:relative}
#nav.clinician-nav .nav-more-menu{position:absolute;right:0;top:auto;bottom:calc(100% + 12px);width:min(260px,calc(100vw - 32px));padding:8px;display:grid;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 -8px 24px #0004}
#nav.clinician-nav .nav-more>summary{display:flex;align-items:center;justify-content:center;cursor:pointer;list-style:none}
#nav.clinician-nav .nav-more-menu button{min-height:48px;text-align:left}

/* PDF stays inside the app with a persistent, safe-area-aware exit control. */
dialog.pdf-viewer[open]{position:fixed;inset:0;box-sizing:border-box;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--background,#142f34);color:#f3f0e5;z-index:10000;display:flex;flex-direction:column;overflow:hidden}
.pdf-viewer::backdrop{background:#142f34}
.pdf-viewer-bar{display:flex;align-items:center;gap:1rem;flex-shrink:0;padding:max(.75rem,env(safe-area-inset-top)) 1rem .75rem}
.pdf-viewer-bar button{margin:0;min-height:48px;background:#704f40;color:#fff;border:1px solid #ad8872}
.pdf-viewer-help{margin:0;padding:0 1rem .75rem;font-size:.85rem;flex-shrink:0}

.pdf-viewer-pages{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px;background:#e9e7de}
.pdf-viewer-pages canvas{display:block;width:100%;max-width:1000px;height:auto;margin:auto}
.pdf-viewer-pages [role=status]{color:#142f34}
.pdf-page-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 1rem .5rem;flex-shrink:0}
.pdf-page-controls button{margin:0;font-size:.85rem;min-height:44px}

.conversation {display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0}
.conversation-message {background:#304b40;border-radius:1.2rem;padding:1.2rem;max-width:90%;align-self:flex-start;overflow-wrap:anywhere}
.conversation-message.outgoing {background:#593f32;align-self:flex-end}
.conversation-message small {display:block;margin-top:.4rem}
.conversation-message p {white-space:pre-wrap;margin-bottom:0}
