@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.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}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");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{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:34px;--text-3xl:46px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-full:999px;--tap:44px;--ok:#2e9e5b;--warn:#e0a100;--danger:#d6455d;--info:#2f80d1}@media (width<=900px){:root{--text-3xl:36px;--text-2xl:28px;--text-xl:22px}}[data-brand=ecovent]{--font:"Outfit Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--heading-weight:300;--heading-tracking:-.025em;--radius-sm:14px;--radius-md:18px;--radius-lg:26px;--radius-nav:999px;--glass:62;--blur:18px;--primary:#6a4a8c;--primary-hover:#593c78;--chart-1:#6a4a8c;--chart-2:#e8a93a}[data-brand=aeroflow]{--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--heading-weight:600;--heading-tracking:-.015em;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-nav:8px;--glass:100;--blur:0px;--primary:#1f6fd1;--primary-hover:#1859aa;--chart-1:#1f6fd1;--chart-2:#f08a24}[data-brand=greenair]{--font:"Nunito Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--heading-weight:700;--heading-tracking:-.01em;--radius-sm:20px;--radius-md:24px;--radius-lg:34px;--radius-nav:999px;--glass:55;--blur:22px;--primary:#1f8a5b;--primary-hover:#176d47;--chart-1:#1f8a5b;--chart-2:#e3a72f}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0f2f5;--surface-base:#fff;--text:#22252f;--text-muted:#6a7082;--card-border:#fffc;--shadow:0 8px 28px #28285014;--shadow-lg:0 18px 48px #28285029;--primary-contrast:#fff}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101118;--surface-base:#23242f;--text:#eceef5;--text-muted:#9ca1b5;--card-border:#ffffff14;--shadow:0 8px 28px #0006;--shadow-lg:0 18px 48px #0009;--primary-contrast:#101018}[data-theme=dark][data-brand=ecovent],[data-theme=dark] [data-brand=ecovent]{--primary:#b094d8;--primary-hover:#c3acea;--chart-1:#b094d8}[data-theme=dark][data-brand=aeroflow],[data-theme=dark] [data-brand=aeroflow]{--primary:#5a9bef;--primary-hover:#77adf2;--chart-1:#5a9bef}[data-theme=dark][data-brand=greenair],[data-theme=dark] [data-brand=greenair]{--primary:#43b985;--primary-hover:#5bcb98;--chart-1:#43b985}:root,[data-brand]{--radius:var(--radius-lg);--surface:color-mix(in srgb, var(--surface-base) calc(var(--glass) * 1%), transparent);--surface-solid:var(--surface-base);--surface-2:color-mix(in srgb, var(--text) 7%, transparent);--border:color-mix(in srgb, var(--text) 12%, transparent);--bg-image:radial-gradient(55% 45% at 8% 0%, color-mix(in srgb, var(--primary) 20%, transparent), transparent), radial-gradient(45% 40% at 100% 25%, color-mix(in srgb, var(--chart-2) 18%, transparent), transparent), radial-gradient(50% 45% at 40% 100%, color-mix(in srgb, var(--primary) 12%, transparent), transparent)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);background-color:var(--bg);background-image:var(--bg-image);color:var(--text);font-size:var(--text-base);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;line-height:1.45}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:var(--heading-tracking)}a{color:var(--primary);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn{border-radius:var(--radius-sm);font-weight:var(--weight-medium);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 22px;line-height:1.2;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn--sm{font-size:var(--text-sm);padding:7px 14px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--primary-contrast);box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 32%, transparent)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--surface-solid);border-color:var(--border)}.btn--secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn--ghost{color:var(--text);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-2)}.btn--danger{background:var(--danger);color:#fff}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.field__hint{font-size:var(--text-xs);color:var(--text-muted)}.field__error{font-size:var(--text-xs);color:var(--danger)}.input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-solid);width:100%;min-height:44px;color:var(--text);font:inherit;padding:10px 16px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 20%, transparent);outline:none}.input--error{border-color:var(--danger)}.badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;align-items:center;gap:6px;padding:3px 12px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.badge--ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}.badge--warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 16%, transparent)}.badge--danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.badge--info{color:var(--info);background:color-mix(in srgb, var(--info) 14%, transparent)}.badge--neutral{color:var(--text-muted);background:var(--surface-2)}.switch{border-radius:var(--radius-full);background:color-mix(in srgb, var(--text) 22%, transparent);border:0;flex:none;width:46px;height:26px;padding:0;transition:background .15s;position:relative}.switch--on{background:var(--primary)}.switch__knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch--on .switch__knob{transform:translate(20px)}.segmented{background:var(--surface-2);border-radius:var(--radius-sm);gap:2px;padding:4px;display:inline-flex}.segmented button{border-radius:calc(var(--radius-sm) - 3px);font-size:var(--text-sm);color:var(--text-muted);background:0 0;border:0;padding:7px 16px}.segmented button.is-active{background:var(--surface-solid);color:var(--text);font-weight:var(--weight-medium);box-shadow:0 1px 4px #0000001f}.card,.tile,.inst-card{background:var(--surface);-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card{padding:24px}.empty{text-align:center;color:var(--text-muted);padding:48px 16px}.page-title{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.page-title h1{font-size:var(--text-3xl);font-weight:var(--heading-weight);letter-spacing:var(--heading-tracking);line-height:1.05}.page-title__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=800px){.page-title h1{font-size:var(--text-2xl)}}.header{z-index:30;background:color-mix(in srgb, var(--bg) 62%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);align-items:center;gap:14px;padding:14px 32px;display:flex;position:sticky;top:0}.header__spacer{flex:1}.logo{font-weight:var(--weight-bold);font-size:var(--text-md);color:var(--text);letter-spacing:var(--heading-tracking);align-items:center;gap:12px;display:inline-flex}.logo__mark{background:var(--primary);width:44px;height:44px;color:var(--primary-contrast);border-radius:var(--radius-sm);box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 35%, transparent);flex:none;place-items:center;display:grid}.nav-pill{background:var(--surface);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));border:1px solid var(--card-border);border-radius:var(--radius-nav);box-shadow:var(--shadow);gap:4px;padding:5px;display:flex}.nav-pill a{border-radius:var(--radius-nav);color:var(--text);font-weight:var(--weight-medium);white-space:nowrap;align-items:center;gap:8px;padding:9px 20px;transition:background .15s,color .15s;display:inline-flex;position:relative}.nav-pill a:hover{background:var(--surface-2)}.nav-pill a.active{background:var(--primary);color:var(--primary-contrast)}.nav-pill__count{border-radius:var(--radius-full);text-align:center;background:var(--danger);color:#fff;min-width:20px;font-size:var(--text-xs);padding:0 6px}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--surface);width:44px;height:44px;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow);place-items:center;display:inline-grid;position:relative}.icon-btn:hover{border-color:var(--primary);color:var(--primary)}.icon-btn__dot{border-radius:var(--radius-full);background:var(--danger);color:#fff;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:grid;position:absolute;top:-4px;right:-4px}.dropdown{position:relative}.dropdown__trigger{border:1px solid var(--card-border);background:var(--surface);border-radius:var(--radius-sm);min-height:44px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));align-items:center;gap:8px;padding:0 12px;display:inline-flex}.dropdown__trigger:hover{border-color:var(--primary)}.dropdown__trigger--avatar{padding:0 12px 0 5px}.avatar{border-radius:calc(var(--radius-sm) - 4px);background:var(--primary);width:34px;height:34px;color:var(--primary-contrast);font-weight:var(--weight-semibold);text-transform:uppercase;place-items:center;display:grid}.dropdown__menu{z-index:40;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.menu-head{border-bottom:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;margin-bottom:4px;padding:8px 10px 10px;display:flex}.menu-head strong{color:var(--text);font-size:var(--text-base)}.menu-item{text-align:left;border-radius:var(--radius-sm);background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item.is-active{color:var(--primary);font-weight:var(--weight-medium)}.menu-item.is-danger{color:var(--danger)}.page{max-width:1440px;margin:0 auto;padding:12px 32px 64px}.crumb{margin:0 0 16px -10px}.auth{place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.auth__tools{gap:8px;display:flex;position:absolute;top:20px;right:20px}.auth__layout{grid-template-columns:1fr 430px;align-items:center;gap:64px;width:100%;max-width:1060px;display:grid}.auth__hero{flex-direction:column;gap:20px;display:flex}.auth__hero h2{font-size:var(--text-3xl);font-weight:var(--heading-weight);line-height:1.05}.auth__hero p{color:var(--text-muted);font-size:var(--text-md);max-width:440px}.auth__features{flex-direction:column;gap:14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.auth__features li{align-items:center;gap:12px;display:flex}.auth__features .avatar{background:color-mix(in srgb, var(--primary) 14%, transparent);width:38px;height:38px;color:var(--primary)}.auth__card{flex-direction:column;gap:16px;width:100%;padding:36px;display:flex}.auth__card h1{font-size:var(--text-xl);font-weight:var(--heading-weight)}.auth__sub{color:var(--text-muted)}.auth__alt{text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.check{font-size:var(--text-sm);align-items:flex-start;gap:10px;display:flex}.check input{accent-color:var(--primary);width:16px;height:16px;margin-top:3px}@media (width<=900px){.auth__layout{grid-template-columns:1fr;max-width:430px}.auth__hero{display:none}}.header__title,.bottom-nav{display:none}@media (width<=900px){.header{padding:calc(8px + env(safe-area-inset-top)) 14px 8px;gap:8px}.header__title{min-width:0;font-weight:var(--weight-semibold);font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;letter-spacing:var(--heading-tracking);flex:0 auto;display:block;overflow:hidden}.header .nav-pill,.header__leave,.hide-mobile,.dropdown__label,.dropdown__trigger>svg:last-child{display:none}.logo__mark,.icon-btn,.dropdown__trigger{width:40px;height:40px;min-height:40px}.logo__mark{border-radius:calc(var(--radius-sm) - 2px)}.dropdown__trigger{justify-content:center;padding:0}.avatar{width:30px;height:30px}.dropdown__menu{max-width:calc(100vw - 28px)}.page{padding:4px 16px 32px}.page--with-nav{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.crumb{margin-bottom:8px}.bottom-nav{z-index:30;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface-base) 86%, transparent);-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%);border:1px solid var(--card-border);border-radius:min(var(--radius-nav), 28px);box-shadow:var(--shadow-lg);gap:2px;padding:6px;transition:transform .22s,opacity .22s;display:flex;position:fixed}.bottom-nav--hidden{opacity:0;pointer-events:none;transform:translateY(calc(100% + 32px))}.bottom-nav__item{min-width:0;color:var(--text-muted);font-size:11px;font-weight:var(--weight-medium);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 2px;display:flex}.bottom-nav__icon{border-radius:min(var(--radius-nav), 16px);place-items:center;width:56px;height:32px;transition:background .15s,color .15s;display:grid;position:relative}.bottom-nav__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav__item.active{color:var(--text)}.bottom-nav__item.active .bottom-nav__icon{background:var(--primary);color:var(--primary-contrast)}.bottom-nav__badge{border-radius:var(--radius-full);background:var(--danger);color:#fff;text-align:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:-2px;right:4px}}.muted{color:var(--text-muted)}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;display:flex}.filters .field{min-width:190px}.filters .input,.filters .btn{background-color:var(--surface-solid)}.filters .btn--primary{background-color:var(--primary)}.search{flex:1;min-width:220px;max-width:420px;position:relative}.search svg{color:var(--text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search .input{padding-left:42px}.inst-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.inst-card{flex-direction:column;gap:16px;padding:22px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}@media (hover:hover){.inst-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}}.inst-card--fav{border-color:color-mix(in srgb, var(--primary) 50%, transparent)}.inst-card__head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.inst-card__head h3{font-size:var(--text-lg);font-weight:var(--heading-weight);line-height:1.2}.fav-btn{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:0;padding:6px;display:grid}.fav-btn:hover{background:var(--surface-2)}.fav-btn.is-on{color:var(--warn)}.inst-card__info{font-size:var(--text-sm);flex:1;grid-template-columns:100px 1fr;align-content:start;gap:10px 8px;margin:0;display:grid}.inst-card__info dt{color:var(--text-muted)}.inst-card__info dd{margin:0}.dash{flex-direction:column;gap:20px;display:flex}.dash__row{gap:20px;display:grid}.dash__row--3{grid-template-columns:repeat(3,minmax(0,1fr))}.dash__row--charts{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.dash__row--5{grid-template-columns:repeat(5,minmax(0,1fr))}.tile{flex-direction:column;gap:12px;min-height:130px;padding:22px;display:flex}.tile__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tile__label{color:var(--text);font-size:var(--text-base);font-weight:var(--weight-medium);align-items:center;gap:8px;display:flex}.tile__label svg{color:var(--text-muted)}.tile__arrow{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);place-items:center;transition:background .15s,color .15s;display:grid}.tile__arrow:hover{background:var(--primary);color:var(--primary-contrast)}.tile__value{font-size:var(--text-2xl);font-weight:var(--heading-weight);letter-spacing:var(--heading-tracking);line-height:1.1}.tile--lg{justify-content:space-between;min-height:160px;padding:26px}.tile--lg .tile__value{font-size:var(--text-3xl)}.tile__value small{font-size:var(--text-base);font-weight:var(--weight-regular);color:var(--text-muted);letter-spacing:0;margin-left:8px}.tile__bar{background:var(--surface-2);border-radius:var(--radius-full);height:8px;overflow:hidden}.tile__bar span{background:var(--primary);border-radius:inherit;height:100%;display:block}.tile--ok .tile__value{color:var(--ok)}.tile--ok .tile__bar span{background:var(--ok)}.tile--warn .tile__value{color:var(--warn)}.tile--warn .tile__bar span{background:var(--warn)}.tile--danger .tile__value{color:var(--danger)}@media (width<=1100px){.dash__row--3,.dash__row--charts{grid-template-columns:1fr}.dash__row--5{grid-template-columns:repeat(2,minmax(0,1fr))}}.params-layout{grid-template-columns:220px 1fr;align-items:start;gap:28px;display:grid}.params-menu{flex-direction:column;gap:4px;display:flex}.params-menu button{text-align:left;border-radius:var(--radius-sm);background:0 0;border:0;padding:11px 16px}.params-menu button:hover{background:var(--surface-2)}.params-menu button.is-active{background:var(--primary);color:var(--primary-contrast);font-weight:var(--weight-medium)}.params-list{padding:6px 24px}.param,.setting-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.param:last-child,.setting-row:last-child{border-bottom:0}.param__label{font-weight:var(--weight-medium)}.param__group{font-size:var(--text-xs);color:var(--text-muted)}.param__number{align-items:center;gap:8px;display:inline-flex}.param__number .input{width:96px}.param .field{min-width:150px}@media (width<=800px){.params-layout{grid-template-columns:1fr}.params-menu{flex-direction:row;overflow-x:auto}.params-menu button{white-space:nowrap}}.charts-grid{gap:20px;display:grid}.chart-card h2{font-size:var(--text-md);font-weight:var(--weight-medium);margin-bottom:12px}.charts-page--full{flex-direction:column;height:calc(100vh - 190px);min-height:420px;display:flex}.charts-page--full .charts-grid{flex:1;min-height:0}.chart-card--full{flex-direction:column;height:100%;display:flex}.chart-card--full .chart-card__body{flex:1;min-height:0}.notif-list{padding:6px 24px}.notif{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 0;display:flex}.notif:last-child{border-bottom:0}.notif__title{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.notif--unread .notif__title strong:after{content:"";background:var(--primary);border-radius:50%;width:8px;height:8px;margin-left:8px;display:inline-block}.notif:not(.notif--unread){opacity:.7}.notif__time{font-size:var(--text-xs);color:var(--text-muted)}.settings{flex-direction:column;gap:20px;max-width:780px;display:flex}.settings-section h2{font-size:var(--text-lg);font-weight:var(--heading-weight);margin-bottom:8px}.form-grid{flex-direction:column;gap:14px;max-width:420px;margin-top:12px;display:flex}.form-actions{align-items:center;gap:12px;display:flex}.confirm-box{border:1px solid var(--danger);border-radius:var(--radius-md);flex-direction:column;gap:12px;margin-top:12px;padding:18px;display:flex}.logo__img{object-fit:contain;width:70%;height:70%}.tb{grid-template-columns:380px 1fr;align-items:start;gap:24px;display:grid}.tb__form{flex-direction:column;gap:18px;display:flex;position:sticky;top:90px}.tb__actions{flex-wrap:wrap;gap:8px;display:flex}.tb__contrast{flex-wrap:wrap;align-items:center;gap:10px;margin-top:-6px;display:flex}.tb__logo{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tb__logo img{object-fit:contain;border-radius:var(--radius-sm);background:var(--surface-2);width:44px;height:44px}.color-field{align-items:center;gap:10px;display:flex}.color-field input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-solid);cursor:pointer;flex:none;width:44px;height:44px;padding:2px}.tb__previews{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.tb-preview{background-color:var(--bg);background-image:var(--bg-image);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:14px;min-width:0;padding:20px;display:flex}.tb-preview__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tb-preview__bar .nav-pill a{font-size:var(--text-sm);padding:6px 14px}.tb-preview__title{font-size:var(--text-lg);font-weight:var(--heading-weight)}.tb-preview__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=1200px){.tb{grid-template-columns:1fr}.tb__form{position:static}}@media (width<=800px){.tb__previews{grid-template-columns:1fr}}@media (width<=900px){.input{font-size:16px}.card,.tile{padding:18px}.tile--lg{min-height:120px;padding:20px}.page-title{margin-bottom:20px}.page-title__actions{width:100%}.page-title__actions .segmented{flex:1}.page-title__actions .segmented button{flex:1;padding-inline:8px}.filters{gap:8px;margin-bottom:18px}.filters .search{flex:100%;min-width:0;max-width:none}.filters .field{flex:calc(50% - 4px);min-width:0}.filters .segmented{width:100%}.filters .segmented button{flex:1}.inst-grid{grid-template-columns:1fr;gap:14px}.inst-card{padding:18px}.param,.setting-row{flex-wrap:wrap;gap:10px}.param .field{width:100%;min-width:0}.params-menu{margin:0 -16px;padding:0 16px 4px}.notif{flex-direction:column;gap:6px}.charts-page--full{height:calc(100dvh - 340px);min-height:340px}.auth__card{padding:24px}.auth{align-items:start;padding:72px 16px 24px}.tb__actions .btn{flex:auto}}@media (width<=560px){.dash__row--5{grid-template-columns:repeat(2,minmax(0,1fr))}.dash__row--5 .tile:last-child{grid-column:1/-1}}
