@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-BWi5-Pby.woff2) format("woff2"),url(/assets/manrope-latin-400-normal-CVCPdBT6.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-cyrillic-400-normal-DYJIFuzK.woff2) format("woff2"),url(/assets/manrope-cyrillic-400-normal-BSokYSPU.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-DSFH1H_4.woff2) format("woff2"),url(/assets/manrope-latin-500-normal-CaA3LSzB.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-cyrillic-500-normal-DWzw0g5S.woff2) format("woff2"),url(/assets/manrope-cyrillic-500-normal-DgR5lgmT.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-ZV4JKEZQ.woff2) format("woff2"),url(/assets/manrope-latin-600-normal-CCCdT9q6.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-cyrillic-600-normal-VxnJDbp5.woff2) format("woff2"),url(/assets/manrope-cyrillic-600-normal-5gpPULAf.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-CvykrKJY.woff2) format("woff2"),url(/assets/manrope-latin-700-normal-5eHMIiaE.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-cyrillic-700-normal-DNprR9vE.woff2) format("woff2"),url(/assets/manrope-cyrillic-700-normal-DW9AnYF-.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-B11XCQ5g.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-CIEtRijs.woff) format("woff")}:root{--bg: #f2f4f7;--surface: #ffffff;--surface-2: #f7f8fa;--line: #e1e5eb;--line-strong: #cdd3dc;--ink: #1b2430;--ink-2: #3a4757;--muted: #5b6b7e;--nav: #13213c;--nav-2: #1b2c4d;--nav-ink: #c9d4e8;--nav-dim: #8191ad;--accent: #2557c7;--accent-ink: #ffffff;--accent-soft: #e8eefb;--ok: #1e9e6a;--ok-soft: #e4f5ed;--warn: #b97c0c;--warn-soft: #fbf1dc;--bad: #d14343;--bad-soft: #fbe7e7;--radius: 10px;--radius-small: 7px;--shadow-pop: 0 18px 50px rgba(19, 33, 60, .18), 0 2px 8px rgba(19, 33, 60, .08);--row-hover: #f6f8fc;--line-hover: #aab4c2;--accent-hover: #1d49ad;--accent-line: #cfdbf6;--accent-ring: rgba(37, 87, 199, .2);--accent-quick: #b9c7e6;--nav-active: #24396a;--nav-mark: #7fa6f5;--ok-ink: #13744d;--warn-ink: #7d5506;--bad-ink: #a52f2f;--neutral-soft: #eceff3;--track: #e7ebf0;--switch-off: #c4cbd6;--dot-idle: #aab3c0;--alert-bad-line: #f1c3c3;--alert-bad-ink: #8e2626;--imp-bg: #fbf1dc;--imp-ink: #6b4a07;--imp-line: #efd9a8;--code-bg: #0f1a2e;--code-ink: #d5e0f5;--scrim: rgba(15, 26, 46, .42);--danger-hover: #b53434;--font: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #0e1522;--surface: #162033;--surface-2: #1b2740;--line: #26334d;--line-strong: #34435f;--ink: #e4eaf4;--ink-2: #c3cddd;--muted: #8e9db4;--nav: #0a101b;--nav-2: #141d2e;--nav-ink: #c2cce0;--nav-dim: #74839e;--accent: #6f98f2;--accent-ink: #0b1220;--accent-soft: #1d2c4d;--ok: #3cc58d;--ok-soft: #12352a;--warn: #e3a93b;--warn-soft: #3a2d12;--bad: #f07171;--bad-soft: #3d1c20;--shadow-pop: 0 18px 50px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .35);--row-hover: #1c2943;--line-hover: #4a5b7a;--accent-hover: #8badf6;--accent-line: #2d4475;--accent-ring: rgba(111, 152, 242, .25);--accent-quick: #3a5590;--nav-active: #1d2c4d;--nav-mark: #8badf6;--ok-ink: #7be0b5;--warn-ink: #f2c66f;--bad-ink: #ffaaaa;--neutral-soft: #222e45;--track: #26334d;--switch-off: #3a4863;--dot-idle: #5d6c86;--alert-bad-line: #5e2a30;--alert-bad-ink: #ffb3b3;--imp-bg: #33270f;--imp-ink: #f2d08c;--imp-line: #5a4519;--code-bg: #0a101b;--code-ink: #d5e0f5;--scrim: rgba(0, 0, 0, .6);--danger-hover: #f58b8b;color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0e1522;--surface: #162033;--surface-2: #1b2740;--line: #26334d;--line-strong: #34435f;--ink: #e4eaf4;--ink-2: #c3cddd;--muted: #8e9db4;--nav: #0a101b;--nav-2: #141d2e;--nav-ink: #c2cce0;--nav-dim: #74839e;--accent: #6f98f2;--accent-ink: #0b1220;--accent-soft: #1d2c4d;--ok: #3cc58d;--ok-soft: #12352a;--warn: #e3a93b;--warn-soft: #3a2d12;--bad: #f07171;--bad-soft: #3d1c20;--shadow-pop: 0 18px 50px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .35);--row-hover: #1c2943;--line-hover: #4a5b7a;--accent-hover: #8badf6;--accent-line: #2d4475;--accent-ring: rgba(111, 152, 242, .25);--accent-quick: #3a5590;--nav-active: #1d2c4d;--nav-mark: #8badf6;--ok-ink: #7be0b5;--warn-ink: #f2c66f;--bad-ink: #ffaaaa;--neutral-soft: #222e45;--track: #26334d;--switch-off: #3a4863;--dot-idle: #5d6c86;--alert-bad-line: #5e2a30;--alert-bad-ink: #ffb3b3;--imp-bg: #33270f;--imp-ink: #f2d08c;--imp-line: #5a4519;--code-bg: #0a101b;--code-ink: #d5e0f5;--scrim: rgba(0, 0, 0, .6);--danger-hover: #f58b8b;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:500 14.5px/1.5 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:22px;line-height:1.25}h2{font-size:16px}h3{font-size:15px}p{margin:0}a{color:var(--accent);text-decoration:none}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--ink)}.mono,code,pre{font-family:var(--mono);font-size:13px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:4px}.shell{display:flex;min-height:100%}.sidebar{width:252px;flex:none;background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 14px 20px}.icon-btn.sidebar-close{display:none;color:var(--nav-ink)}.brand{display:flex;align-items:center;gap:11px;color:#fff}.brand strong{display:block;font-size:16px;letter-spacing:.01em}.brand span{display:block;font-size:12px;color:var(--nav-dim);font-weight:500}.logo{display:block;height:30px;width:auto}.brand-tagline{font-size:13px;color:var(--muted);font-weight:500;padding-left:2px}.logo-for-dark{display:none}:root[data-theme=dark] .logo-for-light{display:none}:root[data-theme=dark] .logo-for-dark{display:block}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .logo-for-light{display:none}:root:not([data-theme=light]) .logo-for-dark{display:block}}.nav-scroll{flex:1;overflow-y:auto;padding:6px 10px 16px;scrollbar-width:thin;scrollbar-color:var(--nav-2) transparent}.nav-group{margin-top:16px}.nav-group-title{display:flex;align-items:center;gap:8px;padding:0 10px 6px;font-size:12.5px;font-weight:600;color:var(--nav-dim)}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px 7px 33px;border-radius:8px;color:var(--nav-ink);font-weight:500;line-height:1.35}.nav-scroll>.nav-item{padding-left:10px;font-weight:600;color:#fff}.nav-item:hover{background:var(--nav-2);color:#fff}.nav-item.is-active{background:var(--nav-active);color:#fff;box-shadow:inset 3px 0 0 var(--nav-mark)}.nav-small{padding-left:10px;font-size:13px;color:var(--nav-dim)}.sidebar-foot{padding:10px;border-top:1px solid var(--nav-2)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:58px;display:flex;align-items:center;gap:10px;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-spacer{flex:1}.icon-btn.nav-toggle{display:none}.user-btn{display:flex;align-items:center;gap:9px;background:none;border:0;padding:5px 8px;border-radius:8px;cursor:pointer}.user-btn:hover{background:var(--surface-2)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.user-name{font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.impersonation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 22px;background:var(--imp-bg);color:var(--imp-ink);border-bottom:1px solid var(--imp-line)}.content{flex:1;padding:26px 28px 60px}.page{max-width:1240px;margin:0 auto}.scrim{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{display:flex;align-items:center;gap:14px}.page-icon{width:42px;height:42px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}.page-sub{color:var(--muted);margin-top:3px}.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;margin-bottom:14px}.back-link:hover{color:var(--accent)}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 14px}.section-title{font-size:14px;color:var(--ink-2);margin-bottom:12px}.muted-link{color:var(--muted);font-weight:600}.muted-link:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius-small);border:1px solid var(--line-strong);background:var(--surface);font-weight:600;cursor:pointer;white-space:nowrap;color:var(--ink)}.btn:hover:not(:disabled){border-color:var(--line-hover);background:var(--surface-2)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--line)}.btn-small{height:30px;padding:0 10px;font-size:13px}.btn-block{width:100%;height:42px}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:0;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius-small);overflow:hidden}.seg button{border:0;background:var(--surface);width:38px;height:34px;display:grid;place-items:center;cursor:pointer;color:var(--muted)}.seg button.is-on{background:var(--accent-soft);color:var(--accent)}.push-right{margin-left:auto}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;z-index:40;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.menu-right{left:auto;right:0}.menu a,.menu button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;background:none;border-radius:7px;text-align:left;cursor:pointer;color:var(--ink);font-weight:500}.menu a:hover,.menu button:hover:not(:disabled){background:var(--surface-2)}.menu button:disabled{opacity:.4}.menu .danger{color:var(--bad)}.menu-caption{padding:6px 10px 8px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line);margin-bottom:4px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;padding:8px 10px}.search{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface-2);color:var(--muted);min-width:220px}.search input{border:0;background:transparent;outline:none;width:100%}.toolbar-actions{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.sel-count{color:var(--muted);font-size:13px;margin-right:6px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12.5px;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--row-hover)}.table tbody tr.is-selected{background:var(--accent-soft)}.table tbody tr:last-child td{border-bottom:0}.col-check{width:40px}.col-open{width:44px;text-align:right}.cell-primary{font-weight:600}.props{display:flex;align-items:center;gap:6px}.prop-icon{color:var(--muted);display:inline-flex}.prop-icon.is-bad{color:var(--bad)}.file-name{display:inline-flex;align-items:center;gap:8px;font-weight:600}.dir-icon{color:var(--warn)}.chip{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:12px;font-size:12.5px;font-weight:600;white-space:nowrap}.chip-ok{background:var(--ok-soft);color:var(--ok-ink)}.chip-muted{background:var(--neutral-soft);color:var(--muted)}.chip-warn{background:var(--warn-soft);color:var(--warn-ink)}.chip-bad{background:var(--bad-soft);color:var(--bad-ink)}.chip-btn{border:0;padding:0;background:none;cursor:pointer;border-radius:12px}.chip-btn:hover .chip{filter:brightness(.96);box-shadow:inset 0 0 0 1px #00000014}.empty{display:grid;justify-items:center;gap:10px;padding:46px 20px;text-align:center;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius)}.empty-large{border-radius:var(--radius);padding:56px 24px}.empty-large h2{color:var(--ink);font-size:18px}.empty-large p{max-width:460px}.list-embedded .toolbar{border-radius:var(--radius) var(--radius) 0 0}.list-head-embedded{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.list-head-embedded .head-actions{margin-left:auto}.form-page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:980px}.form-page .page-head{padding:22px 26px 0;margin-bottom:10px}.form-body{padding:4px 26px 8px}.form-actions{display:flex;gap:10px;padding:16px 26px 22px;border-top:1px solid var(--line)}.form-section{padding:14px 0;border-bottom:1px solid var(--line)}.form-section:last-child{border-bottom:0}details.form-section summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;font-weight:700;color:var(--ink-2);padding:2px 0}details.form-section summary::-webkit-details-marker{display:none}details[open].form-section summary svg{transform:rotate(180deg)}details.form-section .form-grid{margin-top:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}.field{display:grid;gap:6px;align-content:start}.field-wide{grid-column:1 / -1}.field-label{font-weight:600;font-size:13.5px;color:var(--ink-2)}.req{color:var(--bad);margin-left:3px}.field input:not([type=checkbox]),.field select,.field textarea{width:100%;height:38px;padding:0 11px;border:1px solid var(--line-strong);border-radius:var(--radius-small);background:var(--surface)}.field textarea{height:auto;padding:9px 11px;resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--bad)}.field-hint{display:flex;gap:6px;color:var(--muted);font-size:12.5px;line-height:1.45}.field-hint svg{flex:none;margin-top:2px}.field-error{color:var(--bad);font-size:13px;font-weight:600}.field-static .static-value{padding:8px 0 2px;overflow-wrap:anywhere;white-space:pre-line}.field-row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.input-group{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--radius-small);background:var(--surface)}.input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field .input-group input{border:0!important;box-shadow:none!important}.code-block{margin:0;padding:12px 14px;background:var(--code-bg);color:var(--code-ink);border-radius:var(--radius-small);white-space:pre-wrap;overflow-wrap:anywhere;max-height:460px;overflow:auto;line-height:1.55}.field-check{align-self:center}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{width:38px;height:22px;border-radius:11px;background:var(--switch-off);position:relative;flex:none;transition:background .15s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2.5px solid var(--accent);outline-offset:2px}.switch input:disabled+.switch-track{opacity:.5}.switch-label{font-weight:600;font-size:13.5px;color:var(--ink-2)}.check{display:flex;align-items:center;gap:8px;color:var(--ink-2)}.alert{padding:11px 14px;border-radius:var(--radius-small);background:var(--surface-2);border:1px solid var(--line);margin-bottom:14px}.alert-error{background:var(--bad-soft);border-color:var(--alert-bad-line);color:var(--alert-bad-ink);font-weight:600}.toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:100;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 10px 12px 14px;border-radius:var(--radius);background:var(--nav);color:#fff;box-shadow:var(--shadow-pop)}.toast span{flex:1;padding-top:1px}.toast .icon-btn{color:var(--nav-dim);width:26px;height:26px}.toast-ok svg:first-child{color:#6ee0ad;flex:none}.toast-error{background:#5c1f1f}.toast-error svg:first-child{color:#ffb4b4;flex:none}.drawer-layer,.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:60}.drawer{position:absolute;top:0;right:0;height:100%;width:min(620px,100vw);background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow-pop);animation:drawer-in .18s ease-out}.drawer-wide{width:min(780px,100vw)}@keyframes drawer-in{0%{transform:translate(28px);opacity:.6}to{transform:none;opacity:1}}.drawer-form,.drawer-body-wrap{display:flex;flex-direction:column;height:100%}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.drawer-head h1{font-size:19px}.drawer-body{flex:1;overflow-y:auto;padding:8px 22px 22px}.drawer-body-wrap>.alert,.drawer-body-wrap>.spinner-wrap{margin:20px 22px}.drawer-foot{display:flex;gap:10px;padding:14px 22px;border-top:1px solid var(--line);background:var(--surface-2)}.drawer .form-grid{grid-template-columns:1fr}.drawer-wide .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-layer{display:grid;place-items:center;padding:16px;z-index:80}.modal{background:var(--surface);border-radius:14px;padding:22px 24px;width:min(460px,100%);box-shadow:var(--shadow-pop)}.modal h2{font-size:18px;margin-bottom:8px}.modal p{color:var(--ink-2);overflow-wrap:anywhere}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.spinner-wrap{display:flex;align-items:center;gap:10px;color:var(--muted);padding:28px 4px}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100%;display:grid;place-content:center;gap:14px;padding:20px}.vx-login{--l-bg: #090d16;--l-line: #243044;--l-muted: #8491a6;--l-text: #e6ebf4;--l-accent: #5b8cff;--l-accent2: #6c5ce7;display:grid;grid-template-columns:minmax(480px,1.25fr) minmax(400px,.75fr);min-height:100vh;background:var(--l-bg);color:var(--l-text);font-size:15px;font-weight:500;color-scheme:dark}.vx-eyebrow{margin:0 0 8px;color:#6e95f8;font-size:12px;font-weight:700;letter-spacing:.16em}.vx-login-visual{position:relative;display:grid;align-items:center;overflow:hidden;padding:clamp(34px,7vw,100px);background:radial-gradient(circle at 28% 32%,#192f62 0,transparent 38%),radial-gradient(circle at 75% 70%,#34265f 0,transparent 35%),#0b1120}.vx-login-visual:after{position:absolute;content:"";top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 60%,var(--l-bg))}.vx-login-grid{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;opacity:.13;background-image:linear-gradient(#7191d8 1px,transparent 1px),linear-gradient(90deg,#7191d8 1px,transparent 1px);background-size:54px 54px;transform:perspective(500px) rotateX(55deg) rotate(-12deg)}.vx-visual-copy{position:relative;z-index:1;max-width:660px}.vx-brand-mark{display:grid;width:54px;height:54px;margin-bottom:22px;place-items:center;border-radius:14px;background:linear-gradient(145deg,#6b91ff,#6654db);color:#fff;box-shadow:0 7px 25px #556eff44}.vx-brand-mark svg{width:29px;height:29px}.vx-visual-copy h1{margin:24px 0;font-size:clamp(42px,4.5vw,68px);line-height:1.04;letter-spacing:-.045em;font-weight:800}.vx-visual-copy h1 span{display:block;color:#7798ff}.vx-visual-copy>p:not(.vx-eyebrow){max-width:550px;color:#9ba9be;font-size:18px;line-height:1.7}.vx-visual-stats{display:flex;flex-wrap:wrap;gap:14px;margin-top:42px}.vx-visual-stats>div{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:10px;padding:16px 18px;border:1px solid #ffffff16;border-radius:12px;background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.vx-visual-stats svg{grid-row:span 2;width:22px;color:#7597ff}.vx-visual-stats small{color:var(--l-muted)}.vx-login-panel{display:grid;place-items:center;padding:50px;background:var(--l-bg)}.vx-login-panel form{width:min(100%,390px)}.vx-login-panel h2{margin:7px 0;font-size:34px;letter-spacing:-.03em;font-weight:800}.vx-login-muted{margin:0;color:var(--l-muted)}.vx-login-panel label{display:grid;gap:8px;margin-top:22px;color:#b7c0cf;font-size:14px;font-weight:600}.vx-login-panel input:not([type=checkbox]){width:100%;border:1px solid var(--l-line);border-radius:8px;outline:0;background:#0e1520;color:var(--l-text);padding:12px 13px;transition:.2s;font:inherit}.vx-login-panel input:not([type=checkbox])::placeholder{color:#5d6a80}.vx-login-panel input:not([type=checkbox]):focus{border-color:#6388f5;box-shadow:0 0 0 3px #6388f51c}.vx-login-panel .vx-login-check{display:flex;align-items:center;gap:9px;margin-top:16px;color:var(--l-muted);font-weight:500;cursor:pointer}.vx-login-check input{width:16px;height:16px;accent-color:var(--l-accent)}.vx-form-error{margin:15px 0 0;padding:11px 13px;border:1px solid #ff647c55;border-radius:8px;background:#ff647c12;color:#ff8c9e;font-size:14px}.vx-login-submit{display:inline-flex;width:100%;margin-top:24px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--l-accent),var(--l-accent2));padding:13px;color:#fff;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 8px 25px #586cff2b}.vx-login-submit svg{width:17px;height:17px}.vx-login-submit:disabled{cursor:wait;opacity:.7}.vx-login-submit:focus-visible,.vx-login-foot a:focus-visible,.vx-login-foot button:focus-visible{outline:2px solid #8fb0ff;outline-offset:2px}.vx-login-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:26px;font-size:13px}.vx-login-foot a{color:#82a2ff}.vx-login-foot a:hover{text-decoration:underline}.vx-login-foot .btn{color:var(--l-muted);background:transparent;border-color:transparent}.vx-login-foot .btn:hover{color:var(--l-text);background:#ffffff0d}@media (max-width: 900px){.vx-login{display:block}.vx-login-visual{display:none}.vx-login-panel{min-height:100vh;padding:30px 16px}}.eula-screen{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.eula-card{width:min(860px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.eula-head{padding:22px 26px 16px;border-bottom:1px solid var(--line)}.eula-head h1{font-size:20px}.eula-head p{color:var(--muted);margin-top:6px;max-width:70ch}.eula-text{flex:1;overflow:auto;padding:18px 26px;color:var(--ink-2);font-size:14px;line-height:1.6}.eula-text h1{font-size:17px;margin:6px 0 12px}.eula-text h2{font-size:15px;margin:18px 0 8px;color:var(--ink)}.eula-text p,.eula-text li{margin:0 0 8px;max-width:90ch}.eula-text ul,.eula-text ol{padding-left:22px}.eula-text:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.eula-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 26px;border-top:1px solid var(--line);background:var(--surface-2)}.logs-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.logs-sources{display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px;position:sticky;top:76px}.logs-sources button{display:grid;gap:1px;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--ink-2);font:inherit}.logs-sources button small{color:var(--muted);font-size:12px}.logs-sources button:hover{background:var(--surface-2)}.logs-sources button.is-on{background:var(--accent-soft);color:var(--accent);font-weight:600}.logs-sources button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.logs-view{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.logs-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.logs-search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-small);color:var(--muted)}.logs-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.logs-search input{flex:1;border:0;outline:0;background:none;font:inherit;color:var(--ink)}.logs-lines{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}.logs-lines select{height:36px;border:1px solid var(--line-strong);border-radius:var(--radius-small);background:var(--surface);color:var(--ink);padding:0 8px;font:inherit}.logs-meta{display:flex;justify-content:space-between;gap:12px;padding:8px 14px;font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line);overflow-wrap:anywhere}.logs-text{margin:0;padding:12px 14px;height:calc(100vh - 290px);min-height:320px;overflow:auto;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);color:var(--ink-2)}.logs-text:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.spin{animation:spin .8s linear infinite}.app-deps{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px}.app-deps .muted{color:var(--muted);margin-top:4px;max-width:60ch}@media (max-width: 860px){.logs-layout{grid-template-columns:1fr}.logs-sources{position:static;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.logs-text{height:60vh}}.catalog-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.catalog-filter button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:17px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font:inherit;font-weight:600;cursor:pointer}.catalog-filter button .num{color:var(--muted);font-weight:500}.catalog-filter button.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.catalog-filter button.is-on .num{color:inherit}.catalog-filter button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.catalog-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.catalog-card:hover{border-color:var(--line-strong)}.catalog-card-head{display:flex;align-items:center;gap:12px}.catalog-mono{width:44px;height:44px;flex:0 0 44px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:16px;letter-spacing:-.02em}.mono-0{background:var(--accent-soft);color:var(--accent)}.mono-1{background:var(--ok-soft);color:var(--ok-ink)}.mono-2{background:var(--warn-soft);color:var(--warn-ink)}.mono-3{background:var(--bad-soft);color:var(--bad-ink)}.mono-4{background:var(--neutral-soft);color:var(--ink-2)}.catalog-name h3{font-size:16px}.catalog-cat{font-size:12.5px;color:var(--muted)}.catalog-desc{color:var(--ink-2);font-size:14px;line-height:1.5;flex:1}.catalog-meta{display:flex;flex-wrap:wrap;gap:6px}.catalog-meta .tag{display:inline-flex;align-items:center;gap:4px}.catalog-install{align-self:flex-start}.catalog-note{margin-top:18px;color:var(--muted);font-size:13.5px;max-width:760px;line-height:1.5}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.site-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;position:relative}.site-card:before{content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--line-strong)}.site-card.status-running:before{background:var(--ok)}.site-card.status-error:before{background:var(--bad)}.site-card.status-suspended:before{background:var(--warn)}.site-card:hover{border-color:var(--line-strong)}.site-card-main{display:grid;gap:12px;padding:16px 18px 12px;color:inherit}.site-card-head{display:flex;align-items:center;gap:10px;min-width:0}.site-card-head h3{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}.tag-accent{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.tag-plain{background:transparent;color:var(--muted)}.site-state{font-size:13px;font-weight:600;color:var(--muted)}.state-running{color:var(--ok)}.state-error{color:var(--bad)}.state-suspended{color:var(--warn)}.site-card-actions{display:flex;align-items:center;gap:2px;padding:6px 8px;border-top:1px solid var(--line)}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--dot-idle);flex:none}.dot-running{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.dot-error{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.dot-suspended{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.dot-large{width:13px;height:13px}.meter{display:grid;gap:5px}.meter-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted)}.meter-row .num{color:var(--ink-2);font-weight:600}.meter-track{height:6px;border-radius:3px;background:var(--track);overflow:hidden}.meter-fill{display:block;height:100%;border-radius:3px}.meter-ok{background:var(--accent)}.meter-warn{background:var(--warn)}.meter-bad{background:var(--bad)}.site-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;align-items:center;gap:22px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:16px}.site-hero-main{display:flex;align-items:center;gap:14px;min-width:0}.site-hero-main h1{overflow-wrap:anywhere}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}.tab{padding:10px 14px;color:var(--muted);font-weight:600;border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--ink)}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-body .form-page{max-width:none}.dash-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}.panel-title{font-size:15px;margin-bottom:14px}.meters{display:grid;gap:14px}.health-summary{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:10px}.health-summary.is-ok{color:var(--ok)}.health-summary.is-bad{color:var(--bad)}.health-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:7px}.health-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;font-size:13.5px}.health-list li.is-bad{color:var(--bad);font-weight:600}.health-list .muted{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:1px solid var(--line);padding-top:14px}.stat{display:grid;gap:2px;color:inherit;padding:6px 8px;border-radius:8px}.stat:hover{background:var(--surface-2)}.stat-value{font-size:24px;font-weight:700;letter-spacing:-.02em}.stat-label{font-size:12.5px;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer;text-align:left;font-weight:600}.quick svg{color:var(--accent);flex:none}.quick:hover{border-color:var(--accent-quick);background:var(--accent-soft)}.dash-sites h2{font-size:17px}@media (max-width: 1080px){.site-hero,.dash-grid{grid-template-columns:1fr}}@media (max-width: 860px){.sidebar{position:fixed;left:0;top:0;z-index:70;transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:none;box-shadow:var(--shadow-pop)}.icon-btn.sidebar-close{display:inline-grid}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:65}.icon-btn.nav-toggle{display:inline-grid}.topbar{padding:0 12px}.content{padding:18px 16px 50px}.user-name{display:none}.form-grid,.drawer-wide .form-grid{grid-template-columns:1fr}.btn-text{display:none}.search{min-width:0;flex:1}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.form-page .page-head,.form-body,.form-actions{padding-left:16px;padding-right:16px}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{padding:10px 12px;border-bottom:1px solid var(--line);position:relative}.table td{border:0;padding:3px 0 3px 34px}.table td[data-label]:before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);font-weight:600}.table td.col-check{position:absolute;left:10px;top:12px;width:auto;padding:0}.table td.col-open{position:absolute;right:6px;top:6px;width:auto;padding:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.hero-tags{margin-top:6px;align-items:center}.nav-group-title{width:100%;border:0;background:none;cursor:pointer;text-align:left;border-radius:7px;padding-top:6px;padding-bottom:6px;margin-bottom:2px}.nav-group-title:hover{color:var(--nav-ink);background:var(--nav-2)}.nav-group-title .chev{margin-left:auto;transition:transform .15s;opacity:.7}.nav-group.is-collapsed .chev{transform:rotate(-90deg)}.nav-group-items{display:grid}.nav-group.is-collapsed .nav-group-items{display:none}.nav-group.has-active .nav-group-title{color:var(--nav-ink)}.nav-group{margin-top:6px}.theme-switch{display:inline-flex;border:1px solid var(--line);border-radius:9px;padding:2px;background:var(--surface-2)}.theme-switch button{width:30px;height:28px;border:0;border-radius:7px;background:none;color:var(--muted);cursor:pointer;display:grid;place-items:center}.theme-switch button:hover{color:var(--ink)}.theme-switch button.is-on{background:var(--surface);color:var(--accent);box-shadow:0 1px 2px #0000001f}.app-deps .panel-title{margin-bottom:0}.tab-section{margin:22px 0 10px}.git-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.git-actions .muted{color:var(--muted);font-size:14px}
