:root{--bg-0: #f6f7fb;--bg-1: rgba(244,246,251,.72);--bg-2: #ffffff;--bg-3: rgba(250,251,254,.78);--bg-hover: rgba(255,255,255,.72);--bg-press: rgba(232,235,242,.82);--line: rgba(98,112,139,.16);--line-strong: rgba(78,91,117,.24);--fg-0: #1d1d1f;--fg-1: #3c3c43;--fg-2: #6e6e73;--fg-3: #8e8e93;--fg-4: #aeaeb2;--accent: #007aff;--accent-press: #0067d8;--accent-tint: #e8f0ff;--ok: #2c8c4f;--warn: #b4751a;--err: #c43927;--info: #0a64f4;--c-switch: #3a7afe;--c-ap: #2aa39a;--c-server: #8b5ed4;--c-ups: #d99326;--c-storage: #2c8c97;--c-firewall: #d04a3a;--c-pdu: #d97a3a;--c-kvm: #5a7ac4;--c-tape: #b85ea8;--c-other: #8a8a8f;--r-sm: 6px;--r-md: 9px;--r-lg: 12px;--r-xl: 16px;--glass-0: rgba(255,255,255,.58);--glass-1: rgba(255,255,255,.72);--glass-2: rgba(255,255,255,.84);--glass-3: rgba(247,249,253,.66);--glass-tint: rgba(232,240,255,.72);--glass-line: rgba(255,255,255,.78);--glass-blur: saturate(145%) blur(18px);--shadow-sm: 0 0 0 1px rgba(255,255,255,.48), 0 1px 2px rgba(27,31,40,.06);--shadow-md: 0 1px 2px rgba(27,31,40,.06), 0 10px 26px rgba(27,31,40,.1);--shadow-lg: 0 1px 3px rgba(27,31,40,.08), 0 22px 52px rgba(27,31,40,.16);--font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif;--font-mono: "SF Mono", ui-monospace, Menlo, Consolas, monospace;--sidebar-w: 232px;--header-h: 56px}*{box-sizing:border-box}html,body,#root{height:100%}html,body{margin:0;padding:0;color:var(--fg-0);background:#eef2f7;font:13px/1.45 var(--font-ui);letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.login-page{min-height:100%;display:grid;place-items:center;padding:28px;background:linear-gradient(180deg,#ffffff70,#ffffff14),#eef0f5}.login-window{width:min(100%,408px);overflow:hidden;border:1px solid rgba(78,91,117,.22);border-radius:10px;background:#fbfbfd;box-shadow:0 1px 2px #222d4614,0 18px 42px #222d4629}.login-body{padding:36px 34px 34px;text-align:center}.login-logo{display:block;width:190px;height:58px;object-fit:contain;margin:0 auto 22px;padding:9px 14px;border-radius:8px;background:#5d557f;border:1px solid rgba(67,58,104,.36);box-shadow:inset 0 1px #ffffff24}.login-body h1{margin:0;font:650 22px/1.2 var(--font-display);color:var(--fg-0)}.login-body p{margin:5px 0 24px;color:var(--fg-2);font-size:13px}.login-form{display:flex;flex-direction:column;gap:12px;text-align:left}.login-form label{display:flex;flex-direction:column;gap:6px;color:var(--fg-1);font-weight:600}.login-form label span{font-size:12px}.login-form input{width:100%;height:36px;padding:0 10px;border:1px solid rgba(78,91,117,.26);border-radius:7px;background:#fff;color:var(--fg-0);box-shadow:inset 0 1px 2px #222d460d}.login-form input:focus{border-color:color-mix(in srgb,var(--accent) 62%,var(--line-strong));outline:3px solid color-mix(in srgb,var(--accent) 15%,transparent)}.login-error{min-height:32px;display:flex;align-items:center;padding:7px 9px;border:1px solid color-mix(in srgb,var(--err) 24%,transparent);border-radius:7px;background:color-mix(in srgb,var(--err) 8%,#fff);color:var(--err);font-size:12px}.login-submit{height:36px;margin-top:2px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:#fff;font-weight:650;cursor:pointer;box-shadow:inset 0 1px #ffffff2e,0 5px 12px #0a64f42e}.login-submit:hover{background:var(--accent-press);border-color:var(--accent-press)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100vh;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 14% 12%,rgba(120,160,225,.26),transparent 30%),radial-gradient(circle at 76% 8%,rgba(174,136,205,.18),transparent 32%),radial-gradient(circle at 80% 84%,rgba(122,195,185,.18),transparent 34%),linear-gradient(120deg,#fbfcfff5,#eef3fbd6 42%,#f6f3fad1),#eef2f8;background-size:220% 220%,180% 180%,100% 100%;animation:macos-background-shift 26s ease-in-out infinite alternate}.app:before,.app:after{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none}.app:before{background:linear-gradient(135deg,rgba(129,164,218,.13) 0%,transparent 34%),linear-gradient(225deg,transparent 16%,rgba(169,145,198,.11) 48%,transparent 80%),linear-gradient(315deg,rgba(109,181,174,.1),transparent 42%);background-size:180% 180%,210% 210%,190% 190%;mix-blend-mode:multiply;opacity:.86;animation:macos-background-flow 32s ease-in-out infinite alternate}.app:after{z-index:-1;background:linear-gradient(180deg,#ffffff9e,#ffffff3d),linear-gradient(90deg,rgba(255,255,255,.24),transparent 28%,rgba(255,255,255,.18) 64%,transparent);background-size:100% 100%,240% 100%;opacity:.58;animation:macos-sheen 24s ease-in-out infinite alternate}.app>*{position:relative;z-index:1}@keyframes ambient-drift{0%{transform:translate3d(-1.4%,-.8%,0) scale(1)}to{transform:translate3d(1.2%,1%,0) scale(1.035)}}@keyframes macos-background-shift{0%{background-position:0% 22%,12% 0%,0 0}to{background-position:100% 76%,86% 100%,0 0}}@keyframes macos-background-flow{0%{background-position:0% 0%,100% 22%,18% 100%}to{background-position:84% 72%,8% 100%,100% 14%}}@keyframes macos-sheen{0%{background-position:0 0,0% 0}to{background-position:0 0,100% 0}}.main{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#ffffff1a}.content{flex:1;min-height:0;overflow:hidden;padding:18px 20px 20px;background:transparent;display:flex;flex-direction:column;position:relative}.main svg{stroke-width:2.15}.content.is-pending{opacity:.76}.sidebar{background:linear-gradient(180deg,#ffffffb8,#f4f7fc85);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:12px 10px 8px;min-width:0;box-shadow:inset -1px 0 #ffffff5c}.sidebar:before{content:"";display:block;width:52px;height:12px;margin:1px 0 12px 4px;background:radial-gradient(circle at 6px 6px,#ff5f57 0 5px,transparent 5.5px),radial-gradient(circle at 26px 6px,#ffbd2e 0 5px,transparent 5.5px),radial-gradient(circle at 46px 6px,#28c840 0 5px,transparent 5.5px);opacity:.92}.sidebar-brand{display:flex;align-items:center;justify-content:center;padding:6px 3px 15px}.brand-logo{display:block;width:100%;max-width:206px;height:60px;object-fit:contain;padding:8px 10px;border-radius:8px;background:#5d557f;border:1px solid rgba(67,58,104,.36);box-shadow:0 8px 20px #433a6824,inset 0 1px #ffffff1f}.nav-section{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.nav-label{color:var(--fg-2);font-size:11px;font-weight:650;padding:10px 10px 4px}.nav-item{width:100%;display:flex;align-items:center;gap:8px;min-height:34px;padding:6px 9px;border:0;border-radius:7px;background:transparent;color:var(--fg-1);cursor:pointer;text-align:left;font-weight:600}.nav-item:hover{background:#ffffff8f;color:var(--fg-0)}.nav-item.active{background:#ffffffe6;color:var(--fg-0);box-shadow:var(--shadow-sm),inset 0 1px #ffffffc7}.nav-icon{width:16px;height:16px;flex:0 0 auto;color:var(--fg-2)}.nav-item.active .nav-icon{color:var(--accent)}.nav-item:disabled{opacity:1;cursor:default}.nav-label-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-count{margin-left:auto;color:var(--fg-3);font:600 11.5px/1 var(--font-mono)}.sidebar-foot{margin-top:auto;display:grid;gap:8px;padding:10px 0 0;border-top:1px solid var(--line);color:var(--fg-2)}.sidebar-status{min-width:0;display:flex;align-items:center;gap:8px;padding:0 9px;order:2}.sidebar-signout{order:1}.sync-dot,.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:0 0 auto}.sf-text{min-width:0;display:flex;flex-direction:column;line-height:1.2}.sf-text strong{color:var(--fg-0);font-size:12px;font-weight:500}.sf-text span{color:var(--fg-3);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-signout{width:100%;min-height:34px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#ffffffa8;color:var(--fg-1);padding:0 9px;text-align:left;cursor:pointer;font-weight:600;box-shadow:inset 0 1px #ffffffa3}.sidebar-signout:hover{border-color:color-mix(in srgb,var(--accent) 20%,var(--line-strong));background:#ffffffeb;color:var(--fg-0)}.sidebar-signout svg{flex:0 0 auto;color:var(--fg-2)}.sidebar-signout span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar{height:var(--header-h);flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:0 16px;background:#ffffff94;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--line);box-shadow:inset 0 -1px #ffffff80}.page-title{display:flex;flex-direction:column;min-width:210px;line-height:1.2;flex:0 0 auto}.page-title h1{margin:0;font:600 14px/1.2 var(--font-display);white-space:nowrap}.crumb,.crumb-sep{color:var(--fg-2);font-size:11.5px}.topbar-status{flex:1 1 auto;min-width:120px;display:flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--fg-2);font-size:12px;white-space:nowrap;overflow:hidden}.topbar-status span{overflow:hidden;text-overflow:ellipsis}.topbar-action-row{min-height:44px;flex:0 0 auto;display:flex;align-items:center;justify-content:stretch;gap:8px;padding:6px 16px;background:#ffffffb8;border-bottom:1px solid var(--line)}.topbar-action-row .page-actions{flex:1 1 auto;justify-content:flex-end;overflow:visible;flex-wrap:nowrap}.topbar-action-row .page-actions .btn{min-height:30px;padding:0 8px;font-size:12px;box-shadow:none}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;flex-wrap:nowrap}.page-inline-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:5px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.page-inline-actions::-webkit-scrollbar{display:none}.page-secondary-action{flex:0 0 auto;height:30px;border-color:transparent;background:transparent;color:var(--fg-1)}.page-secondary-action:hover{border-color:var(--line);background:#fff;color:var(--fg-0)}.page-secondary-action.danger{color:var(--err);border-color:transparent}.page-secondary-action.danger:hover{border-color:color-mix(in srgb,var(--err) 28%,var(--line));background:color-mix(in srgb,var(--err) 6%,#fff)}.page-secondary-action:disabled{color:var(--fg-4);cursor:not-allowed;opacity:.58}.page-action-divider{flex:0 0 auto;width:1px;height:20px;margin:0 3px;background:var(--line)}.page-action-label{flex:0 0 auto;color:var(--fg-3);font-size:11px;font-weight:600}.page-action-controls{flex:1 1 auto;min-width:0}.header-table-controls,.map-header-controls{min-width:0;display:flex;align-items:center;gap:8px}.header-table-controls{justify-content:space-between}.header-chip-group{min-width:0;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.header-chip-group::-webkit-scrollbar{display:none}.header-table-search{flex:0 1 260px;min-width:190px}.map-header-controls{justify-content:flex-end}.map-header-controls .map-building-select{flex:0 1 280px;min-width:180px}.page-primary-action,.page-actions-menu{flex:0 0 auto}.page-actions-menu{background:#fff;display:inline-flex}.topbar-action-row .page-actions .menu-anchor{flex:0 0 auto}.topbar-action-row .page-actions .menu{min-width:220px}.page-tabs-bar{min-height:44px;display:flex;align-items:flex-end;gap:8px;padding:0 16px;background:#ffffff9e;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}.page-tab{min-height:40px;display:inline-flex;align-items:center;gap:7px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--fg-2);padding:0 8px;cursor:pointer;white-space:nowrap;font-weight:500}.page-tab:hover{color:var(--fg-0)}.page-tab.on{color:var(--fg-0);border-bottom-color:var(--accent)}.page-tab-count{min-width:18px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:var(--bg-3);color:var(--fg-2);font:500 10.5px/1 var(--font-mono)}.actions,.right,.modal-actions,.sync-head-actions{display:flex;align-items:center;gap:6px}.actions,.right{margin-left:auto}.spacer{flex:1}.btn,.icon-btn{min-height:28px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-strong);border-radius:9px;background-color:#ffffff9e;background-image:none;color:var(--fg-1);padding:0 10px;cursor:pointer;text-decoration:none;white-space:nowrap;font-weight:500;box-shadow:inset 0 1px #fffc,0 1px 2px #1b1f280a;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;will-change:background-color,box-shadow}.btn:hover,.icon-btn:hover{background-color:#ffffffe0;color:var(--fg-0);border-color:color-mix(in srgb,var(--accent) 22%,var(--line-strong))}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background-color:var(--accent);background-image:linear-gradient(180deg,#1688ff,#0071ee);color:#fff;border-color:var(--accent);box-shadow:inset 0 1px #ffffff2e,0 6px 14px #0a64f42e}.btn-primary:hover{background-color:var(--accent-press);border-color:var(--accent-press);color:#fff;box-shadow:inset 0 1px #ffffff24,0 7px 16px #0a64f438}.btn-primary:active{background-color:color-mix(in srgb,var(--accent-press) 86%,#000);border-color:color-mix(in srgb,var(--accent-press) 86%,#000);box-shadow:inset 0 1px 1px #00000024,0 3px 8px #0a64f429}.btn-ghost{background:transparent;border-color:transparent}.btn-sm{min-height:24px;padding:0 8px;font-size:12px}.btn-icon,.icon-btn{width:28px;padding:0}.btn-link{border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer;font-weight:500}.danger{color:var(--err)}.menu-anchor{position:relative}.menu{position:absolute;top:calc(100% + 6px);min-width:190px;z-index:40;padding:5px;border:1px solid var(--line);border-radius:12px;background:#ffffffdb;backdrop-filter:saturate(160%) blur(18px);-webkit-backdrop-filter:saturate(160%) blur(18px);box-shadow:0 14px 34px #0f172a24,inset 0 1px #ffffffb8}.menu-item{width:100%;display:flex;align-items:center;gap:8px;border:0;border-radius:5px;background:transparent;color:var(--fg-1);padding:7px 8px;font-size:12.5px;font-weight:500;text-align:left;cursor:pointer}.menu-item:hover{color:var(--fg-0);background:#f4f7fb}.menu-item:disabled{color:var(--fg-3);cursor:not-allowed;opacity:.58}.menu-kbd{margin-left:auto;color:var(--fg-3);font-size:11px}.menu-label{padding:8px 8px 4px;color:var(--fg-3);font-size:11px;font-weight:600}.menu-sep,.divider{height:1px;background:var(--line);margin:5px 0}.panel{border:1px solid rgba(255,255,255,.62);border-radius:16px;background:#ffffffa8;backdrop-filter:saturate(160%) blur(22px);-webkit-backdrop-filter:saturate(160%) blur(22px);overflow:hidden;box-shadow:var(--shadow-md),inset 0 1px #ffffffb8}.app-error-panel{max-width:520px}.page-skeleton{height:100%;min-height:0;display:grid;gap:12px}.skel,.skeleton-block,.skeleton-port,.skeleton-frame i,.skeleton-table-head .skel,.skeleton-table-row .skel{display:block;border-radius:6px;background:linear-gradient(90deg,#8794aa1f,#ffffffb8,#8794aa1f);background-size:220% 100%;animation:skeleton-sheen 1.2s ease-in-out infinite}.skel{width:100%;height:12px}.skel.short{width:42%}.skel.wide{width:72%}.skel.title{width:170px;height:16px}.skel.value{width:88px;height:26px}.skel.button{width:94px;height:30px}.skel.select{width:210px;height:30px}.skel.search{width:260px;height:30px}.skel.seg{width:112px;height:30px}.skel.status{width:90px;height:16px}.skel.chip{width:86px;height:28px}.skeleton-header-controls{width:100%;min-width:0;display:flex;align-items:center;gap:8px}.skeleton-header-controls.table{justify-content:space-between}.skeleton-header-controls.map,.skeleton-header-controls.overview,.skeleton-header-controls.sync{justify-content:flex-end}.skeleton-header-controls.racks{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(190px,1fr) auto auto;gap:8px}.skeleton-chip-strip{min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden}.skeleton-frame{border:1px solid var(--line);border-radius:8px;background:#ffffffb8;box-shadow:var(--shadow-sm),inset 0 1px #ffffff94;overflow:hidden}.skeleton-kpis{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}.skeleton-frame.metric{min-height:84px;display:grid;align-content:center;gap:9px;padding:13px}.skeleton-overview{grid-template-rows:auto minmax(0,1fr) 184px}.skeleton-overview-grid{min-height:0;display:grid;grid-template-columns:minmax(420px,1fr) 330px;gap:12px}.skeleton-frame.chart,.skeleton-frame.health,.skeleton-frame.list{padding:14px;display:grid;gap:12px}.skeleton-frame.chart{grid-template-rows:auto minmax(0,1fr)}.skeleton-chart-lines{position:relative;min-height:240px;border:1px solid var(--line);border-radius:7px;background:#f8fafc}.skeleton-chart-lines i{position:absolute;left:14px;right:14px;height:1px;background:var(--line);animation:none}.skeleton-chart-lines i:nth-child(1){top:18%}.skeleton-chart-lines i:nth-child(2){top:34%}.skeleton-chart-lines i:nth-child(3){top:50%}.skeleton-chart-lines i:nth-child(4){top:66%}.skeleton-chart-lines i:nth-child(5){top:82%}.skeleton-frame.health .bar{height:14px}.skeleton-frame.list .skel{height:28px}.skeleton-map,.skeleton-racks{grid-template-columns:minmax(0,1fr) 300px;gap:12px}.skeleton-racks{grid-template-columns:260px minmax(0,1fr)}.skeleton-frame.map-canvas{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));align-content:start;gap:12px;padding:14px;background:linear-gradient(rgba(120,137,166,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,137,166,.08) 1px,transparent 1px),#f5f7fb;background-size:44px 44px,44px 44px,100% 100%}.skeleton-map-card{min-height:132px;display:grid;align-content:start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffffe0}.skeleton-frame.map-inspector,.skeleton-frame.rack-list{display:grid;align-content:start;gap:10px;padding:12px}.skeleton-rack-card{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fff}.skeleton-frame.rack-view{display:grid;grid-template-rows:auto minmax(0,1fr) 124px}.skeleton-rack-head{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.skeleton-rack-elevation{position:relative;margin:16px auto;width:min(680px,72%);min-height:0;border:1px solid var(--line-strong);border-radius:8px;background:#fff;overflow:hidden}.skeleton-rack-elevation i{height:24px;border-bottom:1px solid var(--line);background:transparent;animation:none}.skeleton-rack-elevation .rack-unit-asset{position:absolute;left:46px;right:46px;height:30px}.skeleton-rack-elevation .rack-unit-asset.one{top:72px}.skeleton-rack-elevation .rack-unit-asset.two{top:128px}.skeleton-rack-elevation .rack-unit-asset.three{top:232px}.skeleton-unplaced{display:flex;align-items:center;gap:18px;padding:18px 28px;border-top:1px solid var(--line)}.skeleton-table-page,.skeleton-table{min-height:0}.skeleton-table-head,.skeleton-table-row{display:grid;grid-template-columns:repeat(var(--skel-cols, 8),minmax(80px,1fr));gap:18px;align-items:center;min-height:44px;padding:0 14px;border-bottom:1px solid var(--line)}.skeleton-table-head{min-height:38px;background:#f6f8fcdb}.skeleton-table-head .skel,.skeleton-table-row .skel{height:12px}.skeleton-table-row .skel.wide{width:82%}.skeleton-sync{grid-template-rows:auto minmax(0,1fr)}.skeleton-sync-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.skeleton-sync-grid .skeleton-frame{min-height:112px;display:grid;align-content:center;gap:10px;padding:14px}@keyframes skeleton-sheen{0%{background-position:120% 0}to{background-position:-120% 0}}.panel-head{min-height:38px;display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#ffffffad,#ffffff61)}.panel-head h2{margin:0;font:600 13px/1.25 var(--font-display)}.panel-body{padding:12px}.panel-body.flush{padding:0}.loading-panel{margin:auto;width:min(460px,100%)}.toolbar{min-height:42px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px}.toolbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.toolbar-divider{width:1px;height:22px;background:var(--line)}.input,.select,textarea,.field input,.field select,.field textarea{min-height:28px;border:1px solid var(--line-strong);border-radius:6px;background:#ffffffbd;color:var(--fg-0);padding:5px 9px;width:100%;box-shadow:inset 0 1px #ffffff94}textarea{resize:vertical}.input:focus,.select:focus,textarea:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.search{display:inline-flex;align-items:center;gap:7px;min-width:220px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#ffffff8a;box-shadow:inset 0 1px #ffffffad;color:var(--fg-2)}.search .input{border:0;background:transparent;padding-left:0;min-width:0}.search .input:focus{outline:0}.seg{display:inline-flex;align-items:center;gap:1px;padding:2px;border:1px solid var(--line);border-radius:6px;background:#eff3fa9e}.seg button{min-height:24px;padding:0 9px;border:0;border-radius:5px;background:transparent;color:var(--fg-2);cursor:pointer;font-weight:500}.seg button.on{background:#ffffffdb;color:var(--fg-0);box-shadow:var(--shadow-sm),inset 0 1px #ffffffb8}.chip{min-height:26px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;background:#ffffff94;color:var(--fg-1);padding:0 9px;cursor:pointer;box-shadow:inset 0 1px #ffffff94}.chip.on{background:color-mix(in srgb,var(--accent-tint) 82%,white);border-color:color-mix(in srgb,var(--accent) 28%,var(--line));color:var(--accent)}.ct{color:var(--fg-3);font:500 11px/1 var(--font-mono)}.status,.badge{display:inline-flex;align-items:center;gap:5px;min-height:20px;color:var(--fg-2);font-size:12px;white-space:nowrap}.status-ok .dot,.badge-ok .dot{background:var(--ok)}.status-warn .dot,.badge-warn .dot{background:var(--warn)}.status-err .dot,.badge-err .dot{background:var(--err)}.badge-info .dot{background:var(--info)}.badge{padding:0 6px;border:1px solid var(--line);border-radius:6px;background:#ffffff7a}.pill{--c: var(--c-other);display:inline-flex;align-items:center;gap:5px;color:var(--fg-1);white-space:nowrap}.pill-swatch,.swatch{width:8px;height:8px;border-radius:2px;background:var(--c)}.pill-switch{--c: var(--c-switch)}.pill-ap{--c: var(--c-ap)}.pill-server{--c: var(--c-server)}.pill-ups{--c: var(--c-ups)}.pill-storage{--c: var(--c-storage)}.pill-firewall{--c: var(--c-firewall)}.pill-pdu{--c: var(--c-pdu)}.pill-kvm{--c: var(--c-kvm)}.pill-tape{--c: var(--c-tape)}.pill-camera{--c: var(--c-server)}.pill-sensor{--c: var(--c-ap)}.pill-security{--c: var(--c-firewall)}.pill-printer{--c: var(--c-storage)}.pill-other{--c: var(--c-other)}.muted{color:var(--fg-2)}.tiny{font-size:11.5px}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.strong-cell{color:var(--fg-0);font-weight:600}.label{color:var(--fg-2);font-size:11.5px;font-weight:600;margin-bottom:7px}.workspace-toolbar{min-height:56px;display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--line);background:#ffffff9e;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:6px;box-shadow:var(--shadow-sm),inset 0 1px #ffffffa8}.workspace-toolbar.compact{margin-bottom:12px}.map-action-toolbar{min-height:42px;padding:7px 18px}.map-action-toolbar .right{flex-wrap:wrap}.map-action-toolbar .select{width:236px}.workspace-toolbar .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar-summary{min-width:0;display:flex;align-items:baseline;gap:10px}.toolbar-summary strong{font-size:14px}.toolbar-summary span{color:var(--fg-2);white-space:nowrap}.page-scroll,.page-frame,.sync-console,.overview-grid,.rack-workspace,.map-layout,.flow-map-page{flex:1;min-height:0}.page-scroll,.page-frame,.sync-console,.rack-workspace,.flow-map-page{display:flex;flex-direction:column;gap:10px;overflow:hidden}.page-table-panel,.page-scroll-panel{flex:1;min-height:0;display:flex;flex-direction:column}.table-scroll{flex:1;min-height:0;overflow:auto;background:#ffffff61}.t{width:100%;border-collapse:collapse;font-size:12.5px}.t th,.t td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.t th{position:sticky;top:0;z-index:2;background:#f7f9fdf5;color:var(--fg-2);font-weight:600;box-shadow:inset 0 -1px 0 var(--line)}.t tr:hover td{background:#ffffff94}.t tr.clickable-row{cursor:pointer}.t tr.selected td{background:color-mix(in srgb,var(--accent-tint) 78%,white)}.table-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 10px;color:var(--fg-2);border-top:1px solid var(--line)}.inline-title{display:inline-flex;align-items:center;gap:8px;min-width:0;font-weight:600}.cbar{display:inline-flex;align-items:center;gap:7px}.cbar .bar,.progress{overflow:hidden;background:#e0e7f2c2;border-radius:100px}.cbar .bar{width:44px;height:4px}.cbar .bar span,.progress span{display:block;height:100%}.progress span{background:var(--accent);transition:width .16s ease}.cbar .v{color:var(--fg-2);font:500 11px/1 var(--font-mono)}.progress{height:5px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.stat{min-height:76px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffffa3;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e}.stat .label{margin:0 0 7px;font-size:11.5px}.stat .value{font:650 23px/1 var(--font-display);color:var(--fg-0)}.stat .sub{margin-top:7px;color:var(--fg-2);font-size:12px}.overview-grid{min-height:0;display:flex;flex-direction:column;gap:12px}.overview-main{flex:1;min-height:0;display:grid;grid-template-columns:360px minmax(0,1fr);gap:12px}.overview-health-column{min-height:0;display:flex;flex-direction:column;gap:12px}.health-panel,.overview-main .panel{min-height:0;display:flex;flex-direction:column}.health-list{display:flex;flex-direction:column;gap:18px;padding:20px 18px}.health-score-list{display:grid;grid-template-columns:1fr;gap:10px}.health-score{display:flex;align-items:center;gap:13px}.health-score svg{flex:0 0 auto}.health-score strong{display:block;font:650 22px/1 var(--font-mono)}.health-score span{display:block;color:var(--fg-2)}.wireless-health-panel{min-height:0}.wireless-health-body{display:grid;grid-template-columns:116px minmax(0,1fr);gap:10px;padding:12px 14px}.wireless-score-card{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff94;padding:12px;color:var(--ok)}.wireless-score-card strong{display:block;color:var(--fg-0);font:650 22px/1 var(--font-mono)}.wireless-score-card span{display:block;margin-top:4px;color:var(--fg-2);font-size:12px;font-weight:600}.wireless-health-bars{display:grid;gap:10px}.wireless-health-facts{grid-column:1 / -1}.health-bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#ffffff75;padding:10px 12px}.health-bar-copy{min-width:0;display:grid;gap:2px}.health-bar-copy strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12.5px;font-weight:600}.health-bar-copy span{color:var(--fg-2);font-size:11.5px}.health-bar-value{color:var(--fg-0);font:650 13px/1 var(--font-mono);white-space:nowrap}.health-bar{grid-column:1 / -1;height:6px}.health-bar.ok span{background:var(--ok)}.health-bar.warn span{background:var(--warn)}.health-bar.err span{background:var(--err)}.wireless-health-facts,.metric-list{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#ffffff61}.metric-row{min-height:46px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line)}.metric-row:last-child{border-bottom:0}.metric-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:6px;background:#eff3fac2;color:var(--fg-1)}.metric-icon.ok{color:var(--ok)}.metric-icon.warn{color:var(--warn)}.metric-icon.info{color:var(--info)}.metric-main{min-width:0;display:grid;gap:1px}.metric-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12.5px;font-weight:600}.metric-main span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:11.5px}.metric-value{color:var(--fg-0);font:600 13px/1 var(--font-mono);text-align:right;white-space:nowrap}.incident-list{flex:1;overflow:auto}.warn-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);border-left:3px solid transparent}.warn-row:last-child{border-bottom:0}.warn-row.sev-i{border-left-color:var(--info);background:color-mix(in srgb,var(--info) 4%,transparent)}.warn-row.sev-w{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 7%,transparent)}.warn-row.sev-e{border-left-color:var(--err);background:color-mix(in srgb,var(--err) 7%,transparent)}.wr-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:#ffffff80;color:var(--warn);flex:0 0 auto}.sev-e .wr-icon,.sev-err .wr-icon{color:var(--err)}.sev-i .wr-icon{color:var(--info)}.warn-main{flex:1;min-width:0}.warn-title{color:var(--fg-0);font-weight:600}.overview-grid{min-height:0;height:100%;display:flex;flex-direction:column;gap:12px;overflow:auto;padding-bottom:2px}.overview-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.overview-stat{min-height:76px;display:flex;justify-content:space-between;gap:10px;position:relative;overflow:hidden;border-left:3px solid var(--line-strong);background:#f2f6fcbd;box-shadow:var(--shadow-sm)}.overview-stat .stat-copy{min-width:0}.overview-stat .label{color:var(--fg-2);font-size:12px}.overview-stat .value{font-size:24px;letter-spacing:0}.overview-stat .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-dashboard{min-height:0;display:grid;grid-template-columns:minmax(460px,.95fr) minmax(560px,1.05fr);gap:12px;align-items:stretch}.overview-column{min-height:0;display:grid;gap:12px;align-content:start}.overview-card{min-height:0;height:clamp(350px,calc(100vh - 246px),430px);display:flex;flex-direction:column;background:#f2f6fcc7;box-shadow:var(--shadow-sm)}.health-summary-card .panel-head{min-height:44px}.overview-health-body{display:grid;grid-template-columns:172px minmax(0,1fr);gap:12px;padding:12px;flex:1;min-height:0}.health-score-area{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px}.health-ring{min-height:0;display:grid;place-items:center;align-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff52;color:var(--ok)}.health-ring.tone-warn{color:var(--warn)}.health-ring.tone-err{color:var(--err)}.health-ring-copy{display:grid;gap:3px;text-align:center}.health-ring-copy strong{color:var(--fg-0);font:650 23px/1 var(--font-mono)}.health-ring-copy span{color:var(--fg-1);font-weight:600}.health-ring-copy em{color:var(--fg-2);font-size:12px;font-style:normal}.health-mini-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.health-mini{min-width:0;padding:7px 6px;border:1px solid var(--line);border-top:3px solid var(--ok);border-radius:7px;background:#ffffff47;text-align:center}.health-mini.tone-warn{border-top-color:var(--warn)}.health-mini.tone-err{border-top-color:var(--err)}.health-mini strong{display:block;color:var(--fg-0);font:650 15px/1 var(--font-mono)}.health-mini span{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:10.5px}.source-list,.capacity-list,.site-list{display:grid;gap:8px}.source-list{align-content:stretch;grid-template-columns:1fr;min-height:0}.source-row{min-height:0;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:8px;background:#ffffff4d}.source-row.tone-warn{border-left-color:var(--warn)}.source-row.tone-err{border-left-color:var(--err)}.source-row.tone-info{border-left-color:var(--info)}.source-row .metric-icon{background:#ffffff70}.source-row.tone-ok .metric-icon{color:var(--ok)}.source-row.tone-warn .metric-icon{color:var(--warn)}.source-row.tone-err .metric-icon{color:var(--err)}.source-row.tone-info .metric-icon{color:var(--info)}.site-list{padding:12px}.site-row{min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff80}.site-row strong,.site-row span,.site-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-row strong{display:block;color:var(--fg-0);font-weight:650}.site-row span{display:block;margin-top:3px;color:var(--fg-2);font-size:12px}.site-row em{color:var(--fg-2);font-size:12px;font-style:normal}.overview-incident-list{flex:1;max-height:none}.overview-incident-list .warn-row{min-height:54px;align-items:center}.overview-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-stat{min-height:70px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;padding:10px;background:#ffffffbd}.overview-stat .metric-icon{background:#eff3fabd}.overview-stat .label{margin-bottom:4px;font-size:11px}.overview-stat .value{font-size:20px}.overview-stat .sub{margin-top:5px;font-size:11px}.overview-dashboard{flex:1;min-height:0;grid-template-columns:minmax(0,1.34fr) minmax(280px,.82fr);grid-template-rows:minmax(238px,1fr) minmax(170px,.48fr)}.overview-card{height:auto;min-height:0;background:#ffffffb8}.traffic-body{flex:1;min-height:0;display:grid;grid-template-rows:minmax(230px,1fr) minmax(150px,.62fr);gap:10px}.chart-section{min-height:0;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafd8f;padding:10px}.chart-section.large{min-height:220px}.chart-section-head strong{color:var(--fg-0);font-size:12.5px;font-weight:650}.chart-section-head span{margin-left:auto;color:var(--fg-2);font-size:11.5px}.chart-subgrid{min-height:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(190px,.8fr);gap:10px}.svg-chart-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.bandwidth-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:4px}.bandwidth-summary span{min-width:0;display:flex;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:6px;background:#ffffffa3;color:var(--fg-2);padding:6px 8px;font-size:11px}.bandwidth-summary strong{color:var(--fg-0);font:650 11px/1.2 var(--font-mono);white-space:nowrap}.svg-chart-wrap.compact{min-height:116px}.svg-chart{flex:1;width:100%;min-height:0;overflow:visible}.chart-grid{fill:none;stroke:var(--line);stroke-width:1}.chart-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-line.total{stroke:var(--accent)}.chart-line.downstream{stroke:var(--c-ap)}.chart-line.upstream{stroke:var(--warn)}.chart-line.clients{stroke:var(--c-switch)}.chart-area{opacity:.16}.chart-area.downstream{fill:var(--c-ap)}.chart-area.clients{fill:var(--c-switch);opacity:.12}.chart-point{fill:#fffffff5;stroke-width:2;cursor:help;opacity:.82}.chart-point.total{stroke:var(--accent)}.chart-point:hover{opacity:1}.chart-legend,.chart-axis{min-height:20px;display:flex;align-items:center;gap:12px;color:var(--fg-2);font-size:11px}.chart-axis{justify-content:space-between}.legend-line{width:16px;height:2px;display:inline-block;margin-right:5px;vertical-align:middle;background:var(--accent)}.legend-line.downstream{background:var(--c-ap)}.legend-line.upstream{background:var(--warn)}.chart-empty{flex:1;min-height:126px;display:grid;place-items:center;align-content:center;gap:6px;border:1px dashed var(--line-strong);border-radius:8px;background:#ffffff80;text-align:center;color:var(--fg-2);padding:14px}.chart-empty span{max-width:280px;font-size:11.5px}.app-usage-panel{overflow:hidden}.app-usage-list{display:grid;gap:7px;min-height:0;overflow:auto}.app-usage-row{min-height:31px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.app-usage-row:last-child{border-bottom:0}.app-usage-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-weight:600}.app-usage-row strong{color:var(--fg-2);font:650 11px/1 var(--font-mono)}.overview-health-body{grid-template-columns:118px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.health-score-block{min-height:0;display:grid;place-items:center;align-content:center;gap:5px;border:1px solid var(--line);border-top:3px solid var(--ok);border-radius:8px;background:#f8fafd9e;text-align:center}.health-score-block span{color:var(--fg-1);font-weight:650}.health-score-block em{color:var(--fg-2);font-size:11.5px;font-style:normal}.overview-health-list{min-height:0;display:grid;gap:8px;align-content:center}.overview-health-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px 10px;align-items:center}.overview-health-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-1);font-weight:600}.overview-health-row strong{text-align:right;color:var(--fg-0);font:650 12px/1 var(--font-mono)}.health-line{grid-column:1 / -1;height:5px;border-radius:4px;background:#7889a629;overflow:hidden}.health-source-list{grid-column:1 / -1;grid-template-columns:1fr}.health-source-list .source-row{min-height:58px}.overview-grid{width:100%;max-width:100%;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;overflow-x:hidden;padding:0 0 2px}.overview-stats{width:100%;max-width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;flex:0 0 auto}.overview-stat{min-width:0;min-height:76px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:7px;background:#ffffffc2;box-shadow:var(--shadow-sm)}.overview-stat .metric-icon{width:26px;height:26px;border-radius:6px;background:#eff3fab8}.overview-stat.tone-ok{border-left-color:var(--ok)}.overview-stat.tone-warn{border-left-color:var(--warn)}.overview-stat.tone-err{border-left-color:var(--err)}.overview-stat.tone-info{border-left-color:var(--info)}.overview-stat.tone-ok .metric-icon{color:var(--ok)}.overview-stat.tone-warn .metric-icon{color:var(--warn)}.overview-stat.tone-err .metric-icon{color:var(--err)}.overview-stat.tone-info .metric-icon{color:var(--info)}.overview-stat .stat-copy,.overview-stat .label,.overview-stat .value,.overview-stat .sub{min-width:0}.overview-stat .label{margin:0 0 4px;color:var(--fg-2);font-size:11px;line-height:1.15}.overview-stat .value{color:var(--fg-0);font:650 21px/1.05 var(--font-display);letter-spacing:0}.overview-stat .sub{margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:11px}.overview-dashboard{width:100%;max-width:100%;flex:1 1 auto;min-height:540px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(430px,.9fr);grid-template-rows:minmax(360px,.92fr) minmax(210px,.5fr);gap:10px;align-items:stretch}.overview-card{max-width:100%;min-width:0;min-height:0;height:auto;display:flex;flex-direction:column;border-radius:7px;background:#ffffffc7;box-shadow:var(--shadow-sm)}.traffic-card{grid-row:1 / 3}.traffic-body{flex:1;min-height:0;display:flex;padding:10px}.chart-section{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:7px;background:#f8fafdb8;padding:10px 11px}.chart-section.large{flex:1;min-height:0}.chart-section-head{min-height:22px;display:flex;align-items:center;gap:10px}.chart-section-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12.5px;font-weight:650}.chart-section-head span{margin-left:auto;color:var(--fg-2);font-size:11px;white-space:nowrap}.chart-subgrid{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);gap:10px}.chart-empty{flex:1;min-height:0;display:grid;place-items:center;align-content:center;gap:7px;border:1px dashed color-mix(in srgb,var(--line-strong) 76%,transparent);border-radius:7px;background:#ffffff8a;color:var(--fg-2);padding:12px;text-align:center}.chart-empty strong{color:var(--fg-0);font-size:13px}.chart-empty span{max-width:320px;color:var(--fg-2);font-size:11.5px;line-height:1.45}.health-summary-card{min-height:0}.overview-health-body{flex:1;min-height:0;display:grid;grid-template-columns:142px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:10px;padding:10px}.health-score-block{min-height:146px;display:grid;place-items:center;align-content:center;gap:6px;border:1px solid var(--line);border-top:3px solid var(--ok);border-radius:7px;background:#f8fafdbd;text-align:center}.health-score-block strong{color:var(--fg-0);font:650 30px/1 var(--font-mono)}.health-score-block span{color:var(--fg-1);font-size:12px;font-weight:650}.health-score-block em{color:var(--fg-2);font-size:11px;font-style:normal}.overview-health-list{min-width:0;min-height:0;display:grid;align-content:center;gap:8px;padding:2px 0}.overview-health-row{min-width:0;display:grid;gap:6px}.overview-health-row-head{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:baseline}.overview-health-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-1);font-size:12px;font-weight:600}.overview-health-row strong{color:var(--fg-0);font:650 11.5px/1 var(--font-mono);text-align:right}.health-line{width:100%;height:5px;border-radius:4px;background:#7889a629;overflow:hidden}.health-line i{display:block;height:100%;border-radius:inherit;background:var(--ok)}.overview-health-row.tone-warn .health-line i{background:var(--warn)}.overview-health-row.tone-err .health-line i{background:var(--err)}.health-source-list{grid-column:1 / -1;min-height:0;display:grid;grid-template-columns:1fr;gap:7px;align-content:start}.health-source-list .source-row,.source-row{min-width:0;min-height:48px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:7px;background:#ffffff7a}.source-row .metric-icon{width:24px;height:24px;background:transparent}.source-row .metric-main strong{font-size:11.5px}.source-row .metric-main span{font-size:10.5px}.source-row .metric-value{font-size:12px}.incidents-card{min-height:0}.overview-incident-list{flex:1;min-height:0;overflow:auto}.overview-incident-list .warn-row,.incident-button{width:100%;border-top:0;border-right:0;border-bottom:1px solid var(--line);border-left-width:3px;border-radius:0;cursor:pointer;text-align:left}.overview-incident-list .warn-row{min-height:44px;align-items:center;background:#f8fafd94}.incident-button:hover{background:#ffffffd1}.incident-line,.overview-incident-list .warn-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-incident-list .warn-row .mono{max-width:122px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incident-detail-modal{width:min(520px,calc(100vw - 32px))}.incident-detail-body{gap:12px}.incident-detail-body div{display:grid;gap:4px}.incident-detail-body p{margin:0;color:var(--fg-1);line-height:1.5}.warn-text{color:var(--warn)!important}.health-score-block.tone-warn{border-top-color:var(--warn)}.health-score-block.tone-err{border-top-color:var(--err)}.overview-stat.tone-warn{background:color-mix(in srgb,var(--warn) 4%,rgba(255,255,255,.78))}.overview-stat.tone-err{background:color-mix(in srgb,var(--err) 4%,rgba(255,255,255,.78))}@media(max-width:1380px){.overview-stats{grid-template-columns:1fr}.overview-dashboard{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:0}.traffic-card{grid-row:auto;min-height:520px}.health-summary-card{min-height:360px}.chart-subgrid{grid-template-columns:1fr}.overview-health-body{grid-template-columns:1fr;grid-template-rows:auto auto auto}.health-score-block{min-height:100px}.health-source-list{grid-column:auto}}@media(max-width:980px){.overview-stats,.overview-health-body{grid-template-columns:1fr}.health-source-list{grid-column:auto}.bandwidth-summary{grid-template-columns:1fr}}.capacity-list{padding:12px}.maw-overview{width:100%;max-width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(360px,1fr) minmax(150px,.36fr);gap:12px;overflow:auto;scrollbar-gutter:stable}.maw-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;flex:0 0 auto}.maw-kpi{min-width:0;min-height:72px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:7px;background:#ffffffc7;box-shadow:var(--shadow-sm)}.maw-kpi.tone-ok{border-left-color:var(--ok)}.maw-kpi.tone-warn{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 4%,rgba(255,255,255,.78))}.maw-kpi.tone-err{border-left-color:var(--err);background:color-mix(in srgb,var(--err) 4%,rgba(255,255,255,.78))}.maw-kpi.tone-info{border-left-color:var(--info)}.maw-kpi-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:6px;background:#eff3fab8;color:var(--fg-2)}.maw-kpi.tone-ok .maw-kpi-icon{color:var(--ok)}.maw-kpi.tone-warn .maw-kpi-icon{color:var(--warn)}.maw-kpi.tone-err .maw-kpi-icon{color:var(--err)}.maw-kpi.tone-info .maw-kpi-icon{color:var(--info)}.maw-kpi div{min-width:0}.maw-kpi span,.maw-kpi strong,.maw-kpi em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maw-kpi span{color:var(--fg-2);font-size:11px;line-height:1.2}.maw-kpi strong{margin-top:4px;color:var(--fg-0);font:650 22px/1 var(--font-display)}.maw-kpi em{margin-top:6px;color:var(--fg-2);font-size:11px;font-style:normal}.maw-dashboard{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:12px;align-items:stretch}.maw-card{min-width:0;border:1px solid var(--line);border-radius:7px;background:#ffffffe6;box-shadow:var(--shadow-sm);overflow:hidden}.maw-card-head{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);background:#ffffff8f}.maw-card-head h2{margin:0;color:var(--fg-0);font:650 13px/1.2 var(--font-display)}.maw-card-head p{margin:3px 0 0;color:var(--fg-2);font-size:11.5px}.maw-state{flex:0 0 auto;color:var(--fg-2);font-size:11.5px;font-weight:600}.maw-state.ok{color:var(--ok)}.maw-state.warn{color:var(--warn)}.maw-traffic-card{min-height:0;height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.maw-bandwidth-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:7px 12px 0}.maw-bandwidth-meta div{min-width:0;display:grid;gap:3px;border:1px solid var(--line);border-radius:6px;background:#f8fafdb8;padding:6px 9px}.maw-bandwidth-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:11px}.maw-bandwidth-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font:650 13px/1.2 var(--font-mono)}.maw-chart-shell{position:relative;min-height:186px;display:grid;grid-template-rows:minmax(220px,1fr) 36px;margin:7px 12px 10px;border:1px solid var(--line);border-radius:7px;background:#f8fafdb8;overflow:clip}.maw-bandwidth-chart{display:block;width:100%;height:100%;min-height:0;padding:8px 10px 0;outline:none;touch-action:none}.maw-chart-grid{fill:none;stroke:#7889a62e;stroke-width:1;pointer-events:none}.maw-chart-area{fill:color-mix(in srgb,var(--c-ap) 18%,transparent)}.maw-chart-line{fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.maw-chart-line.total{stroke:var(--accent)}.maw-chart-line.down{stroke:var(--c-ap)}.maw-chart-line.up{stroke:var(--warn)}.maw-chart-axis{pointer-events:none}.maw-chart-axis text{fill:var(--fg-3);font:500 11px/1 var(--font-mono);text-anchor:middle}.maw-chart-dot{fill:#fff;stroke:var(--accent);stroke-width:2;pointer-events:none}.maw-chart-dot.active{fill:var(--accent-tint)}.maw-chart-hit-area{fill:transparent;cursor:crosshair}.maw-chart-cursor{pointer-events:none}.maw-chart-cursor line{stroke:#1d1d1f57;stroke-width:1.2;stroke-dasharray:4 4}.maw-chart-cursor circle{fill:#fff;stroke:var(--accent);stroke-width:2.4}.maw-chart-readout{position:absolute;right:14px;top:14px;display:flex;align-items:center;gap:10px;max-width:calc(100% - 28px);border:1px solid var(--line);border-radius:6px;background:#ffffffe0;padding:7px 9px;color:var(--fg-2);font-size:11px;box-shadow:var(--shadow-sm);pointer-events:none}.maw-chart-readout.is-tracking{right:auto;left:var(--readout-x);top:12px;transform:translate(12px)}.maw-chart-readout.is-tracking.is-left{transform:translate(calc(-100% - 12px))}.maw-chart-readout strong{color:var(--fg-0);font:650 11px/1 var(--font-mono)}.maw-chart-readout span{white-space:nowrap}.maw-chart-legend{min-height:36px;display:flex;align-items:center;gap:14px;padding:0 14px;border-top:1px solid var(--line);color:var(--fg-2);font-size:11px}.maw-chart-legend i{width:18px;height:2px;display:inline-block;margin-right:6px;vertical-align:middle}.maw-chart-legend .total{background:var(--accent)}.maw-chart-legend .down{background:var(--c-ap)}.maw-chart-legend .up{background:var(--warn)}.maw-empty-chart{min-height:100%;display:grid;place-items:center;align-content:center;gap:7px;color:var(--fg-2);text-align:center;padding:24px}.maw-empty-chart strong{color:var(--fg-0);font-size:13px}.maw-empty-chart span{max-width:360px;line-height:1.45}.maw-score{min-width:78px;display:grid;justify-items:end;gap:3px}.maw-score strong{color:var(--fg-0);font:700 23px/1 var(--font-mono)}.maw-score span{color:var(--fg-2);font-size:11px}.maw-score.warn span{color:var(--warn)}.maw-score.err span{color:var(--err)}.maw-health-list{display:grid;gap:6px;padding:9px 12px}.maw-health-row{min-width:0;display:grid;gap:4px}.maw-health-row div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.maw-health-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-1);font-size:12px;font-weight:600}.maw-health-row strong{color:var(--fg-0);font:650 11.5px/1 var(--font-mono)}.maw-health-row i{height:3px;border-radius:5px;background:#7889a629;overflow:hidden}.maw-health-row b{display:block;height:100%;border-radius:inherit;background:var(--ok)}.maw-health-row.tone-warn b{background:var(--warn)}.maw-health-row.tone-err b{background:var(--err)}.maw-health-facts{display:grid;grid-template-columns:1fr;gap:5px;padding:0 12px 9px}.maw-health-facts div{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 10px;border:1px solid var(--line);border-radius:6px;background:#f8fafd94;padding:6px 8px}.maw-health-facts span,.maw-health-facts em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maw-health-facts span{color:var(--fg-0);font-weight:650}.maw-health-facts strong{color:var(--fg-0);font:650 12px/1 var(--font-mono);text-align:right}.maw-health-facts em{grid-column:1 / -1;color:var(--fg-2);font-size:11px;font-style:normal}.maw-incidents-card{min-height:0;height:100%}.maw-incident-list{max-height:none;height:calc(100% - 49px);overflow:auto}.maw-incident-row{width:100%;min-height:34px;display:grid;grid-template-columns:20px minmax(90px,.7fr) minmax(0,1.3fr) 126px;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);border-left:3px solid var(--info);background:#f8fafd8a;color:var(--fg-1);padding:7px 9px;text-align:left;cursor:pointer}.maw-incident-row.warn{border-left-color:var(--warn)}.maw-incident-row.err{border-left-color:var(--err)}.maw-incident-row:hover{background:#ffffffdb}.maw-incident-row strong,.maw-incident-row span,.maw-incident-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maw-incident-row strong{color:var(--fg-0);font-size:12px}.maw-incident-row span{color:var(--fg-2);font-size:11.5px}.maw-incident-row em{color:var(--fg-2);font:500 10.5px/1 var(--font-mono);text-align:right}@media(max-width:1320px){.maw-dashboard{grid-template-columns:1fr}}@media(max-width:1040px){.maw-kpi-grid,.maw-bandwidth-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.maw-incident-row{grid-template-columns:20px minmax(0,1fr) 96px}.maw-incident-row span{display:none}}@media(max-width:760px){.maw-kpi-grid,.maw-bandwidth-meta{grid-template-columns:1fr}.maw-chart-readout{position:static;margin:10px;flex-wrap:wrap}}.capacity-row{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:8px;background:#ffffff85}.capacity-row.tone-warn{border-left-color:var(--warn)}.capacity-row.tone-err{border-left-color:var(--err)}.capacity-row.tone-info{border-left-color:var(--info)}.capacity-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.capacity-row-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:13px;font-weight:650}.capacity-row-head span{color:var(--fg-0);font:650 12.5px/1 var(--font-mono);white-space:nowrap}.capacity-row-detail{color:var(--fg-2);font-size:12px}.capacity-bar{height:5px;overflow:hidden;border-radius:999px;background:#e2e8f0e6}.capacity-bar span{display:block;height:100%;border-radius:inherit;background:var(--ok)}.capacity-row.tone-warn .capacity-bar span{background:var(--warn)}.capacity-row.tone-err .capacity-bar span{background:var(--err)}.capacity-row.tone-info .capacity-bar span{background:var(--info)}.tabs{display:flex;align-items:center;gap:4px;padding:0 2px;border-bottom:1px solid var(--line);flex:0 0 auto}.tab{min-height:36px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--fg-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-weight:500}.tab.on{color:var(--fg-0);border-bottom-color:var(--accent)}.compact-tabs{min-width:0;flex:1;overflow-x:auto;border-bottom:0;scrollbar-width:thin}.compact-tabs .tab{min-height:32px;padding:0 8px}.tab-count{min-width:18px;height:16px;border-radius:100px;display:inline-flex;align-items:center;justify-content:center;background:#eff3fabd;color:var(--fg-2);font:500 11px/1 var(--font-mono)}.sync-source-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:#ffffff94;overflow:hidden}.source-truth-sync{border:0;background:transparent;border-radius:0;gap:10px;overflow:visible}.sync-tabs{min-height:36px;display:flex;align-items:flex-end;gap:8px;padding:0 2px;border-bottom:1px solid var(--line);flex:0 0 auto}.sync-tab{min-height:34px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--fg-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0 8px;font-weight:500}.sync-tab.on{color:var(--fg-0);border-bottom-color:var(--accent)}.sync-hero-source,.sync-import-card{border:1px solid var(--line);border-radius:8px;background:#ffffff9e;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e}.sync-hero-source{min-height:86px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 18px}.sync-source-icon{width:36px;height:36px;border-radius:7px;display:grid;place-items:center;background:#eff3fab8;color:var(--fg-1);flex:0 0 auto}.sync-source-icon.blue{background:color-mix(in srgb,var(--accent-tint) 84%,white);color:var(--accent)}.sync-source-main{min-width:0}.sync-source-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;line-height:1.25}.sync-source-title strong{color:var(--fg-0);font-weight:650}.sync-source-main p{margin:2px 0 5px;color:var(--fg-2);font-size:12.5px}.inline-status{display:inline-flex;align-items:center;gap:6px;color:var(--fg-1);font-size:12px;font-weight:500}.inline-status.ok .dot{background:var(--ok)}.inline-status.warn .dot{background:var(--warn)}.inline-status.syncing .dot{background:var(--accent)}.sync-source-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--fg-2);font-size:11.5px}.sync-source-meta b{color:var(--fg-0);font-weight:550}.sync-source-actions{display:flex;align-items:center;gap:8px}.sync-source-actions .btn-primary{min-height:30px;padding:0 12px}.sync-source-actions .btn-primary>span{display:inline-grid;place-items:center}.sync-source-icon.is-active svg,.sync-spin svg{animation:sync-spin .85s linear infinite}.sync-inline-progress{max-width:520px;display:flex;flex-direction:column;gap:6px;margin-top:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfeb8;color:var(--fg-2);font-size:12px}.sync-progress-head,.sync-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.sync-progress-head{color:var(--fg-0);font-weight:600}.sync-progress-head span:last-child,.sync-progress-foot span:last-child{flex:0 0 auto;font-family:var(--font-mono);font-size:11px}.sync-progress-foot{color:var(--fg-3);font-size:11.5px}.sync-inline-progress .progress{width:100%}@keyframes sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-import-card{overflow:hidden}.sync-import-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid var(--line);background:#ffffff52}.sync-import-head h2{margin:0;font-size:13.5px}.sync-import-head span{color:var(--fg-2)}.sync-import-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.sync-import-row:last-child{border-bottom:0}.sync-import-row .btn{min-height:28px;padding:0 12px}.sync-activity-grid{flex:1;min-height:0;display:grid;grid-template-rows:minmax(220px,1fr) auto;gap:12px}.freshdesk-logs-page{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,340px);gap:16px}.freshdesk-header-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.freshdesk-month-button{min-width:170px}.freshdesk-calendar-panel,.freshdesk-detail-panel{min-width:0;min-height:0;display:flex;flex-direction:column}.freshdesk-primary-panel .panel-head{min-height:64px;padding:12px 14px}.freshdesk-primary-panel .panel-head>div:first-child{min-width:0;display:grid;gap:2px}.freshdesk-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:12px 14px 7px;color:var(--fg-2);font-size:10.5px;font-weight:650}.freshdesk-calendar-grid{flex:0 0 auto;min-height:auto;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:auto;gap:6px;padding:0 14px 14px;overflow:visible}.freshdesk-day{min-width:0;min-height:0;aspect-ratio:1 / 1;display:grid;grid-template-rows:auto auto;align-content:space-between;gap:4px;border:1px solid rgba(142,142,147,.18);border-radius:11px;background:#ffffff85;color:var(--fg-1);padding:7px;text-align:left;cursor:pointer;box-shadow:inset 0 1px #ffffff94}.freshdesk-day:hover{border-color:#007aff42;background:#ffffffc7}.freshdesk-day.selected{border-color:#007aff94;background:linear-gradient(180deg,#e8f2ffeb,#d3e6ffdb);box-shadow:inset 0 0 0 1px #007aff1f,0 6px 16px #007aff1a}.freshdesk-day.empty{opacity:0;cursor:default}.freshdesk-day.failed{border-color:color-mix(in srgb,var(--err) 36%,var(--line));background:color-mix(in srgb,var(--err) 6%,white)}.freshdesk-day-number{color:var(--fg-1);font:650 11px/1 var(--font-ui)}.freshdesk-day-log{min-width:0;display:grid;gap:1px}.freshdesk-day-log strong{color:var(--fg-0);font:700 15px/1 var(--font-display)}.freshdesk-day-log em{color:var(--fg-2);font-style:normal;font-size:9.5px}.freshdesk-detail-body{flex:1;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:14px}.freshdesk-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px}.freshdesk-summary-tile{min-width:0;min-height:68px;display:grid;align-content:center;gap:4px;border:1px solid var(--line);border-radius:12px;background:#ffffff94;padding:10px 12px}.freshdesk-summary-tile span{color:var(--fg-2);font-size:11.5px}.freshdesk-summary-tile strong{color:var(--fg-0);font:650 20px/1 var(--font-display)}.freshdesk-run-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--fg-2);font-size:12px}.freshdesk-run-meta b{color:var(--fg-0);font-weight:550}.freshdesk-log-section{display:grid;gap:10px}.freshdesk-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.freshdesk-log-section h3{margin:0;color:var(--fg-0);font-size:12.5px}.freshdesk-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.freshdesk-section-head h3{margin:0}.freshdesk-section-count{color:var(--fg-2);font-size:12px;font-weight:600}.freshdesk-count-list{display:grid;gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.freshdesk-count-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:30px;padding:6px 9px;background:#ffffff7a;border-bottom:1px solid var(--line)}.freshdesk-count-row:last-child{border-bottom:0}.freshdesk-count-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.freshdesk-count-row strong{font:650 12px/1 var(--font-mono)}.freshdesk-detail-empty{flex:1;min-height:180px;display:grid;place-items:center;align-content:center;gap:7px;padding:24px;color:var(--fg-2);text-align:center}.freshdesk-detail-empty strong{color:var(--fg-0)}.freshdesk-detail-empty span{max-width:300px;font-size:12px}.freshdesk-error{display:flex;align-items:center;gap:7px;margin:0 12px 12px;padding:8px 9px;border:1px solid color-mix(in srgb,var(--err) 22%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--err) 6%,white);color:var(--err);font-size:12px}.freshdesk-manager-log pre{margin:0;padding:16px;max-height:none;overflow:visible;border:1px solid var(--line);border-radius:12px;background:#ffffff94;color:var(--fg-0);white-space:pre-wrap;font-family:var(--font-mono);font-size:12.5px;line-height:1.58}.freshdesk-ticket-list{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#ffffff70}.freshdesk-ticket-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(220px,1fr);gap:12px;padding:11px 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.freshdesk-ticket-row:last-child{border-bottom:0}.freshdesk-ticket-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.freshdesk-ticket-main div{min-width:0}.freshdesk-ticket-main strong{display:block;color:var(--fg-0);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.freshdesk-ticket-main span,.freshdesk-ticket-meta{color:var(--fg-2);font-size:12px}.freshdesk-ticket-link{flex:0 0 auto;color:var(--brand);font-size:12px;font-weight:700;text-decoration:none}.freshdesk-ticket-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 12px;text-align:right}.freshdesk-ticket-tags{display:flex;flex-wrap:wrap;gap:6px}.freshdesk-ticket-tags span{padding:3px 7px;border-radius:999px;background:var(--card-1);color:var(--fg-2);font-size:11px;font-weight:700}.src-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:#ffffff80}.src-row:last-child{border-bottom:0}.src-icon{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:#eff3fab8;color:var(--fg-1);flex:0 0 auto}.src-title{color:var(--fg-0);font-size:13.5px;font-weight:600}.src-sub{margin-top:1px;color:var(--fg-2);font-size:12px}.src-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;color:var(--fg-3);font-size:11.5px}.src-meta b{color:var(--fg-1);font-weight:500}.src-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex:0 0 auto}.sync-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;color:var(--fg-2)}.validation-panel{flex:1;min-height:0;display:flex;flex-direction:column}.empty-state{min-height:86px;display:grid;place-items:center;gap:6px;color:var(--fg-2);padding:18px;text-align:center}.server-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.server-stat{min-height:76px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffffa3;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e}.server-stat span{color:var(--fg-2);font-size:11.5px}.server-stat strong{display:block;margin-top:6px;font:650 22px/1 var(--font-display)}.server-stat em{display:block;margin-top:7px;color:var(--fg-2);font-style:normal;font-size:11.5px}.page-h{display:flex;align-items:center;gap:10px}.page-h h1{display:none}.page-h .sub{color:var(--fg-2)}.server-tabs{align-items:flex-end;gap:12px;background:#ffffff70}.group-tabs{padding-right:12px;border-right:1px solid var(--line)}.dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0}.dl dt{color:var(--fg-2)}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:#2a344a3d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal{width:min(620px,100%);max-height:min(760px,calc(100vh - 40px));display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:#ffffffdb;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);overflow:hidden}.server-edit-modal{width:min(860px,100%)}.switch-modal{width:1120px;height:720px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px)}.switch-modal-body{display:grid;grid-template-rows:auto minmax(238px,auto) minmax(0,1fr);gap:10px;padding:12px 14px 14px;min-height:0;overflow:auto}.switch-meta-strip{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px}.switch-stat-line{display:flex;align-items:center;gap:14px;color:var(--fg-2);font-size:11.5px}.switch-stat-line b{color:var(--fg-0);font:650 13px/1 var(--font-mono)}.switch-filter{flex:0 0 auto}.switch-face{display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:10px 12px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f9fdc2;overflow:visible}.switch-face-label{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--fg-2);font-size:11.5px}.switch-face-label strong{color:var(--fg-0);font-size:12px}.switch-chassis{min-width:0;min-height:158px;display:grid;grid-template-columns:18px minmax(0,1fr) auto 18px;gap:10px;align-items:center;border:1px solid rgba(84,98,122,.34);border-radius:10px;background:linear-gradient(180deg,#f5f7fa,#e3e8ef 48%,#cfd6e1);box-shadow:inset 0 1px #ffffffeb,inset 0 -1px #48566c38,0 1px 2px #222d4614;padding:14px 12px}.switch-rack-ear{width:18px;height:142px;border-radius:5px;background:linear-gradient(180deg,#d0d7e1,#aeb8c6);box-shadow:inset 0 0 0 1px #54627a5c,inset 0 1px #ffffffb8}.switch-face-main{display:grid;grid-template-columns:repeat(var(--port-columns),1fr);grid-template-rows:repeat(2,58px);gap:4px 3px;align-items:center;min-width:0;padding:8px 7px;border-radius:4px;background:linear-gradient(180deg,#e4e9f0,#d4dbe5);box-shadow:inset 0 0 0 1px #54627a47,inset 0 1px #ffffffc7,0 1px #ffffff8c}.switch-uplink-module{width:136px;min-height:142px;height:var(--uplink-height, 142px);display:grid;align-content:center;gap:7px;padding:9px;border:1px solid rgba(84,98,122,.32);border-radius:5px;background:linear-gradient(180deg,#eef2f6,#d5dde7);box-shadow:inset 0 1px #ffffffb8,0 1px #ffffff6b}.switch-uplink-module>span{color:var(--fg-2);font-size:11px;font-weight:650}.switch-uplink-grid{display:grid;grid-template-columns:repeat(2,minmax(42px,1fr));gap:6px 7px}.switch-port{--port-rim: #8793a2;--port-inner-rim: #1f2630;--port-highlight: rgba(255,255,255,.18);--port-mouth: #0d1218;--port-icon: transparent;--port-jack-bg: linear-gradient(180deg, #303844 0%, #151b23 100%);--port-sfp-bg: linear-gradient(90deg, #222b36 0 18%, #9da8b6 18% 26%, #3e4a5a 26% 74%, #9da8b6 74% 82%, #222b36 82% 100%);position:relative;height:58px;border:0;border-radius:3px;background:transparent;color:var(--fg-0);display:grid;grid-template-rows:13px 5px 30px;align-items:center;justify-items:center;padding:0;cursor:pointer;transition:opacity .15s ease,filter .15s ease}.switch-port.compact{height:34px;grid-template-rows:9px 4px 21px}.switch-port-number{font:650 10px/1 var(--font-mono)}.switch-port-led{width:7px;height:3px;border-radius:1px;background:#54627a5c;box-shadow:inset 0 0 0 1px #48566c3d}.switch-port-jack{position:relative;display:grid;place-items:center;width:100%;max-width:28px;height:27px;border:1px solid var(--port-rim);border-radius:1px 1px 3px 3px;background:var(--port-jack-bg);box-shadow:inset 0 0 0 3px var(--port-inner-rim),inset 0 7px 0 var(--port-highlight),0 0 0 1px #48566c57,0 1px 1px #222d462e,0 1px #ffffff9e}.switch-port-jack:before{content:"";position:absolute;left:5px;right:5px;bottom:0;height:8px;background:var(--port-mouth);clip-path:polygon(0 0,100% 0,78% 100%,22% 100%)}.switch-port.row-bottom{grid-template-rows:30px 5px 13px}.switch-port.row-bottom .switch-port-jack{grid-row:1}.switch-port.row-bottom .switch-port-led{grid-row:2}.switch-port.row-bottom .switch-port-number{grid-row:3}.switch-port.row-sfp .switch-port-jack{max-width:44px;height:19px;border-radius:2px;border-color:#9fa9b6;background:var(--port-sfp-bg);box-shadow:inset 0 0 0 2px #29313b,0 0 0 1px #62708b3d,0 1px #ffffff8f}.switch-port.row-sfp .switch-port-jack:before{display:none}.switch-port-device-badge{position:absolute;z-index:1;width:18px;height:18px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.78);border-radius:4px;background:#f8fafdf2;box-shadow:0 1px 2px #11182747,inset 0 1px #ffffffd9;pointer-events:none}.switch-port-device-icon{color:var(--port-icon);opacity:1;pointer-events:none}.switch-port-poe{position:absolute;z-index:2;right:-3px;top:-5px;width:13px;height:13px;display:grid;place-items:center;border:1px solid rgba(84,98,122,.3);border-radius:3px;background:#eef2f7;color:#6f7b8a;box-shadow:0 1px 1px #222d4629,inset 0 1px #fffc;pointer-events:none}.switch-port.poe-active .switch-port-poe{border-color:#754f194d;background:#f5b84b;color:#3b2a12}.switch-port.connected{--port-rim: #5f9a5e;--port-inner-rim: #326d34;--port-highlight: rgba(231,250,224,.44);--port-mouth: #2d612f;--port-icon: #ecf7e8;--port-jack-bg: linear-gradient(180deg, #7fc875 0%, #4d9a4f 100%);color:var(--fg-0)}.switch-port.connected .switch-port-led,.switch-port.uplink .switch-port-led{background:#83d66f;box-shadow:0 0 0 1px #17592a57,0 0 5px #60d2565c}.switch-port.uplink{--port-rim: #678cb8;--port-inner-rim: #284f7b;--port-highlight: rgba(221,237,252,.42);--port-mouth: #25466a;--port-icon: #e9f3ff;--port-jack-bg: linear-gradient(180deg, #6699c8 0%, #3e73a5 100%);--port-sfp-bg: linear-gradient(90deg, #284f7b 0 18%, #adbed1 18% 26%, #4d80ad 26% 74%, #adbed1 74% 82%, #284f7b 82% 100%);color:var(--fg-0)}.switch-port.disabled{--port-rim: #929dac;--port-inner-rim: #303844;--port-highlight: rgba(255,255,255,.12);--port-mouth: #1a2028;--port-icon: #d4d9e1;--port-jack-bg: linear-gradient(180deg, #4d5866 0%, #27303a 100%);opacity:.72}.switch-port.warning{--port-rim: #c4a060;--port-inner-rim: #754f19;--port-highlight: rgba(244,206,134,.34);--port-mouth: #3f2a11;--port-icon: #f5e6cf;--port-jack-bg: linear-gradient(180deg, #c9943d 0%, #8a6023 100%);color:var(--fg-0)}.switch-port.warning .switch-port-led{background:var(--warn)}.switch-port.has-printer{--port-rim: #71a3a2;--port-inner-rim: #1e5b5d;--port-highlight: rgba(174,229,226,.32);--port-mouth: #143739;--port-icon: #155d61;--port-jack-bg: linear-gradient(180deg, #4fa4a2 0%, #2c7475 100%);color:var(--fg-0)}.switch-port.has-phone{--port-rim: #9e8fc0;--port-inner-rim: #514069;--port-highlight: rgba(208,197,230,.32);--port-mouth: #302441;--port-icon: #5e4582;--port-jack-bg: linear-gradient(180deg, #8d78b6 0%, #655087 100%);color:var(--fg-0)}.switch-port.has-ap{--port-rim: #78a0b7;--port-inner-rim: #235473;--port-highlight: rgba(176,216,236,.32);--port-mouth: #173446;--port-icon: #235e7e;--port-jack-bg: linear-gradient(180deg, #4d91af 0%, #2c6686 100%);color:var(--fg-0)}.switch-port.has-camera{--port-rim: #888d98;--port-inner-rim: #464b55;--port-highlight: rgba(204,208,220,.26);--port-mouth: #2b2e36;--port-icon: #3f4652;--port-jack-bg: linear-gradient(180deg, #858b98 0%, #5a626f 100%);color:var(--fg-0)}.switch-port.has-stack{--port-rim: #858d98;--port-inner-rim: #333b45;--port-highlight: rgba(220,225,233,.24);--port-mouth: #20262d;--port-icon: #3d4550;--port-jack-bg: linear-gradient(180deg, #747d8b 0%, #4d5662 100%);--port-sfp-bg: linear-gradient(90deg, #39414d 0 18%, #a2aab5 18% 26%, #626c7a 26% 74%, #a2aab5 74% 82%, #39414d 82% 100%);color:var(--fg-0)}.switch-port.selected{filter:drop-shadow(0 0 .28rem rgba(37,99,235,.28))}.switch-port.selected .switch-port-jack{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--port-inner-rim),inset 0 9px 0 var(--port-highlight),0 0 0 2px color-mix(in srgb,var(--accent) 32%,transparent)}.switch-port.filtered{opacity:.28}.switch-port-detail{display:grid;align-content:start;gap:10px;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fafbfeb3;padding:12px 14px;overflow:auto}.switch-port-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.switch-port-title>div{display:grid;gap:2px}.switch-port-title strong{color:var(--fg-0);font-size:13.5px}.switch-port-title div span{color:var(--fg-2);font-size:12px}.switch-port-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(112px,1fr));gap:8px}.switch-port-field{min-width:0;display:grid;gap:3px;padding:9px 10px;border:1px solid rgba(98,112,139,.14);border-radius:7px;background:#ffffff9e}.switch-port-field span{color:var(--fg-2);font-size:11px}.switch-port-field strong{min-width:0;overflow-wrap:anywhere;color:var(--fg-0);font-size:12.5px;font-weight:600}.switch-client-list{display:grid;gap:0;min-height:0;overflow:auto;border:1px solid rgba(98,112,139,.14);border-radius:7px;background:#ffffff94}.switch-client-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:7px 10px;border-bottom:1px solid var(--line)}.switch-client-row:last-child{border-bottom:0}.switch-client-row>svg{color:var(--fg-3)}.switch-client-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.switch-client-row span{min-width:0;color:var(--fg-2);font-size:11.5px;white-space:nowrap}.modal-head{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 14px;border-bottom:1px solid var(--line);background:#ffffff6b}.modal-head h2{margin:0;font-size:14px}.modal-head .icon-btn{margin-left:auto}.modal-fields{padding:14px;overflow:auto}.modal-actions{justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--line);background:#f7f9fd75}.technical-form-grid,.modal-fields.technical-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:5px;color:var(--fg-2);font-size:12px}.field.wide{grid-column:1 / -1}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toggle{width:32px;height:18px;border:1px solid var(--line-strong);border-radius:100px;background:#e0e7f2c2;position:relative;cursor:pointer}.toggle:before{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--fg-3)}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on:before{left:16px;background:#fff}.toggle-label{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--fg-2);cursor:pointer}.rack-workspace-grid{flex:1;min-height:0;display:grid;grid-template-columns:260px minmax(420px,1fr);gap:12px}.rack-workspace-grid.has-inspector{grid-template-columns:260px minmax(420px,1fr) 300px}.rack-toolbar-panel{flex:0 0 auto;overflow:visible;position:relative;z-index:25}.rack-header-controls{min-width:0;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(190px,1fr) auto auto auto;align-items:center;gap:8px}.rack-action-bar{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) minmax(180px,.8fr) auto auto auto;align-items:center;gap:8px;padding:8px 12px;min-width:0;overflow:visible}.rack-building-select,.rack-room-select{width:100%;min-width:0}.rack-search{flex:1 1 220px;min-width:180px}.rack-toolbar-status,.rack-toolbar-actions{display:flex;align-items:center;gap:8px;min-width:0}.rack-toolbar-status{justify-content:flex-end;white-space:nowrap}.status-filter{border:0;background:transparent;cursor:pointer;padding:0}.status-filter:hover{color:var(--fg-0)}.rack-toolbar-actions{justify-content:flex-end;overflow:visible;white-space:nowrap}.rack-toolbar-actions .btn,.rack-toolbar-actions .menu-anchor{flex:0 0 auto}.rack-toolbar-actions .menu{width:226px;min-width:226px;background:#fffffff5;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 8px 22px #0f172a24}.rack-side-toggle{white-space:nowrap}.rack-menu-button{width:32px;min-width:32px}.rack-list-panel,.rack-stage,.inspector{min-height:0;display:flex;flex-direction:column}.rack-list-body{min-height:0;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.rack-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:7px;background:#ffffff94;padding:9px;cursor:pointer;text-align:left;box-shadow:inset 0 1px #ffffff8a}.rack-card:hover,.rack-card.active{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent-tint) 82%,white)}.rc-top,.rc-meta{display:flex;align-items:center;gap:8px}.rc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-weight:600}.rc-loc,.rc-meta{color:var(--fg-2);font-size:11.5px}.rc-meta span:last-child{margin-left:auto;font-family:var(--font-mono)}.rc-bar{height:5px;border-radius:3px;background:#e0e7f2c2;overflow:hidden;display:flex}.rack-stage-body{flex:1;min-height:0;display:grid;place-items:start center;overflow:auto;padding:18px 16px;position:relative}.rack-showcase-stage{background:#f7f8fb}.rack-showcase-head{min-height:48px;display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--line);background:#fff}.rack-showcase-head h2{margin:0;font-size:17px;line-height:1.15}.rack-showcase-head>div:first-child{min-width:180px;flex:1 1 auto;display:flex;flex-direction:column;gap:2px}.rack-showcase-head>div:first-child span{color:var(--fg-2);font-size:12px}.rack-showcase-meta{flex:0 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}.rack-showcase-meta>.mono{color:var(--fg-0);font-size:12px}.rack-edit-btn{min-height:26px;padding:0 9px}.rack-edit-btn span{display:inline-block}.rack-zoom-controls{display:inline-flex;align-items:center;gap:3px;padding:2px;border:1px solid rgba(84,98,122,.18);border-radius:6px;background:#f7f9fdb8}.rack-zoom-controls .mono{min-width:38px;text-align:center;color:var(--fg-2);font-size:10.5px}.rack-zoom-controls .btn-sm{min-height:22px;padding:0 7px;border-color:transparent;background:transparent;box-shadow:none}.rack-zoom-controls .btn-icon{width:24px}.rack-zoom-controls .rack-fit-btn{min-width:30px}.rack-zoom-controls .btn-sm:hover{border-color:var(--line);background:#ffffffd6}.rack-drag-hint{position:absolute;top:10px;z-index:8;left:50%;transform:translate(-50%);margin:0;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:6px;background:#fffffff0;color:var(--fg-1);padding:6px 10px;font-size:12px;box-shadow:var(--shadow-sm);pointer-events:none}.rack-camera-frame{flex:0 0 auto;max-width:none;display:flex;align-items:flex-start;justify-content:center;filter:drop-shadow(0 8px 18px rgba(34,45,70,.12))}.rack-camera{width:720px;transform-origin:top center}.rack-shell{width:720px;border:1px solid rgba(84,98,122,.34);border-radius:8px;background:linear-gradient(180deg,#f5f7fa,#e3e8ef 48%,#cfd6e1);box-shadow:inset 0 1px #ffffffeb,inset 0 -1px #48566c38,0 1px 2px #222d4614;overflow:hidden}.rack-title{min-height:40px;display:flex;align-items:center;gap:7px;padding:8px 12px;border-bottom:1px solid rgba(84,98,122,.22);background:#fbfcfed6}.rack-title strong{font-weight:600}.rack-fill{margin-left:auto;color:var(--fg-2);font-size:11.5px;font-family:var(--font-mono)}.rack-frame{display:grid;grid-template-columns:18px 34px minmax(0,1fr) 34px 18px;gap:10px;align-items:stretch;padding:14px 12px;background:transparent}.rack-side-ear{width:18px;align-self:stretch;min-height:142px;border-radius:5px;background:linear-gradient(180deg,#d0d7e1,#aeb8c6);box-shadow:inset 0 0 0 1px #54627a5c,inset 0 1px #ffffffb8}.rack-rail{display:flex;flex-direction:column;border-radius:4px;background:linear-gradient(180deg,#e4e9f0,#d4dbe5);box-shadow:inset 0 0 0 1px #54627a3d,inset 0 1px #ffffffad}.rack-rail-num{height:var(--unit-height, 28px);display:grid;place-items:center;color:#4f5b6b;font:600 10px/1 var(--font-mono)}.rack-canvas{position:relative;min-height:300px;border:1px solid rgba(84,98,122,.24);border-radius:4px;background:linear-gradient(90deg,rgba(84,98,122,.09) 0 1px,transparent 1px calc(100% - 1px),rgba(84,98,122,.09) calc(100% - 1px)),linear-gradient(180deg,#f4f7fb,#eef3f8);overflow:hidden;box-shadow:inset 0 1px #ffffffc7,inset 0 0 0 1px #ffffff52,0 1px #ffffff7a}.rack-canvas.drop-over{border-color:color-mix(in srgb,var(--accent) 42%,var(--line-strong));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent),inset 0 0 0 999px color-mix(in srgb,var(--accent-tint) 10%,transparent)}.rack-canvas-inner{position:relative}.rack-canvas-inner:before{content:"";position:absolute;inset:7px 8px;z-index:0;border-radius:5px;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--unit-height, 28px) - 1px),rgba(97,111,132,.16) calc(var(--unit-height, 28px) - 1px),rgba(97,111,132,.16) var(--unit-height, 28px)),linear-gradient(180deg,#ffffff6b,#e2e9f242);box-shadow:inset 0 0 0 1px #54627a1a,inset 0 1px #ffffffa3;pointer-events:none}.rack-asset{position:absolute;left:8px;right:8px;--module-bg: linear-gradient(180deg, #fdfefe 0%, #e8edf4 100%);--module-fg: var(--fg-0);--module-muted: var(--fg-2);--module-border: rgba(84,98,122,.34);--module-led: #22c55e;display:grid;grid-template-columns:8px 24px minmax(0,1fr) auto 30px;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--module-border) 92%,white);border-left:0;border-radius:4px;background:var(--module-bg);color:var(--module-fg);padding:0 9px;cursor:pointer;text-align:left;z-index:2;touch-action:none;box-shadow:inset 0 1px #ffffffd6,inset 0 -1px #54627a14,0 1px 1px #222d461a}.rack-asset.asset-1u{grid-template-columns:7px 18px minmax(0,1fr) auto 28px;gap:6px;padding:0 7px}.rack-asset.asset-1u .ra-sub,.rack-asset.asset-1u .ra-meta em{display:none}.rack-asset.asset-1u .ra-label{font-size:12px;line-height:1}.rack-asset.asset-1u .ra-icon svg{width:12px;height:12px}.rack-asset.asset-1u .ra-port-btn{width:24px;height:22px}.rack-asset.asset-2u .ra-label,.rack-asset.asset-tall .ra-label{line-height:1.15}.rack-asset:before{content:"";position:absolute;inset:-1px auto -1px -1px;width:5px;border-radius:4px 0 0 4px;background:var(--asset-color)}.rack-asset.asset-core{--module-bg: linear-gradient(180deg, #fdfefe 0%, #e7edf3 100%);--module-fg: var(--fg-0);--module-muted: var(--fg-2);--module-border: rgba(72,86,108,.34);--module-led: #4d9a4f;--asset-color: #4d9a4f;box-shadow:inset 0 1px #ffffffdb,inset 0 -1px #54627a1a,0 4px 9px #222d461c}.rack-asset.asset-core .ra-sub,.rack-asset.asset-core .ra-meta,.rack-asset.asset-core .ra-meta em{color:var(--module-muted)}.rack-asset.asset-server{--module-bg: linear-gradient(180deg, #fdfefe 0%, #e8edf4 100%);--module-border: rgba(84,98,122,.32);--module-led: #4d9a4f;box-shadow:inset 0 1px #ffffffdb,inset 0 -1px #54627a1a,0 5px 10px #222d461f}.rack-asset.asset-security{--module-bg: linear-gradient(180deg, #fdfefe 0%, #e8edf4 100%);--module-fg: var(--fg-0);--module-muted: var(--fg-2);--module-border: rgba(196,57,39,.34);--module-led: #c43927;--asset-color: #c43927;box-shadow:inset 0 1px #ffffffdb,inset 0 -1px #54627a1a,0 4px 9px #222d461c}.rack-asset.asset-security .ra-sub,.rack-asset.asset-security .ra-meta,.rack-asset.asset-security .ra-meta em{color:var(--module-muted)}.ra-port-btn{width:26px;height:24px;display:inline-grid;place-items:center;border:0;border-radius:5px;background:color-mix(in srgb,var(--accent-tint) 48%,transparent);color:#2f63b8;cursor:pointer;box-shadow:none;transition:background .15s ease,color .15s ease}.ra-port-btn:hover{background:color-mix(in srgb,var(--accent-tint) 76%,white);color:var(--accent)}.rack-asset:hover,.rack-asset.selected{border-color:color-mix(in srgb,var(--accent) 46%,var(--module-border));box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #54627a1a,0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent),0 2px 5px #222d461f}.rack-asset.warn{--module-border: color-mix(in srgb, var(--warn) 48%, rgba(92,105,128,.28));--module-led: var(--warn)}.rack-asset.dragging{opacity:.24;filter:grayscale(.25)}.ra-led{width:7px;height:7px;border-radius:999px;background:var(--module-led);box-shadow:0 0 0 1px #12743b29,0 0 5px color-mix(in srgb,var(--module-led) 36%,transparent)}.ra-icon{color:var(--asset-color)}.rack-asset .ra-icon svg,.rack-asset .ra-port-btn svg,.rack-drag-overlay svg,.switch-port-device-icon{stroke-width:2.4}.rack-asset .ra-port-btn svg{stroke-width:2}.ra-main{min-width:0;display:flex;flex-direction:column;gap:1px}.ra-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:13px}.ra-sub{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--module-muted);font-size:10.5px}.ra-meta{display:flex;align-items:center;gap:6px;min-width:0}.ra-meta em{color:var(--module-muted);font-style:normal;font-size:10.5px}.ra-meta strong{color:var(--module-muted);font:600 11px/1 var(--font-mono)}.rack-drop-preview{position:absolute;left:8px;right:8px;z-index:4;border:1px solid color-mix(in srgb,var(--accent) 38%,rgba(84,98,122,.2));border-left:4px solid var(--accent);border-radius:5px;background:color-mix(in srgb,var(--accent-tint) 54%,rgba(255,255,255,.72));display:flex;align-items:center;justify-content:flex-end;color:#2f63b8;font:650 11px/1 var(--font-mono);box-shadow:inset 0 1px #ffffffd1,0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent);pointer-events:none;padding:0 10px}.rack-drop-preview:before,.rack-drop-preview:after{display:none}.rack-drop-preview:before{top:-1px}.rack-drop-preview:after{bottom:-1px}.rack-drop-preview.invalid{border-color:color-mix(in srgb,var(--err) 50%,rgba(84,98,122,.2));border-left-color:var(--err);background:color-mix(in srgb,#fff 82%,var(--err));color:var(--err);box-shadow:inset 0 1px #ffffffd1,0 0 0 1px color-mix(in srgb,var(--err) 10%,transparent)}.rack-drop-preview.invalid:before,.rack-drop-preview.invalid:after{background:var(--err)}.rack-drag-overlay{min-width:260px;max-width:320px;display:grid;grid-template-columns:7px 18px minmax(0,1fr) auto;align-items:center;gap:7px;border:1px solid rgba(84,98,122,.34);border-radius:5px;background:linear-gradient(180deg,#fffffff5,#eaeff6fa);box-shadow:0 8px 18px #222d462e,0 0 0 1px #ffffff7a,inset 0 1px #ffffffdb;padding:7px 10px 7px 0;cursor:grabbing;transform:rotate(-.35deg)}.rack-drag-overlay:before{content:"";align-self:stretch;width:5px;border-radius:4px 0 0 4px;background:var(--asset-color)}.rack-drag-overlay span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.rack-drag-overlay em{color:var(--fg-2);font:600 11px/1 var(--font-mono);font-style:normal}.rack-empty-hint{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;color:var(--fg-3)}.unplaced-tray{display:grid;grid-template-columns:104px minmax(0,1fr);min-height:96px;border-top:1px solid var(--line);background:#f8fafc}.unplaced-tray.drop-over{background:color-mix(in srgb,var(--accent-tint) 62%,white)}.tray-title{display:grid;place-items:center;border-right:1px solid var(--line);color:var(--fg-2);font-weight:600;font-size:12px}.tray-scroll{display:flex;gap:8px;overflow-x:auto;padding:8px 10px}.unplaced-card{min-width:190px;max-width:240px;display:grid;grid-template-columns:16px minmax(0,1fr);gap:3px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 10px;text-align:left;cursor:pointer;box-shadow:0 1px 2px #222d460a;touch-action:none}.unplaced-card.selected{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent-tint) 74%,white)}.unplaced-card span,.unplaced-card em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unplaced-card span{font-weight:600}.unplaced-card em{grid-column:2;color:var(--fg-2);font-style:normal;font-size:11px}.asset-move-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.asset-move-grid .btn{justify-content:center;min-width:0}.inspector{border:1px solid var(--line);border-radius:8px;background:#ffffff9e;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e;overflow:hidden}.inspector-empty{flex:1;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;color:var(--fg-2);text-align:center}.iel-icon,.inspector-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#eff3fab8;flex:0 0 auto}.inspector-head{display:flex;align-items:center;gap:9px;padding:12px;border-bottom:1px solid var(--line);background:#ffffff5c}.inspector-title{min-width:0;flex:1}.ih-title{color:var(--fg-0);font-weight:600}.ih-sub{margin-top:2px;color:var(--fg-2);font:500 11.5px/1.25 var(--font-mono)}.inspector-body{flex:1;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.inspector-foot{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:1px solid var(--line);background:#f7f9fd70}.map-flow-shell{flex:1;min-height:0;border:1px solid var(--line);background:#ffffff9e;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:6px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 300px;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e}.map-flow-canvas{min-width:0;min-height:0;overflow:auto;padding:18px;background:linear-gradient(rgba(120,137,166,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(120,137,166,.1) 1px,transparent 1px),#eff3fa85;background-size:44px 44px,44px 44px,100% 100%}.flow-root-row{width:min(430px,100%);margin:0 auto}.flow-trunk{width:1px;height:22px;margin:0 auto;background:var(--line-strong)}.flow-buildings{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start;min-width:0}.flow-building-lane{min-width:0;border:1px solid var(--line);border-radius:6px;background:#ffffff94;padding:12px;box-shadow:var(--shadow-sm),inset 0 1px #ffffff94}.flow-tier{display:grid;gap:8px;min-width:0}.flow-tier-split{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-connector{height:20px;position:relative}.flow-connector:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid var(--line-strong)}.flow-node{width:100%;min-width:0;border:1px solid var(--line-strong);background:#ffffff9e;border-radius:6px;padding:9px 10px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;cursor:pointer;border-left:3px solid var(--node-color, var(--fg-2))}.flow-node:hover{background:#ffffffd1}.flow-node.selected{border-color:color-mix(in srgb,var(--node-color, var(--accent)) 72%,var(--line-strong));border-left-color:var(--node-color, var(--accent));background:color-mix(in srgb,var(--node-color, var(--accent)) 10%,#fff);box-shadow:0 0 0 1px color-mix(in srgb,var(--node-color, var(--accent)) 20%,transparent)}.flow-node.root{min-height:52px;background:color-mix(in srgb,var(--accent-tint) 82%,white)}.flow-node-icon{width:18px;height:18px;display:grid;place-items:center;color:var(--node-color, var(--fg-2))}.flow-node-main{min-width:0;display:grid;gap:2px}.flow-node-main strong,.flow-node-main em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-node-main strong{font-size:12.5px;line-height:1.2}.flow-node-main em{color:var(--fg-2);font-style:normal;font-size:11px;line-height:1.2}.flow-node-count{color:var(--fg-1);font:600 11px/1 var(--font-mono)}.flow-empty-node{border:1px dashed var(--line-strong);border-radius:6px;background:#eff3fa94;color:var(--fg-3);padding:9px;text-align:center;font-size:11px}.flow-inspector{min-width:0;min-height:0;overflow:auto;border-left:1px solid var(--line);background:#ffffffad;padding:14px;display:flex;flex-direction:column;gap:14px}.flow-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}.flow-inspector-head div{min-width:0;display:grid;gap:4px}.flow-inspector-head strong{font-size:14px;line-height:1.25}.flow-inspector-head span{color:var(--fg-2);font-size:12px;line-height:1.3}.flow-dl{margin:0}.flow-inspector-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.map-edit-bar{flex:0 0 auto;display:flex;align-items:center;gap:8px;min-width:0;border:1px solid var(--line);border-radius:6px;background:#ffffffa3;padding:8px;box-shadow:var(--shadow-sm),inset 0 1px #ffffff94;overflow-x:auto}.map-edit-bar .btn{flex:0 0 auto}.map-edit-shell{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#ffffffd6;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e}.map-edit-canvas{min-width:0;min-height:0;overflow:auto;background:#f5f7fb}.map-board{position:relative;min-width:100%;min-height:100%;padding:0}.map-board.view-mode{width:auto;min-width:0;height:auto;min-height:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-content:start;gap:16px;padding:16px}.map-topology-panel{grid-column:1 / -1;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffffeb;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e;overflow:hidden}.map-topology-head{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:#ffffff7a}.map-topology-head div{min-width:0;display:grid;gap:2px}.map-topology-head strong{font-size:13px;font-weight:650}.map-topology-head span:not(.status){color:var(--fg-2);font-size:11.5px}.topology-canvas-scroll{overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--line);scrollbar-gutter:stable}.topology-canvas{position:relative;min-width:100%;background:linear-gradient(rgba(120,137,166,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,137,166,.08) 1px,transparent 1px),#f8fafdb3;background-size:40px 40px}.topology-drop-line{stroke:#4e5b7542;stroke-width:1.5;stroke-linecap:round}.topology-line{fill:none;stroke:var(--c-storage);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.78}.topology-line.copper{stroke:var(--c-ups)}.topology-line.wireless{stroke:var(--c-ap);stroke-dasharray:5 5}.topology-line.warn,.topology-line.warning{stroke:var(--warn)}.topology-line.err{stroke:var(--err)}.topology-line.selected{stroke-width:3;opacity:.95}.topology-route-line.focused .topology-line{stroke-width:3.1;opacity:.98}.topology-route-line.dimmed .topology-line,.topology-route-line.dimmed .topology-port,.topology-route-line.dimmed .topology-route-count-bg,.topology-route-line.dimmed .topology-route-count{opacity:.18}.topology-port{fill:#fff;stroke:var(--c-storage);stroke-width:2.2}.topology-route-line.selected .topology-port{stroke-width:2.4;fill:color-mix(in srgb,var(--c-storage) 10%,white)}.topology-route-count-bg{fill:#ffffffeb;stroke:#4e5b7538}.topology-route-count{fill:var(--fg-1);font:650 10px/1 var(--font-mono);pointer-events:none}.topology-node{position:absolute;width:128px;min-height:48px;transform:translate(-50%,-50%);display:grid;gap:3px;align-content:center;border:1px solid var(--line-strong);border-left:3px solid var(--fg-1);border-radius:7px;background:#fffffff5;padding:7px 9px;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)}.topology-node:hover,.topology-node.selected{border-color:color-mix(in srgb,var(--accent) 42%,var(--line-strong));background:color-mix(in srgb,var(--accent-tint) 70%,white)}.topology-node.dimmed{opacity:.42}.topology-node strong,.topology-node span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topology-node strong{color:var(--fg-0);font-size:12px}.topology-node span{color:var(--fg-2);font-size:11px}.topology-route-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;padding:9px}.topology-route{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--line);border-left:3px solid var(--c-storage);border-radius:6px;background:#ffffffa3;padding:7px 9px;text-align:left;cursor:pointer}.topology-route:hover{background:#ffffff6b}.topology-route.focused{border-color:color-mix(in srgb,var(--c-storage) 52%,var(--line));background:#fffffff0}.topology-route.dimmed{opacity:.42}.topology-route span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12px;font-weight:600}.topology-route b{color:var(--fg-2);font:650 11px/1 var(--font-mono)}.map-board.view-mode .map-building-card{position:relative;left:auto!important;top:auto!important;width:auto;max-height:none}.map-board.view-mode .map-building-section{max-height:320px}.map-board.view-mode .map-building-links{max-height:204px;overflow:auto;padding-right:2px}.map-board.edit-mode{width:auto!important;height:auto!important;min-width:0;min-height:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-content:start;gap:12px;padding:14px}.map-board.edit-mode .map-building-card{position:relative;left:auto!important;top:auto!important;transform:none!important;width:auto;max-height:none;overflow:hidden;padding:10px;background:#fff}.map-board.edit-mode .map-building-section{max-height:360px;overflow:auto}.map-board.edit-mode .map-building-links{display:none}.map-board.edit-mode .map-object-row{min-height:48px;background:#fff}.map-board.edit-mode .map-building-head{background:#fff}.map-board.edit-mode .map-building-card.locked{opacity:1}.map-link-overlay{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}.map-link-line{fill:none;stroke:color-mix(in srgb,var(--c-storage) 62%,var(--fg-3));stroke-width:2.4;stroke-linecap:round;opacity:.86;pointer-events:stroke}.map-link-line.copper{stroke:var(--c-ups)}.map-link-line.wireless{stroke:var(--c-ap);stroke-dasharray:5 5}.map-link-line.warn,.map-link-line.warning{stroke:var(--warn)}.map-link-line.err{stroke:var(--err);stroke-dasharray:6 4}.map-link-line.selected{stroke-width:3.2;opacity:.95}.map-building-card{position:absolute;z-index:2;width:360px;max-height:520px;border:1px solid var(--line);border-radius:7px;background:#ffffffeb;box-shadow:var(--shadow-sm),inset 0 1px #ffffff9e;padding:10px;overflow:hidden;display:flex;flex-direction:column}.map-building-card.editable{padding-top:34px}.map-building-card.dragging{z-index:5;opacity:.82;box-shadow:0 10px 28px #222d462e}.map-building-card.locked{opacity:.86}.map-drag-handle{position:absolute;top:7px;right:8px;width:24px;height:22px;border:1px solid var(--line);border-radius:5px;background:#ffffffbd;color:var(--fg-2);display:grid;place-items:center;cursor:grab;touch-action:none}.map-building-head{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line-strong);border-left:3px solid var(--fg-1);border-radius:6px;background:#ffffffa3;padding:9px 10px;text-align:left;cursor:pointer}.map-building-head.selected,.map-object-row.selected,.connection-list-row.selected{border-color:color-mix(in srgb,var(--accent) 52%,var(--line-strong));background:color-mix(in srgb,var(--accent-tint) 88%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.map-building-head span,.map-object-row span{min-width:0;display:grid;gap:2px}.map-building-head strong,.map-object-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.map-building-head em,.map-object-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-style:normal;font-size:11px}.map-building-head b,.map-object-row b{color:var(--fg-1);font:600 11px/1 var(--font-mono)}.map-building-section,.map-building-links{display:grid;gap:8px;margin-top:10px;min-height:0}.map-building-section{overflow:auto;padding-right:2px;max-height:300px}.map-building-links{flex:0 0 auto;padding-top:10px;border-top:1px solid var(--line)}.map-object-row{width:100%;min-width:0;min-height:56px;border:1px solid var(--line);border-left:3px solid var(--node-color, var(--fg-3));border-radius:6px;background:#ffffff94;padding:8px 9px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;cursor:pointer}.map-object-row:hover,.connection-list-row:hover{background:#ffffffd6}.map-object-row.core{--node-color: var(--info)}.map-object-row.rack{--node-color: var(--c-server)}.map-object-row.switch{--node-color: var(--c-switch)}.map-object-row.ap{--node-color: var(--c-ap)}.map-object-row.link{--node-color: var(--c-storage)}.map-object-row.client{--node-color: var(--c-other)}.map-rack-row-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}.map-rack-order{display:grid;gap:4px}.map-rack-order .icon-btn{width:24px;height:24px}.map-detail-panel{min-width:0;min-height:0;overflow:auto;border-left:1px solid var(--line);background:#ffffffb8;padding:14px;display:flex;flex-direction:column;gap:14px}.map-connection-list{display:grid;gap:6px;border-top:1px solid var(--line);padding-top:10px}.compact-head{min-height:28px;padding:0;border:0;background:transparent}.connection-list-row{min-width:0;min-height:56px;border:1px solid var(--line);border-left:3px solid var(--c-storage);border-radius:6px;background:#ffffff8f;padding:8px 9px;display:grid;gap:3px;text-align:left;cursor:pointer}.connection-list-row span,.connection-list-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-list-row span{font-weight:600;font-size:12px}.connection-list-row em{color:var(--fg-2);font-style:normal;font-size:11px}.map-legend{display:flex;flex-wrap:wrap;gap:8px 12px;border-top:1px solid var(--line);padding-top:10px;color:var(--fg-2);font-size:11px}.map-legend span{display:inline-flex;align-items:center;gap:5px}.legend{width:14px;height:3px;border-radius:2px;display:inline-block;background:var(--fg-3)}.legend.rack{background:var(--c-server)}.legend.switch{background:var(--c-switch)}.legend.link{background:var(--c-storage)}.legend.warn{background:var(--warn)}.map-edit-modal{width:min(760px,calc(100vw - 32px))}.map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;overflow:hidden}.map-layout.has-selection{grid-template-columns:minmax(0,1fr) 320px}.map-shell{position:relative;min-height:0;border:1px solid var(--line);border-radius:8px;background:#ffffff9e;overflow:hidden}.map-canvas{position:absolute;inset:0;background:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),radial-gradient(circle at 45% 40%,#fffffff0 0 28%,#eff3fab8);background-size:42px 42px,42px 42px,100% 100%}.map-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;border:1px solid var(--line-strong);border-radius:8px;background:#ffffffdb;backdrop-filter:blur(12px) saturate(135%);-webkit-backdrop-filter:blur(12px) saturate(135%);padding:6px 9px;box-shadow:var(--shadow-md);cursor:pointer}.map-pin.active{border-color:var(--accent)}.pin-head{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:color-mix(in srgb,var(--accent-tint) 82%,white);color:var(--accent)}.pin-label{font-weight:600;white-space:nowrap}.map-room-chip{position:absolute;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:6px;background:#ffffffc7;color:var(--fg-2);padding:3px 6px;font-size:11px}.map-controls{position:absolute;left:12px;bottom:12px;display:flex;gap:6px}.room-list{display:flex;flex-direction:column;gap:2px}.row-card{width:100%;display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);background:transparent;padding:8px 0;text-align:left;cursor:pointer}.row-card span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.row-card em{color:var(--fg-2);font-style:normal;font-size:11px}.toast-rack{position:absolute;top:12px;right:14px;z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}.toast{width:min(280px,calc(100vw - 32px));min-height:52px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;padding:8px 11px;border:1px solid rgba(84,98,122,.18);border-radius:10px;background:#ffffffd1;backdrop-filter:blur(18px) saturate(155%);-webkit-backdrop-filter:blur(18px) saturate(155%);box-shadow:0 10px 28px #222d4624,inset 0 1px #ffffffd1;pointer-events:none}.toast>svg{width:22px;height:22px;padding:4px;border-radius:999px;background:#eff3fab8;stroke-width:2.2}.toast.ok>svg{background:color-mix(in srgb,var(--ok) 12%,white)}.toast.err>svg{background:color-mix(in srgb,var(--err) 10%,white)}.toast.warn>svg{background:color-mix(in srgb,var(--warn) 12%,white)}.toast-text{display:flex;flex-direction:column;gap:3px;min-width:0}.toast-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12.5px;line-height:1.1}.toast-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:11.5px;line-height:1.2}.rack-print-root{display:none}@media(max-width:1200px){.sync-hero-source,.sync-import-row{grid-template-columns:52px minmax(0,1fr)}.sync-source-actions,.sync-import-row>.btn{grid-column:2;justify-self:start}.overview-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-main,.overview-dashboard,.rack-workspace-grid,.map-flow-shell,.map-edit-shell,.map-layout.has-selection,.freshdesk-logs-page,.wireless-health-body,.overview-health-body{grid-template-columns:1fr}.flow-inspector,.map-detail-panel{border-left:0;border-top:1px solid var(--line);max-height:260px}.server-stats{grid-template-columns:repeat(3,minmax(120px,1fr))}.health-score-list{grid-template-columns:1fr}}@media(max-width:860px){:root{--sidebar-w: 64px}.nav-label,.nav-label-text,.nav-count,.sf-text,.sidebar-signout span{display:none}.sidebar{align-items:stretch}.sidebar-brand{padding:8px 2px 12px}.brand-logo{width:44px;height:44px;padding:7px;border-radius:9px}.nav-item{justify-content:center}.sidebar-foot{padding-top:8px}.sidebar-status,.sidebar-signout{justify-content:center;padding:0}.topbar{flex-wrap:wrap;height:auto;min-height:var(--header-h);padding:8px 12px}.page-actions{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.page-inline-actions{display:none}.page-actions-menu{display:inline-flex}.topbar-action-row{justify-content:flex-start;padding:6px 12px;overflow-x:auto}.rack-header-controls{min-width:760px}.topbar-status{order:3;flex-basis:100%;justify-content:flex-start}.page-title{min-width:0}.page-title h1{white-space:normal}.system-chip{display:none}.overview-stats,.server-stats,.technical-form-grid,.field-row{grid-template-columns:1fr}.search{min-width:100%}.content{padding:10px}.login-page{padding:16px}.login-body{padding:26px 22px 24px}.login-logo{width:172px}.panel-head{align-items:flex-start;flex-wrap:wrap}.panel-head .right{flex:1 1 100%;margin-left:0;flex-wrap:wrap}.src-row,.toolbar{align-items:stretch}.src-row{flex-direction:column}.src-right{margin-left:0}.unplaced-tray{grid-template-columns:1fr}.tray-title{border-right:0;border-bottom:1px solid var(--line);min-height:32px}.map-flow-canvas{padding:10px}.flow-buildings,.flow-tier-split{grid-template-columns:1fr}.workspace-toolbar{align-items:stretch;flex-direction:column}.rack-action-bar{grid-template-columns:1fr 1fr auto}.rack-toolbar-status,.rack-toolbar-actions{overflow-x:visible}.rack-toolbar-status{grid-column:1 / 2;justify-content:flex-start}.rack-toolbar-actions{grid-column:2 / 4;justify-content:flex-end}.workspace-toolbar .right{margin-left:0}.freshdesk-calendar-grid{grid-auto-rows:minmax(68px,1fr)}.freshdesk-day{min-height:68px;padding:6px}.freshdesk-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-summary{flex-direction:column;gap:2px}.toolbar-summary span{white-space:normal}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}.app:before{transform:none!important}.rack-drag-overlay{transform:none!important}}@media print{body,html,#root,.app,.main,.content{height:auto!important;overflow:visible!important;background:#fff!important}.sidebar,.topbar,.topbar-action-row,.content>:not(.rack-print-root),.toast-rack{display:none!important}.app{display:block}.app:before,.app:after{display:none!important}.rack-print-root{display:block}.rack-print-page{page-break-after:always;padding:12mm}.rack-print-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:10px}.rack-print-header h1{margin:0;font-size:16px}.rack-print-header p{margin:4px 0 0;color:#555}.rack-print-header dl{display:grid;grid-template-columns:repeat(2,auto);gap:4px 10px;margin:0}.rack-print-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px}.print-rack-shell{width:100%}.rack-camera-frame,.rack-camera,.rack-shell{width:100%!important;height:auto!important;transform:none!important}.print-rack-shell .rack-rail-num{height:13px;font-size:7px}.print-rack-shell .rack-asset{font-size:8px;min-height:8px}}
