/* WTX design system · v0.3
   Base 16px, Lato stack. Spruce green structural, prairie gold accent, bone paper.
   WCAG 2.1 AA: text contrast >= 4.5:1, visible focus, reduced motion respected. */

:root{
  --basin:#12332B; --pine:#1E4A3E; --sage:#5F7D6E; --prairie:#C99632;
  --prairie-soft:#F3E7CB; --prairie-edge:#E2CF9E;
  --bone:#F5F3ED; --card:#FFFFFF; --ink:#1B231F;
  --muted:#5A6560; /* 5.6:1 on white */
  --clay:#A63A27; --clay-soft:#F6E4DF; --clay-edge:#E5C0B5;
  --line:#E3E0D6; --radius:8px;
}
*{box-sizing:border-box;margin:0}
html{font-size:16px}
body{background:var(--bone);color:var(--ink);
  font-family:'Lato',Helvetica,Arial,Lucida,sans-serif;font-size:16px;line-height:1.55}
.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}
a{color:var(--pine)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--prairie);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--basin);color:#fff;padding:.5rem 1rem;z-index:99}
.skip:focus{left:0}

/* masthead + nav */
header.app{background:var(--basin);color:#EDEAE0;padding:.85rem 1.75rem;
  display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.hdrlogo{height:2.6rem;background:#fff;border-radius:6px;padding:.2rem .3rem}
.wordmark{font-weight:700;font-size:1.4rem;letter-spacing:.02em}
.wordmark b{color:var(--prairie);font-weight:700}
.tagline{font-size:.8rem;color:#C4CFC9;letter-spacing:.06em;text-transform:uppercase}
nav.app{display:flex;gap:.25rem;margin-left:1rem}
nav.app a{color:#D8DED9;text-decoration:none;font-weight:700;font-size:.95rem;
  padding:.4rem .8rem;border-radius:6px}
nav.app a[aria-current="page"]{background:#0C241E;color:#fff}
nav.app a:hover{background:#0C241E}
.rolechip{margin-left:auto;font-size:.8rem;background:#0C241E;border:1px solid #2A5548;
  padding:.3rem .8rem;border-radius:999px;color:#D8D2BE}
.signout{background:none;border:1px solid #2A5548;color:#C4CFC9;border-radius:6px;
  padding:.3rem .7rem;font-size:.8rem}
.goldrule{height:3px;background:linear-gradient(90deg,var(--prairie) 0 15rem,transparent 15rem)}

/* layout + panels */
.wrap{max-width:1340px;margin:1.6rem auto;padding:0 1.75rem}
.wrap.cols{display:grid;grid-template-columns:330px 1fr;gap:1.5rem}
@media(max-width:1000px){.wrap.cols{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.panel h2{font-size:1.15rem;font-weight:700;padding:1rem 1.15rem 0}
.panel .body{padding:.9rem 1.15rem 1.15rem;display:grid;gap:.85rem}
label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);display:block;margin-bottom:.3rem}
select,input[type=text],input[type=password]{width:100%;padding:.6rem .65rem;border:1px solid var(--line);
  border-radius:6px;background:#FCFBF8;font:inherit;color:var(--ink)}
.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.seg button{flex:1;padding:.55rem 0;background:#FCFBF8;border:0;font-weight:700;
  font-size:.9rem;color:var(--muted)}
.seg button.on{background:var(--pine);color:#fff}
.seg button.on.crisis{background:var(--clay)}
.check{display:flex;gap:.55rem;align-items:center;font-size:.92rem}
.cta{width:100%;padding:.8rem;border:0;border-radius:6px;background:var(--prairie);
  color:#241A05;font-weight:700;font-size:1rem}
.cta:hover{filter:brightness(1.05)}
.btn{padding:.55rem 1rem;border:1px solid var(--line);border-radius:6px;background:#fff;font-weight:700}
.btn.primary{background:var(--basin);border-color:var(--basin);color:#fff}
.finance{border-top:1px dashed var(--line);padding-top:.8rem;font-size:.88rem;color:var(--muted)}
.finance .mono{color:var(--ink)}

/* funnel */
.funnel{display:flex;align-items:stretch;padding:1.2rem 1.15rem .5rem;overflow-x:auto}
.stage{min-width:8.5rem;padding:.65rem .9rem;background:#FCFBF8;border:1px solid var(--line);border-radius:6px}
.stage .n{font-weight:700;font-size:1.7rem;color:var(--pine);font-variant-numeric:tabular-nums}
.stage.gate .n{color:#8A6512} /* darkened gold for contrast on light bg */
.stage .lb{font-size:.78rem;line-height:1.35;color:var(--muted);margin-top:.15rem}
.taper{align-self:center;width:2.1rem;height:2px;background:var(--sage);position:relative;flex:none;opacity:.55}
.taper::after{content:'';position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left-color:var(--sage)}

/* gate notes: quiet tinted rows, small-caps tag, no accent borders */
.gatenote{margin:.35rem 1.15rem 0;padding:.6rem .8rem;border-radius:6px;font-size:.9rem;
  background:var(--prairie-soft);border:1px solid var(--prairie-edge);display:flex;gap:.6rem;align-items:baseline}
.gatenote .tag{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:#6F5210;white-space:nowrap}
.gatenote.off{background:var(--clay-soft);border-color:var(--clay-edge)}
.gatenote.off .tag{color:var(--clay)}

/* tiers + cards */
.tier{margin:1.4rem 1.15rem 0}
.tierhead{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.5rem}
.tierhead .bar{width:1.6rem;height:.6rem;background:var(--prairie);border-radius:2px}
.tierhead h3{font-size:1.05rem;font-weight:700}
.tierhead .sub{font-size:.82rem;color:var(--muted)}
.stateline{margin:1.6rem 0 .25rem;border-top:2px dashed var(--sage);position:relative;opacity:.9}
.stateline span{position:absolute;top:-.72rem;left:1.5rem;background:var(--card);padding:0 .6rem;
  font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#41564B}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.75rem;padding-bottom:.4rem}
.cc{border:1px solid var(--line);border-radius:var(--radius);padding:.9rem .95rem;background:#fff;
  display:grid;gap:.45rem;transition:box-shadow .15s}
.cc:hover{box-shadow:0 3px 14px rgba(18,51,43,.10)}
.cc .who{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.cc .nm{font-weight:700;font-size:1rem}
.cc .cred{font-size:.75rem;font-weight:700;background:var(--basin);color:#EDEAE0;
  padding:.1rem .45rem;border-radius:4px;white-space:nowrap}
.cc .org{font-size:.85rem;color:var(--muted)}
.cc .meta{display:flex;gap:.9rem;font-size:.82rem;color:var(--muted);flex-wrap:wrap}
.cc .meta .mono{color:var(--ink)}
.stars{color:#8A6512;letter-spacing:.06em;font-size:.85rem}
.slotrow{display:flex;gap:.45rem;flex-wrap:wrap}
.slot{border:1px solid var(--pine);color:var(--pine);background:#fff;border-radius:5px;
  padding:.35rem .6rem;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.slot:hover{background:var(--pine);color:#fff}
.empty{padding:1.75rem 1.15rem;color:var(--muted);font-size:.95rem}

/* confirmation + session */
.confirm{margin:1.15rem;border:1px solid var(--pine);border-radius:var(--radius);overflow:hidden}
.confirm .head{background:var(--pine);color:#fff;padding:.7rem 1rem;font-weight:700;
  display:flex;gap:.75rem;align-items:baseline}
.confirm .head .mono{color:var(--prairie-soft);font-size:.85rem}
.confirm .body{padding:.9rem 1rem;display:grid;gap:.5rem;font-size:.92rem}
.kv{display:flex;gap:.5rem}
.kv b{min-width:11rem;font-weight:700;color:var(--muted);font-size:.78rem;
  text-transform:uppercase;letter-spacing:.04em;padding-top:.15rem}
.session{margin:0 1.15rem 1.15rem;border:1px dashed var(--sage);border-radius:var(--radius);
  background:#0E2B24;color:#D9E4DE;padding:1.4rem;display:none;grid-template-columns:1fr 1fr;
  gap:.9rem;min-height:12rem}
.session .feed{background:#123A30;border-radius:6px;display:grid;place-items:center;
  font-size:.8rem;font-weight:700;letter-spacing:.05em;color:#9FC2B3;min-height:10rem}
.session .note{grid-column:1/-1;font-size:.78rem;color:#A9C2B6}

/* stat tiles + tables (dashboard, admin) */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}
.tile .n{font-size:1.9rem;font-weight:700;color:var(--pine);font-variant-numeric:tabular-nums}
.tile .n.gold{color:#8A6512}
.tile .lb{font-size:.8rem;color:var(--muted);margin-top:.1rem}
table.data{width:100%;border-collapse:collapse;font-size:.9rem}
table.data th{text-align:left;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);padding:.5rem .65rem;border-bottom:2px solid var(--line)}
table.data td{padding:.55rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}
table.data td.mono{font-variant-numeric:tabular-nums}
.pill{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700}
.pill.on{background:#E4EFE7;color:#1E4A3E}
.pill.off{background:var(--clay-soft);color:var(--clay)}
.pill.crisis{background:var(--clay-soft);color:var(--clay)}

/* admin shell */
.adminwrap{display:grid;grid-template-columns:250px 1fr;gap:1.5rem}
@media(max-width:900px){.adminwrap{grid-template-columns:1fr}}
.adminmenu{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:.5rem;align-self:start;position:sticky;top:1rem}
.adminmenu button{display:block;width:100%;text-align:left;background:none;border:0;
  padding:.6rem .8rem;border-radius:6px;font-weight:700;font-size:.95rem;color:var(--ink)}
.adminmenu button:hover{background:var(--bone)}
.adminmenu button.on{background:var(--basin);color:#fff}
.adminmenu .grp{border-top:1px solid var(--line);margin-top:.55rem;padding-top:.7rem;
  font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding:.7rem .8rem .2rem}
.placeholder{border:1px dashed var(--line);border-radius:var(--radius);padding:2rem;
  color:var(--muted);text-align:center;font-size:.95rem;background:#FCFBF8}
.togglebtn{border:1px solid var(--line);background:#fff;border-radius:6px;
  padding:.35rem .8rem;font-weight:700;font-size:.85rem}

/* errors */
.err{position:fixed;left:0;right:0;top:0;background:var(--clay);color:#fff;
  padding:.75rem 1.5rem;font-weight:700;display:none;z-index:50}

/* login */
.loginbg{min-height:100vh;display:grid;place-items:center;
  background:linear-gradient(180deg,var(--basin) 0 40%,var(--bone) 40%)}
.logincard{background:#fff;border:1px solid var(--line);border-radius:12px;width:26rem;
  max-width:92vw;padding:2rem;box-shadow:0 12px 40px rgba(10,26,21,.25)}
.wdhlogo{display:flex;align-items:center;gap:.9rem;margin-bottom:1.2rem}
.wdhlogo img{height:56px}
.wdhlogo .fallback{width:56px;height:56px;border-radius:8px;background:var(--basin);color:var(--prairie);
  display:grid;place-items:center;font-weight:800;font-size:1.05rem;letter-spacing:.02em}
.wdhlogo .t1{font-weight:700;font-size:1.05rem}
.wdhlogo .t2{font-size:.8rem;color:var(--muted)}
.sso{display:grid;gap:.6rem;margin:1.1rem 0}
.sso button{display:flex;align-items:center;gap:.7rem;justify-content:center;
  padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:700}
.sso button:hover{background:var(--bone)}
.orline{display:flex;align-items:center;gap:.8rem;color:var(--muted);font-size:.8rem;margin:.4rem 0}
.orline::before,.orline::after{content:'';flex:1;height:1px;background:var(--line)}

@media(prefers-reduced-motion:no-preference){
  .cc{animation:up .25s ease both}
  @keyframes up{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
}

/* provider profile modal */
.modalback{position:fixed;inset:0;background:rgba(12,26,21,.55);display:none;
  place-items:center;z-index:60;padding:1rem}
.modalback.open{display:grid}
.modal{background:#fff;border-radius:12px;width:46rem;max-width:96vw;max-height:92vh;
  overflow:auto;box-shadow:0 18px 60px rgba(10,26,21,.35)}
.modal .mhead{display:flex;gap:1rem;padding:1.2rem 1.3rem;border-bottom:1px solid var(--line);
  align-items:center;position:sticky;top:0;background:#fff;z-index:1}
.modal .mhead img{width:72px;height:72px;border-radius:50%;object-fit:cover;
  border:3px solid var(--prairie-soft)}
.modal .mhead .nm{font-weight:800;font-size:1.2rem}
.modal .mhead .sub{font-size:.88rem;color:var(--muted)}
.modal .mclose{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:6px;
  width:2.2rem;height:2.2rem;font-size:1.1rem;font-weight:700;align-self:flex-start}
.modal .msec{padding:1rem 1.3rem;border-bottom:1px solid var(--line)}
.modal .msec:last-child{border-bottom:0}
.modal h4{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.55rem}
.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.4rem .9rem;font-size:.92rem}
.contact .mono{font-variant-numeric:tabular-nums}
.ratesum{display:flex;gap:1rem;align-items:center;margin-bottom:.7rem}
.ratesum .big{font-size:2rem;font-weight:800;color:var(--pine)}
.rev{border-top:1px dashed var(--line);padding:.6rem 0;font-size:.9rem}
.rev .who{font-size:.78rem;color:var(--muted)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:.45rem}
.cal .day{border:1px solid var(--line);border-radius:6px;padding:.45rem;min-height:5.2rem;background:#FCFBF8}
.cal .day.today{border-color:var(--pine)}
.cal .dh{font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:.35rem}
.cal .dh b{color:var(--ink)}
.cal .slot{display:block;width:100%;margin-bottom:.3rem;text-align:center;padding:.25rem 0}
.cal .none{font-size:.72rem;color:#9AA39E}
.demonote{font-size:.75rem;color:var(--muted)}
@media(max-width:700px){.cal{grid-template-columns:repeat(4,1fr)}}

/* footer */
footer.app{margin-top:2.2rem;background:var(--basin);color:#C4CFC9;padding:1.4rem 1.75rem;font-size:.85rem}
footer.app .cols{max-width:1340px;margin:0 auto;display:flex;gap:2.5rem;flex-wrap:wrap;align-items:baseline}
footer.app a{color:#E4E9E4;font-weight:700;text-decoration:none}
footer.app a:hover{text-decoration:underline}
footer.app .fine{margin-left:auto;font-size:.75rem;color:#8FA79B}

/* crisis connect-now */
.oncall{font-size:.68rem;font-weight:800;letter-spacing:.08em;color:#1E4A3E;
  background:#E4EFE7;border-radius:999px;padding:.1rem .55rem}
.slot.connect{background:var(--clay);border-color:var(--clay);color:#fff}
.slot.connect:hover{filter:brightness(1.08);background:var(--clay);color:#fff}

/* wrapping tab chips (replaces .seg where >3 options) */
.tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}
.tabs button{border:1px solid var(--line);background:#FCFBF8;border-radius:999px;
  padding:.45rem 1rem;font-weight:700;font-size:.88rem;color:var(--muted);white-space:nowrap}
.tabs button.on{background:var(--basin);border-color:var(--basin);color:#fff}
.tabs button:hover:not(.on){background:var(--bone)}

/* select2-style clinician multi-select */
.ms{position:relative}
.msbox{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;min-height:2.7rem;
  padding:.35rem .5rem;border:1px solid var(--line);border-radius:6px;background:#FCFBF8;cursor:text}
.msbox:focus-within{outline:3px solid var(--prairie);outline-offset:2px}
.msbox input{flex:1;min-width:9rem;border:0;background:none;padding:.25rem;font:inherit}
.msbox input:focus{outline:none}
.mstoken{display:inline-flex;align-items:center;gap:.4rem;background:var(--basin);color:#EDEAE0;
  border-radius:999px;padding:.2rem .35rem .2rem .7rem;font-size:.82rem;font-weight:700}
.mstoken button{border:0;background:#0C241E;color:#C4CFC9;border-radius:50%;width:1.15rem;
  height:1.15rem;line-height:1;font-size:.8rem;padding:0}
.mstoken button:hover{color:#fff}
.msdrop{position:absolute;left:0;right:0;top:100%;z-index:30;background:#fff;
  border:1px solid var(--line);border-radius:0 0 8px 8px;box-shadow:0 8px 24px rgba(18,51,43,.12);
  max-height:16rem;overflow-y:auto}
.msdrop a{display:flex;justify-content:space-between;gap:.6rem;padding:.55rem .8rem;
  text-decoration:none;color:var(--ink);font-size:.9rem}
.msdrop a:hover,.msdrop a.hi{background:var(--bone)}
.msdrop .sub{color:var(--muted);font-size:.8rem}

/* rule chips */
.rulechips{display:flex;flex-wrap:wrap;gap:.4rem}
.rulechip{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);
  background:#FCFBF8;border-radius:999px;padding:.25rem .4rem .25rem .8rem;font-size:.82rem}
.rulechip b{font-weight:700}
.rulechip .v{color:var(--muted)}
.rulechip button{border:0;background:var(--bone);color:var(--muted);border-radius:50%;
  width:1.2rem;height:1.2rem;line-height:1;font-size:.85rem;padding:0}
.rulechip button:hover{background:var(--clay);color:#fff}

.pager{display:flex;gap:.9rem;align-items:center;justify-content:center;margin-top:1rem;
  font-size:.85rem;color:var(--muted)}
.pager button[disabled]{opacity:.35;pointer-events:none}

.taginput{border:0;background:none;min-width:6rem;flex:1;font:inherit;font-size:.82rem;padding:.15rem}
.taginput:focus{outline:none}

.adminmenu .grp:first-child{border-top:0;margin-top:0;padding-top:.2rem}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover{color:var(--pine)}
th.sortable .dir{font-size:.7rem;color:var(--muted);margin-left:.2rem}
label.check input[disabled]{opacity:.55}
label.check.locked{opacity:.75}

/* month calendar (namespaced: .cal belongs to the console week strip) */
.wcal{width:100%}
.wcal-head{display:flex;align-items:center;gap:1rem;justify-content:center;margin-bottom:.7rem}
.wcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--line);
  border:1px solid var(--line);border-radius:8px;overflow:hidden}
.wcal-dow{background:var(--basin);color:#D8DED9;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;padding:.4rem;text-align:center}
.wcal-cell{background:#fff;min-height:5.4rem;padding:.3rem;font-size:.78rem;min-width:0}
.wcal-pad{background:#FCFBF8}
.wcal-today{background:var(--prairie-soft)}
.wcal-day{font-weight:700;color:var(--muted);font-size:.72rem;margin-bottom:.2rem}
.wcal-ev{display:block;background:var(--basin);color:#EDEAE0;border-radius:4px;
  padding:.12rem .35rem;margin-bottom:.15rem;text-decoration:none;overflow:hidden;
  white-space:nowrap;text-overflow:ellipsis}
a.wcal-ev:hover{background:var(--pine)}
.wcal-ev.crisis{background:var(--clay)}
.wcal-ev.open{background:none;border:1px dashed var(--line);color:var(--muted)}
.wcal-ev.done{background:var(--bone);color:var(--muted)}
.wcal-more{font-size:.7rem;color:var(--muted)}
@media(max-width:760px){
  .wcal-cell{min-height:3.4rem;padding:.18rem;font-size:.64rem}
  .wcal-dow{font-size:.6rem;padding:.25rem;letter-spacing:.02em}
  .wcal-ev{padding:.06rem .2rem}
  .wcal-head{gap:.6rem}
}

/* sticky footer: content column fills the viewport, footer pinned to bottom */
html{height:100%}
body{min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto;width:100%}
#ftr,footer.app{flex-shrink:0;margin-top:auto}

.err.ok{background:#3E7A5E;border-bottom:3px solid var(--prairie)}

/* profile section separators */
h4.sect{border-top:1px solid var(--line);margin-top:1.3rem;padding-top:1.1rem}

.dayrow{display:flex;gap:.7rem;align-items:center;font-size:.88rem}
.dayrow .mono{min-width:3.2rem}
