:root{font:15px/1.5 "Segoe UI",system-ui,sans-serif;color:#203b42;background:#f3f6f6;--teal:#087f7b;--ink:#143a43;--border:#dce6e7;--muted:#61777e;--red:#a8463b}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #33b8ac;outline-offset:3px}.skip-link{position:fixed;left:15px;top:-70px;z-index:20;background:white;padding:10px}.skip-link:focus{top:10px}
aside{width:235px;position:fixed;inset:0 auto 0 0;padding:33px 23px;background:#0c343d;color:#bed3d6;display:flex;flex-direction:column}.brand{font-size:25px;font-weight:700;letter-spacing:-.7px;text-decoration:none;color:white;display:flex;gap:8px;align-items:center}.brand-mark{color:#72d4bd}.environment,.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750}.environment{color:#85aaa9;margin-top:12px;display:block}nav{margin:45px -8px 25px;display:grid;gap:7px}.nav-item{color:#b9ced1;background:none;border-color:transparent;text-align:left;display:flex;align-items:center;gap:13px;padding:12px 15px;font-size:14px}.nav-item span{font-size:21px;width:23px;line-height:1}.nav-item:hover{background:#184750;color:white}.nav-item.active{background:#24534f;border-color:#32665f;color:#abf1d6}.aside-note{margin-top:auto;padding-top:28px;border-top:1px solid #2a5058;font-size:12px;color:#bed3d6}.aside-note small{font-size:10px;color:#85a8ae;margin-top:8px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6cc8ab;margin-right:6px}
main{margin-left:235px;padding:34px 42px 20px;max-width:1700px}h1,h2,h3,p{margin-top:0}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:8px 0 9px;font-weight:650}h2{font-size:20px;line-height:1.3;margin:5px 0 14px;letter-spacing:-.3px}h3{font-size:16px;line-height:1.3;margin-bottom:9px}p{margin-bottom:16px}.eyebrow{color:var(--teal)}.muted,small{color:var(--muted)}small{display:block;font-size:12px}button{border:1px solid #c7d6d8;border-radius:9px;padding:10px 14px;color:#35575e;background:#fff;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#edf5f3;border-color:#91b9b1}button:disabled{cursor:not-allowed;opacity:.45}.primary{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}.primary:hover{background:#076762;border-color:#076762}.quiet{background:transparent}.active{background:#e4f3ed;color:#07685f;border-color:#7dbbad}.text-button{color:#08796e;border:0;background:transparent;padding:4px 0;font-size:12px;font-weight:600}.text-button:hover{background:transparent;text-decoration:underline}.text-button:disabled{text-decoration:none}.page-header,.toolbar,.section-title,.hero-footer,.sync-group{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header{margin-bottom:20px}.page-header p{margin:0}.account{display:flex;align-items:center;gap:12px}.account span{font-size:12px;color:var(--muted)}.toolbar{padding:14px 0 22px;margin-bottom:10px;border-bottom:1px solid var(--border)}.toolbar label{margin:0;min-width:230px}.toolbar select{background:transparent;font-size:15px;font-weight:600;padding:8px 35px 8px 10px;max-width:350px}.sync-group{font-size:11px;justify-content:flex-end;gap:12px}.sync-group button{font-size:12px;padding:8px 12px}
label{display:block;color:#44636b;font-size:12px;font-weight:600;margin:13px 0}input,select{border:1px solid #bfd2d5;border-radius:8px;background:white;padding:11px;width:100%;margin-top:7px;color:#284d55}input:focus,select:focus{outline:2px solid #39a99a;outline-offset:1px}.auth{max-width:440px;margin:70px auto}.auth h1{font-size:47px;line-height:1.13;margin:18px 0}.auth>.muted{font-size:17px;margin-bottom:30px}.auth .primary{width:100%;margin-top:22px;padding:13px}.tabs{display:flex;gap:6px;background:#e5ecec;padding:5px;border-radius:11px;margin-bottom:25px}.tabs button{flex:1;border:0;background:transparent}.tabs .active{background:white;color:var(--ink);box-shadow:0 1px 4px #16343a10}
.card{background:white;border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:22px;box-shadow:0 2px 3px #16343a02}.section-title{align-items:flex-start;margin-bottom:6px}.section-title h2{margin-bottom:6px}.section-intro{margin-bottom:22px}.section-intro h2{margin-bottom:6px}.section-intro p{font-size:13px}.overview-grid{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(350px,1.5fr);gap:20px}.temperature-hero{background:#0f464e;border-color:#0f464e;color:white;position:relative;overflow:hidden}.temperature-hero .eyebrow{color:#8fd4cb}.temperature-hero .muted{color:#b5d1d4;font-size:12px}.temperature-hero .badge{background:#2c5c64;color:#b3d8d9}.temperature-hero .badge.online{background:#245f53;color:#bef2d7}.hero-reading{display:flex;gap:12px;align-items:baseline;margin:22px 0 2px}.hero-reading>span:first-child{font-size:67px;line-height:1.1;font-weight:550;letter-spacing:-2px}.hero-reading .unit{font-size:24px;color:#b0d6d7}.hero-footer{border-top:1px solid #3c686f;margin-top:23px;padding-top:12px;font-size:11px;color:#bad1d4}.hero-footer .text-button{color:#a0e9ce}.trend-card{padding-bottom:18px}.chart-empty{height:142px;display:flex;align-items:center;justify-content:center;color:#7b8d92;font-size:13px;background:#f8fbfa;border-radius:8px;margin:15px 0}.chart{width:100%;height:142px;display:block;margin:10px 0}.chart line{stroke:#e7eeee;stroke-width:1}.chart polyline{stroke:#159b8b;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.chart text{fill:#789096;font:10px system-ui,sans-serif}.trend-summary{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.metric strong{display:block;font-size:32px;letter-spacing:-1px;color:var(--ink);font-weight:600;margin:9px 0 2px}.metric-label{font-size:12px;font-weight:600;color:#537079}.metric small{font-size:11px}.metric .text-button{margin-top:14px}.module-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:12px}.module-summary>div{padding:6px 0}.module-summary strong{display:block;font-weight:600;font-size:14px;margin-bottom:5px}.module-summary small{margin-top:5px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid .card{padding:24px}.value{font-size:38px;font-weight:600;color:#0a7773;margin:18px 0 5px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.2px;background:#eef2f3;color:#71868c;border-radius:30px;padding:5px 10px;white-space:normal;font-weight:600}.badge.online{background:#e6f4eb;color:#287653}.badge.warning{background:#fff0d9;color:#8b642b}.badge.offline{background:#fbece7;color:#a04b3c}.module-title{margin-top:16px}.information{background:#edf4f3;border-color:#d7e6e2}.information p{font-size:13px;color:#4f6f74;margin-bottom:0}.health-message{background:#fff3dc;color:#896126;border:1px solid #eed6a9;border-radius:10px;padding:14px 18px;font-size:13px;margin-bottom:18px}
.outlet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.outlet{border:1px solid var(--border);border-radius:12px;padding:19px;background:#fcfdfd}.outlet-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.outlet-number{font-size:11px;color:#7e969c;border:1px solid #d8e3e4;border-radius:7px;min-width:26px;height:26px;display:flex;align-items:center;justify-content:center}.outlet h3{margin:1px 0 12px;font-size:15px;font-weight:650}.outlet .physical{font-size:21px;font-weight:650;margin:5px 0 11px;color:#557077}.outlet .physical.is-on{color:#168065}.outlet .physical.is-stale{color:#9a6a35;font-size:16px}.outlet p{font-size:11px;margin:5px 0;color:#698188}.outlet .controls{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:4px;margin-top:17px;background:#edf2f2;padding:4px;border-radius:9px}.outlet button{font-size:11px;padding:8px 4px;border-color:transparent;background:transparent}.outlet button.active{border-color:#c4ddd1;background:white;color:#087a67;box-shadow:0 1px 2px #173d3a08}.outlet-pending{font-size:11px;min-height:16px;color:#9b722c;margin-top:8px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.check{display:flex;align-items:center;gap:9px}.check input{width:17px;height:17px;margin:0;accent-color:#087e70}.action-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:center;border-bottom:1px solid #e8eeee;padding:6px 0}.action-row label{font-size:13px}.action-row select{font-size:12px}.rule-step{display:flex;gap:13px;align-items:flex-start;margin:25px 0 8px}.rule-step h3{margin:1px 0 5px}.rule-step p{font-size:12px;margin:0}.step-number{display:flex;align-items:center;justify-content:center;width:27px;height:27px;background:#e7f2ed;border-radius:50%;color:#17816c;font-size:12px;font-weight:700;flex:none}.advanced{margin-top:24px;border:1px solid var(--border);border-radius:10px;padding:14px 16px}.advanced summary{font-size:13px;color:#46686f}.form-footer{margin-top:25px;padding-top:20px;border-top:1px solid var(--border)}.form-footer p{font-size:13px}.form-footer>div{display:flex;gap:10px;flex-wrap:wrap}.form-status{font-size:12px;color:#886123;margin:8px 0}.form-status:empty{display:none}.form-status.dirty{background:#fff7e8;border:1px solid #f0e1c4;padding:11px 14px;border-radius:8px}.connection-path{background:#eff6f4;padding:14px 17px;border-radius:8px;color:#28705f;font-size:13px}.pairing-steps{font-size:13px;line-height:1.7;padding-left:22px;color:#506e76}.pairing-steps li{margin-bottom:8px}
.table-wrap{overflow:auto;max-height:520px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}td,th{padding:13px 12px;border-bottom:1px solid #e5eded;white-space:nowrap}th{font-size:11px;color:#728a90;font-weight:600;position:sticky;top:0;background:white}td:first-child{color:#607c83}.command{padding:15px 0;border-bottom:1px solid #e5eded;font-size:13px}.command small{margin-top:5px}.command-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.empty-state{text-align:center;padding:35px 20px;color:#698087}.empty-state h2{color:#365962}details summary{cursor:pointer;font-weight:600}#notice:not(:empty),.banner{padding:13px 17px;border-radius:9px;margin-bottom:20px;font-size:13px;background:#fff2d9;color:#7b5c2a;border:1px solid #e8d4ad}#notice[data-kind=success]{background:#e7f4ed;border-color:#c9e4d4;color:#2d7152}#notice[data-kind=error],#notice[data-kind=connection]{background:#fff0ea;border-color:#ebd1c3;color:#964b37}#notice{position:sticky;top:12px;z-index:3;box-shadow:0 3px 10px #2e404307}footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#80959a;margin-top:30px;padding:20px 0;border-top:1px solid var(--border)}[hidden]{display:none!important}
@media(min-width:1500px){main{padding-left:52px;padding-right:52px}.outlet-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1120px){aside{width:205px;padding:28px 18px}.brand{font-size:23px}main{margin-left:205px;padding:27px 25px}.overview-grid{grid-template-columns:1fr 1.35fr;gap:15px}.metrics-grid,.grid{gap:15px}.outlet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account span{display:none}.hero-reading>span:first-child{font-size:56px}.card{padding:21px}.sync-group #sync{display:none}}
@media(max-width:800px){aside{position:sticky;top:0;width:100%;padding:14px 20px 0;z-index:5;display:block;box-shadow:0 3px 10px #122e3710}.brand{font-size:22px;display:inline-flex}.environment{float:right;font-size:8px;margin-top:9px}.aside-note{display:none}nav{display:flex;gap:5px;margin:13px -10px 0;overflow-x:auto;padding:0 5px 10px;scrollbar-width:thin}.nav-item{flex-shrink:0;padding:8px 11px;font-size:12px;gap:7px;min-height:37px}.nav-item span{font-size:17px;width:17px}main{margin:0;padding:25px 20px}.page-header{margin-bottom:16px}h1{font-size:30px}.page-header p{font-size:13px}.account button{font-size:12px}.toolbar{align-items:flex-end}.toolbar label{min-width:180px}.toolbar select{max-width:240px}.grid{grid-template-columns:1fr}.module-summary{gap:12px}.temperature-hero{margin-bottom:18px}.metrics-grid{gap:12px}.metric{padding:18px}.metric-label{font-size:11px}.metric strong{font-size:29px}.metric .text-button{font-size:11px}.metric small{font-size:10px}.auth{margin:45px auto}.auth h1{font-size:42px}.card{margin-bottom:18px}}
@media(max-width:560px){main{padding:22px 14px}.environment{font-size:7px;letter-spacing:1px}.overview-grid{grid-template-columns:1fr;gap:0}.hero-reading>span:first-child{font-size:64px}.temperature-hero{padding:23px}.metrics-grid{grid-template-columns:1fr;gap:0}.metric{display:grid;grid-template-columns:1fr auto;align-items:center;padding:18px 20px}.metric strong{grid-column:2;grid-row:1/3;margin:0}.metric small{grid-column:1}.metric .text-button{grid-column:1/3;text-align:left;margin-top:10px}.module-summary{grid-template-columns:1fr;gap:5px}.module-summary>div{display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid #edf1f1;padding:11px 0}.module-summary small{grid-column:1/3}.outlet-grid{grid-template-columns:1fr}.outlet{padding:19px}.outlet .controls{grid-template-columns:1fr 1fr 1.3fr}.outlet button{font-size:12px;padding:10px}.toolbar{gap:12px}.toolbar label{min-width:0;flex:1}.toolbar select{width:100%;max-width:230px}.sync-group{gap:8px}.sync-group .badge{font-size:9px}.sync-group #refresh{width:35px;height:35px;font-size:0;padding:0}.sync-group #refresh:after{content:'↻';font-size:20px}.form-grid{grid-template-columns:1fr 1fr;gap:10px}.action-row{grid-template-columns:1fr 1fr;gap:8px;padding:10px 0}.action-row .check{grid-column:1/3;margin-bottom:0}.form-footer>div{display:grid;grid-template-columns:1fr;width:100%}.section-title{gap:10px}.section-title>.muted{font-size:11px}.trend-summary{flex-wrap:wrap}.hero-footer{margin-top:18px}.card{padding:20px}.auth{margin:40px auto}.auth h1{font-size:39px}footer{display:block;line-height:1.8}footer span{display:block}.page-header .eyebrow{font-size:9px}.page-header{gap:10px}.page-header p{max-width:230px}.empty-state{padding:27px 18px}}

@media(max-width:800px){body:has(#navigation:not([hidden])) #notice{top:116px}main{scroll-margin-top:120px}}

.temperature-hero select{color:var(--ink,#12343b);background:#fff;font-size:.85rem;max-width:100%}#schedule-fields fieldset{display:flex;flex-wrap:wrap;gap:.7rem}#schedule-fields fieldset label{display:flex;gap:.3rem;align-items:center}.action-row{grid-template-columns:minmax(120px,1fr) repeat(3,minmax(90px,1fr))}@media(max-width:800px){.action-row{grid-template-columns:1fr 1fr}}

#routine-form fieldset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border:1px solid #d9e5e6;border-radius:10px;padding:15px;margin:18px 0}#routine-form legend{font-size:12px;font-weight:600;color:#44636b;padding:0 6px}#routine-form fieldset label.inline{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid #d9e5e6;border-radius:8px;min-height:42px}#routine-form fieldset input[type=checkbox]{width:18px;height:18px;margin:0;padding:0;flex:0 0 18px;accent-color:#137d70}#routine-form fieldset label:has(input:checked){background:#e5f4ef;border-color:#398c7b}@media(max-width:700px){#routine-form fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}}

.dashboard-choice{display:flex;align-items:center;gap:1rem;margin:.6rem 0;flex-wrap:wrap}.dashboard-choice>label:first-child{flex:1}.dashboard-choice input[type=number]{width:5rem}.inline-checks{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.inline-checks label,#job-days label{display:inline-flex;align-items:center;gap:.5rem}.inline-checks input[type=checkbox],.dashboard-choice input[type=checkbox],#job-days input{width:auto;margin:0}#job-days{display:flex;gap:1rem;flex-wrap:wrap}#local-alarms:has(article){border-color:#b44b39}

#job-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}#job-channels label{display:flex;align-items:center;gap:.5rem}#job-channels input{width:auto;margin:0}@media(max-width:650px){#job-channels{grid-template-columns:repeat(2,minmax(0,1fr))}}

dialog{max-width:36rem;width:calc(100% - 3rem);border:1px solid var(--line,#ccd8d6);border-radius:1rem;padding:1.5rem;background:#fff;color:#153b40}dialog::backdrop{background:#102f35a6}
