@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../media/c47649aa31f9e140-s.p.3lxpqujs87tck.woff2)format("woff2");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}@font-face{font-family:Hanken Grotesk Fallback;src:local(Arial);ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.0%;size-adjust:100.94%}.hanken_grotesk_198bf64e-module__yrf3Fq__className{font-family:Hanken Grotesk,Hanken Grotesk Fallback;font-style:normal}.hanken_grotesk_198bf64e-module__yrf3Fq__variable{--font-hanken:"Hanken Grotesk", "Hanken Grotesk Fallback"}
:root{--c-heat:#ee7f1e;--c-heat-strong:#e0701a;--c-warmwater:#f8cea3;--c-warmwater-deep:#f0b47a;--c-cool:#63b4c7;--c-cool-deep:#5e9fd6;--c-room:#5bae7b;--c-defrost:#4a95a8;--c-legionella:#d9534f;--c-standby:#b6bcc4;--c-good:#3fae6b;--c-warn:#e8a33d;--c-bad:#e0603f;--r-xs:8px;--r-s:12px;--r-m:18px;--r-l:24px;--r-pill:999px;--ease:cubic-bezier(.4,0,.2,1);--font:var(--font-hanken,"Hanken Grotesk"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--maxw:1280px;--color-ok:var(--c-good);--color-heat:var(--c-bad);--color-warn:var(--c-warn);--color-cool:var(--c-cool);--color-active:var(--accent);--color-heat-dim:#e0603f14;--border-1:var(--border);--radius-s:var(--r-s);--radius-m:var(--r-m);--font-mono:"SF Mono", "Menlo", "Consolas", monospace;--font-sans:var(--font)}:root,[data-theme=light]{--bg:#ebeef3;--surface:#fff;--surface-2:#f6f7f9;--surface-3:#eef0f3;--border:#12161c12;--border-2:#12161c1f;--shadow-card:0 1px 2px #12161c0a, 0 12px 32px -16px #12161c2e;--shadow-pop:0 8px 30px -8px #12161c38;--text-0:#14181c;--text-1:#3a4047;--text-2:#6b727b;--text-3:#9aa1ab;--grid:#12161c0f;--grid-dash:#12161c1a;--accent:var(--c-heat);--accent-soft:#ee7f1e1f;--on-accent:#fff}[data-theme=dark]{--bg:#1a1d24;--surface:#232833;--surface-2:#2c3340;--surface-3:#363e4e;--border:#ffffff14;--border-2:#ffffff24;--shadow-card:0 2px 8px #0000004d, 0 16px 32px -16px #0009;--shadow-pop:0 12px 38px -10px #000000b3;--text-0:#f4f6f9;--text-1:#d4d8de;--text-2:#99a1ab;--text-3:#5f6873;--grid:#ffffff0f;--grid-dash:#ffffff1a;--accent:#f2933e;--accent-soft:#f2933e29;--on-accent:#1a1206;--c-cool:#7fb4e0;--c-warmwater:#eab888;--c-room:#65be89}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);background:var(--bg);color:var(--text-1);font-feature-settings:"ss01", "cv01";transition:background .35s var(--ease), color .35s var(--ease);line-height:1.5}.tnum{font-variant-numeric:tabular-nums}.wh-theme-fab{z-index:9999;border:1px solid var(--border-2);background:var(--surface);width:42px;height:42px;color:var(--text-1);cursor:pointer;box-shadow:var(--shadow-card);transition:all .2s var(--ease);border-radius:50%;place-items:center;padding:0;display:inline-grid;position:fixed;top:16px;right:18px}.wh-theme-fab:hover{border-color:var(--accent);color:var(--text-0)}.wh-theme-fab svg{width:17px;height:17px}.lp{font-family:var(--font);background:var(--bg);color:var(--text-1);flex-direction:column;width:100%;min-height:100vh;display:flex;position:relative}.lp *{box-sizing:border-box}.lp a{color:inherit;text-decoration:none}.lp-nav{z-index:3;justify-content:space-between;align-items:center;padding:22px 40px;display:flex;position:relative}.lp-brand{letter-spacing:-.4px;color:var(--text-0);white-space:nowrap;align-items:center;gap:11px;font-size:17px;font-weight:800;display:flex}.lp-brand .mark{background:var(--accent);width:30px;height:30px;color:var(--on-accent);border-radius:9px;place-items:center;display:grid}.lp-brand .mark img{filter:brightness(0)invert();width:19px;height:19px}.btn{cursor:pointer;white-space:nowrap;font-family:var(--font);border-radius:var(--r-pill);transition:all .2s var(--ease);border:none;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--c-heat-strong);transform:translateY(-1px)}.btn-sm{padding:9px 18px;font-size:14px}.btn-lg{padding:15px 26px;font-size:16px}.lp-main{text-align:center;z-index:2;flex:1 0 auto;padding:30px 40px 0;display:block;position:relative}.lp-eyebrow{letter-spacing:.8px;text-transform:uppercase;color:var(--text-2);margin-bottom:18px;font-size:12.5px;font-weight:700}.lp-title{letter-spacing:-1.8px;color:var(--text-0);text-wrap:balance;max-width:18ch;margin:0 auto 20px;font-size:52px;font-weight:800;line-height:1.04}.lp-sub{color:var(--text-2);max-width:52ch;margin:0 auto 26px;font-size:18px;line-height:1.55}.lp-features{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:30px;display:flex}.lp-feature{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.lp-feature svg{width:14px;height:14px;color:var(--accent)}.lp-actions{margin-bottom:22px}.lp-social{color:var(--text-2);align-items:center;gap:9px;margin-bottom:40px;font-size:13.5px;display:inline-flex}.lp-social strong{color:var(--text-0);font-weight:700}.lp-social .dot{background:var(--c-good);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--c-good) 22%, transparent);border-radius:50%}.mock{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);width:100%;max-width:620px;box-shadow:var(--shadow-card);margin:0 auto;position:relative;overflow:hidden}.mock-top{border-bottom:1px solid var(--border);align-items:center;gap:9px;padding:15px 20px;display:flex}.mock-top .gdot{background:var(--c-good);border-radius:50%;width:8px;height:8px}.mock-top .name{color:var(--text-1);letter-spacing:-.2px;font-size:13px;font-weight:700}.mock-top .badge{margin-left:auto}.mock-metrics{grid-template-columns:repeat(5,1fr);display:grid}.mock-metric{border-right:1px solid var(--border);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.mock-metric:last-child{border-right:none}.mock-metric .ml{color:var(--text-2);font-size:11.5px;font-weight:600}.mock-metric .mv{letter-spacing:-1px;color:var(--text-0);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.mock-metric .mv .u{color:var(--text-2);letter-spacing:0;margin-left:1px;font-size:13px;font-weight:600}.mock-metric .mv.ok{color:var(--c-good)}.mock-chart{border-top:1px solid var(--border);padding:12px 16px 4px}.mock-chart svg{width:100%;height:86px;display:block}.mock-status{gap:4px;height:9px;padding:0 20px;display:flex}.mock-seg{border-radius:3px}.mock-status-label{color:var(--text-3);padding:9px 20px 18px;font-size:11px;font-weight:500}.lp-footer{text-align:center;color:var(--text-3);z-index:2;padding:26px 40px 30px;font-size:12.5px;position:relative}.lp-footer a{color:var(--text-2);font-weight:600;text-decoration:none}.lp-footer a:hover{color:var(--accent)}.lp-content{text-align:left;max-width:780px;margin:60px auto 0;padding:0 20px}.lp-content-title{letter-spacing:-.6px;color:var(--text-0);text-align:center;margin-bottom:28px;font-size:24px;font-weight:800}.lp-content-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.lp-content-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);padding:22px 20px}.lp-content-card svg{color:var(--accent);margin-bottom:12px}.lp-content-card h3{color:var(--text-0);letter-spacing:-.2px;margin-bottom:8px;font-size:15px;font-weight:700}.lp-content-card p{color:var(--text-2);margin:0;font-size:13.5px;line-height:1.65}@media (max-width:720px){.lp-content-grid{grid-template-columns:1fr}}.lg{font-family:var(--font);width:100%;min-height:100vh;color:var(--text-1);background:var(--bg);justify-content:center;align-items:center;padding:40px;display:flex;position:relative;overflow:hidden}.lg *{box-sizing:border-box}.lg a{text-decoration:none}.lg:before{content:"";pointer-events:none;background:radial-gradient(55% 45% at 50% 0%, var(--accent-soft) 0%, transparent 70%);position:absolute;inset:0}.lg-logo{width:auto;height:28px;margin:0 auto;display:block}[data-theme=dark] .lg-logo{filter:invert()brightness(1.7)}.lg-tagline{color:var(--text-2);margin-top:12px;font-size:13px;font-weight:500}.lg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);width:100%;max-width:432px;box-shadow:var(--shadow-pop);z-index:1;padding:40px 38px 30px;position:relative}.lg-head{text-align:center;margin-bottom:30px}.lg-group{margin-bottom:16px}.lg-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-2);margin-bottom:7px;font-size:11.5px;font-weight:700;display:block}.lg-inwrap{position:relative}.lg-input{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-s);width:100%;color:var(--text-0);font-size:15px;font-family:var(--font);transition:all .18s var(--ease);outline:none;padding:13px 15px}.lg-input::placeholder{color:var(--text-3)}.lg-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.lg-pw-toggle{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:5px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.lg-pw-toggle:hover{color:var(--text-1)}.lg-pw-toggle svg{width:17px;height:17px}.lg-btn{background:var(--accent);width:100%;color:var(--on-accent);border-radius:var(--r-s);cursor:pointer;transition:all .2s var(--ease);letter-spacing:.2px;font-size:15px;font-weight:700;font-family:var(--font);border:none;justify-content:center;align-items:center;gap:8px;margin-top:22px;padding:14px;display:flex}.lg-btn:hover{background:var(--c-heat-strong);box-shadow:0 8px 20px -8px color-mix(in srgb, var(--accent) 70%, transparent);transform:translateY(-1px)}.lg-btn:disabled{opacity:.6;cursor:not-allowed}.lg-spinner{border:2px solid var(--on-accent);border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lg-trust{background:var(--accent-soft);border-radius:var(--r-s);border:1px solid #0000;margin-top:20px;overflow:hidden}.lg-trust-summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-1);align-items:center;gap:10px;padding:13px 15px;font-size:13px;font-weight:600;list-style:none;display:flex}.lg-trust-summary::-webkit-details-marker{display:none}.lg-trust-summary>svg:first-child{width:15px;height:15px;color:var(--accent);flex-shrink:0}.lg-trust-chevron{width:14px;height:14px;color:var(--text-3);transition:transform .2s var(--ease);flex-shrink:0;margin-left:auto}.lg-trust[open] .lg-trust-chevron{transform:rotate(180deg)}.lg-trust-details{padding:2px 15px 15px 40px}.lg-trust-list{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.lg-trust-list li{color:var(--text-2);align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.45;display:flex}.lg-trust-list li svg{width:13px;height:13px;color:var(--c-good);flex-shrink:0;margin-top:2px}.lg-trust-link{color:var(--accent);align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.lg-trust-link:hover{text-decoration:underline}.lg-trust-link svg{width:11px;height:11px}.lg-foot{text-align:center;border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.lg-foot-portal{color:var(--text-2);font-size:12.5px}.lg-foot-portal a{color:var(--accent);font-weight:600}.lg-foot-portal a:hover{text-decoration:underline}.lg-foot-src{color:var(--text-3);margin-top:9px;font-size:11.5px}.lg-foot-src a{color:var(--text-3);font-weight:500;text-decoration:none}.lg-foot-src a:hover{color:var(--text-1)}.lg-error{background:color-mix(in srgb, var(--c-bad) 10%, transparent);border:1px solid color-mix(in srgb, var(--c-bad) 25%, transparent);border-radius:var(--r-s);color:var(--c-bad);align-items:center;gap:8px;margin-bottom:16px;padding:12px 14px;font-size:13px;display:flex}.lg-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.dash{font-family:var(--font);background:var(--bg);color:var(--text-1);width:100%;min-height:100vh}.dash *{box-sizing:border-box}.dash-nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:58px;padding:0 24px;display:flex;position:sticky;top:0}.dash-brand{color:var(--text-0);letter-spacing:-.3px;align-items:center;gap:10px;font-size:15.5px;font-weight:800;display:flex}.dash-brand .mark{background:var(--accent);border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.dash-brand .mark img{filter:brightness(0)invert();width:18px;height:18px}.dash-nav-actions{align-items:center;gap:12px;display:flex}.dash-user{color:var(--text-2);font-size:13px;font-weight:600}.dash-iconbtn{border:1px solid var(--border-2);background:var(--surface);width:34px;height:34px;color:var(--text-2);cursor:pointer;transition:all .2s var(--ease);border-radius:9px;place-items:center;display:grid}.dash-iconbtn:hover{color:var(--accent);border-color:var(--accent)}.dash-iconbtn svg{width:16px;height:16px}.dash-logout{border-radius:var(--r-pill);border:1px solid var(--border-2);background:var(--surface);color:var(--text-1);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s var(--ease);padding:8px 14px}.dash-logout:hover{border-color:var(--accent);color:var(--text-0)}.dash-nav-link{border-radius:var(--r-pill);color:var(--text-1);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s var(--ease);background:0 0;border:1px solid #0000;padding:8px 14px;text-decoration:none}.dash-nav-link:hover{background:var(--surface-2);color:var(--text-0)}.dash-body{max-width:1280px;animation:fadeUp .5s var(--ease) backwards;margin:0 auto;padding:24px 24px 30px}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.dash-title{letter-spacing:-.6px;color:var(--text-0);font-size:22px;font-weight:800}.dash-subtitle{color:var(--text-2);font-variant-numeric:tabular-nums;margin-top:3px;font-size:13px}.dash-header-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dash-pill{border-radius:var(--r-pill);border:1px solid var(--border-2);background:var(--surface);color:var(--text-1);font-size:12.5px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s var(--ease);align-items:center;gap:7px;padding:8px 13px;text-decoration:none;display:inline-flex}.dash-pill:hover{border-color:var(--accent);color:var(--text-0)}.dash-pill svg{color:var(--accent);width:13px;height:13px}.timeseg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.timeseg button{cursor:pointer;font-family:var(--font);color:var(--text-2);border-radius:var(--r-pill);transition:all .2s var(--ease);background:0 0;border:none;padding:6px 12px;font-size:12.5px;font-weight:600}.timeseg button:hover{color:var(--text-0)}.timeseg button.active{background:var(--surface);color:var(--text-0);box-shadow:var(--shadow-card)}.refresh-bar{color:var(--text-2);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.refresh-dot{background:var(--c-good);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.refresh-select{appearance:none;border:1px solid var(--border-2);background:var(--surface);color:var(--text-1);border-radius:var(--r-pill);font-size:12.5px;font-weight:600;font-family:var(--font);cursor:pointer;padding:5px 10px}.refresh-select:focus{outline:2px solid var(--accent);outline-offset:1px}.refresh-timestamp{font-variant-numeric:tabular-nums;color:var(--text-3);font-size:12px}.dash-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:22px;display:flex}.dash-tab{cursor:pointer;font-family:var(--font);color:var(--text-2);transition:color .15s var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.dash-tab:hover{color:var(--text-0)}.dash-tab.active{color:var(--text-0);border-bottom-color:var(--accent)}.dash-tab svg{opacity:.85;width:14px;height:14px}.metric-row{grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:14px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);padding:17px 16px 15px;position:relative;overflow:hidden}.metric-card:hover{box-shadow:var(--shadow-pop);transform:translateY(-2px)}[data-theme=dark] .metric-card:hover{background:var(--surface-2)}.metric-ind{height:3px;position:absolute;top:0;left:0;right:0}.metric-label{color:var(--text-2);align-items:center;gap:6px;margin-bottom:12px;font-size:12px;font-weight:600;display:flex}.metric-label svg{color:var(--text-3);width:14px;height:14px}.metric-value{letter-spacing:-1px;color:var(--text-0);font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:1}.metric-value .unit{color:var(--text-2);letter-spacing:0;font-size:14px;font-weight:600}.metric-sub{color:var(--text-3);align-items:center;gap:6px;margin-top:9px;font-size:12px;display:flex}.dot-inline{border-radius:50%;flex:none;width:8px;height:8px}.metric-live{color:var(--text-3);letter-spacing:.2px;text-transform:uppercase;align-items:center;gap:5px;font-size:10.5px;font-weight:600;display:inline-flex;position:absolute;top:10px;right:12px}.metric-live-dot{background:var(--c-good);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.charts-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);transition:background .25s var(--ease);padding:16px 18px}.panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.panel-title{color:var(--text-0);letter-spacing:-.1px;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.panel-title svg{color:var(--accent);width:14px;height:14px}.plot{width:100%}.dash-subbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:14px;display:flex}.strip-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.strip-switch input{opacity:0;width:0;height:0;position:absolute}.sw-track{background:var(--surface-3);border:1px solid var(--border-2);width:38px;height:22px;transition:all .2s var(--ease);border-radius:999px;flex:none;position:relative}.sw-thumb{background:var(--surface);width:16px;height:16px;transition:transform .2s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.strip-tog:checked+.sw-track{background:var(--accent);border-color:#0000}.strip-tog:checked+.sw-track .sw-thumb{background:#fff;transform:translate(16px)}.sw-label{color:var(--text-1);font-size:13px;font-weight:600}.dash-subbar-leg{margin-left:auto}.details{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);transition:background .25s var(--ease);padding:18px 20px 20px}.details-head{color:var(--text-0);align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.details-head svg{color:var(--accent);width:14px;height:14px}.details-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--r-s);grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.detail-cell{background:var(--surface);padding:12px 14px}.detail-l{color:var(--text-2);margin-bottom:5px;font-size:11.5px;font-weight:600}.detail-v{color:var(--text-0);font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:700}.val-heat{color:var(--c-heat-strong)}.val-cool{color:var(--c-cool-deep)}.val-ok{color:var(--c-good)}.val-warn{color:var(--c-warn)}.val-off{color:var(--text-3)}.statebar{border-radius:var(--r-xs);gap:0;height:30px;margin-top:8px;display:flex;overflow:hidden}.sb-seg{flex:1}.statebar-axis{color:var(--text-3);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:7px;font-size:11px;display:flex}.sb-legend{flex-wrap:wrap;gap:12px;display:flex}.sb-leg{color:var(--text-2);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:inline-flex}.sb-dot{border-radius:3px;width:9px;height:9px}.chart-status{padding-bottom:6px}.cs-track{border-radius:4px;flex:1;height:8px;display:flex;overflow:hidden}.cs-seg{flex:1;min-width:0}.details2{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);transition:background .25s var(--ease);padding:18px 20px 14px}.dl-grid{grid-template-columns:1fr 1fr;gap:0 36px;display:grid}.dl-col{flex-direction:column;display:flex}.dl-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.dl-col .dl-row:last-child{border-bottom:none}.dl-l{color:var(--text-2);font-size:13px;font-weight:500}.dl-v{color:var(--text-0);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:700}.info-panel{background:var(--accent-soft);border-radius:var(--r-m);margin-bottom:14px;padding:14px 18px}.info-title{color:var(--text-0);align-items:center;gap:8px;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.info-title svg{color:var(--accent);width:14px;height:14px}.info-body{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:12.5px;line-height:1.7}.info-body strong{color:var(--text-1);font-weight:700}.panel-badge{letter-spacing:.3px;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);padding:4px 10px;font-size:11px;font-weight:700}.etable{border-collapse:collapse;width:100%}.etable th{text-align:right;color:var(--text-2);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11.5px;font-weight:600}.etable th:first-child{text-align:left}.etable td{text-align:right;color:var(--text-0);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:11px 10px;font-size:13.5px;font-weight:700}.etable tr:last-child td{border-bottom:none}.etable td.et-mode{text-align:left;color:var(--text-1);align-items:center;gap:8px;font-weight:600;display:flex}.etable td.et-mode svg{color:var(--text-3);width:13px;height:13px}.etable td.et-cop{color:var(--c-good)}.badge{border-radius:var(--r-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge .dot{border-radius:50%;width:7px;height:7px}.badge.ok{color:var(--c-good);background:color-mix(in srgb, var(--c-good) 13%, transparent)}.badge.heat{color:var(--c-heat-strong);background:var(--accent-soft)}.badge.cool{color:var(--c-cool-deep);background:color-mix(in srgb, var(--c-cool) 22%, transparent)}.avatar{background:linear-gradient(135deg, var(--c-warmwater), var(--c-heat));color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.loading-center{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.plotly-container{width:100%;position:relative}.plotly-container .js-plotly-plot{width:100%!important}.plotly-container .modebar{opacity:0;transition:opacity .2s}.plotly-container:hover .modebar{opacity:.7}@media (max-width:1100px){.metric-row{grid-template-columns:repeat(3,1fr)}.charts-grid{grid-template-columns:1fr}.details-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:620px){.metric-row,.details-grid{grid-template-columns:repeat(2,1fr)}.lp-title{font-size:36px}.mock-metrics{grid-template-columns:repeat(3,1fr)}.dash-header{flex-direction:column}.dl-grid{grid-template-columns:1fr}}.footer{text-align:center;color:var(--text-3);margin-top:32px;padding:16px 0;font-size:12px}.footer a{color:var(--accent);text-decoration:none}.footer a:hover{text-decoration:underline}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);box-shadow:var(--shadow-card);margin-bottom:16px;overflow:hidden}.settings-section-header{border-bottom:1px solid var(--border);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;padding:14px 20px;font-size:12px;font-weight:600;display:flex}.settings-section-header svg{width:14px;height:14px;color:var(--text-3)}.settings-section-body{padding:20px}.settings-status{border-radius:var(--r-s);align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.settings-status--ok{background:color-mix(in srgb, var(--c-good) 12%, transparent);color:var(--c-good)}.settings-status--ok svg{color:var(--c-good)}.settings-status--warn{background:color-mix(in srgb, var(--c-warn) 12%, transparent);color:var(--c-warn)}.settings-status--warn svg{color:var(--c-warn)}.settings-status--off{background:var(--surface-3);color:var(--text-2)}.settings-status--off svg{color:var(--text-3)}.settings-details{margin-bottom:16px}.settings-detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.settings-detail-row:last-child{border-bottom:none}.settings-detail-label{color:var(--text-2);font-size:12px}.settings-detail-value{color:var(--text-0);font-size:13px;font-weight:600}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.settings-connect-intro{color:var(--text-2);margin-bottom:20px;font-size:13px;line-height:1.6}.settings-connect-intro a{text-decoration:none}.settings-connect-intro a:hover{text-decoration:underline}.settings-confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-confirm-text{color:var(--c-bad);font-size:12px;font-weight:500}.btn-settings{background:var(--surface);border:1px solid var(--border-2);width:34px;height:34px;color:var(--text-2);cursor:pointer;transition:all .2s var(--ease);border-radius:9px;justify-content:center;align-items:center;text-decoration:none;display:flex}.btn-settings:hover{color:var(--accent);border-color:var(--accent)}.btn-settings svg{width:16px;height:16px}.btn-secondary{background:var(--surface);border:1px solid var(--border-2);color:var(--text-1);font-size:12.5px;font-weight:600;font-family:var(--font);border-radius:var(--r-pill);cursor:pointer;transition:all .2s var(--ease);align-items:center;gap:6px;padding:8px 14px;text-decoration:none;display:inline-flex}.btn-secondary:hover{border-color:var(--accent);color:var(--text-0)}.btn-danger{background:var(--c-bad);color:#fff;font-size:13px;font-weight:600;font-family:var(--font);border-radius:var(--r-s);cursor:pointer;border:none;padding:8px 14px}.btn-danger:hover{opacity:.9}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.btn-danger-ghost{border:1px solid var(--border-2);color:var(--text-2);font-size:13px;font-weight:600;font-family:var(--font);border-radius:var(--r-s);cursor:pointer;background:0 0;padding:8px 14px}.btn-danger-ghost:hover{color:var(--c-bad);border-color:var(--c-bad)}.dh-timeline-bar{background:var(--surface-3);border-radius:var(--r-xs);height:32px;margin-bottom:8px;position:relative;overflow:hidden}.dh-timeline-seg{height:100%;position:absolute;top:0}.dh-seg-ok{background:var(--c-good);opacity:.35}.dh-seg-gap{background:var(--c-bad);opacity:.5}.dh-timeline-labels{color:var(--text-3);font-variant-numeric:tabular-nums;justify-content:space-between;margin-bottom:20px;font-size:10px;display:flex}.dh-stats-row{gap:32px;margin-bottom:20px;display:flex}.dh-stat{flex-direction:column;gap:2px;display:flex}.dh-stat-value{color:var(--text-0);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.dh-stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.dh-gap-list{flex-direction:column;gap:4px;display:flex}.dh-gap-item{background:var(--surface-2);border-radius:var(--r-xs);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.dh-gap-time{color:var(--text-1);flex:1}.dh-gap-dur{color:var(--c-bad);font-weight:600}.dh-quality-table{font-size:12px}.dh-quality-header,.dh-quality-row{grid-template-columns:2fr 1fr 1fr .5fr 1.5fr;align-items:center;gap:8px;padding:10px 20px;display:grid}.dh-quality-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);font-size:10px;font-weight:600}.dh-quality-row{border-bottom:1px solid var(--border)}.dh-quality-row:last-child{border-bottom:none}.dh-field-name{color:var(--text-1);font-weight:500}.dh-field-expected{color:var(--text-3);font-size:11px}.dh-field-null{color:var(--text-2)}.dh-field-pct{color:var(--text-1);font-weight:600}.dh-field-status{align-items:center;gap:6px;display:flex}.dh-status-ok{color:var(--c-good)}.dh-status-warn{color:var(--c-warn)}.dh-status-error{color:var(--c-bad)}.onboarding-icon{background:var(--accent-soft);border-radius:var(--r-m);justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;display:flex}.onboarding-icon svg{width:24px;height:24px;color:var(--accent)}.onboarding-title{text-align:center;color:var(--text-0);margin-bottom:8px;font-size:18px;font-weight:800}.onboarding-desc{text-align:center;color:var(--text-2);margin-bottom:24px;font-size:13px;line-height:1.6}.privacy-container{max-width:640px;margin:0 auto;padding:40px 24px}.privacy-container h1{color:var(--text-0);letter-spacing:-.4px;margin-bottom:16px;font-size:22px;font-weight:800}.privacy-container h2{color:var(--text-0);margin:24px 0 8px;font-size:16px;font-weight:700}.privacy-container p,.privacy-container li{color:var(--text-1);margin-bottom:8px;font-size:14px;line-height:1.7}.privacy-container ul{padding-left:20px}.privacy-container a{color:var(--accent)}.backfill-banner{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-m);align-items:center;gap:12px;margin-bottom:14px;padding:14px 18px;display:flex}.backfill-banner svg{color:var(--accent);flex-shrink:0}.backfill-text{color:var(--text-1);font-size:13px}.backfill-progress{background:var(--border-2);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.backfill-progress-bar{background:var(--accent);height:100%;transition:width .3s var(--ease);border-radius:2px}.token-banner{border-radius:var(--r-s);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:13px;line-height:1.5;animation:.3s ease-out bannerSlideIn;display:flex}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.token-banner--warning{background:color-mix(in srgb, var(--c-warn) 10%, transparent);border:1px solid color-mix(in srgb, var(--c-warn) 25%, transparent);color:var(--text-1)}.token-banner--warning>svg{color:var(--c-warn);flex-shrink:0}.token-banner--error{background:color-mix(in srgb, var(--c-bad) 10%, transparent);border:1px solid color-mix(in srgb, var(--c-bad) 25%, transparent);color:var(--text-1)}.token-banner--error>svg{color:var(--c-bad);flex-shrink:0}.token-banner-content{flex-direction:column;flex:1;gap:2px;display:flex}.token-banner-content strong{font-size:13.5px;font-weight:700}.token-banner-content span{color:var(--text-2);font-size:12.5px}.token-banner-action{white-space:nowrap;transition:background .15s var(--ease);border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.token-banner--warning .token-banner-action{background:color-mix(in srgb, var(--c-warn) 15%, transparent);color:var(--c-warn)}.token-banner--warning .token-banner-action:hover{background:color-mix(in srgb, var(--c-warn) 25%, transparent)}.token-banner--error .token-banner-action{background:color-mix(in srgb, var(--c-bad) 15%, transparent);color:var(--c-bad)}.token-banner--error .token-banner-action:hover{background:color-mix(in srgb, var(--c-bad) 25%, transparent)}.token-banner-form-wrap{flex-shrink:0}.token-banner-form{flex-direction:column;gap:8px;min-width:220px;display:flex}.token-banner-input{background:var(--surface-1);border:1px solid var(--border);width:100%;color:var(--text-0);border-radius:6px;outline:none;padding:7px 10px;font-size:12.5px;transition:border-color .15s}.token-banner-input:focus{border-color:var(--accent)}.token-banner-input::placeholder{color:var(--text-3)}.token-banner-pw-wrap{position:relative}.token-banner-pw-wrap .token-banner-input{padding-right:36px}.token-banner-pw-toggle{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:4px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.token-banner-form-actions{align-items:center;gap:8px;display:flex}.token-banner-cancel{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:12px}.token-banner-cancel:hover{color:var(--text-1)}.token-banner-form-error{color:var(--c-bad);padding:4px 0;font-size:12px}.token-banner-success{color:var(--c-good,#3ecf8e);align-items:center;gap:8px;padding:4px 0;font-size:13px;font-weight:600;display:flex}.token-banner-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite tokenSpin;display:inline-block}@keyframes tokenSpin{to{transform:rotate(360deg)}}.daterange-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.daterange-presets{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.daterange-presets button{cursor:pointer;font-family:var(--font);color:var(--text-2);border-radius:var(--r-pill);transition:all .2s var(--ease);white-space:nowrap;background:0 0;border:none;padding:5px 10px;font-size:12px;font-weight:600}.daterange-presets button:hover{color:var(--text-0)}.daterange-presets button.active{background:var(--surface);color:var(--text-0);box-shadow:var(--shadow-card)}.daterange-inputs{align-items:center;gap:6px;display:flex}.daterange-field{cursor:pointer;align-items:center;gap:4px;display:flex;position:relative}.daterange-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.daterange-pretty{font-family:var(--font);color:var(--text-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-s);white-space:nowrap;transition:border-color .2s var(--ease);padding:5px 10px;font-size:12.5px;font-weight:600}.daterange-field:hover .daterange-pretty{border-color:var(--accent)}.daterange-input{opacity:0;cursor:pointer;width:100%;height:100%;font-family:var(--font);font-size:12px;position:absolute;top:0;left:0}.daterange-input::-webkit-calendar-picker-indicator{cursor:pointer;width:100%;height:100%;position:absolute;top:0;right:0}.daterange-refresh{color:var(--text-3);align-items:center;gap:6px;margin-left:auto;font-size:11.5px;font-weight:600;animation:.15s ease-out fadeInRefresh;display:inline-flex}@keyframes fadeInRefresh{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.daterange-wrap{flex-direction:column;align-items:stretch;gap:8px}.daterange-presets{flex-wrap:wrap;justify-content:center}.daterange-inputs{justify-content:center}}.delete-zone{border-color:#d4654a40}.delete-zone .settings-section-header{color:var(--color-heat)}.delete-zone .settings-section-header svg{opacity:.8}.delete-warning{background:var(--color-heat-dim);border-radius:var(--radius-m);border:1px solid #d4654a26;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.delete-warning svg{color:var(--color-heat);flex-shrink:0;margin-top:2px}.delete-warning-text{color:var(--text-1);font-size:13px;line-height:1.6}.delete-warning-text strong{color:var(--color-heat)}.delete-confirm-group{margin-top:16px}.delete-confirm-label{color:var(--text-2);margin-bottom:8px;font-size:12px;line-height:1.5;display:block}.delete-confirm-label code{background:var(--surface-3);font-family:var(--font-mono);color:var(--color-heat);letter-spacing:1px;border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700}.delete-confirm-input{background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-s);width:100%;max-width:280px;color:var(--text-0);font-size:14px;font-family:var(--font-mono);letter-spacing:1px;outline:none;padding:10px 12px;transition:border-color .15s}.delete-confirm-input:focus{border-color:var(--color-heat)}.delete-confirm-input::placeholder{color:var(--text-3);letter-spacing:0;font-family:var(--font-sans);font-size:13px}.delete-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.delete-data-list{flex-direction:column;gap:3px;margin:8px 0 0;padding:0;list-style:none;display:flex}.delete-data-list li{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.delete-data-list li:before{content:"×";color:var(--color-heat);flex-shrink:0;font-size:14px;font-weight:700}.date-edit-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.date-input{background:var(--surface-2);border:1px solid var(--border-1);border-radius:var(--radius-s);color:var(--text-0);font-size:13px;font-family:var(--font-mono);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;max-width:170px;padding:8px 10px;transition:border-color .15s}.date-input:focus{border-color:var(--color-active)}.backfill-progress-container{margin-top:12px}.backfill-progress-bar{background:var(--surface-3);border-radius:4px;width:100%;height:8px;overflow:hidden}.backfill-progress-fill{background:linear-gradient(90deg, var(--color-active), var(--color-accent,#3ecf8e));border-radius:4px;min-width:2%;height:100%;transition:width 1s}.backfill-progress-text{color:var(--text-2);justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.backfill-phase{color:var(--text-1);align-items:center;gap:6px;margin-top:8px;font-size:12px;display:inline-flex}.backfill-phase svg{animation:1s linear infinite spin}.backfill-complete{color:var(--color-accent,#3ecf8e);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.backfill-confirm-warning{border-radius:var(--radius-m);background:#3e98c714;border:1px solid #3e98c726;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.backfill-confirm-warning svg{color:var(--color-active);flex-shrink:0;margin-top:2px}.backfill-confirm-warning-text{color:var(--text-1);font-size:13px;line-height:1.6}.backfill-confirm-warning-text strong{color:var(--color-active)}.backfill-error{color:var(--color-heat);align-items:center;gap:8px;margin-top:8px;font-size:12px;display:flex}.do-dataset-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.do-dataset-header svg{color:var(--text-2)}.do-dataset-title{color:var(--text-1);font-size:13px;font-weight:600}.do-dataset-badge{color:var(--color-active);font-size:11px;font-weight:600;font-family:var(--font-mono);background:#3e98c71a;border-radius:10px;margin-left:auto;padding:2px 8px}.do-stats-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.do-stat{background:var(--surface-2);border-radius:var(--radius-s);border:1px solid var(--border-1);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.do-stat-value{color:var(--text-0);font-size:13px;font-weight:600;font-family:var(--font-mono)}.do-stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.do-quality-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.do-quality-row{align-items:center;gap:8px;padding:4px 0;display:flex}.do-quality-icon{text-align:center;flex-shrink:0;width:18px;font-size:12px}.do-quality-label{color:var(--text-1);flex-shrink:0;width:130px;font-size:12px}.do-quality-bar{background:var(--surface-3);border-radius:3px;flex:1;height:6px;overflow:hidden}.do-quality-fill{border-radius:3px;min-width:1px;height:100%;transition:width .6s}.do-quality-pct{font-size:11px;font-weight:600;font-family:var(--font-mono);text-align:right;flex-shrink:0;width:40px}.do-pct-ok{color:var(--color-ok,#3ecf8e)}.do-pct-warn{color:var(--color-warn,#f5a623)}.do-pct-low{color:var(--color-heat,#d4654a)}.do-no-gaps{color:var(--color-ok,#3ecf8e);align-items:center;gap:6px;font-size:12px;display:flex}.do-gap-list{flex-direction:column;gap:4px;display:flex}.do-gap-item{color:var(--text-2);align-items:center;gap:6px;font-size:11px;display:flex}.do-gap-item svg{color:var(--color-heat);opacity:.6;flex-shrink:0}.do-gap-dur{font-family:var(--font-mono);color:var(--text-3);margin-left:auto;font-size:10px}.do-db-warning{background:var(--color-heat-dim,#d4654a14);border-radius:var(--radius-s);color:var(--text-1);border:1px solid #d4654a26;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.do-db-warning svg{color:var(--color-heat);flex-shrink:0}.do-db-warning strong{color:var(--color-heat)}
.FeedbackButton-module__7vkGTq__fab{z-index:9999;background-color:var(--accent);width:52px;height:52px;color:var(--on-accent);box-shadow:var(--shadow-card);cursor:pointer;transition:transform .2s var(--ease), background-color .2s var(--ease);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:24px;right:24px}.FeedbackButton-module__7vkGTq__fab:hover{background-color:var(--c-heat-strong);transform:scale(1.05)}.FeedbackButton-module__7vkGTq__fab svg{width:24px;height:24px}.FeedbackButton-module__7vkGTq__overlay{z-index:9999;background-color:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.FeedbackButton-module__7vkGTq__modal{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);box-shadow:var(--shadow-pop);width:100%;max-width:432px;animation:FeedbackButton-module__7vkGTq__fadeUp .3s var(--ease);padding:30px;position:relative}@keyframes FeedbackButton-module__7vkGTq__fadeUp{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.FeedbackButton-module__7vkGTq__closeButton{color:var(--text-3);cursor:pointer;transition:color .2s var(--ease);background:0 0;border:none;padding:4px;position:absolute;top:16px;right:16px}.FeedbackButton-module__7vkGTq__closeButton:hover{color:var(--text-1)}.FeedbackButton-module__7vkGTq__title{color:var(--text-0);letter-spacing:-.3px;margin-bottom:8px;font-size:20px;font-weight:800}.FeedbackButton-module__7vkGTq__description{color:var(--text-2);margin-bottom:20px;font-size:13.5px;line-height:1.5}.FeedbackButton-module__7vkGTq__success{background-color:color-mix(in srgb, var(--c-good) 12%, transparent);color:var(--c-good);border-radius:var(--r-s);text-align:center;padding:16px;font-size:14px;font-weight:500}.FeedbackButton-module__7vkGTq__form{flex-direction:column;gap:16px;display:flex}.FeedbackButton-module__7vkGTq__textarea{background-color:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-s);width:100%;height:120px;color:var(--text-0);font-size:14.5px;font-family:var(--font);resize:none;transition:all .2s var(--ease);outline:none;padding:12px 14px}.FeedbackButton-module__7vkGTq__textarea::placeholder{color:var(--text-3)}.FeedbackButton-module__7vkGTq__textarea:focus{border-color:var(--accent);background-color:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.FeedbackButton-module__7vkGTq__optInContainer{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.FeedbackButton-module__7vkGTq__checkbox{width:16px;height:16px;accent-color:var(--accent);margin-top:3px}.FeedbackButton-module__7vkGTq__optInText{color:var(--text-2);font-size:13px;line-height:1.4}.FeedbackButton-module__7vkGTq__input{background-color:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-s);width:100%;color:var(--text-0);font-size:14.5px;font-family:var(--font);transition:all .2s var(--ease);outline:none;padding:12px 14px}.FeedbackButton-module__7vkGTq__input::placeholder{color:var(--text-3)}.FeedbackButton-module__7vkGTq__input:focus{border-color:var(--accent);background-color:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.FeedbackButton-module__7vkGTq__error{color:var(--c-bad);background-color:color-mix(in srgb, var(--c-bad) 10%, transparent);border-radius:var(--r-s);padding:8px 12px;font-size:13px}.FeedbackButton-module__7vkGTq__submitButton{background-color:var(--accent);width:100%;color:var(--on-accent);border-radius:var(--r-s);cursor:pointer;transition:all .2s var(--ease);font-size:15px;font-weight:700;font-family:var(--font);border:none;justify-content:center;align-items:center;gap:8px;padding:14px;display:flex}.FeedbackButton-module__7vkGTq__submitButton:hover:not(:disabled){background-color:var(--c-heat-strong);box-shadow:0 8px 20px -8px color-mix(in srgb, var(--accent) 70%, transparent);transform:translateY(-1px)}.FeedbackButton-module__7vkGTq__submitButton:disabled{opacity:.6;cursor:not-allowed}.FeedbackButton-module__7vkGTq__spinner{border:2px solid var(--on-accent);border-top-color:#0000;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite FeedbackButton-module__7vkGTq__spin}@keyframes FeedbackButton-module__7vkGTq__spin{to{transform:rotate(360deg)}}
