@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/next/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(/next/assets/baloo-2-latin-700-normal-Ld3Zm3l2.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/next/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/next/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/next/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/next/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/next/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/next/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}:root{--bg:#fbfaf7;--surface:#fff;--alt:#f3f1ea;--line:#e2dfd5;--ink:#1f2a26;--ink-2:#4a554f;--muted:#5d6862;--green:#14563f;--green-hover:#0f4532;--on-green:#fff;--link:#14563f;--carrot:#f5821e;--band:#1f9d552e;--band-edge:#1f9d5599;--spark:#2a6f57;--ok:#1d7a46;--alert:#b42318;--alert-bg:#fdecea;--offline:#585c59;--offline-bg:#efeeea;--focus:#e96d00;--display:"Baloo 2", "Nunito", system-ui, sans-serif;--sans:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12120f;--surface:#1c1c18;--alt:#171713;--line:#2f2e28;--ink:#f2f1ec;--ink-2:#cfcec6;--muted:#a8a79c;--green:#5cc494;--green-hover:#7ad3a9;--on-green:#0b1f16;--link:#7ad3a9;--band:#5cc49433;--band-edge:#5cc494a6;--spark:#7ad3a9;--ok:#5cc494;--alert:#ff8a7a;--alert-bg:#3a1714;--offline:#a8a79c;--offline-bg:#26251f;--focus:#f5a25a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#12120f;--surface:#1c1c18;--alt:#171713;--line:#2f2e28;--ink:#f2f1ec;--ink-2:#cfcec6;--muted:#a8a79c;--green:#5cc494;--green-hover:#7ad3a9;--on-green:#0b1f16;--link:#7ad3a9;--band:#5cc49433;--band-edge:#5cc494a6;--spark:#7ad3a9;--ok:#5cc494;--alert:#ff8a7a;--alert-bg:#3a1714;--offline:#a8a79c;--offline-bg:#26251f;--focus:#f5a25a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--sans);margin:0}h1,h2{font-family:var(--display);color:var(--green);margin:0 0 .5em;font-weight:700;line-height:1.2}h2{font-size:22px}a{color:var(--link);text-underline-offset:3px}a,button,summary{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}button{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:700 15px/1.2 var(--sans);border-radius:6px;padding:8px 14px}button:hover:not(:disabled){border-color:var(--green)}button.primary{background:var(--green);border-color:var(--green);color:var(--on-green)}button.primary:hover:not(:disabled){background:var(--green-hover)}button.icon{width:44px;padding:0;font-size:18px}.loading,.note{color:var(--muted);padding:24px 16px}.error{color:var(--alert);background:var(--alert-bg);border-radius:6px;padding:10px 14px}.error button{min-height:36px;margin-left:8px}.top{top:env(safe-area-inset-top,0px);z-index:2;padding:8px max(16px, env(safe-area-inset-right,0px)) 8px max(16px, env(safe-area-inset-left,0px));background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex;position:sticky}.brand{min-height:44px;font:700 22px/1 var(--display);color:var(--green);align-items:center;gap:8px;margin-right:auto;text-decoration:none;display:inline-flex}.brand img{border-radius:8px}.who{color:var(--muted);font-size:14px}@media (width<=480px){.who,.brand span{display:none}.top{gap:8px}}main{max-width:1200px;padding:20px max(16px, env(safe-area-inset-right,0px)) 48px max(16px, env(safe-area-inset-left,0px));margin:0 auto}.attention{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-bottom:28px;padding:14px 18px}.attention h2{margin:0;font-size:20px}.attention.good h2{color:var(--ok)}.attention.bad{border-color:var(--alert);background:var(--alert-bg)}.attention.bad h2{color:var(--alert);margin-bottom:8px}.attention ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.attention li{flex-wrap:wrap;align-items:baseline;gap:0 10px;display:flex}.attention li a{align-items:center;min-height:32px;font-weight:700;display:inline-flex}.attention li span{color:var(--ink-2)}.site{margin-bottom:36px}.site h2{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.org{font:400 14px/1 var(--sans);color:var(--muted)}.tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:10px;gap:8px;min-width:0;padding:14px 16px;text-decoration:none;display:grid}.tile:hover{border-color:var(--green)}.tile{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.tile.dragging{z-index:3;cursor:grabbing;position:relative;box-shadow:0 12px 28px #00000038}.tile-head{position:relative}.move{opacity:0;pointer-events:none;width:36px;min-height:36px;padding:0;font-size:18px;line-height:1;position:absolute;top:-8px;left:-10px}.move:focus-visible{opacity:1;pointer-events:auto;z-index:1}.tile.alert{border-color:var(--alert);box-shadow:inset 0 0 0 1px var(--alert)}.tile.offline{background:var(--offline-bg)}.tile-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tile-name{overflow-wrap:anywhere;font-weight:700}.state{white-space:nowrap;font-size:13px;font-weight:700}.state.ok{color:var(--ok)}.state.alert{color:var(--alert)}.state.offline{color:var(--offline)}.reading{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.reading.empty{color:var(--muted)}.value{font:500 40px/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tile.offline .value{color:var(--offline)}.unit{font:500 18px/1 var(--mono);color:var(--ink-2)}.delta{color:var(--muted);flex-basis:100%;font-size:13px}.band{background:var(--line);border-radius:4px;height:8px;margin-top:4px;position:relative}.band-ok{background:var(--band);border-left:2px solid var(--band-edge);border-right:2px solid var(--band-edge);position:absolute;top:-4px;bottom:-4px}.band-mark{background:var(--carrot);width:12px;height:12px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;margin:-6px 0 0 -6px;position:absolute;top:50%}.tile.alert .band-mark{background:var(--alert)}.range{color:var(--muted);font-size:13px}.spark{width:100%;height:48px;display:block}.spark-band{fill:var(--band)}.spark-line{fill:none;stroke:var(--spark);stroke-width:1.75px}.tile-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13px;display:flex}.tile-foot .low{color:var(--alert);font-weight:700}.gateways{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin-top:12px;font-size:14px;display:flex}.gateways .offline{color:var(--alert);font-weight:700}h1{margin-top:4px;font-size:clamp(26px,4vw,34px)}.back{margin:0 0 6px}.back a{align-items:center;min-height:44px;display:inline-flex}.meta{color:var(--muted);margin:-4px 0 18px}code{font:500 .92em var(--mono)}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:20px;padding:16px 18px}.card h2{font-size:20px}.pill{border:1px solid var(--line);color:var(--ink-2);vertical-align:2px;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.readings{flex-wrap:wrap;gap:12px 32px;margin:0 0 20px;display:flex}.readings dt{color:var(--muted);font-size:14px}.readings dd{align-items:baseline;gap:4px;margin:0;display:flex}.readings .value{font-size:34px}.seg{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.seg button{min-height:40px;padding:6px 12px;font-size:14px}.seg button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--on-green)}.chart{margin:0}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart svg:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.chart-band{fill:var(--band)}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-tick{fill:var(--muted);font:500 12px var(--mono)}.chart-line{fill:none;stroke:var(--spark);stroke-width:2px}.chart-cross{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.chart-dot{fill:var(--carrot);stroke:var(--surface);stroke-width:2px}.chart-read{color:var(--ink-2);min-height:1.5em;margin-top:6px;font-size:14px}.list,.rules{margin:0 0 12px;padding:0;list-style:none}.list li,.rules li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:10px 0;display:flex}.list li:last-child,.rules li:last-child{border-bottom:0}.list li.open{color:var(--alert);font-weight:700}.sub{color:var(--muted);font-size:14px;font-weight:400}.rule-actions{gap:6px;display:flex}.rule-actions button{min-height:40px;padding:6px 12px;font-size:14px}.rules li form{flex-basis:100%}.form{gap:12px;display:grid}.fields{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px;display:grid}.form label:not(.check){align-content:start;gap:4px;font-size:15px;font-weight:700;display:grid}.form input:not([type=checkbox]),.form select{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:400 16px/1.2 var(--sans);border-radius:6px;padding:8px 12px}.check{align-items:center;gap:8px;min-height:40px;font-weight:700;display:flex}.check input{width:20px;height:20px;accent-color:var(--green)}.hint{color:var(--muted);font-size:13px;font-weight:400}fieldset{border:1px solid var(--line);border-radius:8px;margin:0;padding:10px 14px}legend{padding:0 4px;font-weight:700}.actions{flex-wrap:wrap;gap:8px;display:flex}button.danger{color:var(--alert);border-color:var(--alert)}button.danger:hover:not(:disabled){background:var(--alert-bg)}.tabs{border-bottom:1px solid var(--line);background:var(--bg);overflow-x:auto}.tabs ul{max-width:1200px;padding:0 max(16px, env(safe-area-inset-right,0px)) 0 max(16px, env(safe-area-inset-left,0px));gap:2px;margin:0 auto;list-style:none;display:flex}.tabs a{min-height:44px;color:var(--ink-2);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;padding:0 12px;font-weight:700;text-decoration:none;display:inline-flex}.tabs a:hover{color:var(--green)}.tabs a[aria-current=page]{color:var(--green);border-bottom-color:var(--carrot)}.demo{background:var(--alt);border:1px solid var(--line);border-radius:10px;margin-bottom:20px;padding:12px 16px}.demo p{margin:0 0 8px}.demo .actions{align-items:center}.fold{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:0 16px}.fold>summary{flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:52px;padding:8px 0;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸";color:var(--muted)}.fold[open]>summary:before{content:"▾"}.fold-name{font:700 19px/1.2 var(--display);color:var(--green)}.fold-sum{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:inline-flex}.fold[open]{padding-bottom:16px}.pill.bad{color:var(--alert);border-color:var(--alert)}.pill.good{color:var(--ok)}.pill.warn{color:var(--carrot-text,var(--alert))}.site-tools{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.site-tools input{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:400 16px/1.2 var(--sans);border-radius:6px;flex:240px;padding:8px 12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.insight h3{font:700 17px/1.3 var(--sans);color:var(--ink);margin:0 0 6px}.insight.concern{border-color:var(--carrot)}.evidence{grid-template-columns:max-content 1fr;gap:2px 14px;margin:8px 0 0;font-size:14px;display:grid}.evidence div{display:contents}.evidence dt{color:var(--muted)}.evidence dd{margin:0}.tile.hidden{opacity:.8;border-style:dashed}.state.hidden{color:var(--muted)}.room .miniplan{width:100%;height:60px}.miniplan rect{fill:none;stroke:var(--line)}.miniplan circle.ok{fill:var(--ok)}.miniplan circle.alert{fill:var(--alert)}.miniplan circle.offline,.miniplan circle.hidden{fill:var(--offline)}.gateways a{color:inherit;align-items:center;min-height:32px;display:inline-flex}.gateways a.offline{color:var(--alert);font-weight:700}.small-btn{margin-top:12px}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.inline-form label{font-weight:700}.inline-form input{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:400 16px/1.2 var(--sans);border-radius:6px;flex:200px;padding:8px 12px}.alerts .kind{color:var(--muted);font-weight:700}.alerts .kind.bad{color:var(--alert)}.label{margin:0;font-size:15px;font-weight:700}.months{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.months a{border:1.5px solid var(--line);border-radius:6px;align-items:center;min-height:44px;padding:0 14px;font-weight:700;text-decoration:none;display:inline-flex}.months a:hover{border-color:var(--green)}.search{border:1.5px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:400 17px/1.2 var(--sans);border-radius:8px;padding:10px 14px}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chips button{min-height:40px;padding:6px 12px;font-size:14px}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.row-between .actions a{align-items:center;min-height:44px;font-weight:700;display:inline-flex}.help-device.alerting{border-color:var(--alert)}.help-article h3{font:700 18px/1.3 var(--display);color:var(--green);margin:0 0 8px}.help-article p,.help-article li{color:var(--ink-2)}.plan{aspect-ratio:5/3;border:1.5px dashed var(--line);background:var(--alt);touch-action:none;border-radius:8px;max-height:60vh;margin-bottom:8px;position:relative}.plan-empty{text-align:center;color:var(--muted);place-items:center;margin:0;padding:16px;display:grid;position:absolute;inset:0}.pin{cursor:grab;background:0 0;border:0;align-items:center;gap:6px;min-height:0;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.pin.dragging{cursor:grabbing;z-index:2}.pin-dot{width:30px;height:30px;font:700 14px var(--mono);color:#fff;background:var(--ok);box-shadow:0 0 0 3px var(--surface);border-radius:50%;place-items:center;display:grid}.pin.alert .pin-dot{background:var(--alert)}.pin.offline .pin-dot{background:var(--offline)}.pin-label{background:var(--surface);border:1px solid var(--line);white-space:nowrap;color:var(--ink);border-radius:6px;padding:2px 8px;font-size:13px}.daybars{width:100%;height:60px;margin:8px 0;display:block}.daybars rect{fill:var(--spark)}.tally li{align-items:center}.tally-name{flex:240px;gap:4px;display:grid}.tallybar{background:var(--alt);border-radius:3px;height:6px;display:block}.tallybar span{background:var(--green);border-radius:3px;height:100%;display:block}.list li.seen{opacity:.7}.table-wrap{overflow-x:auto}.speed{border-collapse:collapse;width:100%;font-size:14px}.speed th,.speed td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px}.speed td{font:500 13px var(--mono);font-variant-numeric:tabular-nums}.speed thead th{color:var(--muted);font-weight:700}.speed tr.slow td{color:var(--alert);font-weight:700}.site-tools select{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:400 16px var(--sans);border-radius:6px;padding:8px 12px}.hash{color:var(--muted);overflow-wrap:anywhere;font-size:11px;display:block}.adder{margin-top:12px}.adder>summary{min-height:44px;color:var(--link);cursor:pointer;align-items:center;font-weight:700;display:inline-flex}.adder[open]>summary{margin-bottom:8px}.btn-link{align-items:center;min-height:44px;padding:0 6px;font-weight:700;display:inline-flex}.indent{padding-left:28px}.list li>form{flex-basis:100%;margin-top:8px}.fold h3{font:700 17px/1.3 var(--display);color:var(--green);margin:16px 0 6px}.hopmap{border:1px solid var(--line);background:var(--band);border-radius:10px;margin:6px 0 10px;position:relative;overflow:hidden}.hopmap-tile{border:0;width:256px;height:256px;position:absolute}.hopmap-pin{z-index:2;flex-direction:column;align-items:center;text-decoration:none;display:flex;position:absolute;transform:translate(-50%,-100%)}.hopmap-dot{background:var(--carrot);border:2px solid #fff;border-radius:50% 50% 50% 0;order:2;width:13px;height:13px;margin-top:2px;transform:rotate(-45deg);box-shadow:0 1px 3px #0006}.hopmap-label{color:#1a202c;white-space:nowrap;text-overflow:ellipsis;background:#ffffffeb;border-radius:4px;order:1;max-width:160px;padding:1px 5px;font-size:12px;font-weight:700;overflow:hidden}.hopmap-credit{z-index:3;color:#1a202c;background:#ffffffd1;border-top-left-radius:4px;padding:1px 5px;font-size:11px;position:absolute;bottom:0;right:0}.login{text-align:center;max-width:360px;margin:10vh auto 0}.login img{border-radius:14px}.login form{text-align:left;gap:6px;margin-top:16px;display:grid}.login label{margin-top:8px;font-weight:700}.login input{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:400 16px/1.2 var(--sans);border-radius:6px;padding:8px 12px}.login button{margin-top:14px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
