:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#17253b;background:#f5f7fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.topbar{height:76px;background:#fff;border-bottom:1px solid #e7eaf0;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,64px);gap:20px}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:800;letter-spacing:-.7px;white-space:nowrap}.mark{background:#107a71;color:white;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;font-size:23px}.muted{color:#16887b}.tag{font-size:10px;letter-spacing:1.4px;border:1px solid #b9dcd6;color:#0a7468;border-radius:30px;padding:5px 8px;margin-left:8px}.actions{display:flex;align-items:center;gap:16px;color:#64738a;font-size:13px}button{font:inherit;cursor:pointer}.primary{background:#117d71;color:#fff;border:1px solid #117d71;border-radius:9px;padding:11px 16px;font-weight:650}.primary:hover{background:#07685e}.ghost,.icon{background:white;color:#294156;border:1px solid #dfe5ed;border-radius:9px;padding:10px 13px}.ghost:hover,.icon:hover{background:#f0f6f5}.icon{font-size:22px;line-height:20px}main{max-width:1500px;margin:auto;padding:44px clamp(18px,4vw,64px) 26px}.heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:27px}.eyebrow{color:#148476;font-size:11px;font-weight:800;letter-spacing:1.7px}.dot-sep{padding:0 8px;color:#9aa7b7}h1{font-size:clamp(30px,3vw,42px);letter-spacing:-1.5px;line-height:1.15;margin:10px 0}h2{margin:6px 0 0}.heading p{color:#718096;margin:0;font-size:14px}.update{display:flex;align-items:center;gap:11px;background:white;border:1px solid #e7eaf0;box-shadow:0 5px 25px #293f5710;border-radius:13px;padding:10px 12px}.update strong,.update small{display:block;white-space:nowrap}.update strong{font-size:12px}.update small{font-size:11px;color:#7e8b9c;margin-top:3px}.status-dot{height:8px;width:8px;background:#24a879;border-radius:50%;box-shadow:0 0 0 4px #e4f6ef}.status-dot.bad{background:#e95d52;box-shadow:0 0 0 4px #fcebe9}.dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.card{background:#fff;border:1px solid #e7ebef;border-radius:14px;box-shadow:0 3px 16px #29466508;padding:21px;min-width:0}.card.number{grid-column:span 2;min-height:162px;display:flex;flex-direction:column;justify-content:space-between}.card.number .label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.05px;color:#64768c}.card.number .value{font-size:42px;letter-spacing:-2px;font-weight:750;line-height:1}.card.number .sub{font-size:11px;color:#96a3b2}.card.chart{grid-column:span 6;min-height:320px}.card.chart.wide{grid-column:span 8}.card.chart h2{font-size:16px;letter-spacing:-.2px;margin:0}.card .caption{color:#96a3b2;font-size:11px;margin:4px 0 20px}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#738298;margin-bottom:16px}.legend span{display:flex;align-items:center;gap:6px}.swatch{width:8px;height:8px;border-radius:50%;display:inline-block}.occ{background:#238b80}.free{background:#b9d9bd}.clean{background:#e9b55e}.extra{background:#8d79bd}.rows{display:grid;gap:13px}.row{display:grid;grid-template-columns:140px 1fr 36px;gap:12px;align-items:center;font-size:12px}.row .name{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#53667d}.bar{display:flex;height:15px;border-radius:4px;overflow:hidden;background:#f0f3f4}.bar>span{min-width:0}.percentage{color:#495e73;font-weight:700;font-size:11px;text-align:right}.bed-row{grid-template-columns:100px 1fr 75px}.bed-row .bar{height:22px}.bed-row .totals{color:#556779;font-size:11px}.empty{color:#8796a7;font-size:13px}.alert{background:#fff2e7;border:1px solid #ffcf9d;color:#934f14;border-radius:9px;padding:12px 15px;margin-bottom:20px;font-size:13px}footer{display:flex;justify-content:space-between;gap:15px;color:#9aa7b5;font-size:11px;margin-top:25px}dialog{border:0;border-radius:16px;box-shadow:0 20px 80px #1b2a4666;width:min(720px,calc(100vw - 32px));max-height:90vh;padding:0}dialog::backdrop{background:#0b1f36a0}dialog form{padding:25px;overflow:auto;max-height:90vh}.editor-head{display:flex;justify-content:space-between;margin-bottom:20px}dialog label{display:block;font-size:12px;font-weight:700;color:#496078;margin:14px 0 6px}dialog input,dialog select{width:100%;padding:10px;border:1px solid #dce4eb;border-radius:8px;font:inherit;background:white;color:#17253b}dialog h3{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-top:25px}.small{font-size:12px;padding:6px 10px}.widget-item{display:grid;grid-template-columns:1.15fr 72px 108px 1fr 32px;gap:7px;margin-bottom:12px;align-items:center}.widget-item .metric{grid-column:1;grid-row:2}.widget-item .unit{grid-column:2;grid-row:2}.widget-item .goal{grid-column:3;grid-row:2}.widget-item .sense{grid-column:4;grid-row:2}.widget-item button{grid-column:5;grid-row:1;border:0;background:none;color:#ba5750;font-size:23px}.widget-item.no-goal .goal,.widget-item.no-goal .sense,.widget-item.no-unit .unit{visibility:hidden}.card.number .unit{font-size:15px;letter-spacing:0;font-weight:650;color:#7d8b9c;margin-left:6px}.tone-red{background:#d4534a}.tone-orange{background:#e39a3c}.tone-yellow{background:#e9b55e}.tone-green{background:#3aaa78}.tone-blue{background:#4c88c7}.panel-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.panel-nav button{background:#fff;border:1px solid #d7e0ea;border-radius:999px;padding:8px 14px;color:#294156;font-size:13px;font-weight:650}.panel-nav button.active{background:#117d71;border-color:#117d71;color:#fff}.goals{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#fff6f3;border:1px solid #f3c7b8;color:#8d3d28;border-radius:9px;padding:12px 15px;margin-bottom:16px;font-size:13px}.goals strong{font-size:11px;letter-spacing:1.1px;text-transform:uppercase}.card.breach{border-color:#f0c1a0}.card.breach .value,.card.breach .meta{color:#b4532a}.card .meta{font-size:11px;color:#148476;font-weight:700}.row.breach .name,.row.breach .percentage{color:#b4532a;font-weight:700}.row-actions{display:flex;gap:8px;margin-top:8px}.hint{font-size:11px;color:#8c9aab}.error{color:#bd3f39;font-size:12px;min-height:16px}.editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}@media(max-width:1000px){.card.number{grid-column:span 4}.card.chart,.card.chart.wide{grid-column:span 12}}@media(max-width:650px){.topbar{height:auto;padding:16px;flex-wrap:wrap}.actions{width:100%;justify-content:space-between}.desktop,#clock{display:none}main{padding-top:28px}.heading{align-items:flex-start;flex-direction:column}.card.number{grid-column:span 6}.card.chart{padding:16px}.row{grid-template-columns:86px 1fr 33px;gap:7px}.bed-row{grid-template-columns:72px 1fr 65px}.widget-item{grid-template-columns:1fr 72px 32px}.widget-item .metric,.widget-item .goal,.widget-item .unit{grid-column:1 / 3;grid-row:auto}.widget-item .sense{grid-column:1 / 4;grid-row:auto}.widget-item button{grid-column:3;grid-row:1}footer{flex-direction:column}}.gate{position:fixed;inset:0;background:#f5f7fa;display:none;place-items:center;padding:24px;z-index:20}.gate-card,.admin-card,.issued{background:#fff;border:1px solid #e7ebef;border-radius:16px;box-shadow:0 12px 40px #29466514}.gate-card{width:min(460px,100%);padding:28px}.mode-switch{display:flex;gap:8px;margin:8px 0 4px}.mode-switch button{flex:1}.mode-switch button.active{background:#117d71;color:#fff;border-color:#117d71}.admin-card select,.gate-card select{width:100%;padding:10px;border:1px solid #dce4eb;border-radius:8px;font:inherit;background:#fff;color:#17253b}.gate h1{font-size:32px}.gate p{color:#52657c;line-height:1.5}body.locked main{visibility:hidden}body.locked .gate{display:grid}a{color:#0a7468}body.locked .topbar .actions{visibility:hidden}.client-name{font-weight:750;color:#0a7468}a.ghost{text-decoration:none;display:inline-flex;align-items:center}.docs{max-width:880px}.docs h2{margin:34px 0 8px;font-size:24px;letter-spacing:-.4px}.docs h3{margin:22px 0 6px;font-size:16px}.docs p,.docs li{color:#3e5168;line-height:1.6}.docs ul{padding-left:18px}.docs code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#eef3f8;padding:1px 5px;border-radius:5px}.docs pre{background:#122033;color:#e7eef7;border-radius:12px;padding:16px;overflow:auto;line-height:1.5}.docs pre code{background:none;color:inherit;padding:0}.docs table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border-radius:12px;overflow:hidden}.docs th,.docs td{border-bottom:1px solid #e7ebef;text-align:left;padding:8px 10px;vertical-align:top}.docs th{color:#64768c;font-size:11px;letter-spacing:.4px}.admin-list{display:grid;gap:14px}.admin-card,.issued{padding:16px 18px}.issued{background:#f3faf7;border-color:#b7e0d6}.admin-card h3{margin:0 0 8px}.token{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}.row-actions{flex-wrap:wrap}.gate-card label,.admin-card label{display:block;font-size:12px;font-weight:700;color:#496078;margin:14px 0 6px}.gate-card input,.admin-card input{width:100%;padding:10px;border:1px solid #dce4eb;border-radius:8px;font:inherit;background:#fff;color:#17253b}.admin-card h2{margin-top:0}.admin-card{margin-bottom:14px}a.primary{text-decoration:none;display:inline-flex;align-items:center}[hidden]{display:none !important}.people-list{display:grid;gap:10px;margin-bottom:18px}.person{background:#fff;border:1px solid #e7ebef;border-radius:14px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.person-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.person-main strong{font-size:16px}.role-pill{font-size:11px;font-weight:750;border-radius:999px;padding:4px 8px;background:#e7f5f2;color:#0a7468}.person-edit{flex-basis:100%;display:flex;gap:8px;align-items:end}.person-edit label{flex:1;margin:0}.person-edit input{width:100%}.pair-page{min-height:100vh;display:grid;place-items:center;padding:24px}.tv-card{width:min(520px,100%)}.qr{width:min(220px,70vw);height:min(220px,70vw);margin:12px auto;background:#fff}.qr svg{width:100%;height:100%;display:block}.pair-code{font-size:28px;letter-spacing:.2em;font-weight:800;text-align:center;margin:8px 0}.pair-link{text-align:center;word-break:break-all;font-size:12px;margin:0 0 8px}.pair-status{text-align:center}#tvPanel .hint{display:block;text-align:center}#newQr{display:block;margin:8px auto 4px}
.management main{max-width:1320px}.lead{max-width:760px;color:#53667d;line-height:1.65}.login-card{max-width:460px;padding:28px}.management-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}.management-stats article{background:#fff;border:1px solid #e0e8e7;border-radius:14px;padding:22px}.management-stats span{display:block;color:#64738a;font-size:13px}.management-stats strong{display:block;font-size:34px;margin-top:10px}.management-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px}.management-layout aside .admin-card{padding:24px}.management-layout h2{font-size:22px;margin:10px 0}.management-layout small{display:block;font-weight:400;margin-top:6px;line-height:1.5}.management .primary{margin-top:12px}.client-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.inactive{background:#f9eee7;color:#965322}.search-label{display:block;font-size:13px;font-weight:650;margin-bottom:16px}.search-label input,.person-edit input,.person-edit select{padding:11px;border:1px solid #dce4eb;border-radius:8px;font:inherit;background:white}.search-label input{display:block;width:100%;margin-top:8px}.management details{margin-top:20px}.management summary{cursor:pointer;font-weight:650;color:#395469}.management details button{margin:8px 8px 0 0}.management .issued{margin-bottom:20px}.empty-state{padding:36px;border:1px dashed #bdcfc9;border-radius:14px;color:#64738a;line-height:1.6}.account-page{max-width:620px}.person-edit{flex-wrap:wrap}.person-edit label{min-width:140px;font-size:12px;color:#496078;font-weight:650}.person-edit input,.person-edit select{display:block;margin-top:6px;width:100%}.gate{overflow-y:auto}.gate-card{margin:auto}button:disabled{opacity:.55;cursor:wait}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #69baa7;outline-offset:3px}@media(max-width:800px){.management-layout{grid-template-columns:1fr}.management-stats{gap:8px}.management-stats article{padding:14px}.management-stats strong{font-size:26px}.actions{flex-wrap:wrap}.person-edit{align-items:stretch}.management main{padding-left:16px;padding-right:16px}}
/* Responsive administration grids */
.management-layout{display:block}.management-tools{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:0 0 24px}.management .management-tools>details{margin:0}.management .create-disclosure{margin:16px 0 22px}.create-disclosure>summary{display:inline-flex;align-items:center;background:#117d71;color:white;padding:12px 18px;border-radius:10px;list-style:none;font-size:14px;cursor:pointer}.create-disclosure>summary::-webkit-details-marker{display:none}.create-disclosure[open]{width:100%}.create-disclosure[open]>summary{margin-bottom:14px}.create-disclosure .admin-card{max-width:720px;margin-bottom:0;box-shadow:none}.management-tools .account-disclosure{box-shadow:none;padding:12px 18px}.account-disclosure[open]{width:min(100%,720px)}.management-tools .account-disclosure summary{font-size:14px}.grid-toolbar{display:flex;align-items:end;gap:16px;margin:0 0 20px;flex-wrap:wrap}.grid-toolbar .search-label{flex:1;min-width:180px;margin:0}.filter-label{font-size:13px;font-weight:650;color:#496078}.filter-label select{display:block;margin-top:8px;border:1px solid #dce4eb;border-radius:8px;padding:11px 34px 11px 12px;background:#fff;font:inherit;color:#17253b}.result-count{font-size:12px;color:#64738a;padding-bottom:13px;white-space:nowrap}.admin-list,.people-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px;align-items:start}.management .client-tile{margin:0;padding:22px;border:1px solid #dfe7ec;box-shadow:0 4px 14px #29466506;min-width:0;border-radius:16px}.client-tile:hover,.people-list .person:hover{border-color:#9dcbbf;box-shadow:0 6px 22px #2946650d}.client-card-heading{align-items:flex-start}.card-identity{display:flex;align-items:center;gap:12px;min-width:0}.avatar{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;background:#e7f3ef;color:#167a69;border-radius:12px;font-size:14px;font-weight:800;letter-spacing:.5px}.management .client-tile h2{font-size:18px;line-height:1.35;letter-spacing:-.4px;margin:0;overflow-wrap:anywhere}.client-card-heading>.role-pill{flex-shrink:0;font-size:10px;padding:5px 8px}.client-tile>.hint{font-size:12px;line-height:1.6;margin:18px 0 14px}.client-tile>a{font-size:13px;font-weight:650;display:inline-flex;margin:0 0 10px;text-underline-offset:4px}.client-tile label{font-size:11px}.client-tile .row-actions{padding-top:14px;margin-top:12px;border-top:1px solid #edf0f3;gap:8px}.client-tile .row-actions button{font-size:12px;padding:9px 11px;flex:1}.client-tile details{border-top:1px solid #edf0f3;padding-top:16px;font-size:13px}.client-tile details button{font-size:12px}.people-list .person{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:22px;gap:20px;min-width:0;box-shadow:0 4px 14px #29466506}.person-main{display:flex;align-items:center;gap:8px}.person-main .card-identity{width:100%;margin-bottom:2px}.person-main .card-identity strong{overflow-wrap:anywhere;line-height:1.4}.person-main .username{width:100%;font-size:12px;color:#64738a;margin:2px 0 9px}.person>.row-actions{margin-top:auto;padding-top:16px;border-top:1px solid #edf0f3}.person>.row-actions button{flex:1;padding:9px}.person-edit{display:grid;grid-template-columns:1fr;gap:12px;border-top:1px solid #edf0f3;padding-top:16px}.person-edit label{min-width:0}.person-edit .primary{margin:0}.section-heading{margin:32px 0 14px;display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading h2{font-size:23px}.section-heading .hint{font-size:13px;margin:8px 0}.empty-state{grid-column:1/-1;margin:0}.management .hint{color:#64738a}.management .management-stats{margin:24px 0}.management .management-stats article{padding:18px 22px}.management .management-stats strong{font-size:30px}.management .error:empty{min-height:0;margin:0}.management .client-tile input,.management .client-tile select{min-width:0}#teamContent>.create-disclosure{margin-top:0}#deviceList{margin-bottom:22px}@media(max-width:600px){.grid-toolbar{gap:12px}.grid-toolbar .search-label{flex-basis:100%}.filter-label{flex:1}.filter-label select{width:100%}.management-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.management .management-stats article{padding:12px}.management-stats span{font-size:11px}.management .management-stats strong{font-size:25px}.client-card-heading{gap:8px}.management .client-tile{padding:18px}.management-tools{gap:10px}.management-tools>details{max-width:100%}.management h1{font-size:30px}.management .lead{font-size:14px}.admin-list,.people-list{gap:14px}.person-edit{flex-basis:auto}}

/* Panel data bindings and integration diagnostics. */
.binding-hint{grid-column:1/-1;color:#64738a;padding:0 0 8px}.widget-item datalist{display:none}#panelPreview{margin:20px 0;padding:12px;background:#f5f7fa;border-radius:12px}#panelPreview[hidden]{display:none}#panelPreview .card.number{grid-column:span 4}#panelPreview .card.chart{grid-column:span 12}.integration-data{max-height:320px;overflow:auto}.integration-data dl{display:grid;grid-template-columns:minmax(120px,1fr) minmax(90px,1fr);gap:8px 16px}.integration-data dt{overflow-wrap:anywhere}.integration-data dd{margin:0;color:#64738a}#sampleJson{width:100%;font:13px/1.6 ui-monospace,monospace;padding:12px;border:1px solid #dfe5ed;border-radius:8px}#integrationContent .admin-card{margin:24px 0}#integrationContent h2{margin-bottom:12px}#integrationContent .hint{line-height:1.6}@media(max-width:600px){#panelPreview .card.number{grid-column:span 12}}

.tv-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:12px 0 20px;color:#496078;font-size:13px}.tv-fullscreen .topbar .actions>a,.tv-fullscreen #edit,.tv-fullscreen #logout,.tv-fullscreen #adminHint,.tv-fullscreen footer{display:none}.tv-fullscreen main{max-width:none}

.manual-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;border:1px solid #dce4eb;border-radius:10px;margin:16px 0;padding:12px}.manual-row label[hidden]{display:none}#publicationPreview[hidden]{display:none}

.advanced-chart { min-width: 0; color: inherit; }
.advanced-chart svg { display: block; width: 100%; min-height: 200px; }
.chart-key { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0; }
.chart-key span { padding-left: 6px; font-size: 13px; }
.advanced-chart details { margin-top: 12px; }
.advanced-chart summary { cursor: pointer; }
.advanced-chart table { width: 100%; text-align: left; font-size: 13px; }
.advanced-chart td, .advanced-chart th { padding: 6px; }
.history-section { margin-top: 36px; }
.history-filters { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin:20px 0; }
.history-filters label { display:grid; gap:6px; }

/* Dashboard layout: presentation first, analysis in its own view. */
.dashboard-page { background:#f1f5f8; }
.dashboard-page .topbar { min-height:68px; height:auto; padding:16px 28px; gap:16px; }
.dashboard-page .actions { gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.dashboard-page .actions #clock { font-variant-numeric:tabular-nums; }
.dashboard-page main { max-width:1800px; padding:28px 32px; }
.dashboard-page .heading { align-items:flex-start; margin-bottom:22px; }
.dashboard-page h1 { font-size:clamp(26px,2.5vw,40px); letter-spacing:-1px; }
.dashboard-page #summary { max-width:780px; line-height:1.5; }
.dashboard-page #adminHint { display:none; }
.dashboard-page #panelNav { display:none; }
.panel-picker { display:flex; align-items:center; gap:12px; margin-top:18px; font-size:12px; font-weight:700; color:#52657c; }
.panel-picker select { max-width:100%; width:360px; border:1px solid #cdd9e3; padding:10px 36px 10px 12px; border-radius:10px; background:#fff; color:#20334c; font:inherit; font-size:14px; }
.view-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 18px; border-bottom:1px solid #dbe3ec; padding-bottom:16px; }
.view-switch { display:flex; gap:4px; padding:4px; background:#e3ebf1; border-radius:12px; }
.view-switch button { border:0; border-radius:9px; padding:11px 18px; background:transparent; color:#52657c; font-weight:650; }
.view-switch button.active { background:white; color:#106c62; box-shadow:0 2px 6px #17253b12; }
.view-hint { color:#60748a; font-size:12px; }
.presentation-settings { margin:0 0 18px; font-size:12px; color:#52657c; }
.presentation-settings summary { cursor:pointer; }
.dashboard-page #dashboard { gap:20px; align-items:stretch; }
.dashboard-page #dashboard[hidden],.dashboard-page .history-section[hidden],.screen-pager[hidden] { display:none; }
.dashboard-page #dashboard .card { border-radius:18px; border:1px solid #dfe7ef; box-shadow:0 4px 18px #22385005; padding:24px; }
.dashboard-page #dashboard .card.number { grid-column:span 3; min-height:168px; gap:16px; border-top:3px solid #218a7f; }
.dashboard-page #dashboard .card.number .label { font-size:13px; text-transform:none; letter-spacing:0; line-height:1.4; color:#4f657a; }
.dashboard-page #dashboard .card.number .value { font-size:clamp(28px,2.7vw,46px); font-variant-numeric:tabular-nums; letter-spacing:-1px; overflow-wrap:anywhere; }
.dashboard-page #dashboard .card.number .sub,.dashboard-page #dashboard .card.number .meta { font-size:12px; }
.dashboard-page #dashboard .card.chart { grid-column:span 6; min-height:360px; }
.dashboard-page #dashboard .card.chart h2 { font-size:18px; line-height:1.35; }
.dashboard-page #dashboard .card.breach { border-top-color:#d16b38; background:#fffcf8; }
.dashboard-page .row { font-size:14px; }
.dashboard-page .bed-row { grid-template-columns:minmax(90px,1fr) 2fr minmax(100px,auto); }
.dashboard-page .bed-row .totals,.dashboard-page .percentage { font-size:13px; font-variant-numeric:tabular-nums; }
.dashboard-page .rows { gap:18px; }
.dashboard-page .history-section { margin-top:0; }
.dashboard-page .history-section>p { color:#60748a; line-height:1.6; font-size:14px; max-width:940px; }
.dashboard-page .history-filters { padding:20px; background:#fff; border:1px solid #dfe7ef; border-radius:14px; }
.dashboard-page .history-filters label { font-size:12px; color:#52657c; }
.dashboard-page .history-filters input,.dashboard-page .history-filters select { padding:10px 12px; font:inherit; background:white; border:1px solid #cdd9e3; border-radius:8px; }
.dashboard-page.history-view #goals,.dashboard-page.history-view .presentation-settings { display:none; }
.screen-pager { display:flex; align-items:center; justify-content:center; gap:14px; font-size:13px; font-variant-numeric:tabular-nums; }
.screen-pager button { padding:6px 12px; border:1px solid #405570; background:transparent; color:inherit; border-radius:7px; }

/* TV uses bounded pages instead of an overflowing wall of cards. */
.dashboard-page.tv-fullscreen { background:#0b1422; color:#f1f6fc; }
.dashboard-page.tv-fullscreen .topbar { height:56px; min-height:56px; padding:8px 24px; background:#101e30; border-color:#26384e; }
.dashboard-page.tv-fullscreen .brand { font-size:18px; }
.dashboard-page.tv-fullscreen .client-name { color:#aec9dd; max-width:280px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.dashboard-page.tv-fullscreen .actions { color:#c1cfdd; flex-wrap:nowrap; }
.dashboard-page.tv-fullscreen .tag { display:none; }
.dashboard-page.tv-fullscreen #fullscreen { background:#20354e; color:white; border-color:#405570; padding:7px 10px; font-size:12px; }
.dashboard-page.tv-fullscreen main { max-width:none; height:calc(100dvh - 56px); min-height:520px; display:flex; flex-direction:column; gap:14px; padding:20px 24px 12px; }
.dashboard-page.tv-fullscreen .heading { margin:0; flex:0 0 auto; align-items:center; gap:16px; }
.dashboard-page.tv-fullscreen h1 { margin:6px 0 0; font-size:clamp(24px,2.5vw,44px); }
.dashboard-page.tv-fullscreen .eyebrow { color:#63d4bb; font-size:12px; }
.dashboard-page.tv-fullscreen #summary,.dashboard-page.tv-fullscreen .panel-picker,.dashboard-page.tv-fullscreen .view-toolbar,.dashboard-page.tv-fullscreen .presentation-settings,.dashboard-page.tv-fullscreen .history-section,.dashboard-page.tv-fullscreen .advanced-chart details { display:none; }
.dashboard-page.tv-fullscreen .update { background:transparent; border-color:#33485f; box-shadow:none; }
.dashboard-page.tv-fullscreen .update strong { color:#dae7f4; font-size:13px; }
.dashboard-page.tv-fullscreen .update small { color:#a5b9ce; }
.dashboard-page.tv-fullscreen #refresh { background:#20354e; color:white; border-color:#405570; }
.dashboard-page.tv-fullscreen #dashboard { flex:1; min-height:0; gap:16px; grid-template-rows:minmax(125px,.75fr) minmax(220px,2fr); }
.dashboard-page.tv-fullscreen #dashboard[data-numbers="0"],.dashboard-page.tv-fullscreen #dashboard[data-charts="0"] { grid-template-rows:repeat(2,minmax(0,1fr)); }
.dashboard-page.tv-fullscreen #dashboard[data-numbers="0"] .card.chart { grid-row:1 / -1; }
.dashboard-page.tv-fullscreen #dashboard .card { padding:20px; background:#14243a; border:1px solid #2a405b; border-radius:16px; box-shadow:none; }
.dashboard-page.tv-fullscreen #dashboard .card.number { min-height:0; gap:8px; border-top:3px solid #49c6af; }
.dashboard-page.tv-fullscreen #dashboard[data-charts="0"] .card.number { grid-column:span 4; }
.dashboard-page.tv-fullscreen #dashboard .card.number .label { color:#c5d6e8; font-size:clamp(14px,1.15vw,21px); }
.dashboard-page.tv-fullscreen #dashboard .card.number .value { color:#f5f9ff; font-size:clamp(32px,3.3vw,64px); }
.dashboard-page.tv-fullscreen #dashboard .card.number .unit,.dashboard-page.tv-fullscreen #dashboard .card.number .sub { color:#9eb5cc; }
.dashboard-page.tv-fullscreen #dashboard .card.number .meta { color:#74d7c1; }
.dashboard-page.tv-fullscreen #dashboard .card.chart { min-height:0; display:flex; flex-direction:column; }
.dashboard-page.tv-fullscreen #dashboard .card.chart h2 { color:#e5effa; font-size:clamp(17px,1.25vw,24px); }
.dashboard-page.tv-fullscreen #dashboard .caption,.dashboard-page.tv-fullscreen .legend { color:#9eb5cc; }
.dashboard-page.tv-fullscreen #dashboard .rows { flex:1; align-content:space-evenly; gap:10px; }
.dashboard-page.tv-fullscreen #dashboard .row .name,.dashboard-page.tv-fullscreen #dashboard .totals,.dashboard-page.tv-fullscreen #dashboard .percentage { color:#c5d6e8; font-size:clamp(13px,1vw,19px); }
.dashboard-page.tv-fullscreen .bar { background:#243c56; height:22px; }
.dashboard-page.tv-fullscreen .advanced-chart { flex:1; min-height:0; display:flex; flex-direction:column; }
.dashboard-page.tv-fullscreen .advanced-chart svg { flex:1; min-height:0; width:100%; height:100%; }
.dashboard-page.tv-fullscreen .chart-key { margin:6px 0 0; gap:8px 16px; }
.dashboard-page.tv-fullscreen .chart-key span { font-size:14px; }
.dashboard-page.tv-fullscreen #dashboard .card.breach { background:#332921; border-color:#b97847; }
.dashboard-page.tv-fullscreen #dashboard .card.breach .value { color:#ffd3a5; }
.dashboard-page.tv-fullscreen #alert,.dashboard-page.tv-fullscreen #goals { margin:0; padding:7px 12px; font-size:12px; }
.dashboard-page.tv-fullscreen .screen-pager { color:#afc5da; flex:0 0 30px; }
@media(max-width:1100px),(max-height:849px) {
 .dashboard-page.tv-fullscreen #dashboard .card.number { grid-column:span 4; }
 .dashboard-page.tv-fullscreen #dashboard .card.chart { grid-column:span 12; }
 .dashboard-page.tv-fullscreen #dashboard[data-numbers="0"] .card.chart { grid-row:1 / -1; }
 .dashboard-page.tv-fullscreen main { padding:14px 20px 10px; gap:10px; }
 .dashboard-page.tv-fullscreen #dashboard .card { padding:16px; }
}
@media(max-width:1000px) {
 .dashboard-page main { padding:22px; }
 .dashboard-page #dashboard .card.number { grid-column:span 6; }
 .dashboard-page #dashboard .card.chart { grid-column:span 12; }
 .dashboard-page .view-hint { display:none; }
}
@media(max-width:650px) {
 .dashboard-page .topbar { padding:14px 16px; }
 .dashboard-page main { padding:20px 16px; }
 .dashboard-page .heading { gap:16px; }
 .panel-picker select { width:100%; }
 .dashboard-page #dashboard { gap:12px; }
 .dashboard-page #dashboard .card { padding:16px; }
 .dashboard-page #dashboard .card.number { min-height:146px; }
 .dashboard-page .bed-row { grid-template-columns:75px 1fr 85px; }
 .dashboard-page.tv-fullscreen .client-name,.dashboard-page.tv-fullscreen .update small { display:none; }
 .dashboard-page.tv-fullscreen .heading { flex-direction:row; }
 .dashboard-page.tv-fullscreen .topbar .actions { width:auto; }
}
.dashboard-page.tv-fullscreen #dashboard[data-numbers="1"] .card.number { grid-column:span 12; }
.dashboard-page.tv-fullscreen #dashboard[data-numbers="2"] .card.number { grid-column:span 6; }
.dashboard-page.tv-fullscreen #dashboard[data-numbers="3"] .card.number { grid-column:span 4; }
.dashboard-page.tv-fullscreen #dashboard[data-charts="0"][data-numbers="1"],.dashboard-page.tv-fullscreen #dashboard[data-charts="0"][data-numbers="2"],.dashboard-page.tv-fullscreen #dashboard[data-charts="0"][data-numbers="3"] { grid-template-rows:1fr; }

/* Team management: independent, keyboard-accessible sections. */
.team-page main { max-width:1400px; }
.team-page .team-tabs { display:flex; gap:6px; border-bottom:1px solid #dce5ec; padding-bottom:12px; margin:28px 0 24px; }
.team-tabs [role="tab"] { display:flex; align-items:center; justify-content:center; gap:9px; padding:13px 19px; border:1px solid transparent; border-radius:11px; color:#53677e; background:transparent; font-size:14px; font-weight:650; }
.team-tabs [role="tab"]:hover { background:#edf4f2; }
.team-tabs [aria-selected="true"] { color:#0c7063; background:#e5f3ee; border-color:#c5e3d8; }
.tab-count { display:inline-flex; align-items:center; justify-content:center; min-width:24px; padding:3px 7px; border-radius:7px; background:#e7edf2; color:#52657b; font-size:12px; font-variant-numeric:tabular-nums; }
.team-tabs [aria-selected="true"] .tab-count { background:#cde9df; color:#0c7063; }
.team-page .team-tab-panel[hidden] { display:none; }
.team-page .team-tab-panel>.section-heading { margin-top:0; }
.team-page .integration-access-card { max-width:760px; padding:26px; background:white; border:1px solid #dfe7ec; border-radius:16px; }
.team-page .integration-access-card h3 { margin-top:0; }
.team-page .integration-access-card .hint { font-size:14px; line-height:1.7; }
@media(max-width:600px) {
 .team-page .team-tabs { gap:4px; margin-top:22px; }
 .team-tabs [role="tab"] { flex:1; padding:11px 7px; gap:6px; flex-wrap:wrap; font-size:12px; }
 .team-page .integration-access-card { padding:20px; }
}

/* Spacious panel editor with separate navigation, fields and preview. */
#editor { width:min(1560px,calc(100vw - 32px)); max-height:94dvh; padding:0; overflow:hidden; }
#editor form { display:flex; flex-direction:column; height:min(94dvh,1000px); max-height:94dvh; padding:0; overflow:hidden; }
#editor .editor-topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:24px 28px 18px; background:#fff; border-bottom:1px solid #e0e8ef; flex:none; }
#editor .editor-topbar h2 { font-size:25px; letter-spacing:-.6px; margin:6px 0 4px; }
#editor .editor-topbar .hint { margin:4px 0 0; font-size:12px; line-height:1.5; }
#editor .editor-layout { display:grid; grid-template-columns:230px minmax(360px,1fr) 345px; min-height:0; flex:1; background:#f5f8fa; }
#editor .editor-sidebar,#editor .editor-workspace,#editor .editor-preview { min-height:0; overflow:auto; scrollbar-width:thin; }
#editor .editor-sidebar { padding:24px 16px; background:#fff; border-right:1px solid #e0e8ef; }
#editor .editor-workspace { padding:24px; }
#editor .editor-preview { padding:24px 18px; border-left:1px solid #e0e8ef; background:#fff; }
#editor .editor-section { background:#fff; border:1px solid #e0e8ef; border-radius:14px; padding:22px; margin-bottom:20px; }
#editor .editor-section-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }
#editor .editor-section-heading>div { display:flex; gap:9px; align-items:center; }
#editor .editor-section-heading h3 { font-size:17px; letter-spacing:-.25px; margin:0; }
#editor .editor-step { display:grid; place-items:center; width:25px; height:25px; border-radius:7px; background:#e0f2ea; color:#0c7666; font-size:12px; font-weight:800; }
#editor .editor-count { font-size:11px; font-weight:700; color:#6b7f92; white-space:nowrap; }
#editor .editor-panel-list { display:grid; gap:7px; margin-bottom:18px; }
#editor .editor-panel-choice { display:grid; gap:4px; width:100%; padding:12px; text-align:left; border:1px solid transparent; border-radius:9px; background:transparent; color:#284057; }
#editor .editor-panel-choice:hover { background:#edf5f3; }
#editor .editor-panel-choice.active { background:#e8f5f0; border-color:#acd9c9; color:#0d685c; }
#editor .editor-panel-choice strong { font-size:13px; font-weight:700; line-height:1.35; }
#editor .editor-panel-choice small { font-size:11px; color:#6a7e90; }
#editor .editor-panel-actions { display:grid; gap:8px; }
#editor .editor-panel-actions button { text-align:left; font-size:12px; padding:10px 12px; }
#editor .editor-sidebar-help,#editor .editor-section-help,#editor .editor-preview-help,#editor .editor-preview-footer { font-size:12px; line-height:1.5; color:#64788b; }
#editor .editor-sidebar-help { margin:18px 4px 0; }
#editor .editor-panel-select { display:none; }
#editor .editor-details-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#editor .editor-details-grid label,#editor .editor-widget-field { display:grid; align-content:start; gap:7px; min-width:0; margin:0; color:#425a71; font-size:12px; font-weight:650; }
#editor .editor-title-field,#editor .editor-summary-field { grid-column:1/-1; }
#editor .editor-remove-panel { border:0; background:none; color:#b4574f; font-size:12px; font-weight:650; padding:7px; }
#editor .editor-remove-panel:hover { text-decoration:underline; }
#editor .editor-section-help { margin:-4px 0 18px; }
#editor .editor-widget-list { display:grid; gap:12px; }
#editor .editor-widget { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:13px; padding:18px; margin:0; border:1px solid #dce6ed; border-radius:11px; background:#fbfcfd; align-items:start; }
#editor .editor-widget-heading { grid-column:1/5; display:flex; align-items:center; gap:9px; min-width:0; font-size:14px; }
#editor .editor-widget-heading strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#editor .editor-widget-icon { display:grid; place-items:center; flex:0 0 28px; height:28px; border-radius:7px; background:#e4f2ef; color:#0b7565; font-weight:800; }
#editor .editor-widget-actions { grid-column:5/-1; display:flex; justify-content:flex-end; gap:5px; }
#editor .editor-widget-actions button { grid-column:auto; grid-row:auto; background:#fff; border:1px solid #dce4eb; color:#52657c; border-radius:7px; font-size:13px; padding:5px 8px; }
#editor .editor-widget-actions .editor-widget-remove { color:#ad514a; }
#editor .editor-widget-title { grid-column:1/4; }
#editor .editor-widget-field:not(.editor-widget-title):not(.editor-widget-metric):not(.editor-widget-unit):not(.editor-widget-goal):not(.editor-widget-sense) { grid-column:4/-1; }
#editor .editor-widget-metric { grid-column:1/4; }
#editor .editor-widget-unit { grid-column:4/-1; }
#editor .editor-widget-goal { grid-column:1/3; }
#editor .editor-widget-sense { grid-column:3/-1; }
#editor .editor-widget input,#editor .editor-widget select { width:100%; min-width:0; padding:10px; font-size:13px; }
#editor .editor-widget.no-unit .editor-widget-unit,#editor .editor-widget.no-goal .editor-widget-goal,#editor .editor-widget.no-goal .editor-widget-sense { display:none; }
#editor .editor-widget .binding-hint { grid-column:1/-1; padding:0; margin:0; line-height:1.45; font-size:11px; }
#editor .editor-preview-badge { padding:5px 8px; border-radius:99px; background:#edf2f5; color:#5b7084; font-size:11px; font-weight:700; }
#editor .editor-preview-help { margin:0 0 12px; }
#editor .editor-preview-grid { display:grid; grid-template-columns:1fr; align-content:start; gap:10px; margin:16px 0; padding:0; background:none; border-radius:0; }
#editor .editor-preview-grid .card.number,#editor .editor-preview-grid .card.chart { grid-column:1; min-height:0; padding:16px; }
#editor .editor-preview-grid .card.number { gap:12px; }
#editor .editor-preview-grid .card.number .value { font-size:30px; }
#editor .editor-preview-grid .card.chart { min-height:220px; }
#editor .editor-preview-grid .advanced-chart svg { min-height:150px; }
#editor .editor-preview-empty { grid-column:1; padding:22px; background:#f3f7f8; border:1px dashed #cddce4; border-radius:9px; color:#65798c; font-size:12px; line-height:1.5; }
#editor .editor-footer { flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0; padding:15px 28px; border-top:1px solid #e0e8ef; background:#fff; }
#editor .editor-footer .error { margin:0; }
#editor .editor-actions { margin:0; }
@media(max-width:1120px) {
 #editor .editor-layout { grid-template-columns:205px minmax(0,1fr); }
 #editor .editor-preview { grid-column:2; border-left:0; border-top:1px solid #e0e8ef; overflow:visible; }
 #editor .editor-workspace { overflow:visible; }
 #editor .editor-layout { overflow:auto; }
 #editor .editor-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #editor .editor-preview-grid .card.number { grid-column:span 1; }
 #editor .editor-preview-grid .card.chart { grid-column:1/-1; }
}
@media(max-width:760px) {
 #editor { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); }
 #editor form { height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); }
 #editor .editor-topbar { padding:16px; }
 #editor .editor-topbar h2 { font-size:21px; }
 #editor .editor-layout { display:block; overflow:auto; }
 #editor .editor-sidebar,#editor .editor-workspace,#editor .editor-preview { overflow:visible; padding:16px; }
 #editor .editor-sidebar { border-right:0; border-bottom:1px solid #e0e8ef; }
 #editor .editor-panel-list,#editor .editor-sidebar-help { display:none; }
 #editor .editor-panel-select { display:grid; margin-bottom:12px; }
 #editor .editor-panel-actions { display:flex; flex-wrap:wrap; }
 #editor .editor-section { padding:16px; }
 #editor .editor-details-grid,#editor .editor-preview-grid { grid-template-columns:1fr; }
 #editor .editor-preview-grid .card.number { grid-column:1; }
 #editor .editor-footer { padding:12px 16px; }
 #editor .editor-widget { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #editor .editor-widget-heading { grid-column:1/-1; }
 #editor .editor-widget-actions { grid-column:1/-1; justify-content:flex-start; }
 #editor .editor-widget-title,#editor .editor-widget-metric { grid-column:1/-1; }
 #editor .editor-widget-field:not(.editor-widget-title):not(.editor-widget-metric):not(.editor-widget-unit):not(.editor-widget-goal):not(.editor-widget-sense),#editor .editor-widget-unit,#editor .editor-widget-goal,#editor .editor-widget-sense { grid-column:span 1; }
 #editor .editor-widget .binding-hint { grid-column:1/-1; }
}
#editor #widgetCount { margin-left:8px; vertical-align:middle; }
.dashboard-page:not(.tv-fullscreen) #dashboard .card { grid-column:span var(--card-span, 6); }
.dashboard-page:not(.tv-fullscreen) #dashboard .card.number { --card-span:3; align-self:start; }
.dashboard-page:not(.tv-fullscreen) #dashboard .card.chart { --card-span:6; }
#editor .editor-drag-handle { display:grid; place-items:center; flex:0 0 24px; height:28px; border-radius:6px; color:#61788a; background:#e8eef2; cursor:grab; user-select:none; font-size:15px; letter-spacing:-3px; }
#editor .editor-drag-handle:active,#editor .editor-preview-grid .card:active { cursor:grabbing; }
#editor .editor-widget.dragging,#editor .editor-preview-grid .card.dragging { opacity:.45; }
#editor .editor-widget-span { grid-column:4/-1; }
#editor .editor-preview-grid .card { cursor:grab; }
@media(max-width:1000px) { .dashboard-page:not(.tv-fullscreen) #dashboard .card { grid-column:span 12; } .dashboard-page:not(.tv-fullscreen) #dashboard .card.number { grid-column:span 6; } }
@media(max-width:650px) { .dashboard-page:not(.tv-fullscreen) #dashboard .card.number { grid-column:span 12; } }
