@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-canvas:#f3f4f2;--bg-surface:#fff;--bg-subtle:#f7f8f6;--bg-muted:#eceeeb;--bg-hover:#eef0ed;--bg-selected:#e6e9e5;--bg-inverse:#1a1e1b;--bg-inverse-hover:#2c322e;--bg-overlay:#1418156b;--fg:#171a18;--fg-secondary:#4a514c;--fg-muted:#626963;--fg-inverse:#fff;--fg-disabled:#9aa09b;--border:#dde1dc;--border-strong:#c4c9c3;--border-subtle:#e9ebe8;--border-input:#8e948f;--focus-ring:#6a4fd8;--tempo-blue:#2756d8;--tempo-blue-fg:#1c43ad;--tempo-blue-bg:#e9effd;--tempo-blue-soft:#b9cbf6;--tempo-white:#fff;--tempo-white-edge:#8f968f;--tempo-white-fg:#171a18;--tempo-white-bg:#f1f2f0;--tempo-white-soft:#f6f7f5;--tempo-red:#d02b2b;--tempo-red-fg:#a51e21;--tempo-red-bg:#fdecec;--tempo-red-soft:#f3bcbc;--tempo-unknown:#868d88;--tempo-unknown-fg:#4a514c;--tempo-unknown-bg:#eceeeb;--tempo-unknown-soft:#d5d9d4;--ok:#1d7a48;--ok-bg:#e6f4ec;--ok-border:#b5dcc4;--warn:#965500;--warn-bg:#fdf4e3;--warn-border:#efd4a0;--danger:#b42323;--danger-bg:#fdeeed;--danger-border:#f1c2bf;--danger-hover:#981b1b;--info:#4a514c;--info-bg:#f1f2f0;--info-border:#dde1dc;--override:#7a4b00;--override-bg:#fbf1dc;--font-sans:"Archivo Variable", "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--stretch-readout:84%;--stretch-title:96%;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.375rem;--text-2xl:1.625rem;--text-readout:1.75rem;--text-display:2.75rem;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--weight-regular:400;--weight-medium:520;--weight-semibold:600;--weight-bold:680;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--shadow-raised:0 1px 0 #1418150a;--shadow-pop:0 12px 32px -8px #14181538, 0 2px 6px #14181514;--shadow-sheet:-16px 0 48px -12px #14181547;--control-h:2.5rem;--control-h-sm:2rem;--touch-min:2.75rem;--sidebar-w:15.5rem;--topbar-h:3.5rem;--tabbar-h:4rem;--content-max:76rem;--ease-out:cubic-bezier(.2, .8, .2, 1);--duration-fast:.12s;--duration-base:.18s;--duration-slow:.26s;--z-sticky:20;--z-nav:30;--z-popover:40;--z-toast:60}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-canvas:#0f1110;--bg-surface:#171a18;--bg-subtle:#1b1f1c;--bg-muted:#222724;--bg-hover:#232825;--bg-selected:#2a302c;--bg-inverse:#eceeec;--bg-inverse-hover:#fff;--bg-overlay:#0009;--fg:#eceeec;--fg-secondary:#b6bcb7;--fg-muted:#929993;--fg-inverse:#121513;--fg-disabled:#5d645f;--border:#2b302d;--border-strong:#3d433f;--border-subtle:#222624;--border-input:#6a706b;--focus-ring:#a693ff;--tempo-blue:#5b86f0;--tempo-blue-fg:#aac0ff;--tempo-blue-bg:#18254a;--tempo-blue-soft:#2b3f73;--tempo-white:#e8ebe9;--tempo-white-edge:#747b76;--tempo-white-fg:#eceeec;--tempo-white-bg:#262b28;--tempo-white-soft:#4a504c;--tempo-red:#ec5b57;--tempo-red-fg:#ffaba7;--tempo-red-bg:#3c1b1c;--tempo-red-soft:#6e2d2c;--tempo-unknown:#7a817c;--tempo-unknown-fg:#b6bcb7;--tempo-unknown-bg:#222724;--tempo-unknown-soft:#3a403c;--ok:#62c98f;--ok-bg:#12291c;--ok-border:#24543a;--warn:#f0b44c;--warn-bg:#2d2210;--warn-border:#5a4419;--danger:#ff8d87;--danger-bg:#351819;--danger-border:#6a2b2a;--danger-hover:#ffb0ab;--info:#b6bcb7;--info-bg:#1f2320;--info-border:#2b302d;--override:#f0b44c;--override-bg:#2a2111;--shadow-raised:0 1px 0 #0000004d;--shadow-pop:0 16px 40px -8px #0009, 0 0 0 1px var(--border);--shadow-sheet:-16px 0 48px -12px #000000b3}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg-canvas);min-height:100dvh;color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-weight:var(--weight-regular);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,h4{font-weight:var(--weight-semibold);line-height:var(--leading-tight);font-stretch:var(--stretch-title);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0}dl,dd{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}svg{flex-shrink:0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:focus:not(:focus-visible),[tabindex="-1"]:focus{outline:none}::selection{background:var(--tempo-blue-soft)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--bg-inverse);color:var(--fg-inverse);font-weight:var(--weight-semibold);text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:none}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.readout{font-stretch:var(--stretch-readout);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);letter-spacing:-.01em;white-space:nowrap}.text-secondary{color:var(--fg-secondary)}.text-muted{color:var(--fg-muted)}.text-sm{font-size:var(--text-sm)}.text-pre{white-space:pre-line}.break-anywhere{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{--btn-bg:var(--bg-surface);--btn-fg:var(--fg);--btn-border:var(--border-strong);--btn-bg-hover:var(--bg-hover);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--space-4);border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-md);font-weight:var(--weight-medium);white-space:nowrap;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease;-webkit-user-select:none;user-select:none;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:var(--btn-bg-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5}.btn[aria-busy=true]{cursor:progress}.btn-primary{--btn-bg:var(--bg-inverse);--btn-fg:var(--fg-inverse);--btn-border:var(--bg-inverse);--btn-bg-hover:var(--bg-inverse-hover)}.btn-secondary{--btn-bg:var(--bg-surface)}.btn-ghost{--btn-bg:transparent;--btn-border:transparent;--btn-fg:var(--fg-secondary)}.btn-ghost:hover:not(:disabled){color:var(--fg)}.btn-danger{--btn-bg:var(--danger);--btn-fg:var(--fg-inverse);--btn-border:var(--danger);--btn-bg-hover:var(--danger-hover)}.btn-sm{min-height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--text-sm)}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:var(--control-h-sm)}.btn-sm:after,.btn-icon:after{content:"";width:max(100%, var(--touch-min));height:max(100%, var(--touch-min));position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.btn-block{width:100%}.spinner{width:1em;height:1em;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);z-index:var(--z-popover);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:var(--bg-inverse);color:var(--fg-inverse);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-snug);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) ease, transform var(--duration-fast) ease;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,2px)}[data-tooltip][data-tooltip-side^=bottom]:before{top:calc(100% + 6px);bottom:auto}[data-tooltip][data-tooltip-side$=end]:before{left:auto;right:0;transform:translateY(2px)}@media (hover:hover){[data-tooltip]:hover:before{opacity:1;transition-delay:.35s;transform:translate(-50%)}[data-tooltip][data-tooltip-side$=end]:hover:before{transform:none}}[data-tooltip]:focus-visible:before{opacity:1;transform:translate(-50%)}[data-tooltip][data-tooltip-side$=end]:focus-visible:before{transform:none}.field{gap:var(--space-1);min-width:0;display:grid}.field-label{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--fg)}.field-hint{font-size:var(--text-sm);color:var(--fg-muted)}.field-error{gap:var(--space-1);font-size:var(--text-sm);color:var(--danger);font-weight:var(--weight-medium);align-items:flex-start;display:flex}.field-error svg{margin-top:.15em}.input,.select{width:100%;min-width:0;min-height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--fg);font-size:1rem;line-height:var(--leading-snug);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease}@media (min-width:768px){.input,.select{font-size:var(--text-md)}}.input::placeholder{color:var(--fg-muted)}.input:hover:not(:disabled),.select:hover:not(:disabled){border-color:var(--fg-muted)}.input:focus-visible,.select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:0;border-color:var(--focus-ring)}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger)}.input:disabled,.select:disabled{background:var(--bg-muted);color:var(--fg-disabled)}.select{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg, transparent 50%, var(--fg-muted) 50%), linear-gradient(135deg, var(--fg-muted) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}.input-group{align-items:stretch;min-width:0;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-addon{padding:0 var(--space-3);border:1px solid var(--border-input);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-subtle);color:var(--fg-muted);font-size:var(--text-md);white-space:nowrap;border-left:0;align-items:center;display:inline-flex}.segmented{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-muted);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;min-width:0;margin:0;padding:2px;display:inline-grid}.segmented-block{width:100%;display:grid}.segmented-option{display:flex;position:relative}.segmented-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented-option span{justify-content:center;align-items:center;gap:var(--space-2);min-height:calc(var(--control-h) - 6px);padding:0 var(--space-3);border-radius:calc(var(--radius-sm) - 2px);color:var(--fg-secondary);font-size:var(--text-md);font-weight:var(--weight-medium);white-space:nowrap;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;flex:1;display:inline-flex}.segmented-option input:hover+span{color:var(--fg)}.segmented-option input:checked+span{background:var(--bg-surface);color:var(--fg);box-shadow:0 1px 2px #1418151f, 0 0 0 1px var(--border)}.segmented-option input:focus-visible+span{outline:2px solid var(--focus-ring);outline-offset:1px}fieldset.fieldset{gap:var(--space-2);border:0;min-width:0;margin:0;padding:0;display:grid}fieldset.fieldset>legend{margin-bottom:var(--space-1);font-size:var(--text-md);font-weight:var(--weight-medium);padding:0}.choice-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));display:grid}.choice{display:flex;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice-body{align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--text-md);font-weight:var(--weight-medium);transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;flex:1;display:flex}.choice-body small{color:var(--fg-muted);font-size:var(--text-xs);font-weight:var(--weight-regular);display:block}.choice input:hover+.choice-body{border-color:var(--fg-muted)}.choice input:checked+.choice-body{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.choice input:focus-visible+.choice-body{outline:2px solid var(--focus-ring);outline-offset:2px}.quick-picks{gap:var(--space-2);flex-wrap:wrap;display:flex}.badge{max-width:100%;min-height:1.375rem;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--fg-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;vertical-align:middle;align-items:center;gap:.35em;line-height:1;display:inline-flex}.badge svg{width:.9rem;height:.9rem}.badge-ok{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.badge-warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}.badge-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.badge-override{background:var(--override-bg);border-color:var(--warn-border);color:var(--override)}.status-dot{background:var(--fg-muted);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;display:inline-block}.status-dot-ok{background:var(--ok)}.status-dot-warn{background:var(--warn)}.status-dot-danger{background:var(--danger)}.tempo-disc{background:var(--tempo-unknown);border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem;display:inline-block}.tempo-disc[data-color=BLUE]{background:var(--tempo-blue)}.tempo-disc[data-color=WHITE]{background:var(--tempo-white);box-shadow:inset 0 0 0 1.5px var(--tempo-white-edge)}.tempo-disc[data-color=RED]{background:var(--tempo-red)}.tempo-disc[data-color=UNKNOWN]{box-shadow:inset 0 0 0 1.5px var(--tempo-unknown);background:0 0;background-image:repeating-linear-gradient(-45deg, var(--tempo-unknown) 0 1.5px, transparent 1.5px 4px)}.tempo-chip{align-items:center;gap:var(--space-2);min-height:1.5rem;padding:0 var(--space-2) 0 .375rem;border-radius:var(--radius-full);background:var(--tempo-unknown-bg);color:var(--tempo-unknown-fg);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;line-height:1;display:inline-flex}.tempo-chip[data-color=BLUE]{background:var(--tempo-blue-bg);color:var(--tempo-blue-fg)}.tempo-chip[data-color=WHITE]{background:var(--tempo-white-bg);color:var(--tempo-white-fg)}.tempo-chip[data-color=RED]{background:var(--tempo-red-bg);color:var(--tempo-red-fg)}.tempo-chip-code{font-weight:var(--weight-regular);opacity:.8}.alert{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--info-border);border-radius:var(--radius-md);background:var(--info-bg);color:var(--fg);font-size:var(--text-md);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.alert-icon{width:1.125rem;height:1.125rem;color:var(--info);margin-top:.1rem}.alert-title{font-weight:var(--weight-semibold)}.alert-body{gap:var(--space-1);min-width:0;display:grid}.alert-content{color:var(--fg-secondary);overflow-wrap:anywhere}.alert-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.alert-warn{background:var(--warn-bg);border-color:var(--warn-border)}.alert-warn .alert-icon{color:var(--warn)}.alert-danger{background:var(--danger-bg);border-color:var(--danger-border)}.alert-danger .alert-icon{color:var(--danger)}.alert-ok{background:var(--ok-bg);border-color:var(--ok-border)}.alert-ok .alert-icon{color:var(--ok)}.alert-stack{gap:var(--space-2);display:grid}.panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);min-width:0;box-shadow:var(--shadow-raised)}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.panel-title{font-size:var(--text-lg)}.panel-subtitle{font-size:var(--text-sm);color:var(--fg-muted);margin-top:2px}.panel-body{padding:var(--space-5)}.panel-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--bg-subtle);border-radius:0 0 var(--radius-md) var(--radius-md);flex-wrap:wrap;display:flex}.table-scroll{min-width:0;position:relative;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-md)}.table th,.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top}.table thead th{padding-top:var(--space-2);padding-bottom:var(--space-2);border-bottom-color:var(--border);background:var(--bg-subtle);color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap}.table tbody tr:last-child>*{border-bottom:0}.table tbody tr[data-interactive]:hover>*{background:var(--bg-subtle)}.table .cell-tight{white-space:nowrap;width:1%}.table .cell-end{text-align:right}.table-group th{padding-top:var(--space-4);padding-bottom:var(--space-2);background:var(--bg-surface);color:var(--fg-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-bottom-color:var(--border)}@media (max-width:767px){.table-stack thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table-stack,.table-stack tbody{display:block}.table-stack tbody tr:not(.table-group):not(.table-detail){gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) auto;display:grid}.table-stack tbody tr>*{border:0;padding:0;display:block}.table-stack tbody tr>[data-label]{gap:var(--space-3);grid-column:1/-1;grid-template-columns:5.5rem minmax(0,1fr);display:grid}.table-stack tbody tr>[data-label]:before{content:attr(data-label);color:var(--fg-muted);font-size:var(--text-sm)}.table-stack .table-group,.table-stack .table-detail{display:block}.table-stack .table-group th{padding:var(--space-4) var(--space-4) var(--space-2);display:block}.table-stack .table-detail td{padding:0 var(--space-4) var(--space-4);border-bottom:1px solid var(--border-subtle);display:block}.table .cell-end{text-align:left}}@media (max-width:359px){.table-stack tbody tr>[data-label]{grid-template-columns:minmax(0,1fr);gap:0}}.dl{gap:var(--space-2) var(--space-6);font-size:var(--text-md);grid-template-columns:minmax(8rem,max-content) minmax(0,1fr);display:grid}.dl dt{color:var(--fg-muted)}.dl dd{overflow-wrap:anywhere;min-width:0}@media (max-width:479px){.dl{grid-template-columns:minmax(0,1fr);gap:0}.dl dd{margin-bottom:var(--space-2)}}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.tab{align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);color:var(--fg-muted);font-size:var(--text-md);font-weight:var(--weight-medium);white-space:nowrap;background:0 0;border:0;display:inline-flex;position:relative}.tab:hover,.tab[aria-selected=true]{color:var(--fg)}.tab[aria-selected=true]:after{content:"";left:var(--space-2);right:var(--space-2);background:var(--fg);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px}.tab-count{border-radius:var(--radius-full);background:var(--bg-muted);min-width:1.25rem;color:var(--fg-secondary);font-size:var(--text-xs);text-align:center;font-variant-numeric:tabular-nums;padding:0 .375rem;line-height:1.25rem}.tab:focus-visible{outline-offset:-2px}.pagination{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-md);color:var(--fg-secondary);display:flex}.pagination-controls{gap:var(--space-2);display:flex}.skeleton{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--bg-muted) 0%, var(--bg-hover) 50%, var(--bg-muted) 100%);background-size:200% 100%;height:.875rem;animation:1.4s ease-in-out infinite shimmer;display:block}.skeleton-lg{height:1.75rem}.skeleton-block{border-radius:var(--radius-sm);height:4.5rem}.skeleton-w-25{width:25%}.skeleton-w-40{width:40%}.skeleton-w-60{width:60%}.skeleton-w-80{width:80%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-stack{gap:var(--space-3);display:grid}.empty{justify-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-5);text-align:center;display:grid}.empty-icon{width:2.5rem;height:2.5rem;margin-bottom:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--fg-muted);place-items:center;display:grid}.empty-title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.empty-text{max-width:26rem;color:var(--fg-muted);font-size:var(--text-md)}.empty-actions{margin-top:var(--space-2)}.empty-compact{padding:var(--space-6) var(--space-4)}.menu-anchor{position:relative}.menu{z-index:var(--z-popover);min-width:14rem;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-pop);animation:pop-in var(--duration-base) var(--ease-out);position:absolute}.menu-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-1)}.menu-item{align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--fg);font-size:var(--text-md);text-align:left;background:0 0;border:0;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--bg-hover);outline:none}.menu-item svg{color:var(--fg-muted)}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)scale(.98)}}.dialog{width:min(28rem, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--fg);box-shadow:var(--shadow-pop);padding:0;overflow:auto}.dialog[open]{animation:pop-in var(--duration-base) var(--ease-out)}.dialog::backdrop{background:var(--bg-overlay)}.dialog-body{gap:var(--space-2);padding:var(--space-6) var(--space-6) var(--space-4);display:grid}.dialog-title{font-size:var(--text-lg)}.dialog-text{color:var(--fg-secondary);font-size:var(--text-md)}.dialog-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6);flex-wrap:wrap-reverse;display:flex}.sheet{border:0;border-left:1px solid var(--border);background:var(--bg-surface);width:min(30rem,100vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--fg);box-shadow:var(--shadow-sheet);margin:0 0 0 auto;padding:0}.sheet[open]{animation:sheet-in var(--duration-slow) var(--ease-out);flex-direction:column;display:flex}.sheet::backdrop{background:var(--bg-overlay)}@keyframes sheet-in{0%{opacity:0;transform:translate(24px)}}.sheet-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-4) var(--space-6);border-bottom:1px solid var(--border);display:flex}.sheet-title{font-size:var(--text-lg)}.sheet-description{margin-top:var(--space-1);color:var(--fg-muted);font-size:var(--text-sm)}.sheet-body{overscroll-behavior:contain;padding:var(--space-5) var(--space-6);flex:1;overflow-y:auto}.sheet-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-subtle);display:flex}.toast-region{z-index:var(--z-toast);right:var(--space-4);bottom:var(--space-4);gap:var(--space-2);width:min(24rem, calc(100vw - 2 * var(--space-4)));pointer-events:none;display:grid;position:fixed}@media (max-width:767px){.toast-region{bottom:calc(var(--tabbar-h) + var(--space-3) + env(safe-area-inset-bottom))}}.toast{gap:var(--space-3);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-inverse);color:var(--fg-inverse);box-shadow:var(--shadow-pop);font-size:var(--text-md);pointer-events:auto;animation:pop-in var(--duration-base) var(--ease-out);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.toast svg{margin-top:.15rem}.toast-ok svg:first-child{color:var(--ok)}.toast-danger svg:first-child{color:var(--danger)}.toast .btn{--btn-fg:var(--fg-inverse);--btn-bg-hover:var(--bg-inverse-hover);margin:-.25rem 0}@media (prefers-color-scheme:dark){.toast-ok svg:first-child{color:var(--ok-border)}.toast-danger svg:first-child{color:var(--danger-border)}}.inline-status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--fg-muted);display:inline-flex}.inline-status-ok{color:var(--ok)}.progress-bar{background:0 0;height:2px;position:absolute;inset:0 0 auto;overflow:hidden}.progress-bar:after{content:"";background:var(--fg);width:30%;animation:indeterminate 1.1s var(--ease-out) infinite;position:absolute;inset:0 auto 0 0}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(340%)}}.code-block{max-height:20rem;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;overflow:auto}.code-inline{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.92em}.avatar{border-radius:var(--radius-sm);background:var(--bg-muted);width:1.75rem;height:1.75rem;color:var(--fg);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;flex-shrink:0;place-items:center;display:inline-grid}.switch{align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);color:var(--fg-secondary);font:inherit;font-size:var(--text-md);cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.switch:disabled{cursor:not-allowed;color:var(--fg-disabled)}.switch-track{border:1px solid var(--border-input);border-radius:var(--radius-full);background:var(--bg-muted);width:2.25rem;height:1.25rem;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;flex:none;position:relative}.switch-thumb{border-radius:var(--radius-full);background:var(--fg-muted);width:calc(1.25rem - 6px);height:calc(1.25rem - 6px);transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) ease;position:absolute;top:2px;left:2px}.switch[data-checked=true] .switch-track{border-color:var(--ok);background:var(--ok)}.switch[data-checked=true] .switch-thumb{background:var(--bg-surface);transform:translate(1rem)}.switch:disabled .switch-track{opacity:.55}.switch:focus-visible{outline:none}.switch:focus-visible .switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){.switch-track,.switch-thumb{transition:none}}.shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{z-index:var(--z-nav);align-items:center;gap:var(--space-1);min-height:var(--topbar-h);padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-canvas);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand actions account";display:grid;position:sticky;top:0}.brand{justify-self:start;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding-right:var(--space-2);border-radius:var(--radius-sm);color:var(--fg);font-weight:var(--weight-semibold);font-size:var(--text-base);font-stretch:var(--stretch-title);white-space:nowrap;grid-area:brand;text-decoration:none;display:inline-flex}.brand-mark-bg{fill:var(--bg-inverse)}.brand-mark-ring{fill:none;stroke:var(--fg-inverse);stroke-width:2px}.brand-mark-dot{fill:var(--fg-inverse);stroke:var(--fg-inverse);stroke-width:1.5px}.brand-mark-dot[data-color=BLUE]{fill:var(--tempo-blue)}.brand-mark-dot[data-color=WHITE]{fill:#fff}.brand-mark-dot[data-color=RED]{fill:var(--tempo-red)}.brand-mark-dot[data-color=UNKNOWN]{fill:var(--tempo-unknown)}.sidebar-actions{gap:var(--space-1);grid-area:actions;display:flex}.nav{grid-area:nav}.nav-list{list-style:none}.nav-link{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);color:var(--fg-secondary);font-size:var(--text-md);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;text-decoration:none;display:flex}.nav-link svg{color:var(--fg-muted);transition:color var(--duration-fast) ease}.nav-link:hover{color:var(--fg)}.nav-link[aria-current=page]{color:var(--fg);font-weight:var(--weight-semibold)}.nav-link[aria-current=page] svg{color:var(--fg)}.nav-label-short{display:none}@media (max-width:399px){.nav-label-full{display:none}.nav-label-short{display:inline}}.system{grid-area:system;display:none}.account{grid-area:account;min-width:0}.account-trigger{align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-min);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--fg);text-align:left;background:0 0;border:0;display:flex}.account-trigger:hover,.account-trigger[aria-expanded=true]{background:var(--bg-hover)}.account-text{min-width:0;display:none}.account-name{font-size:var(--text-md);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-role{color:var(--fg-muted);font-size:var(--text-xs)}.account-menu{top:calc(100% + var(--space-1));right:0}.account-menu-name{margin-bottom:var(--space-1);font-weight:var(--weight-semibold)}.main{outline:none;min-width:0}@media (max-width:767px){.nav{z-index:var(--z-nav);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--bg-surface);position:fixed;inset:auto 0 0}.nav-list{height:var(--tabbar-h);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.nav-link{height:100%;padding:0 var(--space-1);text-align:center;border-radius:0;flex-direction:column;justify-content:center;gap:3px;font-size:.6875rem;position:relative}.nav-link span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.nav-link[aria-current=page]:before{content:"";background:var(--fg);border-radius:0 0 2px 2px;height:2px;position:absolute;top:-1px;left:25%;right:25%}.main{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}}@media (min-width:768px) and (max-width:1023px){.sidebar{gap:var(--space-3);padding:0 var(--space-3) 0 var(--space-6);grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"brand nav actions account"}.nav-list{justify-content:center;gap:var(--space-1);display:flex}.nav-link{height:2.25rem;padding:0 var(--space-3);white-space:nowrap}.nav-link:hover{background:var(--bg-hover)}.nav-link[aria-current=page]{background:var(--bg-selected)}}@media (min-width:768px) and (max-width:959px){.nav-link svg{display:none}}@media (min-width:1024px){.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);grid-template-rows:none}.sidebar{height:100dvh;padding:var(--space-3);border-bottom:0;border-right:1px solid var(--border);grid-template:"brand actions""nav nav""system system"1fr"account account"/minmax(0,1fr) auto;align-items:start;gap:0;overflow-y:auto}.brand{padding-left:var(--space-1)}.nav{margin-top:var(--space-5)}.nav-list{gap:2px;display:grid}.nav-link{gap:var(--space-3);height:2.25rem;padding:0 var(--space-3)}.nav-link:hover{background:var(--bg-hover)}.nav-link[aria-current=page]{background:var(--bg-selected)}.system{margin-top:var(--space-6);align-self:end;display:block}.account{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.account-text{display:grid}.account-menu{top:auto;bottom:calc(100% + var(--space-1));left:0;right:0}}.system-list{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);font-size:var(--text-sm);display:grid}.system-list>div{justify-content:space-between;gap:var(--space-2);display:flex}.system-list dt{color:var(--fg-muted)}.system-list dd{font-weight:var(--weight-medium);text-align:right;align-items:center;gap:6px;display:inline-flex}.page{gap:var(--space-5);max-width:var(--content-max);padding:var(--space-5) var(--space-4) var(--space-10);margin:0 auto;display:grid}@media (min-width:768px){.page{gap:var(--space-6);padding:var(--space-8) var(--space-8) var(--space-16)}}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.page-heading{flex:22rem;min-width:0}.page-title{font-size:var(--text-xl);letter-spacing:-.01em}@media (min-width:768px){.page-title{font-size:var(--text-2xl)}}.page-description{max-width:64ch;margin-top:var(--space-1);color:var(--fg-secondary);font-size:var(--text-md)}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.boot{place-content:center;justify-items:center;gap:var(--space-3);min-height:100dvh;color:var(--fg-muted);font-size:var(--text-md);display:grid}.auth{place-content:center;justify-items:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-8) var(--space-4);display:grid}.auth-panel{gap:var(--space-6);width:min(25rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-8) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-raised);display:grid}@media (min-width:480px){.auth-panel{padding:var(--space-10) var(--space-8)}}.auth-brand{align-items:flex-start;gap:var(--space-3);display:flex}.auth-title{font-size:var(--text-xl)}.auth-lead{margin-top:var(--space-1);color:var(--fg-secondary);font-size:var(--text-md)}.auth-form{gap:var(--space-4);display:grid}.auth-form .btn-primary{margin-top:var(--space-1)}.auth-footnote{max-width:25rem;color:var(--fg-muted);font-size:var(--text-sm);text-align:center}.dashboard{gap:var(--space-5);display:grid}.freshness{align-items:center;gap:var(--space-3);color:var(--fg-muted);font-size:var(--text-sm);display:flex}.is-spinning svg{animation:.9s linear infinite spin}.today{overflow:hidden}.today-grid{background:var(--border-subtle);grid-template-columns:minmax(0,1fr);gap:1px;display:grid}@media (min-width:640px){.today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-main{grid-column:1/-1}}@media (min-width:1100px){.today-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}.today-main{grid-column:auto}}.today-cell{align-content:start;gap:var(--space-2);min-width:0;padding:var(--space-5);background:var(--bg-surface);display:grid}.today-main[data-color=BLUE]{background:color-mix(in srgb, var(--tempo-blue-bg) 70%, var(--bg-surface))}.today-main[data-color=RED]{background:color-mix(in srgb, var(--tempo-red-bg) 70%, var(--bg-surface))}.today-main[data-color=WHITE]{background:var(--bg-surface)}.today-main[data-color=UNKNOWN]{background:color-mix(in srgb, var(--tempo-unknown-bg) 60%, var(--bg-surface))}.today-label{color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:0;font-stretch:100%}.today-color{align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.today-disc{width:1.75rem;height:1.75rem}.today-disc[data-color=WHITE]{box-shadow:inset 0 0 0 2px var(--tempo-white-edge)}.today-color-name{font-size:var(--text-display);font-weight:var(--weight-semibold);font-stretch:var(--stretch-readout);letter-spacing:-.02em;line-height:1}.today-main[data-color=BLUE] .today-color-name{color:var(--tempo-blue-fg)}.today-main[data-color=RED] .today-color-name{color:var(--tempo-red-fg)}.today-code{color:var(--fg-secondary);font-size:var(--text-md);font-weight:var(--weight-medium)}.facts{gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-md);display:grid}.facts>div{gap:var(--space-2);grid-template-columns:6.25rem minmax(0,1fr);align-items:baseline;display:grid}@media (max-width:479px){.facts>div{grid-template-columns:5.5rem minmax(0,1fr)}}.facts dt{color:var(--fg-muted)}.facts dd{overflow-wrap:anywhere;min-width:0}.facts-inline{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.today-chip{margin-top:var(--space-1)}.today-chip .tempo-chip{min-height:2rem;padding:0 var(--space-3) 0 var(--space-2);font-size:var(--text-base)}.today-chip .tempo-disc{width:.875rem;height:.875rem}.today-readout{margin-top:var(--space-1);font-size:2rem;line-height:1}.today-sub{color:var(--fg-secondary);font-size:var(--text-md)}.today-next{align-items:center;gap:var(--space-2);margin-top:var(--space-1);font-size:var(--text-md);flex-wrap:wrap;display:flex}.today-ribbon{gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);border-top:1px solid var(--border-subtle);display:grid}.today-ribbon-head{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex}.today-period{color:var(--fg-secondary);font-size:var(--text-md)}.today-period strong{color:var(--fg);font-weight:var(--weight-semibold)}.today-skeleton,.room-skeleton{gap:var(--space-4);padding:var(--space-5);display:grid}.ribbon-placeholder{height:3.875rem}.ribbon{gap:var(--space-2);margin:0;display:grid}.ribbon-svg{font-family:var(--font-sans);display:block;overflow:visible}.ribbon-period{fill:var(--fg-muted);font-size:12px;font-weight:var(--weight-medium)}.ribbon-period[data-current]{fill:var(--fg);font-weight:var(--weight-bold)}.ribbon-tick{fill:var(--fg-muted);font-size:11.5px;font-stretch:var(--stretch-readout);font-variant-numeric:tabular-nums}.ribbon-seg[data-color=BLUE][data-tariff=PEAK]{fill:var(--tempo-blue)}.ribbon-seg[data-color=BLUE][data-tariff=OFFPEAK]{fill:var(--tempo-blue-soft)}.ribbon-seg[data-color=RED][data-tariff=PEAK]{fill:var(--tempo-red)}.ribbon-seg[data-color=RED][data-tariff=OFFPEAK]{fill:var(--tempo-red-soft)}.ribbon-seg[data-color=WHITE]{stroke:var(--tempo-white-edge);stroke-width:1px}.ribbon-seg[data-color=WHITE][data-tariff=PEAK]{fill:var(--tempo-white)}.ribbon-seg[data-color=WHITE][data-tariff=OFFPEAK]{fill:var(--tempo-white-soft)}.ribbon-seg[data-color=UNKNOWN][data-tariff=OFFPEAK]{opacity:.55}.ribbon-hatch-bg{fill:var(--tempo-unknown-bg)}.ribbon-hatch-line{stroke:var(--tempo-unknown);stroke-width:2.5px}.ribbon-gap{stroke:var(--bg-surface);stroke-width:3px}.ribbon-now line{stroke:var(--fg);stroke-width:2px}.ribbon-now circle{fill:var(--fg);stroke:var(--bg-surface);stroke-width:2px}.ribbon-legend{gap:var(--space-1) var(--space-5);color:var(--fg-secondary);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.ribbon-legend>span{align-items:center;gap:var(--space-2);display:inline-flex}.ribbon-swatch{background:var(--tempo-unknown);border-radius:2px;width:.875rem;height:.5rem}.ribbon-swatch[data-color=BLUE][data-tariff=PEAK]{background:var(--tempo-blue)}.ribbon-swatch[data-color=BLUE][data-tariff=OFFPEAK]{background:var(--tempo-blue-soft)}.ribbon-swatch[data-color=RED][data-tariff=PEAK]{background:var(--tempo-red)}.ribbon-swatch[data-color=RED][data-tariff=OFFPEAK]{background:var(--tempo-red-soft)}.ribbon-swatch[data-color=WHITE]{box-shadow:inset 0 0 0 1px var(--tempo-white-edge)}.ribbon-swatch[data-color=WHITE][data-tariff=PEAK]{background:var(--tempo-white)}.ribbon-swatch[data-color=WHITE][data-tariff=OFFPEAK]{background:var(--tempo-white-soft)}.ribbon-swatch[data-color=UNKNOWN][data-tariff=OFFPEAK]{background:var(--tempo-unknown-soft)}.ribbon-swatch-now{background:var(--fg);border-radius:1px;width:2px;height:.875rem}.dashboard-grid{gap:var(--space-5);align-items:start;display:grid}@media (min-width:1280px){.dashboard-grid{grid-template-columns:minmax(0,1fr) 21rem}}.setpoints-intro{padding:var(--space-4) var(--space-5) var(--space-3)}.inline-facts{gap:var(--space-1) var(--space-6);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.inline-facts>div{gap:var(--space-2);display:flex}.inline-facts dt{color:var(--fg-muted)}.inline-facts dd{color:var(--fg-secondary)}.table tbody th[scope=row]{font-weight:inherit}.device-name{color:var(--fg);font-weight:var(--weight-semibold);display:block}.device-meta{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin-top:3px;display:flex}.device-type{align-items:center;gap:var(--space-1);color:var(--fg-muted);font-size:var(--text-sm);display:inline-flex}.device-command{margin-top:var(--space-1);color:var(--fg-muted);font-size:var(--text-sm);display:block}.setpoint{align-items:baseline;gap:var(--space-2);white-space:nowrap;display:inline-flex}.setpoint-value{font-size:1.25rem;line-height:1.15}.setpoint-value[data-mode=OFF]{color:var(--fg-secondary);font-size:var(--text-base)}.setpoint-role{color:var(--fg-muted);font-size:var(--text-sm)}.setpoint-until{color:var(--fg-muted);font-size:var(--text-sm);margin-top:2px;display:block}.setpoints .setpoint-now{white-space:nowrap}.setpoint-reason{max-width:24rem;color:var(--fg-secondary)}.setpoint-change{align-items:center;gap:var(--space-2);display:inline-flex}.setpoint-change>svg{color:var(--fg-muted)}.setpoint-next .setpoint-value{font-size:var(--text-lg)}.setpoints tr[data-override]>*{background:color-mix(in srgb, var(--override-bg) 55%, var(--bg-surface))}.setpoint-actions{vertical-align:middle}@media (max-width:767px){.setpoints tbody tr:not(.table-group){grid-template-columns:minmax(0,1fr) auto auto}.setpoints .setpoint-device{grid-area:1/1}.setpoints .setpoint-now{text-align:right;grid-area:1/2}.setpoints .setpoint-actions{grid-area:1/3}.setpoints [data-label]{grid-column:1/-1}.setpoint-reason{max-width:none}}.notif-list{list-style:none;display:grid}.notif{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:auto minmax(0,1fr);display:grid}.notif:first-child{padding-top:0}.notif:last-child{border-bottom:0;padding-bottom:0}.notif-icon{color:var(--fg-muted);margin-top:3px}.notif[data-level=WARNING] .notif-icon{color:var(--warn)}.notif[data-level=CRITICAL] .notif-icon{color:var(--danger)}.notif-head{justify-content:space-between;align-items:baseline;gap:0 var(--space-3);flex-wrap:wrap;display:flex}.notif-title{font-size:var(--text-md);font-weight:var(--weight-semibold);overflow-wrap:anywhere}.notif-time{color:var(--fg-muted);font-size:var(--text-xs)}.notif-message{color:var(--fg-secondary);font-size:var(--text-md);overflow-wrap:anywhere;margin-top:2px}.providers,.schedule-summary{padding:var(--space-3) var(--space-5)}.provider-list{gap:var(--space-3) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));list-style:none;display:grid}.provider{align-content:start;gap:2px;min-width:0;display:grid}.provider-head{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.provider-name{font-size:var(--text-md);font-weight:var(--weight-semibold)}.provider-meta{color:var(--fg-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.rooms-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,24rem),1fr));align-items:start;display:grid}.room-primary{gap:var(--space-1);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-subtle);display:grid}.room-primary-label{color:var(--fg-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.room-temp{font-size:var(--text-display);letter-spacing:-.02em;line-height:1}.room-temp-missing{color:var(--fg-secondary);font-size:var(--text-base);font-weight:var(--weight-medium)}.room-provenance{color:var(--fg-secondary);font-size:var(--text-md);overflow-wrap:anywhere}.room-note{color:var(--fg-muted);font-size:var(--text-sm)}.source{gap:var(--space-2);min-width:0;display:grid}.room-netatmo{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.room-splits{list-style:none;display:grid}.room-split{gap:var(--space-2);min-width:0;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);display:grid}.room-split:last-child{border-bottom:0}.room-split-head{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.room-split-name{min-width:0;font-size:var(--text-base)}.split-target{align-items:center;gap:var(--space-1);color:var(--fg-secondary);font-size:var(--text-md);display:inline-flex}.source-head{align-items:center;gap:var(--space-1) var(--space-2);color:var(--fg-secondary);font-size:var(--text-md);flex-wrap:wrap;display:flex}.source-note{color:var(--fg-muted);font-size:var(--text-sm)}.reading{gap:var(--space-2) var(--space-4);font-size:var(--text-md);grid-template-columns:repeat(auto-fill,minmax(min(100%,7.5rem),1fr));display:grid}.reading>div{min-width:0}.reading dt{color:var(--fg-muted);font-size:var(--text-sm)}.reading dd{font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.source:is([data-status=STALE],[data-status=OFFLINE],[data-status=MISSING]) .reading dd{color:var(--fg-muted)}.module-list{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-subtle);list-style:none;display:grid}.module{gap:2px;min-width:0;display:grid}.module-name{font-size:var(--text-md);font-weight:var(--weight-medium)}.module-meta{align-items:center;gap:var(--space-1) var(--space-3);color:var(--fg-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.external-id{color:var(--fg-muted);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;display:block}.overrides-sections{gap:var(--space-5);margin-top:var(--space-5);display:grid}.tab-alert{margin-top:var(--space-4)}.cell-sub{color:var(--fg-muted);font-size:var(--text-sm);margin-top:2px;display:block}.cell-stack{min-width:0;display:block}.readout-inline{font-size:var(--text-base);font-stretch:var(--stretch-readout);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);white-space:nowrap}.override-name{min-width:10rem;font-weight:var(--weight-semibold)!important}.override-comment{max-width:18rem;color:var(--fg-secondary)}.override-actions{text-align:right;vertical-align:middle}@media (max-width:767px){.overrides-table .override-actions{grid-area:1/2}.override-comment{max-width:none}}.sheet-kind{padding:var(--space-5) var(--space-6) 0}.sheet-form{flex-direction:column;flex:1;min-height:0;display:flex}.form-stack{align-content:start;gap:var(--space-5);display:grid}.form-group{gap:var(--space-2);display:grid}.input-narrow{max-width:10rem}.input-group-action .btn{min-height:var(--control-h);border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:0}.filters-panel{padding:var(--space-4) var(--space-5)}.filters{align-items:start;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));display:grid}.filters-actions{align-items:flex-end;gap:var(--space-2);align-self:end;display:flex}.filters-toggle{display:none}@media (max-width:767px){.filters-toggle{gap:var(--space-2);flex-wrap:wrap;display:flex}.filters[data-open=false]{display:none}.filters{margin-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.filters>.field:nth-child(-n+3),.filters-actions{grid-column:1/-1}.filters-reset{display:none}.filters-actions .btn{flex:1}}.results-panel{position:relative}.results-panel .progress-bar{border-radius:var(--radius-md) var(--radius-md) 0 0}.journal-time{white-space:nowrap;font-weight:var(--weight-medium)!important}.journal-reason{min-width:13rem}.journal-toggle{vertical-align:middle}.change{white-space:nowrap}.change-before{color:var(--fg-muted)}.change-after{font-weight:var(--weight-semibold)}.disclosure-button svg{transition:transform var(--duration-base) var(--ease-out)}.disclosure-button.is-open svg{transform:rotate(180deg)}.table-detail td{padding:var(--space-4) var(--space-5) var(--space-5);background:var(--bg-subtle)}.entry-detail{gap:var(--space-4);max-width:56rem;display:grid}.dl-row{display:contents}.disclosure summary{min-height:var(--touch-min);color:var(--fg-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;align-items:center;display:inline-flex}.disclosure summary:hover{color:var(--fg)}@media (max-width:767px){.journal-table .journal-kind{grid-area:1/2}.journal-table .journal-toggle{grid-column:1/-1}.journal-reason{min-width:0}}.page-note{margin-top:calc(-1 * var(--space-2))}.settings-groups{gap:var(--space-5);display:grid}.settings-list{display:grid}.setting{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);transition:background-color var(--duration-fast) ease;grid-template-columns:minmax(0,1fr);display:grid}.setting:last-child{border-radius:0 0 var(--radius-md) var(--radius-md);border-bottom:0}.setting[data-dirty]{background:var(--bg-subtle)}@media (min-width:768px){.setting{align-items:center;gap:var(--space-2) var(--space-5);grid-template-columns:minmax(0,1fr) 14rem 11.5rem}.setting-error{grid-column:2/-1}}.setting-label{font-size:var(--text-base);font-weight:var(--weight-medium)}.setting-meta{gap:2px var(--space-3);color:var(--fg-muted);font-size:var(--text-sm);flex-wrap:wrap;margin-top:2px;display:flex}.setting-key{overflow-wrap:anywhere}.setting-control{align-items:center;gap:var(--space-2);min-width:0;display:flex}.setting-control>.input-group,.setting-control>.input,.setting-control>.select{flex:1;min-width:0}.setting-value{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.setting-unit{color:var(--fg-muted)}.setting-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);display:flex}@media (max-width:767px){.setting-actions{justify-content:flex-start}.setting-actions:empty{display:none}}.hub-list{gap:var(--space-3);list-style:none;display:grid}.hub-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);display:flex;position:relative}.hub-item:hover{background:var(--bg-subtle)}.hub-icon,.hub-chevron{color:var(--fg-muted);flex:none}.hub-text{flex:1;min-width:0}.hub-link{color:var(--fg);font-size:var(--text-base);font-weight:var(--weight-semibold);text-decoration:none}.hub-link:after{content:"";position:absolute;inset:0}.hub-description{color:var(--fg-secondary);font-size:var(--text-md);margin-top:2px}.back-link{align-items:center;gap:var(--space-1);width:-moz-fit-content;width:fit-content;margin:var(--space-4) var(--space-4) calc(-1 * var(--space-3));color:var(--fg-secondary);font-size:var(--text-md);text-decoration:none;display:inline-flex}.back-link:hover{color:var(--fg)}@media (min-width:768px){.back-link{margin:var(--space-6) var(--space-8) calc(-1 * var(--space-4))}}.split-name{font-weight:var(--weight-semibold)!important}.split-actions{white-space:nowrap}.situation{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);display:flex}.situation-icon{color:var(--fg-muted);flex:none;margin-top:2px}.situation[data-situation=GAS_PRIMARY] .situation-icon{color:var(--warn)}.situation-title{font-size:var(--text-base)}.situation-text,.situation-next{color:var(--fg-secondary);font-size:var(--text-md)}.reauth-fields{margin-top:var(--space-2)}.users-actions{white-space:nowrap}.account-form{max-width:28rem}.maintenance-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.integrations-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));display:grid}.integration .panel-body{gap:var(--space-4);display:grid}.integration-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.request-progress{gap:var(--space-2);display:grid}.inventory-table tr[data-ignored=true] th{color:var(--fg-muted)}.checkbox{align-items:center;gap:var(--space-2);min-height:var(--touch-min);cursor:pointer;display:inline-flex}.rooms-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.plan-toolbar{gap:var(--space-2);flex-wrap:wrap;display:flex}.plan-body{gap:var(--space-3);padding:var(--space-4);display:grid}.plan-empty,.plan-alt{color:var(--fg-muted);font-size:var(--text-sm);margin:0}.plan-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:70vh;display:block}.plan-floor{fill:var(--bg-subtle);stroke:var(--border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-grid line{stroke:var(--border-subtle);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-room{cursor:pointer;outline:none}.plan-room-rect{fill:var(--bg-surface);stroke:var(--fg-secondary);stroke-width:1.5px;vector-effect:non-scaling-stroke}.plan-room[data-delta=below] .plan-room-rect{fill:var(--tempo-blue-bg)}.plan-room[data-delta=near] .plan-room-rect{fill:var(--ok-bg)}.plan-room[data-delta=above] .plan-room-rect{fill:var(--warn-bg)}.plan-room[data-status=STALE] .plan-room-rect,.plan-room[data-status=OFFLINE] .plan-room-rect,.plan-room[data-status=NO_DATA] .plan-room-rect{stroke-dasharray:6 4}.plan-room[data-status=MISSING] .plan-room-rect{fill:var(--bg-muted);stroke:var(--danger);stroke-dasharray:2 3}.plan-room[data-heating] .plan-room-rect{stroke:var(--warn);stroke-width:2.5px}.plan-room[data-window] .plan-room-flags{fill:var(--danger)}.plan-room:hover .plan-room-rect{stroke:var(--fg)}.plan-room:focus-visible .plan-room-rect{stroke:var(--focus-ring);stroke-width:3px}.plan-room text,.plan-edit-label{pointer-events:none;font-family:var(--font-sans);fill:var(--fg)}.plan-room-name{font-weight:var(--weight-semibold)}.plan-room-temp{font-variant-numeric:tabular-nums}.plan-room-flags{fill:var(--fg-secondary)}.plan-icon{color:var(--fg-secondary)}.plan-icon[data-status=OFFLINE],.plan-icon[data-status=MISSING]{color:var(--danger)}.plan-icon-bg{fill:var(--bg-surface);stroke:var(--border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-legend{gap:var(--space-2) var(--space-4);color:var(--fg-secondary);font-size:var(--text-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.plan-legend li{align-items:center;gap:var(--space-2);display:inline-flex}.plan-swatch{border:1.5px solid var(--fg-secondary);border-radius:var(--radius-xs);background:var(--bg-surface);width:14px;height:14px}.plan-swatch[data-delta=below]{background:var(--tempo-blue-bg)}.plan-swatch[data-delta=near]{background:var(--ok-bg)}.plan-swatch[data-delta=above]{background:var(--warn-bg)}.plan-swatch[data-status=STALE]{border-style:dashed}.room-sheet .sheet-body{gap:var(--space-4);display:grid}.plan-editor{background:var(--bg-canvas);width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--fg);border:0;margin:0;padding:0}.plan-editor[open]{flex-direction:column;display:flex}.plan-editor::backdrop{background:var(--bg-overlay)}.plan-editor-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-surface);flex-wrap:wrap;display:flex}.plan-editor-title{font-size:var(--text-lg);margin:0}.plan-editor-actions,.plan-side-buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.plan-editor-error{margin:var(--space-3) var(--space-4) 0}.plan-editor-main{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;overflow:auto}@media (min-width:900px){.plan-editor-main{grid-template-columns:minmax(0,1fr) 22rem;overflow:hidden}}.plan-editor-canvas{align-content:start;gap:var(--space-3);padding:var(--space-4);display:grid;overflow:auto}.plan-editor-help{color:var(--fg-secondary);font-size:var(--text-sm);margin:0}.plan-editor-svg{touch-action:none;background:var(--bg-surface);max-height:none}.plan-canvas{cursor:crosshair}.plan-edit-rect{fill:var(--tempo-blue-bg);stroke:var(--tempo-blue);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:move;outline:none}.plan-edit-rect[data-unassigned]{fill:var(--warn-bg);stroke:var(--warn);stroke-dasharray:5 3}.plan-edit-rect[data-selected],.plan-edit-rect:focus-visible{stroke:var(--focus-ring);stroke-width:3px}.plan-handle{fill:var(--bg-surface);stroke:var(--focus-ring);stroke-width:2px;vector-effect:non-scaling-stroke}.plan-handle[data-handle=nw],.plan-handle[data-handle=se]{cursor:nwse-resize}.plan-handle[data-handle=ne],.plan-handle[data-handle=sw]{cursor:nesw-resize}.plan-preview{fill:none;stroke:var(--focus-ring);stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.plan-editor-side{align-content:start;gap:var(--space-5);padding:var(--space-4);border-left:1px solid var(--border);background:var(--bg-surface);display:grid;overflow:auto}.plan-side-section{gap:var(--space-3);display:grid}.plan-side-title{font-size:var(--text-base);margin:0}.plan-side-dims{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.plan-side-meta,.plan-side-note{color:var(--fg-muted);font-size:var(--text-sm);margin:0}.plan-side-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.plan-side-list li{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.plan-side-list .field{flex:1}.control-page{gap:var(--space-4);display:grid}.warning-list{gap:var(--space-1);padding-left:var(--space-5);margin:0;display:grid}.command-badge{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}
/*$vite$:1*/