:root{color-scheme:light;--ink:#282335;--muted:#625a70;--purple:#6333cf;--line:#ddd9e5;--surface:#fff;--wash:#f6f5f8;font:100%/1.55 system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--wash);color:var(--ink)}
a{color:#5425b1;text-underline-offset:.16em}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid #875fea;outline-offset:3px}
.mast{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;padding:.75rem clamp(1rem,4vw,3rem);background:var(--surface);border-bottom:1px solid var(--line);grid-area:head}
.brand{font-size:1.3rem;font-weight:800;letter-spacing:-.05em;text-decoration:none;color:var(--purple)}
.mast span,.eyebrow{color:var(--muted);font-size:.85rem}
.workspace{display:grid;grid-template-columns:15rem minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"head head" "rail body";min-height:100vh}
.rail{grid-area:rail;background:var(--surface);padding:2rem 1.25rem;border-right:1px solid var(--line)}
.eyebrow{margin:0}.clinic-name{display:block;overflow-wrap:anywhere;margin:.2rem 0 1.25rem}
.rail nav{display:grid;gap:.25rem}
.rail a{padding:.65rem .8rem;border-radius:.5rem;color:var(--ink);text-decoration:none}
.rail a:hover,.rail a[aria-current]{background:#f0eafa;color:#4e248f}
.rail a[aria-current]{font-weight:700;border-inline-start:3px solid var(--purple)}
.rail .switch{border-top:1px solid var(--line);border-radius:0;margin-top:1rem;color:var(--purple)}
.menu-toggle{display:none}
main{grid-area:body;min-width:0;width:min(100%,66rem);margin:0 auto;padding:clamp(1rem,4vw,3rem);overflow-wrap:anywhere}
.standalone main{width:min(calc(100% - 2rem),48rem);background:white;border:1px solid var(--line);border-radius:1rem;margin:clamp(1rem,6vh,4rem) auto}
h1,h2,h3{line-height:1.22;text-wrap:balance}h1{font-size:clamp(1.65rem,4vw,2.45rem);letter-spacing:-.035em}h2{font-size:1.3rem;margin-top:1.6rem}h3{font-size:1.08rem}
section,article,details{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;padding:1rem clamp(1rem,2vw,1.5rem);margin:1rem 0}
article h2,section>h2:first-child{margin-top:0}
summary{cursor:pointer;font-weight:650;color:#51289b}
main nav{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}
main nav a{background:#fff;border:1px solid var(--line);border-radius:2rem;padding:.45rem .9rem;text-decoration:none}
main nav a[aria-current]{background:#eee6fb;border-color:#b19bdc;font-weight:650}
button,.primary-action{display:inline-block;border:0;border-radius:.5rem;padding:.65rem 1rem;font:inherit;font-weight:650;background:var(--purple);color:#fff;cursor:pointer;text-decoration:none}
button:disabled{opacity:.55;cursor:wait}
form button{margin:.75rem 0 .2rem}
label{display:block;font-weight:550;margin:.8rem 0 .25rem}
input,select,textarea{display:block;width:100%;max-width:36rem;min-width:0;border:1px solid #96909f;border-radius:.45rem;padding:.55rem .65rem;background:white;color:var(--ink);font:inherit}
input[type=checkbox],input[type=radio]{display:inline-block;width:1.1rem;height:1.1rem;max-width:none;padding:0;margin:0;accent-color:var(--purple);vertical-align:middle;flex:0 0 auto}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;align-items:flex-start;gap:.5rem;min-height:2.75rem;padding:.35rem 0;cursor:pointer}
label>input[type=checkbox],label>input[type=radio]{margin-block-start:.2rem}
input[type=hidden]{display:none}fieldset{min-width:0;border:1px solid var(--line);border-radius:.5rem}
.timeline{list-style:none;padding-inline-start:1.25rem;margin:1.5rem 0;border-inline-start:2px solid #cbbde5}
.timeline li{position:relative;display:grid;padding-bottom:1.2rem}.timeline li::before{content:"";position:absolute;inset-inline-start:-1.65rem;top:.45rem;width:.65rem;height:.65rem;background:var(--purple);border-radius:50%}.timeline time{color:var(--muted)}
.skip{position:absolute;left:1rem;top:-5rem;background:white;padding:.6rem;z-index:2}.skip:focus{top:.5rem}
@media(max-width:48rem){
.workspace{display:block}.rail{padding:.65rem 1rem;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.15rem .75rem}
.rail .eyebrow{grid-column:1}.clinic-name{grid-column:1;margin:0}.menu-toggle:not([hidden]){display:block;grid-column:2;grid-row:1/3;padding:.5rem .75rem}
.rail nav{grid-column:1/-1;margin-top:.45rem}.menu-toggle:not([hidden])[aria-expanded=false]+nav{display:none}
main{padding:1rem}.standalone main{padding:1.25rem}.mast{padding:.75rem 1rem}.rail .switch{margin-top:0}
}
#quick-open[hidden]{display:none}
#quick-open{background:#f0eafa;color:#4e248f;padding:.5rem .9rem}
#quick-open kbd{font:inherit;font-size:.76rem;border:1px solid #c7bbdb;border-radius:.3rem;padding:.1rem .3rem}
#quick-search{color:var(--ink);width:min(32rem,calc(100% - 2rem));max-height:80vh;border:1px solid var(--line);border-radius:1rem;padding:1.4rem;box-shadow:0 1.5rem 5rem #28233533}
#quick-search::backdrop{background:#21182e78}
#quick-search header,#quick-search nav{display:flex;align-items:center;gap:.75rem}
#quick-search header{justify-content:space-between}#quick-search header h2,#quick-search header button{margin:0}
#quick-search header button{background:#f4f0f8;color:var(--ink);font-size:1.3rem;line-height:1}
#quick-search nav{flex-wrap:wrap;margin-top:1.2rem;border-top:1px solid var(--line);padding-top:1rem}
@media(max-width:48rem){#quick-open kbd{display:none}}
.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.75rem;margin:1.5rem 0}
.report-metrics div{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;padding:1rem}
.report-metrics dt{font-size:.9rem;color:var(--muted)}
.report-metrics dd{margin:.25rem 0 0;font-size:1.45rem;font-weight:700}
.weight-chart{background:var(--surface);border:1px solid var(--line);border-radius:.75rem;margin:1rem 0;padding:1rem;max-width:46rem}
.weight-chart figcaption{font-weight:650;margin-bottom:.75rem}
.weight-chart svg{width:100%;height:auto;display:block}
.weight-chart text{fill:var(--muted);font:14px system-ui,sans-serif}
.absence-hours{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.absence-hours th,.absence-hours td{padding:.5rem .25rem;border-bottom:1px solid var(--line);text-align:end}
.absence-hours th:first-child{text-align:start}

.schedule-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));align-items:start;gap:1rem}
.schedule-column{min-width:0;padding:.8rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}
.schedule-column>h3{margin:0 0 .7rem;overflow-wrap:anywhere}.schedule-column article{overflow-wrap:anywhere}
@media(max-width:640px){.schedule-columns{grid-template-columns:1fr}}

#appointment-panel{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(100%,30rem);max-width:100%;height:100%;height:100dvh;max-height:100%;border:0;border-left:1px solid var(--line);padding:1rem 1.25rem;background:var(--surface);color:var(--ink);overflow-y:auto}
#appointment-panel::backdrop{background:#21182e78}
#appointment-panel>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}
#appointment-panel>header h2{font-size:1.2rem}.appointment-actions>summary{cursor:pointer}

.encounter-sections{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0}
.encounter-sections a{border:1px solid var(--line);border-radius:.5rem;padding:.4rem .75rem;background:var(--surface)}
.encounter-history{margin:.8rem 0}.encounter-history summary{cursor:pointer}

.encounter-actions{border-top:1px solid var(--line);background:var(--surface);padding:.5rem 0}
.encounter-actions [role=status]:empty{display:none}
.encounter-buttons{display:flex;flex-wrap:wrap;gap:.5rem}
.encounter-buttons button{margin:0}
@media screen and (min-height:32rem){
  .encounter-actions{position:sticky;bottom:0;z-index:1;padding:.65rem max(.5rem,env(safe-area-inset-right)) max(.65rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}
  #record :is(input,textarea,select,button){scroll-margin-bottom:7rem}
}

.mobile-shortcuts{display:none}
@media screen and (max-width:48rem) and (min-height:26rem){
  .workspace{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}
  .mobile-shortcuts{position:fixed;z-index:3;inset:auto 0 0;display:flex;align-items:stretch;background:var(--surface);border-top:1px solid var(--line);padding:0 .25rem env(safe-area-inset-bottom)}
  .mobile-shortcuts a{flex:1;display:grid;place-items:center;text-align:center;min-height:3.5rem;padding:.25rem;font-size:.875rem;line-height:1.2;text-decoration:none}
  .mobile-shortcuts .mobile-book{font-weight:700;color:var(--purple)}
  .workspace main :focus{scroll-margin-bottom:5rem}
}
#clinical-review[open]{display:flex;flex-direction:column;width:min(42rem,calc(100vw - 1.5rem));max-height:calc(100dvh - 2rem);padding:0;border:1px solid var(--line);border-radius:.9rem;overflow:hidden;box-sizing:border-box}
#clinical-review::backdrop{background:rgba(40,35,53,.45)}
.clinical-review-body{padding:1rem;min-height:0;overflow:auto;overscroll-behavior:contain}
#clinical-proposal-fields{display:grid;gap:.75rem}
#clinical-proposal-fields fieldset{min-width:0;margin:0;padding:.75rem;border:1px solid var(--line);border-radius:.5rem}
#clinical-proposal-fields label{display:flex;gap:.5rem;align-items:center;margin:0 0 .5rem}
#clinical-proposal-fields input[type=checkbox]{display:inline-block;width:auto;margin:0;flex:0 0 auto}
#clinical-proposal-fields textarea{width:100%;box-sizing:border-box;min-width:0}
.clinical-review-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;background:var(--surface);border-top:1px solid var(--line);flex-shrink:0}
.clinical-review-actions button{flex:1 1 14rem;white-space:normal}
