:root{
  --teal:#1E6F6A;--teal-deep:#155350;--seafoam:#6FBFB0;--mist:#9CC6DC;
  --sage:#B9D4BC;--sage-deep:#5E8763;--coral:#E89B7A;--coral-deep:#C06A45;
  --sand:#F6F1E9;--sand-2:#FCFAF5;--ink:#16323B;--ink-2:#1E3F4A;
  --muted:#4E6A76;--line:#E4DBC9;--line-soft:#EFE8DB;
  --r-card:14px;--r-pill:999px;--r-input:10px;--r-hero:20px;
  --shadow:0 1px 2px rgba(22,50,59,.05),0 18px 34px -24px rgba(22,50,59,.28);
}
*{box-sizing:border-box;}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);font-size:16px;line-height:1.55;
  background:radial-gradient(900px 520px at 100% -8%,rgba(185,212,188,.12),transparent 60%),var(--sand);}
a{color:var(--teal);}

/* ---------------- shell ---------------- */
.p-shell{display:flex;min-height:100vh;align-items:stretch;}
.p-side{width:252px;flex:0 0 252px;background:var(--ink);color:var(--sand);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;
  box-shadow:inset -3px 0 0 var(--teal);scrollbar-width:thin;}
.p-content{flex:1;min-width:0;display:flex;flex-direction:column;}

/* brand */
.p-brand{display:block;text-decoration:none;padding:22px 20px 4px;}
.p-logo{display:block;width:212px;max-width:100%;height:auto;}
.p-logo-mobile{display:block;height:40px;width:auto;}
.p-brand span{color:var(--seafoam);}
.p-brand-mark{width:34px;height:34px;flex:0 0 auto;margin:0;display:block;}
.p-side-sub{padding:6px 20px 14px 22px;font-size:.62rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--seafoam);font-weight:800;}

/* grouped nav */
.p-nav{display:flex;flex-direction:column;gap:2px;padding:6px 12px;flex:1;}
.p-nav-group{margin-top:14px;}
.p-nav-label{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:#8FB3AE;padding:4px 12px 6px;}
.p-nav a{display:block;color:var(--sand);text-decoration:none;font-weight:700;font-size:.92rem;
  padding:9px 12px;border-radius:10px;opacity:.85;border-left:3px solid transparent;}
.p-nav a:hover{opacity:1;background:rgba(255,255,255,.06);}
.p-nav a.on{opacity:1;background:rgba(185,212,188,.18);color:#fff;
  border-left-color:var(--sage);}

/* identity foot (Human Coral = the patient at the center) */
.p-side-foot{padding:14px 16px 18px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;flex-direction:column;gap:10px;}
.p-me{display:flex;align-items:center;gap:11px;}
.p-me-avatar{width:38px;height:38px;flex:0 0 auto;border-radius:999px;background:var(--coral);
  color:#fff;font-weight:800;font-size:1.05rem;display:flex;align-items:center;justify-content:center;}
.p-me-name{font-weight:800;font-size:.95rem;line-height:1.2;}
.p-signout{color:var(--seafoam);text-decoration:none;font-weight:700;font-size:.86rem;}
.p-signout:hover{color:#fff;}

/* mobile bar + off-canvas (CSS-only, no JS) */
.p-navtoggle{position:absolute;opacity:0;pointer-events:none;}
/* mobile bar brand with logo mark */
.p-brand-mobile{display:inline-flex;align-items:center;padding:0;font-size:1.1rem;color:var(--sand);text-decoration:none;}
.p-brand-mobile .p-brand-mark{width:26px;height:26px;margin-right:8px;}
.p-brand-mobile span{color:var(--seafoam);}
.p-mobilebar{display:none;align-items:center;gap:14px;padding:12px 16px;
  background:var(--ink);color:var(--sand);position:sticky;top:0;z-index:30;}
.p-burger{display:inline-flex;cursor:pointer;color:var(--sand);}
.p-scrim{display:none;}

/* ---------------- content ---------------- */
.p-main{max-width:920px;width:100%;margin:0 auto;padding:34px 28px 40px;}
h1{font-size:1.9rem;font-weight:800;letter-spacing:-.01em;margin:0 0 6px;}
h2{font-size:1.1rem;font-weight:800;color:var(--teal);margin:30px 0 12px;
  display:flex;align-items:center;gap:9px;}
h2::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--sage);flex:0 0 auto;}
.p-lede{color:var(--muted);margin:0 0 24px;font-size:1.05rem;}

/* hub cards */
.p-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px;}
.p-card{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--r-card);
  background:var(--sand-2);border:1px solid var(--line);text-decoration:none;color:var(--ink);
  box-shadow:var(--shadow);transition:transform .12s,border-color .12s;}
.p-card:hover{transform:translateY(-2px);border-color:var(--sage);}
.p-card-k{font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.p-card-v{font-size:1.7rem;font-weight:800;color:var(--teal-deep);}
.p-card-meta{font-size:.88rem;color:var(--muted);}

/* lists */
.p-list{list-style:none;margin:0;padding:0;}
.p-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;
  background:var(--sand-2);border:1px solid var(--line);border-radius:var(--r-card);margin-bottom:10px;}
.p-list strong{font-size:1.02rem;}
.p-muted{color:var(--muted);font-size:.92rem;}

/* pills */
.p-pill{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 11px;border-radius:var(--r-pill);background:rgba(30,111,106,.1);border:1px solid rgba(30,111,106,.3);}
.p-pill.muted{background:var(--sand);border-color:var(--line);color:var(--muted);}
.p-pill.crit{background:rgba(232,155,122,.2);border-color:rgba(232,155,122,.65);color:var(--coral-deep);}
.p-pill.ok{background:rgba(111,191,176,.18);border-color:rgba(111,191,176,.55);color:var(--sage-deep);}

.p-empty{color:var(--muted);padding:16px 0;}
.p-note{margin-top:18px;font-size:.9rem;color:var(--ink-2);background:rgba(156,198,220,.14);
  border:1px solid rgba(156,198,220,.45);border-radius:var(--r-input);padding:13px 15px;}

/* profile */
.p-profile{display:grid;grid-template-columns:170px 1fr;gap:10px 18px;margin-top:14px;}
.p-profile dt{font-weight:800;color:var(--ink-2);font-size:.88rem;align-self:center;}
.p-profile dd{margin:0;padding:11px 14px;background:var(--sand-2);border:1px solid var(--line);border-radius:var(--r-input);}

/* footer */
.p-foot{max-width:920px;margin:0 auto;width:100%;padding:18px 28px 40px;color:var(--muted);font-size:.84rem;text-align:center;}
.p-legal{display:inline-flex;gap:8px 18px;flex-wrap:wrap;margin-top:8px;justify-content:center;}
.p-legal a{color:inherit;text-decoration:underline;}
.p-legal a:hover{color:var(--teal);}

/* buttons */
.p-btn{display:inline-block;background:var(--teal);color:#fff;font-weight:800;text-decoration:none;
  padding:11px 24px;border-radius:var(--r-pill);border:none;cursor:pointer;font:inherit;font-weight:800;}
.p-btn:hover{background:var(--teal-deep);}

/* visits */
.p-visits{display:flex;flex-direction:column;gap:12px;}
.p-visit{background:var(--sand-2);border:1px solid var(--line);border-radius:var(--r-card);padding:15px 16px;}
.p-visit-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
.p-visit-body{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px;}

/* vitals */
.p-vitals{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.p-vital{background:var(--sand-2);border:1px solid var(--line);border-radius:var(--r-card);padding:15px 16px;}
.p-vital-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.p-vital-label{font-weight:700;font-size:.92rem;}
.p-vital-val{font-weight:800;font-size:1.18rem;color:var(--teal);}
.p-vital-val small{font-weight:600;font-size:.7rem;color:var(--muted);}
.p-spark{width:100%;height:34px;display:block;margin:8px 0 4px;}
.p-vital-foot{display:flex;justify-content:space-between;gap:8px;font-size:.76rem;}
.p-doc-dl{margin-left:auto;color:var(--teal);font-weight:700;text-decoration:underline;}

/* messages */
.p-msg-form{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;}
.p-msg-form textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-input);font:inherit;resize:vertical;}
.p-thread{display:flex;flex-direction:column;gap:10px;}
.p-msg{padding:12px 14px;border-radius:var(--r-card);max-width:80%;border:1px solid var(--line);}
.p-msg.mine{align-self:flex-end;background:rgba(111,191,176,.16);}
.p-msg.clinic{align-self:flex-start;background:var(--sand-2);}
.p-msg-meta{font-size:.78rem;font-weight:700;margin-bottom:4px;color:var(--ink-2);}
.p-msg-text{font-size:.96rem;line-height:1.5;white-space:pre-wrap;}

/* check-in + request */
.p-checkin{margin:18px 0;}
.p-checkin-status{margin-top:12px;font-size:.96rem;color:var(--ink);}
.p-req-form{display:flex;flex-direction:column;gap:14px;max-width:540px;margin-bottom:18px;}
.p-field{display:flex;flex-direction:column;gap:6px;font-size:.92rem;font-weight:700;color:var(--ink-2);}
.p-field textarea,.p-field input,.p-field select{font:inherit;font-weight:400;padding:10px 12px;
  border:1px solid var(--line);border-radius:var(--r-input);background:#fff;}
.p-field textarea:focus,.p-field input:focus,.p-field select:focus{outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(185,212,188,.4);}
.p-field-row{display:flex;gap:14px;flex-wrap:wrap;}
.p-field-row .p-field{flex:1;min-width:150px;}

/* quick actions row (dashboard) */
.p-actions{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 8px;}
.p-action{display:inline-flex;align-items:center;gap:8px;background:var(--sand-2);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:9px 16px;font-weight:800;font-size:.9rem;color:var(--teal);text-decoration:none;}
.p-action:hover{border-color:var(--sage);background:#fff;}

/* ---------------- login / register (standalone) ---------------- */
.p-login-body{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--teal-deep),var(--teal));}
.p-login-card{background:var(--sand);border-radius:var(--r-hero);padding:44px 48px;text-align:center;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.4);max-width:400px;width:90%;}
.p-login-mark{width:72px;height:72px;display:block;margin:0 auto 14px;}
.p-login-logo{width:260px;max-width:82%;height:auto;display:block;margin:0 auto 12px;}
.p-login-brand{font-size:2.1rem;font-weight:800;letter-spacing:-.01em;margin:0;color:var(--teal-deep);}
.p-login-brand span{color:var(--seafoam);}
.p-login-sub{letter-spacing:.28em;text-transform:uppercase;font-size:.72rem;color:var(--muted);font-weight:800;margin:0 0 22px;}
.p-login-help{color:var(--muted);font-size:.92rem;margin-top:18px;}
.p-login-body .p-foot{color:rgba(246,241,233,.7);}
.p-err{text-align:center;padding:40px 0;}.p-err h1{font-size:3rem;color:var(--teal);}
.p-reg-form{display:flex;flex-direction:column;gap:12px;margin-top:8px;text-align:left;}
.p-reg-label{font-size:.84rem;font-weight:700;color:var(--ink-2);display:flex;flex-direction:column;gap:4px;}
.p-reg-input{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-input);font-size:1rem;font-family:inherit;}
.p-reg-input:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(185,212,188,.4);}
.p-reg-code{font-family:ui-monospace,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;font-size:1.2rem;text-align:center;}
.p-reg-err{background:rgba(232,155,122,.16);border:1px solid rgba(232,155,122,.6);color:var(--coral-deep);border-radius:var(--r-input);padding:10px 12px;font-size:.92rem;margin-bottom:14px;}
.p-reg-link{color:var(--teal);font-weight:700;text-decoration:none;}

/* ---------------- responsive ---------------- */
@media(max-width:860px){
  .p-side{position:fixed;top:0;left:0;z-index:40;transform:translateX(-100%);transition:transform .22s ease;}
  .p-navtoggle:checked ~ .p-shell .p-side{transform:translateX(0);}
  .p-navtoggle:checked ~ .p-shell .p-scrim{display:block;position:fixed;inset:0;z-index:35;
    background:rgba(22,50,59,.45);}
  .p-mobilebar{display:flex;}
  .p-main{padding:24px 18px 36px;}
  .p-cards{grid-template-columns:1fr;}
  .p-profile{grid-template-columns:1fr;}
  .p-profile dt{margin-top:6px;}
}
@media(max-width:560px){
  h1{font-size:1.6rem;}
  .p-msg{max-width:92%;}
}

/* dashboard hero (prominent next-appointment focal point) */
.p-card-hero{background:linear-gradient(135deg,var(--teal),var(--teal-deep));color:#fff;border-color:transparent;margin-bottom:6px;}
.p-card-hero .p-card-k{color:rgba(255,255,255,.82);}
.p-card-hero .p-card-v{color:#fff;font-size:2rem;}
.p-card-hero .p-card-meta{color:rgba(255,255,255,.88);}
.p-card-hero:hover{transform:translateY(-2px);border-color:transparent;}
.small{font-size:.82rem;}

/* refill / multi-select checklist */
.p-checklist{display:flex;flex-direction:column;gap:8px;margin:2px 0 6px;}
.p-checkitem{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-input);cursor:pointer;font-weight:500;color:var(--ink-2);transition:border-color .12s ease,background .12s ease;}
.p-checkitem:hover{border-color:var(--seafoam);background:var(--sand-2);}
.p-checkitem input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--teal);cursor:pointer;}
