/* CBN Command Center · purpose-built, non-scrollable kiosk at 16:9 / 16:10 */
:root{font-family:Inter,"Segoe UI",ui-sans-serif,system-ui,sans-serif;color:#e8f0f9;background:#070b12;font-synthesis:none}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(ellipse 70% 50% at 30% -25%,#1b334e 0%,transparent 75%),#070b12}
h1,h2,p{margin:0}a{color:inherit}button,input{font:inherit}button{cursor:pointer}
:root{--bg:#070b12;--panel:#101923;--panel-edge:#223444;--muted:#7b92a6;--green:#43e0a2;--blue:#65b7ff;--cyan:#5ae2dc;--purple:#aa9afd;--red:#ff8294}
.hidden{display:none!important}
.shell{width:100%;height:100dvh;min-height:0;max-width:2400px;margin:auto;padding:0 clamp(12px,1.6vw,32px);display:grid;grid-template-rows:clamp(58px,6.2vh,76px) minmax(0,1fr) clamp(27px,3vh,37px);overflow:hidden}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #213143;min-width:0}
.identity,.top-right,.top-date{display:flex;align-items:center;gap:15px}.logo{font-weight:900;font-size:27px;letter-spacing:-.12em;color:#f4f8ff;line-height:1}.logo-dot{color:var(--green)}.identity-sep{height:27px;width:1px;background:#2b4156;margin-left:9px}.identity strong{display:block;font-size:11px;letter-spacing:.22em;font-weight:800}.identity small{display:block;color:#637e96;font-size:9px;letter-spacing:.16em;margin-top:4px}.top-date{color:#849bad;font-size:11px;letter-spacing:.07em}.top-date b{font-variant-numeric:tabular-nums;color:#d7e5f0;font-size:17px;font-weight:650;letter-spacing:.02em}.connection{display:flex;align-items:center;gap:9px;border:1px solid #315449;color:#5cddb2;background:#0f2926;padding:8px 12px;border-radius:6px;font-size:10px;letter-spacing:.11em;font-weight:800}.connection.bad{color:var(--red);background:#311c23;border-color:#704048}.status-dot,.pulse-dot,.footer-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 14px currentColor}.top-right{gap:24px}
.dashboard{display:grid;grid-template-rows:clamp(88px,11.5vh,126px) minmax(0,1fr);gap:clamp(9px,1.25vh,15px);min-height:0;padding:clamp(9px,1.2vh,16px) 0;overflow:hidden}
.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1vw,15px);min-height:0}
.summary-card{position:relative;display:flex;align-items:center;gap:clamp(10px,1vw,19px);min-width:0;overflow:hidden;padding:clamp(10px,1.15vw,20px);background:linear-gradient(125deg,rgba(23,35,48,.97),rgba(12,20,29,.97));border:1px solid var(--panel-edge);border-radius:11px}
.summary-card::before{position:absolute;content:"";left:0;top:17%;bottom:17%;width:3px;background:var(--tone);box-shadow:0 0 20px var(--tone)}
.accent-green{--tone:var(--green)}.accent-blue{--tone:var(--blue)}.accent-teal{--tone:var(--cyan)}.accent-purple{--tone:var(--purple)}
.summary-icon{width:clamp(38px,3.1vw,54px);height:clamp(38px,3.1vw,54px);flex:0 0 auto;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--tone) 28%,transparent);border-radius:9px;background:color-mix(in srgb,var(--tone) 9%,transparent);font-size:23px;color:var(--tone)}
.summary-card>div{min-width:0}.overline,.eyebrow{font-size:clamp(8px,.62vw,10px);font-weight:750;letter-spacing:.155em;color:#839bb1;white-space:nowrap}
.summary-value{font-variant-numeric:tabular-nums;font-size:clamp(22px,2.6vw,40px);font-weight:750;letter-spacing:-.06em;line-height:1.13;margin:4px 0}.summary-value small{font-size:14px;color:#7791a4;letter-spacing:0;margin-left:3px}.summary-caption{display:block;color:var(--muted);font-size:clamp(9px,.73vw,12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace{display:grid;grid-template-columns:minmax(0,1.47fr) minmax(0,.94fr);gap:clamp(9px,1vw,15px);min-width:0;min-height:0;overflow:hidden}
.workspace-main,.workspace-side{display:grid;gap:clamp(9px,1.25vh,15px);min-width:0;min-height:0;overflow:hidden}
.workspace-main{grid-template-rows:minmax(0,40fr) minmax(0,60fr)}.workspace-side{grid-template-rows:minmax(0,55fr) minmax(0,45fr)}
.workspace-main:has(#git-section.hidden),.workspace-side:has(#services-section.hidden),.workspace-side:has(#activity-section.hidden){grid-template-rows:minmax(0,1fr)}
.panel{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-radius:11px;background:linear-gradient(145deg,rgba(18,28,39,.99),rgba(13,21,30,.99));border:1px solid #243747;padding:clamp(10px,1vw,18px)}
.section-header{display:flex;align-items:center;justify-content:space-between;gap:15px;min-width:0;flex:0 0 auto}.section-header h2{font-size:clamp(15px,1.24vw,22px);letter-spacing:-.03em;font-weight:700;margin-top:5px}.section-header h2 em{color:#a4b7c7;font-style:normal;font-weight:400}.section-header-compact{margin-bottom:clamp(8px,1.1vh,16px)}
.github-head-stats{text-align:right;flex:0 0 auto}.github-head-stats>span{display:block;color:var(--green);font-size:clamp(21px,2vw,31px);font-weight:750;font-variant-numeric:tabular-nums;line-height:1}.github-head-stats small{font-size:9px;letter-spacing:.1em;color:#73918a}
.calendar-frame{display:flex;flex-direction:column;flex:1;min-height:0;margin-top:clamp(10px,1vh,15px);min-width:0}.month-labels{display:grid;grid-template-columns:repeat(53,minmax(0,1fr));margin-left:22px;min-height:15px;color:#7293a3;font-size:9px;overflow:hidden}.month-labels span{white-space:nowrap}.calendar-grid{min-height:0;flex:1;display:flex;gap:7px;overflow:hidden}.weekday-labels{width:15px;flex:0 0 auto;display:grid;grid-template-rows:repeat(7,minmax(0,1fr));gap:3px;font-size:9px;color:#678293;align-items:center}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,minmax(0,1fr));grid-auto-columns:minmax(0,1fr);gap:clamp(2px,.23vw,4px);width:100%;height:100%;min-height:0;align-content:center;overflow:hidden}
.contrib{display:block;min-height:0;min-width:0;max-height:17px;border-radius:2px;align-self:stretch;background:#263440}.c0,.legend .c0{background:#24323e!important}.c1,.legend .c1{background:#0f5a46!important}.c2,.legend .c2{background:#188264!important}.c3,.legend .c3{background:#25b781!important}.c4,.legend .c4{background:#67f1af!important}
.calendar-footer{display:flex;justify-content:space-between;gap:12px;color:#6f8b9b;align-items:center;font-size:clamp(9px,.68vw,11px);margin-top:8px;flex-shrink:0;min-height:14px}.calendar-footer>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:8px;letter-spacing:.08em}.legend i{display:block;width:9px;height:9px;border-radius:2px}
.github-bottom{flex:0 0 auto;display:flex;gap:17px;align-items:center;min-height:42px;border-top:1px solid #203344;margin-top:10px;padding-top:8px}.github-bars-heading{font-size:9px;letter-spacing:.11em;color:#7e9ba9;min-width:122px;line-height:1.7;font-weight:750}.github-bars-heading span{display:block;font-size:13px;color:#e0f0f5;letter-spacing:0}.daily-bars{display:flex;align-items:end;gap:clamp(3px,.4vw,7px);height:34px;flex:1;min-width:0}.daily-bar{position:relative;flex:1;max-width:23px;height:var(--height);min-height:2px;border-radius:3px 3px 0 0;background:linear-gradient(0deg,#0d856d,var(--green));opacity:.93}.daily-bar.zero{background:#283944;min-height:2px!important}.daily-bar.placeholder{background:repeating-linear-gradient(90deg,#263847 0 3px,#1b2a37 3px 7px);height:3px!important;opacity:.55}
.live-chip{color:#62dba9;font-size:9px;white-space:nowrap;font-weight:800;letter-spacing:.13em;display:flex;align-items:center;gap:8px}
.machines-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:clamp(8px,.8vw,13px);flex:1;min-height:0;overflow:hidden}
.machine{background:#0b1520;border:1px solid #294050;border-radius:8px;padding:clamp(9px,.8vw,14px);min-width:0;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}
.machine-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.machine-head strong{font-size:clamp(11px,.85vw,14px);font-weight:740;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-status{display:flex;align-items:center;gap:6px;font-size:8px;font-weight:800;letter-spacing:.09em;white-space:nowrap;color:#85e0ba}.mini-status::before{content:"";width:6px;height:6px;background:currentColor;border-radius:50%}.mini-status.offline{color:#f3989a}
.machine-main{display:grid;grid-template-columns:minmax(77px,34%) minmax(0,1fr);gap:clamp(5px,.7vw,14px);min-height:0;align-items:center}
.gauge{width:min(100%,115px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;margin:auto;background:conic-gradient(var(--green) var(--pct),#213340 var(--pct));position:relative}
.gauge::before{content:"";position:absolute;inset:11%;background:#0b1520;border-radius:50%}
.gauge-label{position:relative;z-index:1;text-align:center}.gauge-label strong{display:block;font-size:clamp(16px,1.5vw,26px);font-variant-numeric:tabular-nums;line-height:1.15}.gauge-label small{font-size:8px;letter-spacing:.1em;color:#86a6b3}
.machine-data{display:flex;flex-direction:column;gap:clamp(5px,.7vh,10px);min-width:0}
.machine-row{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:clamp(9px,.68vw,11px);color:#8da5b5}.machine-row b{font-variant-numeric:tabular-nums;color:#d6e6f0;font-size:clamp(10px,.86vw,13px);font-weight:680}
.meter{height:4px;background:#263646;border-radius:9px;overflow:hidden;margin-top:3px}.meter>span{display:block;height:100%;width:var(--pct);background:var(--blue);border-radius:9px}
.chart-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:3px;min-height:0}.mini-chart{min-width:0}.chart-title{font-size:8px;color:#67879c;letter-spacing:.09em}.sparkline{width:100%;height:clamp(19px,3.2vh,39px);display:block;overflow:visible}.spark-empty{font-size:8px;color:#526878;font-style:italic;white-space:nowrap}
.machine-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;grid-column:1/-1;color:#85a0ad;text-align:center;font-size:12px;padding:12px}.machine-empty::before{content:"◌";font-size:39px;color:#2d5060}
.table-head,.service-row,.activity-row{display:grid;align-items:center;grid-template-columns:minmax(0,1fr) minmax(88px,.4fr);gap:10px}
.table-head{padding:7px 10px;background:#172433;border-bottom:1px solid #2d4150;color:#7790a4;font-size:9px;letter-spacing:.12em;font-weight:800;flex-shrink:0}.table-head span:last-child{text-align:right}
.table-body{flex:1;min-height:0;overflow:hidden;display:grid;grid-auto-rows:minmax(0,1fr)}
.service-row,.activity-row{padding:4px 9px;border-bottom:1px solid #203140;min-height:0;overflow:hidden}.service-row:last-child,.activity-row:last-child{border-bottom:0}
.service-label{display:flex;align-items:center;gap:9px;min-width:0;font-size:clamp(10px,.75vw,13px);font-weight:620}.service-mark{flex:0 0 auto;display:grid;place-items:center;width:23px;height:23px;border:1px solid #2e4a56;background:#1a2d35;color:#7cceb0;font-size:11px;border-radius:6px}.service-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.health-tag{text-align:right;font-weight:790;font-size:9px;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9eb1be}.health-tag.good{color:#63e4b0}.health-tag.fail{color:#ff8294}.health-tag.unknown{color:#dabf79}
.activity-info{min-width:0;display:flex;align-items:center;gap:9px}.activity-info .event-icon{width:22px;height:22px;border-radius:6px;background:#1e3550;color:#81c5fa;display:grid;place-items:center;font-size:12px;flex-shrink:0}.activity-info .event-name{min-width:0}.activity-info strong{display:block;font-size:clamp(10px,.74vw,12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-info small{display:block;font-size:9px;color:#7191a7;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-time{text-align:right;font-size:10px;color:#90a8b5;font-variant-numeric:tabular-nums;white-space:nowrap}
.table-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:#7c96a4;font-size:12px;line-height:1.6;padding:10px;min-height:0}
.panel-bottom{height:22px;flex:0 0 auto;display:flex;justify-content:space-between;align-items:end;border-top:1px solid #243749;margin-top:3px;color:#67869a;font-size:9px;letter-spacing:.08em}
.footer{border-top:1px solid #1d2c3b;display:flex;align-items:center;justify-content:space-between;gap:15px;overflow:hidden;white-space:nowrap;color:#607c8c;font-size:clamp(8px,.62vw,10px);letter-spacing:.13em}.footer-dot{width:5px;height:5px;color:var(--green);margin-right:7px;vertical-align:middle}.divider{color:#304555;margin:0 12px}
.pair{display:grid;place-items:center;min-height:0}.pair-inner{text-align:center;width:min(730px,100%);padding:20px}.pair h1{font-size:clamp(28px,4vw,48px);font-weight:680;letter-spacing:-.04em;margin:14px 0}.pair p{font-size:14px;color:#93a9b8;margin-top:15px;line-height:1.55;overflow-wrap:anywhere}.pair strong{color:#d1edf7}.pair-code{font-size:clamp(65px,11vw,132px);font-weight:780;letter-spacing:.065em;color:var(--green);font-variant-numeric:tabular-nums;margin:clamp(10px,3vh,32px) 0}.warning{color:#ff8f99!important}
/* Admin retains scrolling and form interaction on the user's laptop; kiosk never scrolls. */
body:has(.page){height:auto;min-height:100%;overflow:auto}
.page{max-width:1100px;margin:auto;padding:0 24px;min-height:100vh}.top{display:flex;justify-content:space-between;align-items:center;min-height:75px;border-bottom:1px solid #273847;gap:15px}.brand{font-size:13px;letter-spacing:.12em;font-weight:800}.mark{display:inline-block;background:#dbe8f0;color:#09121c;padding:8px 11px;margin-right:10px}.muted{color:var(--muted)}.admin{max-width:640px;margin:35px auto;padding:28px;background:#101b29;border:1px solid #294055;border-radius:12px}.admin h1{font-size:32px;letter-spacing:-.03em}.admin h2{font-size:22px}.admin p{margin:15px 0;line-height:1.6}.admin .eyebrow{display:block;margin-bottom:8px}.admin form{display:grid;gap:13px}.admin label{display:grid;gap:7px;font-size:13px;color:#c2d1dc}.admin input:not([type=checkbox]){width:100%;min-width:0;background:#0a131e;color:#eff6ff;border:1px solid #3b5369;border-radius:6px;padding:12px}.admin button{background:var(--green);border:0;border-radius:6px;padding:12px;font-weight:750;color:#091c18}.admin .toggle{display:flex;align-items:center;gap:10px}.admin .divider{height:1px;background:#324657;margin:25px 0}
@media(max-height:850px){.shell{grid-template-rows:54px minmax(0,1fr) 25px}.dashboard{grid-template-rows:83px minmax(0,1fr);gap:9px;padding:9px 0}.workspace-main{grid-template-rows:minmax(0,39fr) minmax(0,61fr)}.panel{padding:10px}.calendar-frame{margin-top:5px}.calendar-footer{margin-top:3px}.github-bottom{min-height:25px;margin-top:3px;padding-top:3px}.daily-bars{height:19px}.section-header-compact{margin-bottom:7px}.section-header h2{font-size:15px}.section-header .eyebrow{font-size:8px}.machines-grid{gap:7px}.machine{padding:8px}.gauge{max-width:75px}.machine-main{grid-template-columns:minmax(57px,30%) minmax(0,1fr)}.machine-data{gap:4px}.sparkline{height:18px}.chart-row{gap:5px}.chart-title{font-size:7px}.machine-row{font-size:9px}.machine-row b{font-size:10px}.panel-bottom{height:16px}.table-head{padding:5px 7px}.summary-icon{height:37px;width:37px}.summary-value{font-size:25px}.summary-card{padding:9px}.weekday-labels,.month-labels{font-size:8px}}
@media(max-height:680px){.github-bottom{display:none}.calendar-frame{margin-top:6px}.identity small{display:none}.top-date{font-size:9px}.summary-icon{display:none}.machine-main{grid-template-columns:60px minmax(0,1fr)}.chart-row{display:none}}
@media(max-width:1250px){.workspace{grid-template-columns:minmax(0,1.33fr) minmax(0,1fr)}.summary-icon{width:35px;height:35px;font-size:20px}.machine-main{grid-template-columns:72px minmax(0,1fr)}.machine{padding:8px}.summary-card{gap:9px}.panel{padding:10px}.service-mark{width:19px;height:19px}}
@media(max-width:900px){.summary-card{gap:5px;padding:8px}.summary-icon{display:none}.workspace{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}.machines-grid{grid-template-columns:1fr;grid-auto-rows:minmax(0,1fr)}.machine:nth-child(n+3){display:none}.machine-main{grid-template-columns:65px minmax(0,1fr)}.chart-row{display:none}.service-mark{display:none}.github-head-stats small{display:none}.calendar-footer .legend{display:none}.top-date #date{display:none}.activity-info .event-icon{display:none}}
@media(max-width:560px){.identity small,.top-date #date{display:none}.logo{font-size:22px}.identity strong{font-size:9px}.top-right{gap:6px}.connection{padding:6px;font-size:8px}.workspace{grid-template-columns:minmax(0,1fr)}.workspace-side{display:none}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.dashboard{grid-template-rows:100px minmax(0,1fr)}.summary-value{font-size:21px}.summary-caption{display:none}.workspace-main{grid-template-rows:minmax(0,45fr) minmax(0,55fr)}.footer{font-size:7px}.footer .divider{margin:0 4px}.github-bottom{display:none}}
