@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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}:root{--bg:#f3f6fb;--surface:#fff;--surface-2:#edf1f8;--border:#dde4f0;--border-strong:#c7d2e6;--text:#0f172a;--text-muted:#5a6a84;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-2:#0891b2;--accent-text:#fff;--grad:linear-gradient(135deg, #2563eb, #0891b2);--danger:#c93a32;--ok:#15803d;--ok-bg:#e3f6ea;--bad:#cc3a31;--bad-bg:#fdebea;--warn:#a85a06;--warn-bg:#fff2d9;--idle:#5a6a84;--idle-bg:#e9edf5;--info:#2563eb;--info-bg:#e7efff;--radius:12px;--radius-sm:8px;--radius-ctl:10px;--shadow:0 1px 2px #0f172a0d, 0 1px 3px #0f172a0f;--shadow-md:0 8px 24px -6px #0f172a24, 0 2px 6px #0f172a0f;--focus:0 0 0 3px #2563eb47;--scroll-thumb:#5a6a8461;--scroll-thumb-hover:#5a6a849e;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font);font-size:var(--fs-base);color:var(--text);background:var(--bg);line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0a0f1d;--surface:#121a2c;--surface-2:#1a2438;--border:#25314b;--border-strong:#34446a;--text:#e8edf7;--text-muted:#94a3bf;--accent:#6b9bff;--accent-strong:#8ab4ff;--accent-2:#22d3ee;--accent-text:#06102b;--grad:linear-gradient(135deg, #3b82f6, #0891b2);--danger:#ff7b72;--ok:#4ade80;--ok-bg:#11301f;--bad:#ff7b72;--bad-bg:#3a1b1f;--warn:#fbbf24;--warn-bg:#382a0d;--idle:#94a3bf;--idle-bg:#1e2940;--info:#8ab4ff;--info-bg:#182650;--shadow:none;--shadow-md:0 12px 32px -8px #0000008c;--focus:0 0 0 3px #6b9bff59;--scroll-thumb:#94a3bf4d;--scroll-thumb-hover:#94a3bf8c}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0;font-size:20px;font-weight:600}h2{margin:0 0 12px;font-size:15px;font-weight:600}code,.mono{font-family:var(--mono);font-size:12.5px}:root{--topbar-h:56px;--nav-w:232px;--nav-w-collapsed:64px}.topbar{height:var(--topbar-h);z-index:30;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 16px;display:flex;position:fixed;inset:0 0 auto}.brand-link{color:var(--text);letter-spacing:-.01em;min-width:0;width:calc(var(--nav-w) - 32px);flex:none;align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.brand-link:hover{text-decoration:none}.brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app.collapsed .brand-link{width:auto}.app.collapsed .brand-name{display:none}.brand-logo{object-fit:contain;flex:none;display:block}.brand-mark{background:var(--accent);color:var(--accent-text);border-radius:8px;flex:none;place-items:center;font-weight:700;display:inline-grid}.topbar-right{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.nav-toggle{display:none}.topbar .icon-btn{width:38px;height:38px;color:var(--text-muted);background:0 0;border-color:#0000;justify-content:center;padding:0;position:relative}.topbar .icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.live-pill{color:var(--text-muted);align-items:center;gap:6px;padding:0 6px;font-size:12px;display:inline-flex}.bell-count{background:var(--warn);color:#fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;line-height:1;display:grid;position:absolute;top:1px;right:0}.bell-count.critical{background:var(--bad)}.avatar{background:var(--accent);border-color:var(--accent);width:34px;height:34px;color:var(--accent-text);border-radius:50%;justify-content:center;padding:0;font-size:13px;font-weight:600}.sidenav{top:var(--topbar-h);width:var(--nav-w);z-index:20;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:12px 8px;transition:width .15s;display:flex;position:fixed;bottom:0;left:0;overflow:hidden auto}.app.collapsed .sidenav{width:var(--nav-w-collapsed)}.sidenav nav{flex:1}.nav-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;padding:6px 10px 4px;font-size:11px}.nav-link{color:var(--text);white-space:nowrap;border-radius:6px;align-items:center;gap:12px;padding:8px 10px;display:flex;position:relative}.nav-link .icon{color:var(--text-muted);flex:none}.nav-link:hover{background:var(--surface-2);text-decoration:none}.nav-link.active .icon{color:var(--accent)}.nav-count{background:var(--warn-bg);min-width:20px;color:var(--warn);text-align:center;border-radius:999px;margin-left:auto;padding:0 6px;font-size:12px;font-weight:600}.nav-count.critical{background:var(--bad);color:#fff}.collapse-btn{color:var(--text-muted);background:0 0;border:0;justify-content:flex-start;gap:12px;width:100%;padding:8px 10px}.app.collapsed .nav-heading,.app.collapsed .nav-label{display:none}.app.collapsed .nav-group+.nav-group{border-top:1px solid var(--border);padding-top:8px}.app.collapsed .nav-link,.app.collapsed .collapse-btn{justify-content:center;padding:9px 0}.app.collapsed .nav-count{min-width:16px;margin:0;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:1px;right:6px}.scrim{display:none}.main{margin-left:var(--nav-w);padding:calc(var(--topbar-h) + 24px) 28px 40px;min-width:0;transition:margin-left .15s}.app.collapsed .main{margin-left:var(--nav-w-collapsed)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.back{margin-bottom:8px;font-size:13px;display:inline-block}td.wrap{white-space:normal;min-width:260px}.rx{font-variant-numeric:tabular-nums}.rx.ok{color:var(--ok)}.rx.warn{color:var(--warn);font-weight:600}.rx.crit{color:var(--bad);font-weight:600}.cmd{flex:1;min-width:0;max-width:560px;margin:0 auto;position:relative}.cmd-field{border:1px solid var(--border);background:var(--surface-2);height:36px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.cmd-field:focus-within{border-color:var(--accent);background:var(--surface)}.cmd-field input{min-width:0;height:100%;color:var(--text);appearance:none;background:0 0;border:0;flex:1;padding:0;outline:none!important}.cmd-kbd{font-family:var(--mono);border:1px solid var(--border);color:var(--text-muted);background:var(--surface);border-radius:4px;padding:0 5px;font-size:11px}.cmd-toggle,.cmd-close{display:none!important}.cmd-panel{z-index:40;border:1px solid var(--border);background:var(--surface);border-radius:10px;max-height:min(70vh,520px);padding:6px;position:absolute;top:42px;left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #0000002e}.cmd-group{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 10px 3px;font-size:11px}.cmd-item{text-align:left;white-space:normal;background:0 0;border:0;border-radius:6px;justify-content:flex-start;gap:10px;width:100%;padding:8px 10px}.cmd-item.active{background:var(--info-bg)}.cmd-item .icon{color:var(--text-muted);flex:none}.cmd-title{font-weight:500}.cmd-sub{text-align:right;margin-left:auto}.cmd-empty{padding:12px 10px}.popover-host{position:relative}.popover{z-index:40;border:1px solid var(--border);background:var(--surface);border-radius:10px;width:340px;max-width:calc(100vw - 24px);position:absolute;top:44px;right:0;overflow:hidden;box-shadow:0 12px 32px #0000002e}.popover-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.popover-foot{border-top:1px solid var(--border);text-align:center;padding:10px 14px;display:block}.notif-list{max-height:60vh;margin:0;padding:0;list-style:none;overflow-y:auto}.notif-item{color:var(--text);border-bottom:1px solid var(--border);gap:10px;padding:10px 14px;display:flex}.notif-item:hover{background:var(--surface-2);text-decoration:none}.notif-text{flex-direction:column;gap:2px;min-width:0;font-size:13px;display:flex}.sev-dot{background:var(--warn);border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px}.sev-dot.critical{background:var(--bad)}.user-pop{width:260px}.user-pop-head{border-bottom:1px solid var(--border);padding:12px 14px}.user-name{font-weight:600}.menu-item{width:100%;color:var(--text);background:0 0;border:0;border-radius:0;justify-content:flex-start;align-items:center;gap:10px;padding:10px 14px;display:flex}.menu-item:hover{background:var(--surface-2);text-decoration:none}@media (width<=900px){.nav-toggle{display:inline-flex}.brand-link{width:auto}.live-text{display:none}.sidenav,.app.collapsed .sidenav{z-index:40;width:280px;transition:transform .2s;transform:translate(-100%)}.app.drawer-open .sidenav{transform:none;box-shadow:6px 0 24px #00000040}.app.drawer-open .scrim{inset:var(--topbar-h) 0 0 0;z-index:35;background:#0f172a73;display:block;position:fixed}.app.collapsed .nav-label{display:inline}.app.collapsed .nav-heading{display:block}.app.collapsed .nav-link{justify-content:flex-start;padding:11px 10px}.app.collapsed .nav-count{min-width:20px;margin-left:auto;padding:0 6px;font-size:12px;line-height:normal;position:static}.app.collapsed .nav-group+.nav-group{border-top:0;padding-top:0}.collapse-btn{display:none}.nav-link{padding:11px 10px}.main,.app.collapsed .main{padding:calc(var(--topbar-h) + 14px) 14px 32px;margin-left:0}.topbar{gap:4px;padding:0 8px}.cmd{flex:none;max-width:none;margin:0 0 0 auto}.cmd-toggle{display:inline-flex!important}.cmd-field{display:none}.cmd.mobile-open{height:var(--topbar-h);z-index:45;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;margin:0;padding:0 10px;display:flex;position:fixed;inset:0 0 auto}.cmd.mobile-open .cmd-toggle{display:none!important}.cmd.mobile-open .cmd-field{flex:1;height:40px;display:flex}.cmd.mobile-open .cmd-close{display:inline-flex!important}.cmd.mobile-open .cmd-kbd{display:none}.cmd.mobile-open .cmd-panel{top:var(--topbar-h);max-height:calc(100vh - var(--topbar-h));border-left:0;border-right:0;border-radius:0;position:fixed;left:0;right:0}.cmd-sub{display:none}.popover-host{position:static}.popover,.user-pop{top:calc(var(--topbar-h) + 6px);width:auto;max-width:none;position:fixed;left:8px;right:8px}button,input,select{min-height:40px}input,select{font-size:16px}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0}.page-header{margin-bottom:14px}.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:14px 14px 0 0;max-width:none;max-height:92vh}.bulk-bar{z-index:25;border-radius:0;margin:0;position:fixed;inset:auto 0 0;box-shadow:0 -6px 18px #00000026}.toolbar input{max-width:none}}@media (width<=760px){.table-wrap:has(table.responsive){background:0 0;border:0;overflow:visible}table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{display:block}table.responsive thead{position:absolute;left:-9999px}table.responsive tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:10px;padding:8px 12px}table.responsive tbody tr:hover{background:var(--surface)}table.responsive td{white-space:normal;text-align:right;border:0;justify-content:space-between;align-items:baseline;gap:14px;min-width:0;padding:5px 0;display:flex}table.responsive td:before{content:attr(data-label);color:var(--text-muted);text-align:left;flex:none;font-size:12px}table.responsive td:not([data-label]):before{display:none}table.responsive td.wrap{min-width:0}table.responsive td.actions,table.responsive td.check{text-align:left;padding-top:8px;display:block}table.responsive td.hide-sm,table.responsive td.actions:empty,table.responsive td.check:empty{display:none}table.responsive tr.stale td{opacity:1}table.responsive tr.stale{opacity:.6}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-2);text-decoration:none}button:disabled{opacity:.55;cursor:default}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.primary:hover:not(:disabled),.btn.primary:hover{background:var(--accent);filter:brightness(1.08)}button.danger{color:var(--danger)}button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;padding:7px 10px}input[type=checkbox]{width:auto}label{flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}label .hint{color:var(--text-muted);font-size:12px;font-weight:400}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:13px;font-weight:500}label.radio{cursor:pointer;flex-direction:row;align-items:center;gap:6px;padding:7px 0;font-weight:500}label.radio:has(input:disabled){cursor:default;opacity:.6}.form-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px 16px;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:12px;padding:0;font-size:15px;font-weight:600}.alert{border-radius:6px;padding:10px 12px;font-size:13px}.alert.error{background:var(--bad-bg);color:var(--bad)}.alert.success{background:var(--ok-bg);color:var(--ok)}.alert pre{white-space:pre-wrap;word-break:break-word;font-family:var(--mono);margin:6px 0 0;font-size:12px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px}th{color:var(--text-muted);background:var(--surface-2);font-size:12px;font-weight:600}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-2)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.clickable{cursor:pointer}.badge{border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.badge.working,.badge.ok{color:var(--ok);background:var(--ok-bg)}.badge.offline,.badge.error{color:var(--bad);background:var(--bad-bg)}.badge.dyinggasp{color:var(--warn);background:var(--warn-bg)}.badge.unknown{color:var(--idle);background:var(--idle-bg)}.badge.logging{color:var(--info);background:var(--info-bg)}.badge.cat-up{color:var(--ok);background:var(--ok-bg)}.badge.cat-los{color:#fff;background:var(--bad);font-weight:600}.badge.cat-power_off{color:var(--warn);background:var(--warn-bg)}.badge.cat-registering{color:var(--info);background:var(--info-bg)}.badge.cat-down_unknown,.badge.cat-unknown{color:var(--bad);background:var(--bad-bg)}.stat.cat-up .value{color:var(--ok)}.stat.cat-los .value,.stat.cat-down_unknown .value{color:var(--bad)}.stat.cat-power_off .value{color:var(--warn)}.stat.cat-registering .value{color:var(--info)}.stat.clickable{cursor:pointer;border-radius:6px;margin:-2px -6px;padding:2px 6px}.stat.clickable:hover{background:var(--surface-2)}.pills{flex-wrap:wrap;gap:6px;display:inline-flex}.pill{white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 8px;font-size:12px}.pill.up{color:var(--ok);background:var(--ok-bg)}.pill.los{color:#fff;background:var(--bad);font-weight:600}.pill.power_off{color:var(--warn);background:var(--warn-bg)}.pill.down_unknown{color:var(--bad);background:var(--bad-bg)}.pill.registering{color:var(--info);background:var(--info-bg)}.chip.los-chip:not(.active){border-color:var(--bad);color:var(--bad)}.stats{flex-wrap:wrap;gap:28px;display:flex}.stat .value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat .label{color:var(--text-muted);font-size:12px}.stat.working .value{color:var(--ok)}.stat.offline .value{color:var(--bad)}.stat.dyinggasp .value{color:var(--warn)}.stat.logging .value{color:var(--info)}.counts{font-variant-numeric:tabular-nums;gap:10px;display:inline-flex}.counts .working{color:var(--ok)}.counts .offline{color:var(--bad)}.counts .dyinggasp{color:var(--warn)}.counts .logging{color:var(--info)}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;display:flex;overflow-x:auto}.tab{color:var(--text-muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px}.tab:hover:not(:disabled){color:var(--text);background:0 0}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.chip{border-radius:999px;padding:3px 10px;font-size:12.5px}.chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}.chip.active:hover:not(:disabled){background:var(--text)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar input{max-width:240px}.since-up{color:var(--ok);font-variant-numeric:tabular-nums}.since-down{color:var(--bad);font-variant-numeric:tabular-nums;font-weight:600}tr.stale td{opacity:.55}.paused-tag{background:var(--idle-bg);color:var(--idle);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.empty{text-align:center;color:var(--text-muted);padding:40px 16px}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100vh;color:var(--text-muted);place-items:center;display:grid}.live-status{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:8px;display:flex}.live-dot{background:var(--idle);border-radius:50%;width:8px;height:8px}.live-dot.on{background:var(--ok)}.hero{letter-spacing:-.02em;font-size:56px;font-weight:650;line-height:1}.hero-sub{color:var(--text-muted);margin-top:4px}.dash-top{grid-template-columns:minmax(220px,300px) 1fr;gap:16px;margin-bottom:16px;display:grid}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.tile{color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;text-decoration:none;display:block}a.tile:hover{background:var(--surface-2)}.tile .value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}.tile .label{color:var(--text-muted);font-size:12px}.tile .sub{color:var(--text-muted);margin-top:2px;font-size:12px}.tile.bad .value{color:var(--bad)}.tile.warn .value{color:var(--warn)}.tile.ok .value{color:var(--ok)}@media (width<=760px){.dash-top{grid-template-columns:1fr}.hero{font-size:44px}}.olt-card{margin-bottom:12px}.olt-card h3{margin:0;font-size:15px}.port-row{grid-template-columns:44px minmax(120px,1fr) minmax(190px,auto);align-items:center;gap:12px;padding:5px 0;display:grid}.port-row.stale{opacity:.6}.port-label{color:var(--text-muted)}.port-text{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pbar{gap:2px;height:12px;display:flex}.seg{border-radius:4px;min-width:4px;display:block}.seg-up{background:var(--ok)}.seg-los{background:var(--bad)}.seg-power{background:var(--warn)}.seg-other{background:var(--idle)}.seg-empty{background:var(--idle-bg)}.chart-key{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.chart-key span{align-items:center;gap:6px;display:inline-flex}.key-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.key-swatch.seg-up{background:var(--ok)}.key-swatch.seg-los{background:var(--bad)}.key-swatch.seg-power{background:var(--warn)}.key-swatch.seg-other{background:var(--idle)}.key-line{border-top:2px solid var(--accent);width:16px;height:0;display:inline-block}.key-line.warn{border-top:1px solid var(--warn)}.key-line.crit{border-top:1px solid var(--bad)}.key-band{background:var(--bad);opacity:.25;border-radius:2px;width:14px;height:10px;display:inline-block}.chart{transition:opacity .15s;position:relative}.chart.dim{opacity:.55}.chart svg{display:block;overflow:visible}.chart svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.tooltip{z-index:5;pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);white-space:nowrap;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;top:10px}.tt-value{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:16px;font-weight:650;display:flex}.tt-key{border-top:2px solid var(--accent);width:12px;display:inline-block}.tt-sub{color:var(--text-muted)}.range-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.spark{vertical-align:middle}.since-list{margin:0;padding:0;list-style:none}.kv{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 24px;display:grid}.kv dt{color:var(--text-muted);font-size:12px}.kv dd{font-variant-numeric:tabular-nums;margin:0}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 16px;display:grid}.perm{cursor:pointer;align-items:flex-start;gap:10px;font-weight:400;display:flex}.perm input{margin-top:3px}.nowrap{white-space:nowrap}.modal-backdrop{z-index:50;background:#0f172a80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:90vh;padding:18px;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.icon-btn{padding:2px 8px;line-height:1.2}.badge.maint{color:var(--info);background:var(--info-bg)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.stat-num{margin-top:2px;font-size:22px;font-weight:600}table.inner{background:0 0;width:100%}.bulk-bar{z-index:5;background:var(--info-bg);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;display:flex;position:sticky;top:0}tr.selected td{background:var(--info-bg)}td.check{width:28px}.brand{letter-spacing:-.01em;font-size:16px;font-weight:700}.brand span{color:var(--accent)}.subnav{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.subnav a{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;padding:8px 12px}.subnav a:hover{color:var(--text);text-decoration:none}.subnav a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.logo-preview{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:12px;padding:12px;display:flex}.meter{background:var(--idle-bg);border-radius:999px;height:8px;overflow:hidden}.meter>span{background:var(--accent);height:100%;display:block}.meter.full>span{background:var(--bad)}.olt-head h1{margin-bottom:6px}.meta-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.meta-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 9px;font-size:12.5px}a.badge{text-decoration:none}.ont-card{padding:0;overflow:hidden}.port-tabs{background:var(--surface);margin:0;padding:0 8px}.port-tabs .tab{padding:12px 14px}.tile-row{flex-wrap:wrap;gap:8px;padding:14px 16px 10px;display:flex}.tile-btn{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:0;min-width:96px;padding:8px 12px}.tile-btn .tile-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.2}.tile-btn .tile-label{color:var(--text-muted);font-size:12px}.tile-btn.up .tile-value{color:var(--ok)}.tile-btn.los .tile-value,.tile-btn.down .tile-value,.tile-btn.down_unknown .tile-value{color:var(--bad)}.tile-btn.power_off .tile-value{color:var(--warn)}.tile-btn.registering .tile-value{color:var(--info)}.tile-btn.active{border-color:var(--accent);background:var(--info-bg);box-shadow:inset 0 0 0 1px var(--accent)}.health-bar{height:6px;margin:0 16px 6px}.list-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.list-toolbar input[type=search]{max-width:260px}.sort-select{flex-direction:row;align-items:center;gap:6px;font-weight:400}.sort-select select{width:auto}.link-btn{color:var(--accent);background:0 0;border:0;min-height:0;padding:0;text-decoration:underline}.table-wrap.flat{border:0;border-radius:0}.th-sort{font:inherit;color:inherit;background:0 0;border:0;gap:4px;min-height:0;padding:0;font-weight:600}.th-sort:hover:not(:disabled){color:var(--text);background:0 0}.sort-arrow{width:10px;font-size:9px;display:inline-block}th.num .th-sort{margin-left:auto}.ont-name{font-weight:600}td.ont-id{min-width:220px}@media (width<=760px){.tile-btn{flex:28%;min-width:0}.list-toolbar input[type=search]{flex:100%;max-width:none}table.ont-table td.ont-id{padding-bottom:4px;display:block}table.ont-table td.ont-id:before{display:none}}.card-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex:150px;min-width:150px;padding:10px 14px}.brand-area{width:calc(var(--nav-w) - 32px);flex:none;align-items:center;gap:12px;min-width:0;display:flex}.app.collapsed .brand-area{width:auto}.np-home{flex:none;display:inline-flex}.brand-sep{background:var(--border);flex:none;width:1px;height:24px}.brand-area .brand-link{width:auto;min-width:0}.np-word span,.np-name span{color:var(--accent)}.np-name{white-space:nowrap}.np-logo{align-items:center;gap:9px;display:inline-flex}.np-wordmark{letter-spacing:-.02em;flex-direction:column;font-weight:700;line-height:1.05;display:inline-flex}.np-wordmark small{letter-spacing:0;color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:500}.app.collapsed .brand-area .brand-name{display:none}@media (width<=900px){.brand-area{gap:8px;width:auto}.brand-name{max-width:120px}}.side-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:10px 6px 0;display:flex}.side-logo{min-width:0;display:inline-flex}.sidenav .collapse-btn{width:34px;height:34px;color:var(--text-muted);background:0 0;border-color:#0000;flex:none;justify-content:center;padding:0}.app.collapsed .side-foot{flex-direction:column;gap:8px}@media (width<=900px){.side-foot .collapse-btn{display:none}}.login-customer{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.revatix-credit{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.revatix-credit img{display:block}input.otp{letter-spacing:.4em;text-align:center;font-size:20px}.toasts{z-index:80;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{pointer-events:auto;border:1px solid var(--border);background:var(--surface);border-left-width:4px;border-radius:10px;align-items:flex-start;animation:.18s ease-out toast-in;display:flex;box-shadow:0 10px 28px #0003}.toast.success{border-left-color:var(--ok)}.toast.error,.toast.critical{border-left-color:var(--bad)}.toast.warning{border-left-color:var(--warn)}.toast.info{border-left-color:var(--info)}.toast-main{text-align:left;white-space:normal;cursor:default;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:10px 6px 10px 12px}.toast.clickable .toast-main{cursor:pointer}.toast-title{word-break:break-word;font-size:13.5px;font-weight:600}.toast-body{color:var(--text-muted);word-break:break-word;font-size:12.5px}.toast-x{color:var(--text-muted);background:0 0;border:0;min-height:0;padding:8px 10px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=900px){.toasts{width:auto;bottom:72px;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.main{padding-top:calc(var(--topbar-h) + 18px)}.tabs-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:46px;display:flex}.tabs-rule{border-bottom:1px solid var(--border);margin:0 0 12px}.tabs-bar .tab{padding:10px 12px}.tab-count{background:var(--surface-2);color:var(--text-muted);border-radius:999px;margin-left:6px;padding:0 7px;font-size:12px}.bulk-inline{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.bulk-count{color:var(--text-muted);text-align:right;min-width:150px;font-size:12.5px}.bulk-inline button{padding:4px 10px}.alerts-table td.alert-cell{min-width:280px;max-width:520px}.alerts-table td{vertical-align:top}.alerts-table td.actions button{padding:4px 10px}@media (width<=900px){.bulk-inline{z-index:25;background:var(--surface);border-top:1px solid var(--border);justify-content:space-between;padding:8px 12px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #0000001f}.bulk-count{text-align:left;flex:100%;min-width:0}}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;margin-bottom:4px;display:flex}.olt-titlebar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.olt-titlebar h1{margin:0}.olt-sub{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;margin-bottom:14px;display:flex}.tabs-search-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-right:12px;display:flex}.tabs-search-row .port-tabs{border-bottom:0;min-width:0;overflow-x:auto}.ont-search{flex:none;width:260px}.tile-row{align-items:stretch}.tile-summary{text-align:right;align-self:center;min-width:120px;margin-left:auto;line-height:1.5}.sort-mobile{padding:0 16px 10px;display:none}@media (width<=760px){.sort-mobile{display:block}.ont-search{width:100%}.tabs-search-row{flex-direction:column;align-items:stretch;padding:0 0 10px}.tile-summary{text-align:left;flex:100%;margin-left:0}}.report-controls{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:14px;padding:12px 16px;display:flex}.report-controls label{min-width:150px}.report-controls .radio{min-width:0}.seg-buttons{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.seg-buttons button{border:0;border-right:1px solid var(--border);background:var(--surface);border-radius:0}.seg-buttons button:last-child{border-right:0}.seg-buttons button.active{background:var(--accent);color:var(--accent-text)}.report-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:14px;display:grid}@media (width<=900px){.report-grid{grid-template-columns:1fr}}.flat-card{margin-bottom:14px;padding:0;overflow:hidden}.card-head{border-bottom:1px solid var(--border);padding:12px 16px}.card-head h2{margin:0}.hbar{background:var(--idle-bg);vertical-align:middle;border-radius:999px;width:70px;height:6px;margin-left:8px;display:inline-block;overflow:hidden}.hbar>span{background:var(--bad);height:100%;display:block}.report-table td.num{white-space:nowrap}.hw-card{margin-bottom:4px}.hw-tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:10px;display:grid}.hw-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);min-height:92px;padding:10px 12px}.hw-events{flex-direction:column;gap:6px;max-height:260px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.sidenav{padding-bottom:0;overflow:hidden}.sidenav nav{overscroll-behavior:contain;flex:auto;min-height:0;padding-bottom:8px;overflow:hidden auto}.side-foot{background:var(--surface);flex:none;margin-top:0;padding:10px 6px}.auth-shell{--sc-bg-a:#f5f9ff;--sc-bg-b:#e3ecff;--sc-bg-c:#d9f1fb;--sc-fibre:#2563eb33;--sc-light:#2563eb;--sc-node:#8fb0f2;--sc-split:#5b8def;--sc-olt:#2563eb;--sc-dot:#2563eb1f;isolation:isolate;background:radial-gradient(1200px 700px at 12% 50%, var(--sc-bg-c), transparent 60%), linear-gradient(160deg, var(--sc-bg-a), var(--sc-bg-b));min-height:100dvh;display:grid;position:relative;overflow:hidden}.auth-shell:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(var(--sc-dot) 1.2px, transparent 1.3px);background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 85%);mask-image:radial-gradient(#000 30%,#0000 85%)}@media (prefers-color-scheme:dark){.auth-shell{--sc-bg-a:#060b19;--sc-bg-b:#0a1736;--sc-bg-c:#0e5a8c73;--sc-fibre:#7dd3fc2b;--sc-light:#67e8f9;--sc-node:#38bdf8;--sc-split:#7dd3fc;--sc-olt:#22d3ee;--sc-dot:#7dd3fc1a}}.net-scene{z-index:-1;pointer-events:none;position:absolute;inset:0}.net-scene svg{width:100%;height:100%;position:absolute;inset:0}.scene-tall{display:none}.net-scene .fibre path{fill:none;stroke:var(--sc-fibre);stroke-width:1.6px}.net-scene .light path{fill:none;stroke:var(--sc-light);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:7px;opacity:0;filter:drop-shadow(0 0 4px var(--sc-light));animation:5s linear infinite np-travel}.net-scene .splitters circle{fill:var(--sc-split);opacity:.75}.net-scene .leaves circle{fill:var(--sc-node);opacity:.8}.net-scene .leaves circle.fault{animation:17s ease-in-out infinite np-fault}.net-scene .olt-core{fill:var(--sc-olt);opacity:.22}.net-scene .olt-dot{fill:var(--sc-olt)}.net-scene .olt-ping{fill:none;stroke:var(--sc-olt);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:3.6s ease-out infinite np-ping}.net-scene .olt-ping-2{animation-delay:1.8s}@keyframes np-travel{0%{stroke-dashoffset:7px;opacity:0}8%{opacity:1}92%{opacity:1}to{stroke-dashoffset:-93px;opacity:0}}@keyframes np-ping{0%{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(3.2)}}@keyframes np-fault{0%,38%,62%,to{fill:var(--sc-node);r:4}42%,58%{fill:#ef4444;r:7;filter:drop-shadow(0 0 7px #ef4444)}}@media (prefers-reduced-motion:reduce){.net-scene .light,.net-scene .olt-ping{display:none}.net-scene .leaves circle.fault{animation:none}}.auth-stage{flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:32px 20px;display:flex;position:relative}.auth-brand{color:var(--text);flex-direction:column;align-items:center;gap:8px;display:flex}.auth-brand p{letter-spacing:.02em;color:var(--text-muted);margin:0;font-size:13px}.np-wordmark-svg{display:block}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;width:100%;max-width:410px;padding:30px 30px 22px;animation:.5s cubic-bezier(.2,.8,.2,1) both np-rise;box-shadow:inset 0 1px #fff9,0 24px 60px -12px #0f286e47,0 2px 8px #0f286e14}@media (prefers-color-scheme:dark){.auth-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121826e0;border-color:#7dd3fc29;box-shadow:0 24px 70px -10px #000000a6,inset 0 0 0 1px #ffffff08}}@keyframes np-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.auth-card{animation:none}}.login-form{flex-direction:column;gap:17px;display:flex}.login-heading h1{letter-spacing:-.02em;margin:0;font-size:24px}.login-heading p{color:var(--text-muted);margin:3px 0 0;font-size:14px}.login-customer{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:9px 12px;display:flex}.login-form input[type=email],.login-form input[type=password],.login-form input[type=text]{border-radius:12px;height:46px;font-size:15px}.login-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.label-row{justify-content:space-between;align-items:baseline;display:flex}.forgot-link{font-weight:500}.password-field{display:block;position:relative}.password-field input{width:100%;padding-right:66px}.show-toggle{height:34px;min-height:0;color:var(--accent);box-shadow:none;background:0 0;border:0;padding:0 11px;font-size:13px;font-weight:600;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.show-toggle:hover:not(:disabled){background:var(--surface-2)}label.remember{cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px;font-weight:500}label.remember input{flex:none;margin-top:2px}label.remember small{color:var(--text-muted);margin-top:2px;font-size:12px;font-weight:400;line-height:1.4;display:block}button.primary.login-submit{color:#fff;background:linear-gradient(135deg,#2563eb,#0891b2);border-color:#0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;height:48px;font-size:15px;font-weight:600;display:inline-flex;box-shadow:0 8px 20px -8px #2563ebb3}button.primary.login-submit:hover:not(:disabled){filter:brightness(1.08);background:linear-gradient(135deg,#2563eb,#0891b2)}.auth-foot{border-top:1px solid var(--border);justify-content:center;margin-top:20px;padding-top:16px;display:flex}.auth-card .stack>h2{font-size:20px}.revatix-logo{width:auto;display:block}@media (prefers-color-scheme:dark){.revatix-logo{filter:invert()hue-rotate(180deg)brightness(1.15)}}@media (width<=640px){.scene-wide{display:none}.scene-tall{display:block}.auth-stage{justify-content:flex-start;align-items:stretch;gap:0;min-height:100dvh;padding:0}.auth-brand{padding:calc(env(safe-area-inset-top,0px) + 26px) 20px 0}.auth-brand p{display:none}.auth-card{max-width:none;padding:26px 22px calc(env(safe-area-inset-bottom,0px) + 18px);border-bottom:0;border-radius:28px 28px 0 0;margin-top:auto;animation-name:np-sheet;box-shadow:0 -18px 50px -12px #0f286e4d}.auth-card:before{content:"";background:var(--border);border-radius:4px;width:40px;height:4px;margin:-12px auto 18px;display:block}.login-form{gap:15px}.login-heading h1{font-size:22px}}@keyframes np-sheet{0%{opacity:.4;transform:translateY(60px)}to{opacity:1;transform:none}}body{font-family:var(--font);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}h1{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:650;line-height:1.25}h2{font-size:var(--fs-md);letter-spacing:-.01em;margin:0 0 var(--s-3);font-weight:650}h3{font-size:var(--fs-base);margin:0;font-weight:650}.small{font-size:var(--fs-sm)}.muted{color:var(--text-muted)}code,.mono{letter-spacing:0;font-size:12.5px}td.num,th.num,.tile .value,.stat .value,.stat-num,.hero,.rx,time,.kv dd,.nav-count,.bell-count,.pill{font-variant-numeric:tabular-nums}::selection{background:#2563eb3d}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:content-box}::-webkit-scrollbar-corner{background:0 0}.main{gap:var(--s-5);padding-top:calc(var(--topbar-h) + var(--s-6));padding-bottom:var(--s-8);flex-direction:column;display:flex}.main>*{margin-top:0!important;margin-bottom:0!important}.page-header{margin-bottom:0}.page-header h1{margin:0}.back{margin-bottom:0}.alert{border-radius:var(--radius-sm)}button,.btn{border-radius:var(--radius-ctl);border-color:var(--border-strong);justify-content:center;min-height:36px;padding:7px 14px;font-weight:500;line-height:1.35;transition:background-color .12s,border-color .12s,box-shadow .12s,filter .12s}button:hover:not(:disabled),.btn:hover{border-color:var(--border-strong)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);box-shadow:0 1px 2px #2563eb59}button.primary:hover:not(:disabled),.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);filter:none}button.danger:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad)}button:focus-visible,.btn:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{box-shadow:var(--focus);outline:none}.icon-btn{border-radius:var(--radius-sm);min-height:0}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-ctl);width:100%;min-height:38px;padding:8px 12px;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;min-height:76px}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.75}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus){border-color:var(--text-muted)}input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:var(--focus);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--text-muted);cursor:not-allowed}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--bad)}input[aria-invalid=true]:focus{box-shadow:0 0 0 3px #cc3a3140}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--accent);box-shadow:none;flex:none;padding:0}label{font-size:var(--fs-sm);gap:6px}label .hint,.hint{color:var(--text-muted);font-size:var(--fs-xs);font-weight:400}.field-error{color:var(--bad);font-size:var(--fs-xs);align-items:flex-start;gap:6px;font-weight:500;display:flex}.field-error:before{content:"!";background:var(--bad);color:#fff;border-radius:50%;flex:none;place-items:center;width:14px;height:14px;margin-top:1px;font-size:10px;font-weight:700;display:grid}.input-affix{display:block;position:relative}.input-affix>input{width:100%}.input-affix .prefix,.input-affix .suffix{color:var(--text-muted);font-size:var(--fs-sm);pointer-events:none;font-variant-numeric:tabular-nums;position:absolute;top:50%;transform:translateY(-50%)}.input-affix .prefix{color:var(--text);font-weight:600;left:12px}.input-affix .suffix{right:12px}.input-affix.has-prefix>input{padding-left:28px}.input-affix.has-suffix>input{padding-right:48px}fieldset>legend{float:left;width:100%;margin:0 0 var(--s-3);font-size:var(--fs-md);padding:0;font-weight:650}fieldset>legend+*{clear:both}.card{border-radius:var(--radius);padding:var(--s-5);box-shadow:var(--shadow)}.table-wrap{border-radius:var(--radius);box-shadow:var(--shadow)}th{text-transform:uppercase;letter-spacing:.045em;padding:10px 14px;font-size:11.5px;font-weight:650}td{padding:11px 14px}tbody tr{transition:background-color .1s}.tile,.stat,.card-tile{border-radius:var(--radius);box-shadow:var(--shadow)}.tile{padding:var(--s-4)}a.tile{transition:border-color .12s,box-shadow .12s,transform .12s}a.tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.tile .value{letter-spacing:-.02em;font-size:28px;font-weight:650;line-height:1.15}.hero{letter-spacing:-.03em;font-weight:700}.badge{padding:3px 10px;font-weight:550}.tabs,.subnav{gap:2px}.tab,.subnav a{border-radius:0;padding:10px 14px}.meta-chip{background:var(--surface-2)}.modal{box-shadow:var(--shadow-md);padding:var(--s-6);border-radius:16px}.popover,.cmd-panel{box-shadow:var(--shadow-md);border-radius:14px}.empty{padding:var(--s-8) var(--s-4)}.cmd-field{border-radius:10px}.avatar{background:var(--grad);color:#fff;border-color:#0000}.avatar:hover:not(:disabled){background:var(--grad);filter:brightness(1.08)}.sidenav{padding:var(--s-3) var(--s-2) var(--s-2);overflow:hidden}.sidenav nav{min-height:0;padding:0 2px var(--s-2);scrollbar-width:none;background:linear-gradient(var(--surface) 30%, transparent), linear-gradient(transparent, var(--surface) 70%) bottom, radial-gradient(farthest-side at 50% 0, #0f172a24, transparent) top, radial-gradient(farthest-side at 50% 100%, #0f172a24, transparent) bottom;background-repeat:no-repeat;background-size:100% 32px,100% 32px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll;flex:auto;overflow:hidden auto}.sidenav nav:hover{scrollbar-width:thin}.sidenav nav::-webkit-scrollbar{width:6px}.sidenav nav:not(:hover)::-webkit-scrollbar-thumb{background:0 0}.side-foot{background:var(--surface);padding-top:var(--s-3);flex:none;margin-top:0}.nav-group{margin-bottom:var(--s-3)}.nav-heading{padding:var(--s-2) 12px var(--s-1);letter-spacing:.08em;font-size:11px;font-weight:650}.nav-link{border-radius:var(--radius-sm);padding:8px 12px;font-weight:500;transition:background-color .12s,color .12s}.nav-link.active{background:var(--info-bg);color:var(--accent);font-weight:600}.nav-link.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-8px}@media (width<=900px){.main,.app.collapsed .main{padding-top:calc(var(--topbar-h) + var(--s-4));gap:var(--s-4)}.card{padding:var(--s-4)}.nav-link.active:before{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.alert.info{background:var(--info-bg);color:var(--info)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.no-access{align-items:center;gap:var(--s-2);max-width:520px;margin:var(--s-8) auto;flex-direction:column;display:flex}.no-access .icon{color:var(--text-muted)}.no-access h2{margin:var(--s-2) 0 0;font-size:var(--fs-lg)}.no-access p{margin:0 0 var(--s-3)}button.primary.danger-fill{background:var(--bad);border-color:var(--bad);box-shadow:none}button.primary.danger-fill:hover:not(:disabled){background:var(--bad);filter:brightness(1.1)}@media (width<=760px){.bulk-inline:not(.has-selection){display:none}.bulk-inline.has-selection{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.bulk-inline button{flex:auto;padding:8px 10px}.tabs-rule{margin-bottom:0}table.alerts-table tbody tr{border-left:4px solid var(--border-strong);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"check alert raised""check status status""check dispatch dispatch""check actions actions";gap:10px 12px;padding:14px 14px 12px;display:grid}table.alerts-table tbody tr[data-sev=critical]{border-left-color:var(--bad)}table.alerts-table tbody tr[data-sev=warning]{border-left-color:var(--warn)}table.alerts-table tbody tr.selected{border-color:var(--accent);border-left-color:var(--accent);background:var(--info-bg)}table.alerts-table td{text-align:left;white-space:normal;min-width:0;max-width:none;padding:0;display:block}table.alerts-table td:before{display:none}table.alerts-table td.check{grid-area:check;padding-top:1px}table.alerts-table td.alert-cell{flex-direction:column;grid-area:alert;gap:4px;min-width:0;display:flex}table.alerts-table td.alert-cell>div:first-child{flex-wrap:wrap!important}table.alerts-table td[data-label=Raised]{font-size:var(--fs-xs);color:var(--text-muted);text-align:right;white-space:nowrap;grid-area:raised}table.alerts-table td[data-label=Status]{grid-area:status}table.alerts-table td[data-label=Dispatch]{flex-direction:column;grid-area:dispatch;gap:6px;display:flex}table.alerts-table td[data-label=Dispatch]:empty,table.alerts-table td.actions:empty{display:none}table.alerts-table td[data-label=Dispatch] select,table.alerts-table td[data-label=Dispatch] button{width:100%}table.alerts-table td.actions{grid-area:actions}table.alerts-table td.actions .row{gap:8px}table.alerts-table td.actions button{flex:1 1 0;padding:8px 12px}table.alerts-table td.actions:not(:has(button)){display:none}}.icon{vertical-align:-.15em}.muted .icon,.meta-chip .icon{color:var(--text-muted);margin-right:2px}.save-bar{z-index:6;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);margin:0 calc(var(--s-1) * -1);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;position:sticky;bottom:0}.save-bar.dirty{border-color:var(--accent)}.save-bar.dirty .muted{color:var(--accent);font-weight:600}@media (width<=900px){.save-bar{border-radius:var(--radius) var(--radius) 0 0;bottom:0}table.responsive td:not([data-label]){text-align:left;display:block}.tiles>:last-child:nth-child(odd){grid-column:1/-1}}@media (width<=480px){.topbar{gap:2px;padding:0 6px}.live-pill{display:none}.topbar .icon-btn{width:36px;height:36px}.brand-area{gap:6px}.brand-area .np-home svg,.brand-area .np-home .np-mark{width:28px;height:28px}.brand-area .brand-link svg{height:17px}.avatar{width:32px;height:32px}.tile .value{font-size:24px}}@media (width<=640px){.port-row{grid-template-columns:36px minmax(0,1fr);row-gap:2px}.port-row .port-text{grid-column:2}}.hw-head{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;box-shadow:none;text-align:left;border-radius:var(--radius-sm);background:0 0;border:0;min-height:44px;padding:0;display:flex}.hw-head:hover:not(:disabled){background:0 0}.hw-title{align-items:center;gap:var(--s-2);display:inline-flex}.hw-title h2{margin:0}.hw-title .icon{color:var(--text-muted);transition:transform .15s;transform:rotate(-90deg)}.hw-card.open .hw-title .icon{transform:none}.hw-body{margin-top:var(--s-3)}.hw-summary{text-align:right;white-space:normal}@media (width<=640px){.hw-head{flex-wrap:wrap}.hw-summary{text-align:left;width:100%;padding-left:26px}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button,a,input,select,textarea,summary,label,[role=tab],[role=button]{touch-action:manipulation}input:not([type=checkbox]):not([type=radio]),textarea{appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}@media (pointer:coarse),(width<=900px){input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:44px;font-size:16px!important}button,.btn,.tab,.chip,.subnav a{min-height:44px}.icon-btn,.topbar .icon-btn{min-width:44px;min-height:44px}.avatar{width:40px;height:40px}.nav-link,.menu-item,.cmd-item,.notif-item{min-height:44px}.show-toggle{height:44px;min-height:44px}th .th-sort,.th-sort{min-height:44px}.link-btn{min-height:44px;padding:0 4px}input[type=checkbox],input[type=radio]{width:24px;height:24px;min-height:0}label.radio,label.remember,label.perm,.perm{align-items:center;min-height:44px}label:has(>input[type=checkbox]){align-items:center;min-height:44px}table input[type=checkbox]{margin:10px}td.check{width:44px}th:has(>input[type=checkbox]){width:44px}select{padding-right:32px}}@supports (padding:max(0px)){.topbar{padding-left:max(var(--topbar-pad,16px), env(safe-area-inset-left));padding-right:max(var(--topbar-pad,16px), env(safe-area-inset-right))}.main{padding-left:max(28px, env(safe-area-inset-left));padding-right:max(28px, env(safe-area-inset-right))}.save-bar{padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px))}@media (width<=900px){.main,.app.collapsed .main{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right));padding-bottom:calc(var(--s-8) + env(safe-area-inset-bottom,0px))}.sidenav{padding-bottom:calc(var(--s-2) + env(safe-area-inset-bottom,0px))}.modal{padding-bottom:calc(var(--s-6) + env(safe-area-inset-bottom,0px))}}}@media (width<=900px){.topbar{--topbar-pad:8px}}@media (width<=480px){.topbar{--topbar-pad:6px}}@media (pointer:coarse),(width<=900px){.avatar,.topbar .avatar{width:44px;height:44px}button,.btn{min-width:44px}summary{cursor:pointer;padding-block:13px}.th-sort{justify-content:center;min-width:44px}}.page-head{gap:var(--s-2);flex-direction:column;display:flex}.page-head-row{justify-content:space-between;align-items:flex-end;gap:var(--s-4);flex-wrap:wrap;display:flex}.page-head-text{min-width:0}.page-head h1,.page-header h1{letter-spacing:-.025em;font-size:26px;font-weight:700;line-height:1.2}.page-desc{color:var(--text-muted);font-size:var(--fs-base);max-width:68ch;margin:4px 0 0}.page-actions{gap:var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.page-header{align-items:flex-end}@media (width<=640px){.page-head h1,.page-header h1{font-size:22px}.page-actions{width:100%}.page-actions>*{flex:auto}}.subnav,.tabs:not(.port-tabs){background:var(--surface-2);border:1px solid var(--border);border-radius:12px;align-self:flex-start;gap:2px;max-width:100%;margin:0;padding:4px;display:inline-flex;overflow-x:auto}.subnav a,.tabs:not(.port-tabs) .tab{color:var(--text-muted);white-space:nowrap;background:0 0;border-radius:9px;align-items:center;gap:6px;min-height:36px;padding:8px 16px;font-weight:550;display:inline-flex;border:0!important}.subnav a:hover,.tabs:not(.port-tabs) .tab:hover:not(:disabled){color:var(--text);background:0 0;text-decoration:none}.subnav a.active,.tabs:not(.port-tabs) .tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow), 0 0 0 1px var(--border);font-weight:650}.tabs-rule{display:none}.tabs-bar{min-height:0}.tab-count{background:var(--accent);color:var(--accent-text);font-weight:650}.tabs:not(.port-tabs) .tab:not(.active) .tab-count{background:var(--border-strong);color:var(--text)}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 37%, var(--surface-2) 63%);background-size:400% 100%;animation:1.4s infinite np-shimmer;display:block}@keyframes np-shimmer{0%{background-position:100%}to{background-position:0}}.drawer-root{z-index:60;position:fixed;inset:0}.drawer-backdrop{background:#080e1e7a;animation:.15s both np-fade;position:absolute;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);outline:none;width:100%;animation:.24s cubic-bezier(.2,.8,.2,1) both np-slide-in;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-24px 0 60px -24px #00000073}.drawer-inner{flex-direction:column;width:100%;min-height:0;display:flex}.drawer-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);border-bottom:1px solid var(--border);padding:20px 24px 16px;display:flex}.drawer-head h2{font-size:var(--fs-lg);letter-spacing:-.01em;margin:0}.drawer-head p{margin:4px 0 0}.drawer-x{flex:none}.drawer-body{gap:var(--s-4);overscroll-behavior:contain;flex-direction:column;flex:1;min-height:0;padding:20px 24px;display:flex;overflow-y:auto}.drawer-body .form-grid{grid-template-columns:1fr}.drawer-body h3{margin:var(--s-2) 0 0;font-size:var(--fs-base)}.drawer-foot{gap:var(--s-2);padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;justify-content:flex-end;display:flex}.drawer-confirm{align-items:center;gap:var(--s-2);flex-wrap:wrap;width:100%;font-weight:550;display:flex}@keyframes np-fade{0%{opacity:0}to{opacity:1}}@keyframes np-slide-in{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:none}}@keyframes np-sheet-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@media (width<=640px){.drawer{border-left:0;border-radius:20px 20px 0 0;height:min(92vh,92dvh);animation-name:np-sheet-up;top:auto;left:0;right:0;max-width:none!important}.drawer-head,.drawer-body,.drawer-foot{padding-left:16px;padding-right:16px}.drawer-foot>*{flex:auto}}.switch-row{justify-content:space-between;align-items:center;gap:var(--s-4);cursor:pointer;min-height:44px;font-weight:400;font-size:var(--fs-base);flex-direction:row;padding:10px 0;display:flex}.switch-row.disabled{opacity:.55;cursor:not-allowed}.switch-text{flex-direction:column;gap:2px;min-width:0;display:flex}.switch-label{font-weight:550}.switch-desc{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.4}.switch{flex:none;width:44px;height:26px;position:relative}.switch input[type=checkbox]{opacity:0;width:100%;height:100%;min-height:0;cursor:inherit;z-index:1;margin:0;position:absolute;inset:0}.switch-track{background:var(--border-strong);border-radius:999px;transition:background-color .15s;position:absolute;inset:0}.switch-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(18px)}.switch input:focus-visible+.switch-track{box-shadow:var(--focus)}.settings-layout{gap:var(--s-6);grid-template-columns:190px minmax(0,1fr);align-items:start;display:grid}.settings-toc{top:calc(var(--topbar-h) + var(--s-6));flex-direction:column;gap:2px;display:flex;position:sticky}.settings-toc a{border-radius:var(--radius-sm);color:var(--text-muted);padding:8px 12px;font-weight:550}.settings-toc a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.settings-stack{gap:var(--s-5);flex-direction:column;min-width:0;display:flex}.settings-section{scroll-margin-top:calc(var(--topbar-h) + var(--s-5));padding:0}.settings-section-head{padding:20px 24px 6px}.settings-section-head h2{font-size:var(--fs-md);margin:0 0 4px}.settings-section-head p{color:var(--text-muted);font-size:var(--fs-sm);max-width:70ch;margin:0}.settings-rows{padding:4px 24px 6px}.settings-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(180px,300px);align-items:center;gap:6px 32px;padding:14px 0;display:grid}.settings-row:first-child{border-top:0}.settings-row-label{font-weight:600;font-size:var(--fs-base)}.settings-row-hint{color:var(--text-muted);font-size:var(--fs-sm);margin-top:2px;line-height:1.4;display:block}.settings-row-control{flex-direction:column;gap:6px;min-width:0;display:flex}.settings-rows>.switch-row{border-top:1px solid var(--border);padding:14px 0}.settings-rows>.switch-row:first-child{border-top:0}@media (width<=900px){.settings-layout{grid-template-columns:1fr}.settings-toc{display:none}.settings-section-head{padding:16px 16px 4px}.settings-rows{padding:0 16px 4px}.settings-row{grid-template-columns:1fr}}.kpis{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(176px,1fr));display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;gap:2px;min-width:0;padding:14px 16px;display:flex}a.kpi:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);text-decoration:none}.kpi-label{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:650}.kpi-value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.15}.kpi-sub{font-size:var(--fs-xs);color:var(--text-muted)}.kpi.bad .kpi-value{color:var(--bad)}.kpi.warn .kpi-value{color:var(--warn)}.kpi.ok .kpi-value{color:var(--ok)}.kpi.hero-kpi{background:linear-gradient(135deg, var(--surface), var(--info-bg))}.kpi.hero-kpi .kpi-value{font-size:32px}.kpi .meter{height:6px;margin-top:6px}.kpi .meter>span{background:var(--ok)}@media (width<=520px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi.hero-kpi{grid-column:1/-1}}.dash-grid{gap:var(--s-5);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.dash-col{gap:var(--s-5);flex-direction:column;min-width:0;display:flex}@media (width<=1180px){.dash-grid{grid-template-columns:1fr}.dash-side-panels{gap:var(--s-5);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}}.dash-side-panels{gap:var(--s-5);flex-direction:column;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:var(--s-3);border-bottom:1px solid var(--border);padding:12px 16px;display:flex}.panel-head h2{font-size:var(--fs-base);margin:0}.panel-head .sub{color:var(--text-muted);font-size:var(--fs-sm);margin-left:6px;font-weight:400}.panel-empty{padding:var(--s-5) 16px;color:var(--text-muted);text-align:center;font-size:var(--fs-sm)}.list-row{align-items:center;gap:var(--s-3);border-bottom:1px solid var(--border);color:inherit;min-width:0;padding:10px 16px;display:flex}.list-row:last-child{border-bottom:0}a.list-row:hover{background:var(--surface-2);text-decoration:none}.list-row .grow{flex:1;min-width:0}.list-row .t{text-overflow:ellipsis;white-space:nowrap;font-weight:550;display:block;overflow:hidden}.list-row .s{color:var(--text-muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.list-row .r{color:var(--text-muted);font-size:var(--fs-sm);white-space:nowrap;font-variant-numeric:tabular-nums}.status-dot{background:var(--idle);border-radius:50%;flex:none;width:9px;height:9px}.status-dot.up,.status-dot.ok{background:var(--ok)}.status-dot.down,.status-dot.bad{background:var(--bad);box-shadow:0 0 0 3px var(--bad-bg)}.status-dot.warn{background:var(--warn)}.fleet-bar{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.fleet-bar h2{margin:0}.fleet-bar .spacer{flex:1}.fleet-bar input[type=search]{max-width:220px}.chips{flex-wrap:wrap;gap:4px;display:inline-flex}.fleet-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(290px,1fr));display:grid}.olt-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;min-width:0;padding:12px 14px;display:flex}.olt-tile.has-problem{border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.olt-tile.unreachable{border-color:var(--bad);background:linear-gradient(var(--bad-bg), var(--surface) 70%)}.olt-tile-top{align-items:center;gap:8px;min-width:0;display:flex}.olt-tile-top .name{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.olt-tile-top .pct{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.olt-tile .where{color:var(--text-muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;display:flex;overflow:hidden}.stackbar{background:var(--idle-bg);border-radius:999px;gap:2px;height:8px;display:flex;overflow:hidden}.stackbar>span{min-width:3px;display:block}.stackbar .s-up{background:var(--ok)}.stackbar .s-los{background:var(--bad)}.stackbar .s-power{background:var(--warn)}.stackbar .s-other{background:var(--idle)}.olt-tile-meta{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.mini{font-size:var(--fs-xs);background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-weight:600;text-decoration:none;display:inline-flex}a.mini:hover{filter:brightness(.96);text-decoration:none}.mini.los{background:var(--bad);color:#fff}.mini.power{background:var(--warn-bg);color:var(--warn)}.mini.other{background:var(--bad-bg);color:var(--bad)}.mini.ok{background:var(--ok-bg);color:var(--ok)}.mini.warn{background:var(--warn-bg);color:var(--warn)}.mini.muted{color:var(--text-muted);font-weight:500}.dash-compact-table td{padding-block:8px}.brand-logo-img{object-fit:contain;width:auto;max-width:168px;height:28px;display:block}.brand-preview{flex-direction:column;gap:8px;padding:16px 0 8px;display:flex}.brand-preview-bar{height:var(--topbar-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;padding:0 16px;display:flex;overflow:hidden}.brand-preview-bar .brand-area{width:auto}.logo-drop{border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);place-items:center;min-height:96px;padding:12px;transition:border-color .12s,background-color .12s;display:grid}.logo-drop.over{border-color:var(--accent);background:var(--info-bg)}.logo-drop img{object-fit:contain;max-width:100%;max-height:64px}.seg-choice{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:2px;padding:4px;display:inline-flex}.seg-option{color:var(--text-muted);font-weight:550;font-size:var(--fs-base);cursor:pointer;white-space:nowrap;border-radius:9px;flex-direction:row;justify-content:center;align-items:center;min-height:36px;padding:8px 14px;position:relative}.seg-option input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.seg-option.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow), 0 0 0 1px var(--border);font-weight:650}.seg-option.disabled{opacity:.5;cursor:not-allowed}.seg-option:focus-within{box-shadow:var(--focus)}.plan-head{align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:14px 0 6px;display:flex}.plan-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:8px 0 14px;display:grid}.plan-feature{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.plan-feature span{color:var(--text-muted);font-size:var(--fs-sm)}.plan-feature.on{border-color:color-mix(in srgb, var(--ok) 40%, var(--border))}.plan-feature.on span{color:var(--ok);font-weight:600}.drawer-section{gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--border);margin-top:var(--s-2);flex-direction:column;display:flex}.drawer-section h3{margin:var(--s-2) 0 0}.drawer-section p{margin:0}.account-grid{gap:var(--s-5);grid-template-columns:320px minmax(0,1fr);align-items:start;display:grid}.account-col{gap:var(--s-5);flex-direction:column;min-width:0;display:flex}@media (width<=960px){.account-grid{grid-template-columns:1fr}}.profile-card{gap:var(--s-4);flex-direction:column;display:flex}.profile-avatar{background:var(--grad);color:#fff;letter-spacing:.02em;width:64px;height:64px;box-shadow:var(--shadow-md);border-radius:18px;place-items:center;font-size:24px;font-weight:700;display:grid}.profile-text h2{font-size:var(--fs-lg);word-break:break-word;margin:0}.profile-facts{gap:10px;margin:0;display:grid}.profile-facts>div{justify-content:space-between;gap:var(--s-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);padding-bottom:10px;display:flex}.profile-facts>div:last-child{border-bottom:0;padding-bottom:0}.profile-facts dt{color:var(--text-muted)}.profile-facts dd{text-align:right;margin:0;font-weight:550}.security-row{justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap;display:flex}.security-row h2{margin:0 0 2px}.security-row p{max-width:56ch;margin:0}.session-list{margin:var(--s-3) 0 0;padding:0;list-style:none}.session-list li{justify-content:space-between;align-items:center;gap:var(--s-3);border-top:1px solid var(--border);padding:12px 0;display:flex}.session-main{min-width:0}.strength{flex-direction:column;gap:4px;margin-top:2px;font-weight:400;display:flex}.strength-bar{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.strength-bar i{background:var(--border);border-radius:3px;height:5px}.strength-bar.s1 i:nth-child(-n+1){background:var(--bad)}.strength-bar.s2 i:nth-child(-n+2){background:var(--warn)}.strength-bar.s3 i:nth-child(-n+3),.strength-bar.s4 i{background:var(--ok)}.list-skeleton{flex-direction:column;gap:0;padding:4px 16px;display:flex}.list-skeleton-row{align-items:center;gap:var(--s-4);border-bottom:1px solid var(--border);padding:14px 0;display:flex}.list-skeleton-row:last-child{border-bottom:0}.list-skeleton-row>:nth-child(2){flex:1}@media (pointer:coarse),(width<=900px){.subnav a,.tabs:not(.port-tabs) .tab,.seg-option,.switch-row{min-height:44px}.seg-option{padding-block:10px}}@media (width<=1180px){.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-side-panels{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}}@media (width<=760px){.panel table.responsive tbody tr{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;margin:0;padding:10px 16px}.panel table.responsive tbody tr:last-child{border-bottom:0}.panel .table-wrap{box-shadow:none;background:0 0;border:0}.fleet-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.kpis>:last-child:nth-child(2n){grid-column:1/-1}}@media (width<=760px){.panel table.dash-compact-table tbody tr:nth-child(n+5){display:none}}.page-head .back{font-size:var(--fs-sm);color:var(--text-muted);align-self:flex-start;align-items:center;gap:4px;padding:2px 0;font-weight:550;display:inline-flex}.page-head .back:hover{color:var(--accent);text-decoration:none}.page-head h1{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.page-badge{font-size:var(--fs-base);letter-spacing:0;align-items:center;gap:6px;font-weight:500;display:inline-flex}.page-meta{color:var(--text-muted);font-size:var(--fs-sm);flex-direction:column;gap:6px;min-width:0;margin-top:6px;display:flex}.page-meta .meta-chips{flex-wrap:wrap;gap:6px;display:flex}:root{--ease:cubic-bezier(.4, 0, .2, 1)}.menu-toggle{width:40px;height:40px;box-shadow:none;color:var(--text-muted);background:0 0;border:0;border-radius:12px;flex:none;place-items:center;min-height:0;margin-right:4px;padding:0;transition:background-color .15s,color .15s;display:inline-grid}.menu-toggle:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.menu-toggle:active{transform:scale(.94)}.menu-toggle svg{overflow:visible}.menu-toggle line{transform-box:fill-box;transform-origin:50%;transition:transform .32s var(--ease), opacity .2s var(--ease)}.menu-toggle[data-mode=mobile][data-open=true] .mt-l1{transform:translateY(6px)rotate(45deg)}.menu-toggle[data-mode=mobile][data-open=true] .mt-l2{opacity:0;transform:scaleX(0)}.menu-toggle[data-mode=mobile][data-open=true] .mt-l3{transform:translateY(-6px)rotate(-45deg)}.menu-toggle[data-mode=mobile][data-open=true]{color:var(--accent)}.menu-toggle[data-mode=desktop] line{transform-origin:0}.menu-toggle[data-mode=desktop][data-open=true] .mt-l2{transform:scaleX(.62)}.menu-toggle[data-mode=desktop][data-open=true] .mt-l3{transform:scaleX(.82)}.menu-toggle[data-mode=desktop][data-open=false]{color:var(--text)}@media (width>=901px){.sidenav{transition:width .3s var(--ease)}.main{transition:margin-left .3s var(--ease)}.nav-label{opacity:1;max-width:170px;transition:opacity .2s var(--ease) 60ms, max-width .3s var(--ease);display:inline-block;overflow:hidden}.nav-link{transition:background-color .12s, color .12s, gap .3s var(--ease), padding .3s var(--ease)}.nav-heading{opacity:1;max-height:32px;transition:max-height .3s var(--ease), opacity .15s var(--ease), padding .3s var(--ease);overflow:hidden}.app.collapsed .nav-label{opacity:0;max-width:0;transition:opacity .1s var(--ease), max-width .3s var(--ease);display:inline-block}.app.collapsed .nav-heading{opacity:0;max-height:0;padding-top:0;padding-bottom:0;display:block}.app.collapsed .nav-link{gap:0}.app.collapsed .nav-group+.nav-group{margin-top:2px}.side-foot .side-logo{transition:opacity .2s var(--ease)}}.side-foot{justify-content:flex-start}.app.collapsed .side-foot{justify-content:center}@media (width<=900px){.nav-toggle{display:none!important}.sidenav,.app.collapsed .sidenav{transition:transform .32s var(--ease), box-shadow .32s var(--ease)}.scrim{inset:var(--topbar-h) 0 0 0;z-index:35;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease), visibility 0s linear .3s;background:#0f172a7a;display:block;position:fixed}.app.drawer-open .scrim{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s var(--ease), visibility 0s}}@media (pointer:coarse),(width<=900px){.menu-toggle{width:44px;min-width:44px;height:44px;min-height:44px}}
