:root { color-scheme: light; --ink:#17343d; --muted:#536a72; --line:#d3e0e3; --teal:#126e68; --gold:#805900; --red:#a53d28; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; font-family:"Avenir Next","Segoe UI",sans-serif; color:var(--ink); background:#fff; }
h1,h2,h3,p { margin:0; }
.tv-board { height:100vh; height:100dvh; padding:1.5vh 1.6vw; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:1.2vh; }
.tv-header { display:grid; grid-template-columns:15vw 1fr auto; align-items:center; gap:2vw; border-bottom:1px solid var(--line); padding-bottom:1vh; }
.brand img,.login-brand img { display:block; width:100%; max-width:280px; }
.tv-title p,.section-title p,.transport-section header p { color:var(--teal); text-transform:uppercase; letter-spacing:.1em; font-size:clamp(12px,1vw,22px); font-weight:800; }
.tv-title h1 { font-size:clamp(24px,2.3vw,48px); letter-spacing:-.03em; }
.board-meta { display:grid; gap:.3vh; text-align:right; color:var(--muted); font-size:clamp(12px,.9vw,22px); }
.board-meta time { font-size:clamp(22px,1.7vw,40px); font-weight:700; }
button { border:1px solid var(--teal); border-radius:6px; background:#fff; color:var(--teal); padding:.4em .8em; font:inherit; cursor:pointer; }
button:hover { background:#e2eee8; }
button:focus-visible { outline:3px solid #53748f; outline-offset:3px; }
button:disabled { opacity:.6; cursor:wait; }
.tv-layout,.housing-column,.admissions-column,.transport-page { min-height:0; }
.tv-layout { display:grid; }
.housing-column,.admissions-column { display:grid; gap:1vh; }
.housing-column { grid-template-rows:auto minmax(0,1fr); }
.admissions-column { grid-template-rows:auto auto minmax(0,1fr); }
.section-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.section-title h2 { font-size:clamp(22px,1.7vw,38px); }
.section-title > strong { padding:.3em .65em; background:#edf6f4; border:1px solid #c3ded8; border-radius:7px; color:var(--teal); font-size:clamp(18px,1.4vw,32px); }
.active-clients-layout,.house-board { display:grid; min-height:0; }
.house-board > header { display:none; }
.house-grid { min-height:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1vw; }
.house-card { display:grid; grid-template-rows:auto minmax(0,1fr); min-height:0; padding:.8vh .7vw; border:1px solid var(--line); border-radius:10px; background:#f3f7f8; }
.house-card header { display:flex; align-items:baseline; justify-content:space-between; gap:.5em; padding-bottom:.6vh; border-bottom:1px solid var(--line); }
.house-card h3 { font-size:clamp(20px,1.7vw,38px); }
.house-card header > span { font-size:clamp(13px,1vw,24px); color:var(--muted); }
.bed-slots { min-height:0; display:grid; grid-auto-rows:minmax(0,1fr); gap:.5vh; padding-top:.6vh; }
.bed-slot { min-height:0; display:grid; grid-template-columns:1em minmax(0,1fr); align-items:center; gap:.4em; padding:.2vh .4vw; background:#fff; border:1px solid var(--line); border-left:4px solid #477f90; border-radius:6px; font-size:clamp(20px,1.65vw,38px); line-height:1.15; }
.bed-slot > span { font-size:.7em; color:var(--muted); }
.bed-client { min-width:0; font-weight:750; overflow-wrap:anywhere; }
.bed-client small { display:block; font-size:.65em; font-weight:600; margin-top:.2em; color:#675322; }
.bed-slot.available { color:#24685d; background:#e8f3ef; border:1px dashed #9abeb3; }
.bed-slot.care-php { border-left-color:#b42330; background:#fff2f3; }
.bed-slot.care-iop { border-left-color:#126e68; background:#edf8f5; }
.bed-slot.care-op { border-left-color:#405d91; background:#f1f5fc; }
.care-badge { display:inline-block; padding:.12em .38em; border-radius:3px; font-size:.85em; line-height:1.2; }
.care-php .care-badge { background:#b42330; color:white; }
.care-iop .care-badge { background:#126e68; color:white; }
.care-op .care-badge { background:#405d91; color:white; }
.admissions-head,.admission-row { display:grid; grid-template-columns:1.1fr .7fr .8fr 1.5fr 1.1fr .8fr 1fr; gap:1vw; align-items:center; padding:.7vh .8vw; }
.admissions-head { font-size:clamp(16px,1.15vw,28px); font-weight:800; color:var(--muted); }
.admissions-list { min-height:0; display:grid; grid-template-rows:repeat(5,minmax(0,1fr)); gap:.7vh; }
.admission-row { min-height:0; background:#f3f7f8; border:1px solid var(--line); border-radius:8px; font-size:clamp(22px,1.7vw,40px); line-height:1.2; }
.admission-row:nth-child(even) { background:white; }
.admission-row > div { min-width:0; overflow-wrap:anywhere; }
.admission-row strong { display:block; }
.admission-row small { display:block; margin-top:.25em; font-size:.68em; color:var(--muted); }
.assessment { color:var(--gold); font-weight:700; }
.assessment.completed { color:var(--teal); }
.assessment.not-scheduled,.assessment.canceled,.assessment.no-show { color:var(--red); }
.transport-need { font-weight:700; }
.transport-need.needed { color:#9a4710; }
.transport-page,.transport-section { display:grid; grid-template-rows:minmax(0,1fr); }
.transport-section { grid-template-rows:auto minmax(0,1fr); gap:2vh; }
.transport-section > header { display:flex; align-items:center; justify-content:space-between; }
.transport-section h3 { font-size:clamp(24px,2vw,44px); }
.transport-section > header > strong { font-size:clamp(20px,1.5vw,36px); color:var(--teal); }
.transport-list,.transport-program { min-height:0; display:grid; }
.transport-program { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto repeat(4,minmax(0,1fr)); gap:1vh 1.5vw; }
.transport-program > header { grid-column:1/-1; display:flex; gap:1em; color:var(--teal); font-size:clamp(20px,1.5vw,36px); }
.transport-item { min-height:0; background:#f3f7f8; padding:1vh 1.2vw; border:1px solid var(--line); border-left:5px solid var(--teal); border-radius:8px; font-size:clamp(28px,2.4vw,56px); }
.transport-days { display:block; font-size:.72em; margin-top:.25em; color:var(--muted); }
.rotation-controls { display:flex; align-items:center; gap:1vw; border-top:1px solid var(--line); padding-top:1vh; font-size:clamp(14px,1vw,24px); color:var(--muted); }
#pagePosition { color:var(--ink); font-weight:750; margin-right:auto; }
.empty { font-size:clamp(22px,1.7vw,40px); color:var(--muted); padding:1vh; }
.tv-login { min-height:100vh; display:grid; align-content:center; justify-items:center; gap:1rem; text-align:center; }
.tv-login a { padding:.75em 1em; border-radius:6px; background:var(--teal); color:white; text-decoration:none; }
.fullscreen-status,.tv-error { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:10; width:max-content; max-width:90vw; padding:12px 18px; border:1px solid #c6a46b; border-radius:6px; background:#fff8e5; color:#493c20; font-size:16px; }

/* Exactly two screens: the entire tracker, then every current client. */
.admissions-list { grid-template-rows:repeat(var(--admission-count,1),minmax(0,1fr)); gap:4px; }
.admission-row { font-size:var(--admission-font,clamp(20px,1.7vw,40px)); padding:.2vh .8vw; }
.active-clients-layout { grid-template-columns:minmax(0,3fr) minmax(0,1fr); gap:1vw; }
.house-card header { flex-wrap:wrap; gap:.1em; }
.house-card h3 { font-size:clamp(18px,1.4vw,32px); }
.bed-slot { font-size:clamp(18px,1.4vw,32px); }
.transport-section { min-height:0; gap:1vh; padding:.8vh .7vw; border:1px solid var(--line); border-radius:10px; background:#f3f7f8; }
.transport-section > header { align-items:start; gap:.5em; }
.transport-section header p { font-size:clamp(12px,.85vw,20px); }
.transport-section h3 { font-size:clamp(18px,1.4vw,32px); }
.transport-section > header > strong { font-size:clamp(18px,1.3vw,30px); }
.transport-list { align-content:start; gap:1vh; }
.transport-program { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:none; gap:5px; }
.transport-program > header { grid-column:auto; justify-content:space-between; font-size:clamp(14px,1vw,24px); }
.transport-item { padding:.4vh .4vw; font-size:var(--transport-font,clamp(18px,1.5vw,36px)); background:white; }

.page-heading { display:flex; align-items:center; flex-wrap:wrap; gap:.8vw; }
.census-total { white-space:nowrap; padding:.25em .55em; border:1px solid #c3ded8; border-radius:7px; background:#edf6f4; color:var(--teal); font-size:clamp(20px,1.7vw,40px); }
.admissions-head,.admission-row { grid-template-columns:1.1fr .7fr .8fr 1.5fr 1.1fr .8fr 1fr; gap:.8vw; }

.admission-row { font-weight:600; }
.admission-row .client-name { font-weight:800; font-size:1.08em; }
.assessment-cell { line-height:1.12; }
.assessment-schedule { display:block; margin-top:.22em; font-size:.8em; font-weight:600; color:var(--ink); }
.admission-row .assessment-schedule small { display:inline; margin:0; font:inherit; color:inherit; }
.admission-row .assessment-schedule small::before { content:" · "; }

.admissions-column { grid-template-rows:auto minmax(0,1fr); }

.house-card .house-manager { margin:.3em 0 .1em; font-size:clamp(13px,1.05vw,24px); line-height:1.2; color:var(--muted); font-weight:600; overflow-wrap:anywhere; }
.house-card header { align-items:start; }

.active-clients-layout { grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,.9fr); }
.bed-slot { font-size:clamp(16px,1.25vw,30px); }
.coin-out-section { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr); gap:1vh; padding:.8vh .7vw; border:1px solid var(--line); border-radius:10px; background:#f3f7f8; }
.coin-out-section > header { display:flex; justify-content:space-between; align-items:center; gap:.5em; color:var(--teal); font-size:clamp(18px,1.4vw,32px); }
.coin-out-section h3 { font-size:inherit; }
.coin-out-list { min-height:0; display:flex; flex-direction:column; gap:.7vh; }
.coin-out-item { flex-shrink:0; display:grid; gap:.25em; background:white; padding:.6vh .4vw; border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:6px; font-size:var(--coin-font,clamp(16px,1.4vw,32px)); overflow-wrap:anywhere; }
.coin-out-item span { color:var(--muted); font-size:.85em; }
.coin-out-list .empty { font-size:clamp(14px,1vw,24px); }

.office-reference { display:flex; align-items:center; gap:1vw; white-space:nowrap; }
.office-reference p { flex-shrink:0; }
#officeDateReference { display:grid; grid-template-columns:repeat(7,max-content); gap:0 .3vw; font-size:clamp(13px,1vw,24px); line-height:1.1; color:var(--muted); }
#officeDateReference > span { padding:.1em .3em; border-radius:4px; }
#officeDateReference .today { background:var(--teal); color:white; font-weight:800; }
.admission-row .admission-schedule small { font-size:.8em; line-height:1.12; margin-top:.22em; color:var(--ink); }
.pickup-time { font-size:.8em; font-weight:600; }

.keep-awake { white-space:nowrap; }
.keep-awake[data-state="granted"] { background:#e2eee8; color:#245b4e; border-color:#477b6d; }
.keep-awake[data-state="denied"],.keep-awake[data-state="released"],.keep-awake[data-state="unsupported"] { color:#804000; border-color:#ad8b58; }

/* Preferred names must remain visible in current-client rows. */
.bed-name,.bed-slot strong,.transport-name,.coin-out-row strong { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
