@font-face{font-family:Lufga;src:url(/assets/Lufga-Light-DxuSyusC.otf)format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Lufga;src:url(/assets/Lufga-Regular-B8PVUt0U.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lufga;src:url(/assets/Lufga-Medium-CMSdB7Wf.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Lufga;src:url(/assets/Lufga-SemiBold-OHe5RMWV.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Lufga;src:url(/assets/Lufga-Bold-d_QNk0Pm.otf)format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--c-bg:#f6f5f2;--c-surface:#fff;--c-surface-2:#f1efea;--c-border:#e4e1da;--c-border-strong:#cfcbc2;--c-text:#1c1a17;--c-text-2:#5d5850;--c-text-3:#8c867c;--c-primary:#ec5b26;--c-primary-hover:#d64c1a;--c-primary-soft:#fde9e0;--c-on-primary:#fff;--c-success:#0e9f5b;--c-success-soft:#e2f7ec;--c-danger:#c62828;--c-danger-soft:#fdecec;--c-warning:#b7791f;--c-warning-soft:#fef4dc;--c-focus:#2563eb;--c-green:#16b86a;--c-yellow:#f7b52c;--c-idle:#d3d7dd;--font:"Lufga", "Segoe UI", system-ui, sans-serif;--fs-xs:12px;--fs-sm:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:32px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--r-sm:6px;--r-md:10px;--r-lg:14px;--control-h:40px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 16px 48px #0000002e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg:#141311;--c-surface:#1d1b19;--c-surface-2:#26231f;--c-border:#34302b;--c-border-strong:#48433c;--c-text:#f3f1ed;--c-text-2:#bdb6ab;--c-text-3:#8a8378;--c-primary:#f26a37;--c-primary-hover:#ff7c4b;--c-primary-soft:#3a2216;--c-on-primary:#1a0d05;--c-success:#34d399;--c-success-soft:#12301f;--c-danger:#f87171;--c-danger-soft:#3a1717;--c-warning:#fbbf24;--c-warning-soft:#3a2c10;--c-green:#22c97a;--c-yellow:#f8c04a;--c-idle:#4a4640;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--c-bg:#141311;--c-surface:#1d1b19;--c-surface-2:#26231f;--c-border:#34302b;--c-border-strong:#48433c;--c-text:#f3f1ed;--c-text-2:#bdb6ab;--c-text-3:#8a8378;--c-primary:#f26a37;--c-primary-hover:#ff7c4b;--c-primary-soft:#3a2216;--c-on-primary:#1a0d05;--c-success:#34d399;--c-success-soft:#12301f;--c-danger:#f87171;--c-danger-soft:#3a1717;--c-warning:#fbbf24;--c-warning-soft:#3a2c10;--c-green:#22c97a;--c-yellow:#f8c04a;--c-idle:#4a4640;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs-md);background:var(--c-bg);color:var(--c-text);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}a{color:var(--c-primary)}:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}.ui-btn{justify-content:center;align-items:center;gap:var(--sp-2);height:var(--control-h);padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);font:inherit;cursor:pointer;white-space:nowrap;font-weight:550;transition:background .12s,border-color .12s;display:inline-flex}.ui-btn:hover:not(:disabled){background:var(--c-surface-2)}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn.primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.ui-btn.primary:hover:not(:disabled){background:var(--c-primary-hover)}.ui-btn.danger{color:var(--c-danger)}.ui-btn.ghost{background:0 0;border-color:#0000}.ui-btn.sm{height:32px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.ui-btn.block{width:100%}.ui-field{font-size:var(--fs-sm);color:var(--c-text-2);flex-direction:column;gap:6px;font-weight:500;display:flex}.ui-field .hint{color:var(--c-text-3);font-weight:400;font-size:var(--fs-xs)}.ui-input,.ui-field input,.ui-field select,.ui-field textarea{height:var(--control-h);padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:var(--c-surface);color:var(--c-text);font:inherit;font-size:var(--fs-md)}.ui-field textarea{height:auto;padding:var(--sp-2) var(--sp-3);resize:vertical}.ui-field input:focus,.ui-field select:focus,.ui-field textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft);outline:none}.ui-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.ui-card-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border);display:flex}.ui-card-head h3{font-size:var(--fs-lg)}.ui-card-body{padding:var(--sp-5)}.ui-badge{height:22px;font-size:var(--fs-xs);background:var(--c-surface-2);color:var(--c-text-2);border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-weight:600;display:inline-flex}.ui-badge.success{background:var(--c-success-soft);color:var(--c-success)}.ui-badge.danger{background:var(--c-danger-soft);color:var(--c-danger)}.ui-badge.warning{background:var(--c-warning-soft);color:var(--c-warning)}.ui-modal-backdrop{z-index:50;padding:var(--sp-4);background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.ui-modal{background:var(--c-surface);border-radius:var(--r-lg);width:min(480px,100%);max-height:90vh;box-shadow:var(--shadow-lg);overflow:auto}.ui-modal-head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;display:flex}.ui-modal-body{padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.ui-empty{padding:var(--sp-6);text-align:center;color:var(--c-text-3)}.ui-error{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-danger-soft);color:var(--c-danger);font-size:var(--fs-sm)}.ui-muted{color:var(--c-text-3)}.ui-stack{gap:var(--sp-4);flex-direction:column;display:flex}.ui-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.ui-grid-2{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.fm{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.fm-dot{fill:var(--c-border-strong)}.fm-body{fill:var(--c-surface)}.fm-seat{fill:var(--c-idle)}.fm-name{fill:var(--c-text);font-size:17px;font-weight:600}.fm-line{fill:var(--c-text-2);font-size:11.5px}.fm-table.clickable{cursor:pointer}.fm-table.dim{opacity:.55}.fm-table:active .fm-body{fill:var(--c-surface-2)}.fm-zone{fill:color-mix(in srgb, var(--c-surface-2) 70%, transparent);stroke:var(--c-border-strong);stroke-width:1.5px;stroke-dasharray:6 5}.fm-zone-text,.fm-label{fill:var(--c-text-3);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:500}.fm-label-box{fill:#0000;stroke:var(--c-border);stroke-dasharray:3 3}.fm-edit .fm-table,.fm-edit .fm-decor{cursor:grab}.fm-table.sel .fm-body,.fm-decor.sel .fm-zone,.fm-decor.sel .fm-label-box{stroke:var(--c-primary);stroke-width:2.5px;stroke-dasharray:none}.layout{min-height:100vh;display:flex}.sidebar{gap:var(--sp-5);width:248px;padding:var(--sp-5) var(--sp-4);background:var(--c-surface);border-right:1px solid var(--c-border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--sp-3);display:flex}.brand div{flex-direction:column;line-height:1.2;display:flex}.brand span{font-size:var(--fs-xs);color:var(--c-text-3)}.brand-mark{border-radius:var(--r-md);background:var(--c-primary);width:36px;height:36px;color:var(--c-on-primary);place-items:center;font-size:18px;font-weight:800;display:grid}.brand.big .brand-mark{width:44px;height:44px;font-size:22px}.side-nav{flex-direction:column;flex:1;gap:2px;display:flex}.side-nav a{padding:10px var(--sp-3);border-radius:var(--r-md);color:var(--c-text-2);font-weight:500;text-decoration:none}.side-nav a:hover{background:var(--c-surface-2)}.side-nav a.active{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.side-foot{justify-content:space-between;align-items:center;gap:var(--sp-2);padding-top:var(--sp-4);border-top:1px solid var(--c-border);display:flex}.who{min-width:0;font-size:var(--fs-sm);flex-direction:column;display:flex}.who span{color:var(--c-text-3);font-size:var(--fs-xs)}.main{flex:1;min-width:0}.page{max-width:1200px;padding:var(--sp-6) var(--sp-5);margin:0 auto}.page.narrow{max-width:640px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--fs-2xl);font-weight:700}.crumb{margin-bottom:var(--sp-2);font-size:var(--fs-sm);color:var(--c-text-3);text-decoration:none;display:inline-block}.crumb:hover{color:var(--c-primary)}.small{font-size:var(--fs-sm)}.ui-row.end{justify-content:flex-end}.check{align-items:center;gap:var(--sp-2);display:flex}.ok-text{color:var(--c-success);font-size:var(--fs-sm)}.server-grid{gap:var(--sp-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.server-grid .span-2{grid-column:span 2}.server-grid .big{font-size:var(--fs-xl);margin:0;font-weight:600}.meter{background:var(--c-surface-2);border-radius:999px;height:26px;position:relative;overflow:hidden}.meter span{background:var(--c-green);border-radius:999px;height:100%;display:block}.meter.warn span{background:var(--c-yellow)}.meter.bad span{background:var(--c-danger)}.meter b{font-size:var(--fs-sm);place-items:center;display:grid;position:absolute;inset:0}.kv{gap:var(--sp-2) var(--sp-4);grid-template-columns:1fr auto;margin:0;display:grid}.kv dt{overflow-wrap:anywhere;min-width:0;color:var(--c-text-2)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}@media (width<=1100px){.server-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--c-border);white-space:nowrap;padding:10px 14px}table.data th{color:var(--c-text-3);background:var(--c-surface-2);font-weight:600}table.data tr:last-child td{border-bottom:none}.neg{color:var(--c-danger)}.pos{color:var(--c-success)}.devices{gap:var(--sp-1);margin-top:var(--sp-2);flex-direction:column;display:flex}.device{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.dot{background:var(--c-text-3);border-radius:50%;width:8px;height:8px}.dot.on{background:var(--c-success);box-shadow:0 0 0 3px var(--c-success-soft)}.code-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;height:56px!important;font-size:28px!important}.login-page{min-height:100vh;padding:var(--sp-4);background:radial-gradient(circle at 20% 10%, var(--c-primary-soft), transparent 40%), var(--c-bg);place-items:center;display:grid}.login-lang{top:var(--sp-4);right:var(--sp-4);gap:2px;display:flex;position:fixed}.login-card{width:min(400px,100%);padding:var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.login-card h1{font-size:var(--fs-xl);margin-top:var(--sp-2)}@media (width<=800px){.layout{flex-direction:column}.sidebar{width:auto;height:auto;padding:var(--sp-3) var(--sp-4);flex-flow:wrap;align-items:center;position:static}.side-nav{flex-direction:row}.side-foot{border-top:none;margin-left:auto;padding-top:0}.page{padding:var(--sp-5) var(--sp-4)}.cols{grid-template-columns:1fr}}table.data td.actions{gap:var(--sp-2);white-space:nowrap;justify-content:flex-end;display:flex}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data tfoot td{border-top:2px solid var(--c-border);font-weight:600}.muted-row td,.muted{color:var(--c-text-3)}.nowrap{white-space:nowrap}table.data td.json{overflow-wrap:anywhere;max-width:420px;font-family:ui-monospace,monospace;font-size:var(--fs-xs)}.side-foot .langs{gap:2px;display:flex}.sidebar .side-foot{align-items:stretch;gap:var(--sp-3);flex-direction:column}
