@font-face{font-family:"Instrument Sans";src:url('/fonts/instrument-sans.woff2') format('woff2');font-weight:400 600;font-display:swap}
:root{--ground:#fff;--surface:#f5f7f6;--raised:#fff;--border:#e6eae7;--rule:#e6eae7;--control:#c8cfcb;--text:#1f201d;--muted:#5d655f;--accent:#1b6e66;--positive:#246246;--negative:#a9241d;--warning:#80530d;--warning-bg:#fff7e7;--active:#edf0ee;--radius-card:22px;--radius-control:999px;--gap:16px;--pad:20px;--font:"Instrument Sans",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--text);font:14px/1.5 var(--font)}button,input,select{font:inherit;color:inherit}button,input,select,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button{min-height:38px;border:1px solid var(--control);border-radius:var(--radius-control);padding:8px 17px;background:var(--raised);white-space:nowrap}button:hover:not(:disabled){background:var(--active)}button.primary{background:var(--text);color:var(--ground);border-color:var(--text)}button.primary:hover:not(:disabled){background:#3e4540}button.text-button{border-color:transparent;background:transparent;padding:5px 8px;min-height:36px}button.text-button:hover:not(:disabled){background:var(--active)}button.danger{color:var(--negative)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.25;letter-spacing:-.025em;font-weight:500}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}.muted,.subline{color:var(--muted)}.subline{font-size:12px}.num{font-variant-numeric:tabular-nums;font-weight:400}.skip-link{position:fixed;top:-80px;left:16px;padding:10px;background:var(--text);color:var(--ground);z-index:20}.skip-link:focus{top:12px}.loading{max-width:600px;padding:80px 24px;margin:auto}.loading p{margin-top:16px}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh}.sidebar{padding:34px 20px;display:flex;flex-direction:column;gap:32px;border-right:1px solid var(--border)}.brand{display:flex;gap:10px;align-items:center}.brand img{width:30px;height:30px}.brand strong{font-size:18px;font-weight:500}.workspace{margin-top:8px;margin-left:40px;color:var(--muted);font-size:12px}.nav{display:flex;flex-direction:column;gap:4px}.nav a{display:block;border-radius:9px;text-decoration:none;padding:9px 12px;color:var(--muted)}.nav a:hover{background:var(--surface)}.nav a[aria-current=page]{background:var(--active);color:var(--text)}.sidebar-foot{margin-top:auto;font-size:12px;color:var(--muted)}.sidebar-foot p{margin-bottom:12px}.sidebar-foot button{padding-left:0}.canvas{padding:44px 32px;min-width:0}.content{max-width:1100px;margin:0 auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);margin-bottom:28px}.heading p{margin-top:8px;color:var(--muted)}.heading-actions{display:flex;gap:8px;align-items:center}.mobile-menu{display:none}.demo-notice{background:var(--warning-bg);color:var(--warning);padding:12px 16px;border-radius:9px;margin-bottom:20px}.connection-notice{margin-bottom:20px;padding:14px 16px;border:1px solid var(--control);border-radius:9px;display:flex;gap:16px;align-items:center;justify-content:space-between}.connection-notice p{color:var(--muted);margin-top:3px}.status-line{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.status-dot{width:6px;height:6px;background:var(--muted);border-radius:50%;display:inline-block}.status-dot.online{background:var(--positive)}
/* At a 1100px canvas: 12 × 77px + 11 × 16px = 1100px. Every section shares these grid lines. */
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:start}.summary{grid-column:span 3;background:var(--surface);border-radius:var(--radius-card);padding:var(--pad)}.summary .value{font-size:28px;line-height:1.4;margin:8px 0 0;white-space:nowrap}.summary .unit{font-size:14px;color:var(--muted);margin-left:4px}.summary p{font-size:12px;color:var(--muted);margin-top:4px}.summary-label{color:var(--muted)}.emitters{grid-column:span 9}.side-stack{grid-column:span 3;display:grid;gap:var(--gap)}.panel{background:var(--surface);border-radius:var(--radius-card);padding:var(--pad);min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}.section-heading p{margin-top:3px;color:var(--muted);font-size:12px}.section-heading button{padding-right:0}.filters{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);margin-bottom:16px}.filter-select{max-width:220px}.selection{display:flex;gap:10px;align-items:center;min-height:38px}.selection label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;flex-shrink:0;margin:0}.device-list{display:grid;gap:8px}.device-row{display:grid;grid-template-columns:20px minmax(120px,1fr) 85px 100px 82px;align-items:center;gap:12px;background:var(--raised);border:1px solid var(--border);border-radius:12px;padding:12px;min-height:80px}.device-name{font-weight:500;overflow-wrap:anywhere}.temperature{text-align:right;font-size:25px;line-height:1.2}.temperature small{font-size:14px;color:var(--muted)}.device-target{text-align:right}.device-target .mode{font-size:12px;color:var(--muted)}.device-target .heating{color:var(--accent)}.device-actions{text-align:right}.device-row.selected{border-color:var(--accent)}.device-row.stale .temperature{color:var(--muted)}.label-wrap{display:flex;gap:8px;align-items:center}.room-link{font-size:12px;color:var(--muted);border:0;background:transparent;padding:0;min-height:22px;border-radius:2px}.room-link:hover:not(:disabled){text-decoration:underline;background:transparent}.small-list{list-style:none;padding:0;margin:0}.small-list li{padding:12px 0;border-top:1px solid var(--rule)}.small-list li:first-child{padding-top:0;border-top:0}.small-list strong{font-weight:500}.small-list time{font-size:17px}.small-list .subline{margin-top:4px}.empty{color:var(--muted);padding:14px 0}.aside-note{font-size:12px;color:var(--muted);margin-top:16px}.compact-stats{display:flex;justify-content:space-between;gap:16px;margin-top:16px}.compact-stats strong{font-weight:400;font-size:20px}.full-span{grid-column:1/-1}.schedules-list{display:grid;gap:var(--gap)}.schedule-row{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:var(--gap)}.schedule-row time{font-size:28px}.schedule-row h3{font-size:16px;font-weight:500}.schedule-row .subline{margin-top:4px}.schedule-row.inactive{color:var(--muted)}.schedule-buttons{display:flex;gap:8px}.history-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.history-table th{font-weight:400;color:var(--muted);font-size:12px}.history-table th,.history-table td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--rule)}.history-table .num{text-align:right}.history-table td:last-child{padding-right:0}.history-table td:first-child{padding-left:0}.command-results{padding-left:16px;font-size:12px;color:var(--muted);margin-top:8px}.command-row{border-bottom:1px solid var(--rule);padding:16px 0}.command-row:first-child{padding-top:0}.command-head{display:flex;justify-content:space-between;gap:16px}.command-status.confirmed{color:var(--positive)}.command-status.failed,.command-status.partial,.command-status.unknown{color:var(--negative)}.command-meta{margin-top:4px;font-size:12px;color:var(--muted)}
.settings-section{display:grid;grid-template-columns:minmax(200px,4fr) minmax(280px,6fr);gap:32px;padding:28px 0;border-bottom:1px solid var(--border)}.settings-section:first-child{padding-top:0}.settings-section .description{color:var(--muted);margin-top:8px;max-width:350px}.form-panel{padding:24px;background:var(--surface);border-radius:var(--radius-card)}.field{display:grid;gap:7px;margin-bottom:16px}.field label{font-weight:500}.field input,.field select,select{width:100%;padding:10px 12px;min-height:42px;border:1px solid var(--control);border-radius:9px;background:var(--raised)}.field input[type=checkbox]{width:auto;min-height:0}.help{color:var(--muted);font-size:12px}.form-error{color:var(--negative);margin:12px 0;min-height:21px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap}.account-state{margin-bottom:16px}.definition-list{margin:0}.definition-list div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}.definition-list div:last-child{border:0}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0;text-align:right}.login-screen{max-width:420px;margin:10vh auto;padding:24px}.login-screen .brand{margin-bottom:36px}.login-screen h1{margin-bottom:12px}.login-screen p{margin-bottom:24px;color:var(--muted)}.login-screen .primary{width:100%}.login-screen form{margin-top:24px}.login-foot{font-size:12px;margin-top:24px;color:var(--muted)}
dialog{width:min(540px,calc(100% - 32px));max-height:90dvh;overflow-y:auto;border:1px solid var(--border);border-radius:22px;background:var(--ground);color:var(--text);padding:26px}dialog::backdrop{background:rgb(22 30 25 / .4)}.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:20px}.dialog-heading h2{font-size:22px;font-weight:500}.dialog-heading button{border:0;padding:0;min-width:30px;min-height:30px}.dialog-intro{color:var(--muted);margin-bottom:20px}.dialog-targets{max-height:110px;overflow:auto;font-size:12px;color:var(--muted);margin-bottom:20px;padding-left:18px}.day-picker{display:flex;gap:6px;flex-wrap:wrap}.day-picker label{position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--control);border-radius:8px}.day-picker label:has(input:checked){border-color:var(--accent);color:var(--accent);background:var(--surface)}.day-picker input{position:absolute;opacity:0}.day-picker label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.device-picker{max-height:190px;overflow:auto;border:1px solid var(--control);border-radius:9px;padding:12px;display:grid;gap:12px;margin-bottom:16px}.device-picker label{display:flex;gap:10px;align-items:center}.checkbox-field{display:flex;gap:10px;align-items:center;margin:16px 0}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.dialog-note{font-size:12px;color:var(--muted);margin-top:16px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:0;z-index:30;pointer-events:none}#notice:not(:empty){padding:12px 20px;background:var(--text);color:var(--ground);border-radius:12px}.notice-error{color:var(--negative)}.footer-note{font-size:12px;color:var(--muted);margin-top:20px}
@media(max-width:1100px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);padding:12px 24px;display:grid;grid-template-columns:1fr auto;gap:0;align-items:center}.sidebar .workspace,.sidebar-foot{display:none}.brand img{width:26px;height:26px}.brand strong{font-size:16px}.nav{flex-direction:row;gap:0}.nav a{padding:8px 12px}.canvas{padding:28px 24px}.emitters{grid-column:span 8}.side-stack{grid-column:span 4}.device-row{grid-template-columns:20px minmax(100px,1fr) 70px 85px;gap:10px}.device-actions{grid-column:2/5;text-align:right;margin-top:-5px}.device-row{padding:12px}.device-actions button{padding:4px 12px;min-height:30px}.summary{padding:16px}.summary .value{font-size:25px}}
@media(max-width:640px){.sidebar{padding:12px 16px;position:relative}.mobile-menu{display:block;min-height:36px;padding:6px 12px}.nav{display:none;grid-column:1/-1;flex-direction:column;margin-top:12px}.nav.open{display:flex}.nav a{min-height:44px;padding:11px 12px}.canvas{padding:24px 16px 32px}.heading{align-items:flex-start;margin-bottom:20px}.heading-actions{gap:0}.heading-actions .status-line{display:none}.heading h1{font-size:23px}.heading p{font-size:13px}.heading-actions button{min-height:38px;padding:7px 10px}.grid{gap:12px}.summary{grid-column:span 6;border-radius:16px;padding:16px}.summary .value{font-size:26px}.summary .unit{font-size:12px}.summary p{font-size:12px}.emitters,.side-stack{grid-column:1/-1}.panel{padding:16px;border-radius:18px}.device-row{grid-template-columns:20px minmax(0,1fr) 70px;gap:10px;min-height:104px}.temperature{font-size:24px}.device-target{grid-column:2;grid-row:2;text-align:left;display:flex;align-items:center;gap:8px;margin-top:-4px}.device-actions{grid-column:3;grid-row:2;margin-top:-4px}.device-actions button{min-height:36px;padding:6px 12px}.device-name{font-size:14px}.room-link{min-height:26px}.filters{align-items:start;gap:8px}.filter-select{max-width:175px}.selection{min-height:42px}.selection label span{display:none}.selection button{min-height:42px;padding:9px 12px}.connection-notice{align-items:flex-start;flex-direction:column;gap:10px}.side-stack{grid-template-columns:1fr}.section-heading{margin-bottom:12px}.schedule-row{grid-template-columns:65px 1fr;gap:12px}.schedule-row time{font-size:25px}.schedule-buttons{grid-column:1/-1;justify-content:flex-end}.schedule-buttons button{min-height:44px}.settings-section{grid-template-columns:1fr;gap:20px;padding:24px 0}.settings-section .description{max-width:none}.form-panel{padding:18px;border-radius:18px}.field input,.field select,select,button{min-height:44px}.field input[type=checkbox]{min-height:0}.history-table th,.history-table td{padding:10px 5px;font-size:12px}.command-head{align-items:start;flex-direction:column;gap:4px}.login-screen{margin:6vh auto}.login-screen h1{font-size:24px}dialog{padding:20px}.form-actions button{flex:1}.dialog-heading h2{font-size:21px}.dialog-heading button{flex:none}.dialog-targets{max-height:90px}.footer-note{margin-top:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.summary{align-self:stretch}
[hidden]{display:none!important}
.device-row.informational{grid-template-columns:minmax(120px,1fr) 85px 110px auto}
.history-link{font-size:12px;padding:7px 12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.weekly-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.schedule-palette,.weekly-save-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.weekly-save-actions{justify-content:flex-end}
.brush{display:inline-flex;align-items:center;gap:7px;border-radius:8px;border-color:transparent;min-height:44px}
.brush[aria-pressed=true]{border-color:currentColor;outline:2px solid currentColor;outline-offset:2px}
.mode-icon{width:20px;height:20px;flex:none;vertical-align:middle}
.profile-comfort{background:#fff0d0;color:#80500b}
.profile-eco{background:#e8eeff;color:#354e8e}
.profile-ice{background:#e4f4f4;color:#21696b}
.profile-off{background:#f1f3f1;color:#5d655f}
.brush:hover:not(:disabled){filter:brightness(.97)}
.weekly-enable{display:flex;align-items:center;gap:8px;min-height:44px}
#weekly-save-status{font-size:12px;color:var(--muted);flex-basis:100%;text-align:right}
#weekly-error:empty{margin:0;min-height:12px}
.weekly-sheet{max-height:65dvh;overflow:auto;border:1px solid var(--control);border-radius:8px;overscroll-behavior:contain;scrollbar-color:var(--control) var(--surface)}
.weekly-table{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;width:max-content;font-variant-numeric:tabular-nums}
.weekly-table th,.weekly-table td{border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);padding:0;text-align:center}
.weekly-table thead th{position:sticky;z-index:2;background:var(--surface);height:34px;min-width:65px;font-size:12px;font-weight:500;top:60px}
.weekly-table thead tr:first-child th{top:0;height:60px}
.weekly-table thead .weekly-room{min-width:195px;border-right:2px solid var(--control);padding:6px 8px;max-width:300px;overflow-wrap:anywhere}
.weekly-room>span{display:block;font-size:14px;font-weight:600}
.room-temperatures{display:block;margin:0 auto;border:0;border-radius:4px;background:transparent;font-size:11px;min-height:26px;padding:2px 6px;color:var(--muted)}
.weekly-table .weekly-time{position:sticky;left:0;background:var(--surface);z-index:1;width:65px;min-width:65px;padding:0 8px;font-weight:400;font-size:12px;border-right:2px solid var(--control)}
.weekly-table thead .weekly-time{z-index:4;top:0}
.weekly-table td{min-width:65px;width:65px}
.weekly-table .room-start{border-left:1px solid var(--control)}
.weekly-table tbody tr:nth-child(even) th{border-bottom-color:var(--control)}
.schedule-cell{display:block;width:100%;min-width:64px;min-height:34px;height:34px;border:0;border-radius:0;padding:5px 10px;touch-action:pan-x pan-y}
.schedule-cell:hover:not(:disabled){filter:brightness(.94)}
.schedule-cell.profile-comfort:hover:not(:disabled){background:#fff0d0}
.schedule-cell.profile-eco:hover:not(:disabled){background:#e8eeff}
.schedule-cell.profile-ice:hover:not(:disabled){background:#e4f4f4}
.schedule-cell.profile-off:hover:not(:disabled){background:#f1f3f1}
.schedule-cell:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent);outline-offset:-3px}
.schedule-cell .mode-icon{width:17px;height:17px}
.legacy-schedules{margin-top:28px;border-top:1px solid var(--rule);padding-top:16px}
.legacy-schedules summary{cursor:pointer;font-weight:500;margin-bottom:12px}
.legacy-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}
@media(max-width:1100px){.device-row.informational{grid-template-columns:minmax(100px,1fr) 80px 95px}.informational .history-link{grid-column:1/-1;justify-self:end}}
@media(max-width:640px){.device-row.informational{grid-template-columns:minmax(0,1fr) 80px;min-height:100px}.informational .device-target{grid-column:1;grid-row:2}.informational .history-link{grid-column:2;grid-row:2}.room-heading>button{white-space:normal;text-align:left}.weekly-toolbar{gap:14px}.schedule-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.brush{justify-content:flex-start}.weekly-save-actions{width:100%;justify-content:flex-start}.weekly-enable{width:100%}#weekly-save-status{text-align:left}.weekly-sheet{max-height:60dvh}.weekly-table .weekly-time{min-width:58px;width:58px}.weekly-table thead .weekly-room{min-width:195px}.weekly-table thead th{font-size:12px}.room-temperatures{min-height:30px}}
@media(max-width:640px){.summary:nth-child(3),.summary:nth-child(4){display:none}.summary p{display:none}.summary .value{margin-top:4px}.summary{padding:14px 16px}.device-picker label{min-height:32px}}

.room-group{margin-top:24px}.room-group+.room-group{padding-top:24px;border-top:1px solid var(--rule)}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.room-heading h3{font-size:18px;font-weight:500;overflow-wrap:anywhere}.room-heading .inline-actions{justify-content:flex-end}.filters{flex-wrap:wrap}.selection{flex-wrap:wrap}.section-heading{flex-wrap:wrap}@media(max-width:640px){.room-heading{align-items:flex-start;flex-direction:column}.room-heading .inline-actions{justify-content:flex-start}.selection{width:100%}.selection label span{display:inline}.room-heading button{white-space:normal}.room-group{margin-top:20px}}

/* The weekly sheet uses the available workspace and groups each room visually. */
.canvas:has(.weekly-sheet) .content{max-width:1480px}
.weekly-toolbar{padding:18px 0;margin-bottom:14px}
.weekly-sheet{--room-edge:#bdc9c3;--sheet-line:#e3e9e5;max-height:calc(100dvh - 300px);min-height:360px;border-color:var(--room-edge);border-radius:12px;background:#fff;scrollbar-gutter:stable}
.weekly-table{width:100%;min-width:max-content}
.weekly-table th,.weekly-table td{border-right-color:var(--sheet-line);border-bottom-color:var(--sheet-line)}
.weekly-table thead tr:first-child th{height:94px}
.weekly-table thead .weekly-room{min-width:156px;max-width:none;padding:10px 8px 8px;border-right:1px solid var(--room-edge)}
.weekly-table thead th{top:94px;height:34px;min-width:52px}
.weekly-table thead .room-band-0{background:#edf3ef}
.weekly-table thead .room-band-1{background:#f7f9f7}
.weekly-room .weekly-room-name{font-size:15px;font-weight:600;line-height:1.3;color:#293c33}
.weekly-room .weekly-room-count{font-size:11px;font-weight:400;line-height:1.4;color:var(--muted);margin-top:3px}
.weekly-table .room-temperatures{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:5px;padding:3px 5px;font-size:11px;min-height:26px;border:1px solid transparent;border-radius:5px}
.room-temperatures:hover:not(:disabled){border-color:var(--control);background:#fff}
.room-profile{display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}
.room-profile .mode-icon{width:13px;height:13px}
.room-profile:nth-child(1){color:#80500b}.room-profile:nth-child(2){color:#354e8e}.room-profile:nth-child(3){color:#21696b}
.weekly-table .weekly-time{width:64px;min-width:64px;border-right:1px solid var(--room-edge);background:#f7f9f7}
.weekly-table thead .weekly-time{top:0;font-size:12px;font-weight:500;color:var(--muted)}
.weekly-table .day-header{font-size:11px;font-weight:600;color:#53645a;letter-spacing:.02em}
.weekly-table td{min-width:52px;width:auto;background:#fff}
.weekly-table td.room-band-0{background:#f8faf8}
.weekly-table .room-start{border-left:1px solid var(--room-edge)}
.weekly-table .full-hour>*{border-top:1px solid #d1dbd5}
.weekly-table .full-hour>.weekly-time{font-size:12px;font-weight:600;color:#344b3e}
.weekly-table .half-hour>.weekly-time{font-size:11px;color:#68776e}
.weekly-table .schedule-cell{min-width:51px;min-height:30px;height:30px;padding:5px 8px}
.weekly-table .schedule-cell.profile-off{background:transparent;color:#75877b}
.weekly-table .schedule-cell.profile-off .mode-icon{width:13px;height:13px;opacity:.38}
.weekly-table .schedule-cell.profile-off:hover:not(:disabled){background:#e9efea}
.weekly-table .schedule-cell.profile-off:hover .mode-icon{opacity:1}
.weekly-table tbody tr:has(.schedule-cell:hover)>.weekly-time,.weekly-table tbody tr:focus-within>.weekly-time{background:#dfece4;color:#1c5141}
@media(max-width:1100px){.weekly-sheet{max-height:calc(100dvh - 280px)}}
@media(max-width:640px){.weekly-toolbar{padding:14px 0;gap:12px}.weekly-sheet{min-height:320px;max-height:65dvh;border-radius:9px}.weekly-table thead .weekly-room{min-width:165px}.weekly-table .schedule-cell{min-width:54px;min-height:36px;height:36px}.weekly-table .weekly-time{min-width:57px;width:57px}.weekly-table .room-temperatures{min-height:28px}.weekly-room .weekly-room-name{font-size:14px}}
.weekly-table thead .weekly-power-heading{min-width:198px;padding:12px 8px;background:#e5eee8;border-left:2px solid var(--room-edge);color:#294b39}
.weekly-power-heading>span{display:block;font-size:14px;font-weight:600}
.weekly-power-heading small{display:block;margin-top:6px;font-size:10px;font-weight:400;color:#536a5c}
.weekly-table .power-col{min-width:66px;width:66px;padding:0 7px;background:#f2f6f3;color:#69796e;font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap}
.weekly-table .power-weekdays{border-left:2px solid var(--room-edge)}
.weekly-table thead .power-col{background:#e5eee8;color:#365741;font-weight:600}
.weekly-table .power-col.power-on{background:#e5f1e8;color:#245438;font-weight:600}
.weekly-table .power-col.power-unknown{color:#80530d;background:var(--warning-bg)}
.weekly-time-column{width:64px}.weekly-power-column{width:66px}
.temperature-guide{max-width:75ch;color:var(--muted);margin-bottom:24px}
.temperature-off{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px}
.temperature-off .mode-icon{width:16px;height:16px}
.temperature-room{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:32px;padding:24px 0;border-top:1px solid var(--rule)}
.temperature-room-heading h2{font-size:16px;font-weight:500;margin-top:3px}
.temperature-room-heading p{margin-top:5px}
.temperature-room-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.temperature-room-fields .field{margin:0;min-width:0}
.temperature-room-fields label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}
.temperature-room-fields .mode-icon{width:17px;height:17px}
.temperature-comfort label{color:#80500b}.temperature-eco label{color:#354e8e}.temperature-ice label{color:#21696b}
.temperature-room-fields input{font-size:20px;font-variant-numeric:tabular-nums;background:var(--surface);min-height:48px}
.temperature-save-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 0;border-top:1px solid var(--rule)}
.temperature-save-bar #weekly-save-status{flex-basis:auto;text-align:left}
.application-result{padding:14px 16px;margin:14px 0;border:1px solid var(--control);border-radius:9px;background:var(--surface)}
.application-result p{font-size:12px;margin-top:5px}
.weekly-table tfoot th,.weekly-table tfoot td{position:sticky;bottom:0;z-index:3;background:#dceadf;border-top:2px solid var(--room-edge);height:42px}
.weekly-table tfoot .daily-total-label{text-align:right;padding:10px 14px;font-size:12px;font-weight:600;color:#294b39}
.weekly-table tfoot .daily-total{font-weight:600;color:#245438;z-index:4}
.room-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.room-control-card{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:0}
.room-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.room-card-heading h2{font-size:20px;font-weight:500}.room-card-heading .subline{margin-top:5px}
.room-current{font-size:28px;white-space:nowrap;line-height:1.3}.room-current small{font-size:13px;color:var(--muted)}
.room-control-state{font-size:12px;color:var(--muted);margin:18px 0 10px}
.room-switches{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}
.room-switch{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;min-height:58px;white-space:normal;text-align:left;padding:12px;font-size:13px}
.room-switch.is-active{border-color:var(--accent);background:#e0eee6;color:#245438}
.manually-off .room-switch.is-active{background:#e5e9e6;color:#38463e;border-color:#8c9b90}
.room-embedded-devices{list-style:none;padding:0;margin:20px 0 8px;font-size:12px}
.room-embedded-devices li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule)}
.room-embedded-devices li span:last-child{text-align:right;color:var(--muted)}
.room-organize{font-size:12px;padding-left:0!important}.unassigned-emitters{margin-top:28px}.unassigned-emitters h2{margin-bottom:14px}
@media(max-width:700px){.room-control-grid{grid-template-columns:1fr;gap:14px}.room-control-card{padding:20px}.room-current{font-size:26px}.room-switch{min-height:60px}.room-card-heading h2{font-size:19px}}
@media(max-width:640px){.temperature-room{grid-template-columns:1fr;gap:16px;padding:20px 0}.temperature-room-fields{gap:10px}.temperature-room-fields label{gap:4px;font-size:11px}.temperature-room-fields .mode-icon{width:15px;height:15px}.temperature-room-fields input{padding:10px 8px;font-size:18px}.temperature-save-bar #weekly-save-status{flex-basis:100%}}
@media(min-width:1101px){.weekly-table .power-col{position:sticky;z-index:1}.weekly-table .power-weekdays{right:132px}.weekly-table .power-saturday{right:66px}.weekly-table .power-sunday{right:0}.weekly-table thead .power-col{z-index:3}.weekly-table thead .weekly-power-heading{right:0;z-index:4}}
