:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:left;box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.m-app{max-width:640px;min-height:100vh;margin:0 auto}.m-header{background:inherit;z-index:1;border-bottom:1px solid #7f7f7f40;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex;position:sticky;top:0}.m-main{flex-direction:column;gap:12px;padding:12px 16px 32px;display:flex}.m-title{margin:4px 0 0}.m-card{border:1px solid #7f7f7f40;border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.m-row{justify-content:space-between;align-items:center;display:flex}.m-light{justify-content:space-between;align-items:center;gap:8px;display:flex}.m-img{background:#0002;border-radius:6px;width:100%}.m-event{grid-template-columns:120px 1fr;align-items:center;gap:10px;display:grid}.m-event img,.m-noimg{aspect-ratio:16/9;object-fit:cover;background:#0002;border-radius:6px;width:120px}.m-site{text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;font-size:1.05rem;display:flex}.m-button{border-radius:10px;padding:14px;font-size:1.05rem}.m-main>.link-button{align-self:flex-start}@font-face{font-family:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-cyrillic-ext-400-normal-DYs6OoL4.woff2)format("woff2"),url(/assets/carlito-cyrillic-ext-400-normal-UzWcrHdi.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:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-cyrillic-400-normal-Bzv-FGbj.woff2)format("woff2"),url(/assets/carlito-cyrillic-400-normal-BtG3bBmV.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-greek-ext-400-normal-DnfnTswf.woff2)format("woff2"),url(/assets/carlito-greek-ext-400-normal-m-eDGcsW.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-greek-400-normal-Cv5gcxdy.woff2)format("woff2"),url(/assets/carlito-greek-400-normal-aOjZpsFX.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:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-vietnamese-400-normal-BA1ASEPx.woff2)format("woff2"),url(/assets/carlito-vietnamese-400-normal-D0HL2cT_.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:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-latin-ext-400-normal-DPZWia0-.woff2)format("woff2"),url(/assets/carlito-latin-ext-400-normal-D112-ed2.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:Carlito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/carlito-latin-400-normal-R-CeALMm.woff2)format("woff2"),url(/assets/carlito-latin-400-normal-jEGHVXAP.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:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-cyrillic-ext-700-normal-BAPhAm-q.woff2)format("woff2"),url(/assets/carlito-cyrillic-ext-700-normal-C5O8kkCQ.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:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-cyrillic-700-normal-Cj42L3Bs.woff2)format("woff2"),url(/assets/carlito-cyrillic-700-normal-bxg6f20d.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-greek-ext-700-normal-COKnZ-5a.woff2)format("woff2"),url(/assets/carlito-greek-ext-700-normal-BGl1PQht.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-greek-700-normal-BXGaow7Z.woff2)format("woff2"),url(/assets/carlito-greek-700-normal-B-Y_qvTa.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:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-vietnamese-700-normal-gG8ns3Xg.woff2)format("woff2"),url(/assets/carlito-vietnamese-700-normal-DIEsMQO6.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:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-latin-ext-700-normal-D2WO8ap1.woff2)format("woff2"),url(/assets/carlito-latin-ext-700-normal-9QIvu-gI.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:Carlito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/carlito-latin-700-normal-DQ6DOkPk.woff2)format("woff2"),url(/assets/carlito-latin-700-normal-CjG3MLqY.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}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}:root{--content-inset:calc(max(40px, (100% - 1800px) / 2 + 40px) + 24px)}*{box-sizing:border-box}body{color:#1f2430;background:#f3f4f6;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-header{padding:14px var(--content-inset);color:#1f2430;background:#fff;border-bottom:1px solid #eef0f3;justify-content:space-between;align-items:center;display:flex}.app-header h1{color:#4b5563;align-items:center;gap:12px;margin:0;font-size:16px;font-weight:600;display:flex}.app-header .app-logo{width:auto;height:30px;display:block}.app-header .app-title{border-left:1px solid #e5e8ee;padding-left:12px}.app-header .header-logout{padding:9px 18px;font-size:15px}.tab-nav{padding:0 calc(var(--content-inset) - 18px);z-index:2;background:#fff;border-bottom:1px solid #e5e8ee;flex-wrap:wrap;gap:4px;display:flex;position:relative;box-shadow:0 2px 6px #1018280f}.tab-button{color:#5b6472;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:14px 18px;font-size:14px;font-weight:600}.tab-button.active{color:#14213d;border-bottom-color:#14213d}.tab-menu{position:relative}.tab-dropdown{z-index:100;background:#fff;border:1px solid #e5e8ee;border-radius:8px;flex-direction:column;gap:2px;min-width:200px;padding:6px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0000001f}.tab-dropdown-item{text-align:left;color:#1f2430;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:10px 12px;font-size:14px;font-weight:500}.tab-dropdown-item:hover{background:#f4f5f7}.tab-dropdown-item.active{color:#14213d;background:#eef0f3;font-weight:700}main{box-sizing:border-box;flex-direction:column;gap:24px;width:100%;max-width:1800px;margin:24px auto;padding:0 40px 64px;display:flex}.panel{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 1px 3px #00000014}.panel h2{margin-top:0}.hint{color:#5b6472;font-size:13px;line-height:1.5}.error{color:#b3261e;background:#fdecea;border-radius:6px;margin:10px 0;padding:10px 14px;font-size:14px}.rule-form{background:#f9fafb;border-radius:8px;margin:16px 0;padding:16px}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:12px;display:flex}.form-row label{flex-direction:column;flex:1;gap:4px;min-width:180px;font-size:13px;font-weight:600;display:flex}.checkbox-label{align-items:center;flex-direction:row!important;gap:8px!important}input,select,textarea{border:1px solid #d7dbe0;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}.code-textarea{resize:vertical;color:#e5e8ee;background:#14213d;padding:12px;font-family:SF Mono,Consolas,Monaco,monospace;font-size:13px;line-height:1.5}.rollout-device-picker{margin-bottom:4px}.rollout-device-list{background:#fff;border:1px solid #e5e8ee;border-radius:8px;flex-direction:column;gap:2px;max-height:260px;padding:6px;display:flex;overflow-y:auto}.rollout-device-item{border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:400;display:flex}.rollout-device-item:hover{background:#f4f5f7}.rollout-device-item span:nth-child(2){flex:1}.rollout-progress-bar{background:#eef0f3;border-radius:4px;height:8px;margin-bottom:4px;display:flex;overflow:hidden}.rollout-progress-seg.ok{background:#1e7b34}.rollout-progress-seg.error{background:#b3261e}.rollout-progress-seg.running{background:#1a4fb4}.rollout-progress-seg.cancelled{background:#9aa1ab}.rollout-output{color:#e5e8ee;white-space:pre-wrap;word-break:break-word;background:#14213d;border-radius:8px;max-height:400px;padding:12px;font-size:12px;overflow-y:auto}.form-actions{align-items:center;gap:12px;display:flex}button{color:#fff;cursor:pointer;background:#14213d;border:none;border-radius:6px;padding:9px 16px;font-size:14px}button.secondary{color:#1f2430;background:#e5e8ee}button:disabled{opacity:.6;cursor:not-allowed}.link-button{color:#14213d;background:0 0;padding:0;font-size:13px;text-decoration:underline}.link-button.danger{color:#b3261e}.table{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid #eef0f3;padding:8px 10px}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.table th.sortable:hover{color:#14213d}.table.nested{background:#fafbfc}.inactive-row{opacity:.5}.row-actions{gap:10px;display:flex}.run-result{margin-top:16px}.modal-overlay{z-index:1000;background:#14213d80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:10px;width:100%;max-width:700px;max-height:80vh;padding:20px 24px;overflow-y:auto;box-shadow:0 10px 40px #00000040}.badge{background:#eef0f3;border-radius:12px;padding:2px 8px;font-size:12px}.badge-ok{color:#1e7b34;background:#e3f6e5}.badge-error{color:#b3261e;background:#fdecea}.badge-preview{color:#1a4fb4;background:#e8eefc}.badge-skip,.badge-warn{color:#a15c00;background:#fff4e0}.login-page{background:#e9ebee;flex-direction:column;min-height:100vh;font-family:Calibri,Carlito,Segoe UI,Arial,sans-serif;display:flex}.login-topbar{background:#fff;padding:18px}.brand-logo-img{height:51px;display:block}.login-content{flex:1;justify-content:center;align-items:flex-start;padding:50px 16px;display:flex}.login-card{background:#fff;border:1px solid #1a88d5;border-radius:8px;width:502px;max-width:100%;overflow:hidden}.login-card-head{border-bottom:2px solid #1b2346;padding:38px 30px 35px}.login-card-head h1{letter-spacing:normal;color:#1f2430;margin:0;font-family:inherit;font-size:34px;font-weight:700;line-height:1.1}.login-card-body{background:#1a88d5;flex-direction:column;gap:16px;padding:35px 30px 46px;display:flex}.login-card-body .subtitle{color:#fff;margin:0;font-size:18px}.login-card-body input{color:#1f2430;border:1px solid #d6dbe1;border-radius:0;height:36px;padding:0 12px;font-family:inherit;font-size:15px}.login-card-body input::placeholder{color:#6b7280}.login-remember{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:15px;display:flex}.login-card-body .login-remember input{accent-color:#00b22d;cursor:pointer;width:15px;height:15px;margin:0;padding:0}.login-submit{color:#fff;background:#00b22d;border-radius:8px;align-self:flex-start;min-width:120px;height:40px;padding:0 22px;font-family:inherit;font-size:15px;font-weight:400}.login-submit:hover:not(:disabled){background:#009a27}.login-footer{color:#c4c8ce;justify-content:space-between;align-items:center;padding:14px 16px 18px;font-size:15px;display:flex}.login-footer-links{gap:30px;padding-right:29px;display:flex}.login-footer-links a{color:#1a88d5;text-decoration:none}.login-footer-links a:hover{text-decoration:underline}@media (width<=600px){.brand-logo-img{height:40px}.login-content{padding:24px 12px}.login-card-head{padding:26px 22px 22px}.login-card-head h1{font-size:30px}.login-card-body{padding:24px 22px 30px}.login-footer{font-size:14px}.login-footer-links{gap:20px;padding-right:0}}.devices-table .badge,.devices-table .row-actions{white-space:nowrap}.kv-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin:16px 0 8px;display:grid}.kv-col{flex-direction:column;gap:16px;min-width:0;display:flex}.kv-card{background:#fff;border:1px solid #e5e8ee;border-radius:10px;padding:14px 18px 8px}.kv-card h3{margin:0 0 6px;font-size:16px}.kv-row{border-top:1px solid #f0f2f5;grid-template-columns:minmax(140px,42%) 1fr;align-items:baseline;gap:12px;padding:8px 0;font-size:14px;display:grid}.kv-row:first-of-type{border-top:none}.kv-label{color:#6b7280}.kv-value{color:#1f2430;word-break:break-word}.kv-empty{color:#c4c8ce}.kv-mono{font-variant-numeric:tabular-nums}@media (width<=900px){.kv-grid{grid-template-columns:1fr}}
