:root{--bg: #f4f6fa;--panel: #ffffff;--panel-2: #fafbfc;--border: #e3e7ee;--border-strong: #cbd5e0;--text: #1a202c;--text-muted: #5a6473;--text-faint: #666e7b;--link: #2f6f68;--accent: #2f6f68;--ok: #1b7a3e;--warn: #a35400;--crit: #b91515;--high: #b91515;--medium: #a35400;--low: #1565c0;--sidebar-bg: #ffffff;--sidebar-fg: #4a5568;--sidebar-fg-muted: #718096;--sidebar-section: #2d3748;--sidebar-hover: #f4f6fa;--sidebar-active-bg: #eaf2fd;--sidebar-active-fg: #1a3a6b;--topbar-bg: #ffffff;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--hero-grad-from: #1a3a5c;--hero-grad-to: #2c5d8a;--status-warn-bg: #fff7ed;--status-warn-bg-2: #fff3d4;--status-warn-text: #92400e;--status-danger-bg: #fff5f5;--status-danger-bg-2: #fde2e2;--status-danger-text: #b71c1c;--status-ok-bg: #e8f5e9;--status-ok-text: #1b5e20;--status-info-bg: #e8f4ff;--status-info-text: #1565c0;--status-caution-bg: #fff4d6;--status-caution-text: #7a5500;--status-neutral-bg: #f5f5f5;--status-neutral-text: #6b6b6b;--dash-icon-bg: #64748b;--dash-icon-fg: #ffffff;--status-danger-on-dark: #ff9d9d}[data-theme=dark]{--bg: #0d1117;--panel: #161b22;--panel-2: #1c2128;--border: #2d3748;--border-strong: #3d4856;--text: #e6edf3;--text-muted: #9ba6b6;--text-faint: #8290a4;--link: #7fb2aa;--accent: #70a69e;--ok: #3fb950;--warn: #d29922;--crit: #f85149;--high: #f85149;--medium: #d29922;--low: #58a6ff;--sidebar-bg: #161b22;--sidebar-fg: #d6dde6;--sidebar-fg-muted: #8b95a3;--sidebar-section: #ffffff;--sidebar-hover: #1f2630;--sidebar-active-bg: rgba(88, 166, 255, .18);--sidebar-active-fg: #58a6ff;--topbar-bg: #161b22;--shadow-card: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--hero-grad-from: #0d2540;--hero-grad-to: #1a3d63;--status-warn-bg: rgba(210, 153, 34, .18);--status-warn-bg-2: rgba(210, 153, 34, .15);--status-warn-text: #d29922;--status-danger-bg: rgba(248, 81, 73, .15);--status-danger-bg-2: rgba(248, 81, 73, .18);--status-danger-text: #ff7b72;--status-ok-bg: rgba(63, 185, 80, .15);--status-ok-text: #3fb950;--status-info-bg: rgba(88, 166, 255, .15);--status-info-text: #58a6ff;--status-caution-bg: rgba(210, 153, 34, .1);--status-caution-text: #fbbf24;--status-neutral-bg: #1c2128;--status-neutral-text: #9ba6b6;--dash-icon-bg: #3d4856;--dash-icon-fg: #ffffff;--status-danger-on-dark: #ff9d9d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0d1117;--panel: #161b22;--panel-2: #1c2128;--border: #2d3748;--border-strong: #3d4856;--text: #e6edf3;--text-muted: #9ba6b6;--text-faint: #8290a4;--link: #7fb2aa;--accent: #70a69e;--ok: #3fb950;--warn: #d29922;--crit: #f85149;--high: #f85149;--medium: #d29922;--low: #58a6ff;--sidebar-bg: #161b22;--sidebar-fg: #c9d1d9;--sidebar-fg-muted: #8b949e;--sidebar-section: #e6edf3;--sidebar-hover: #1f2630;--sidebar-active-bg: rgba(88, 166, 255, .15);--sidebar-active-fg: #58a6ff;--topbar-bg: #161b22;--status-warn-bg: rgba(210, 153, 34, .18);--status-warn-bg-2: rgba(210, 153, 34, .15);--status-warn-text: #d29922;--status-danger-bg: rgba(248, 81, 73, .15);--status-danger-bg-2: rgba(248, 81, 73, .18);--status-danger-text: #ff7b72;--status-ok-bg: rgba(63, 185, 80, .15);--status-ok-text: #3fb950;--status-info-bg: rgba(88, 166, 255, .15);--status-info-text: #58a6ff;--status-caution-bg: rgba(210, 153, 34, .1);--status-caution-text: #fbbf24;--status-neutral-bg: #1c2128;--status-neutral-text: #9ba6b6;--dash-icon-bg: #3d4856;--dash-icon-fg: #ffffff;--status-danger-on-dark: #ff9d9d}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Pretendard Variable,Pretendard,Malgun Gothic,Apple SD Gothic Neo,Noto Sans CJK KR,sans-serif;background:var(--bg);color:var(--text);font-size:14px;transition:background .2s ease,color .2s ease}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}code{font-family:Consolas,monospace}.layout{display:grid;grid-template-rows:56px 1fr;grid-template-columns:280px 1fr;grid-template-areas:"sidebar topbar" "sidebar main";gap:8px;padding:8px;background:var(--bg);transition:grid-template-columns .2s ease,grid-template-rows .2s ease}.layout.sidebar-collapsed{grid-template-rows:56px 1fr;grid-template-columns:72px 1fr}.sidebar nav a span:not(.icon),.sidebar .nav-section span:first-child,.sidebar .foot-meta{transition:opacity .15s ease,transform .15s ease}.sidebar-collapsed .sidebar .nav-group,.sidebar-collapsed .sidebar .nav-label,.sidebar-collapsed .sidebar .foot-meta,.sidebar-collapsed .sidebar .tree-kind,.sidebar-collapsed .sidebar .sub-tree,.sidebar-collapsed .sidebar .sub-empty{display:none!important}.sidebar-collapsed .sidebar .nav-group,.sidebar-collapsed .sidebar .nav-group.collapsed{max-height:none!important}.sidebar-collapsed .sidebar .nav-group+.nav-group{margin-top:6px;border-top:1px solid var(--border);padding-top:6px}.sidebar-collapsed .sidebar nav a{padding:10px 0;justify-content:center;gap:0}.sidebar-collapsed .sidebar nav a .icon{width:auto}.sidebar-collapsed .topbar .brand .label{display:none}.sidebar-collapsed .topbar .brand,.sidebar-collapsed .topbar .brand *{box-sizing:border-box}.sidebar-collapsed .topbar .brand{flex:0 0 72px;width:72px;height:48px;padding:4px 6px;justify-content:center;align-items:stretch;gap:2px;flex-direction:column;background:var(--sidebar-bg);overflow:hidden}.sidebar-collapsed .topbar .brand .logo-img{width:100%;height:18px;min-height:18px;font-size:10px;padding:0;font-weight:700;letter-spacing:.5px;border-radius:4px;line-height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-collapsed .topbar .brand .topbar-toggle{width:100%;height:18px;min-height:18px;padding:0;margin:0;border-radius:4px;border-width:1px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sidebar-collapsed .topbar .brand .topbar-toggle svg{width:14px;height:14px}.topbar{grid-area:topbar;background:var(--sidebar-bg);color:var(--text);display:flex;align-items:center;justify-content:space-between;padding:0 24px;border:1px solid var(--border);border-radius:10px;overflow:hidden;z-index:100;min-height:56px}.topbar .crumb-area,.topbar .user-area{align-self:stretch;background:var(--sidebar-bg)}.topbar .brand{display:none}.topbar .brand .topbar-toggle{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .12s}.topbar .brand .topbar-toggle:hover{background:var(--sidebar-hover);border-color:var(--accent);color:var(--accent)}.topbar .brand .topbar-toggle:active{transform:scale(.94)}.sidebar-collapsed .topbar .brand .topbar-toggle{margin-left:0}.topbar .brand .logo-img{height:34px;background:var(--accent);border-radius:6px;padding:4px 10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0}.topbar .brand .label{font-size:14px;font-weight:700;color:var(--text)}.topbar .brand .label .sub{display:block;font-size:10px;color:var(--text-muted);font-weight:400;margin-top:1px}.topbar .crumb-area{flex:1;display:flex;align-items:center;gap:8px;padding:0 12px 0 24px;font-size:13px;color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis}.topbar .crumb-area .crumb-sep{color:var(--text-faint)}.topbar .crumb-area .crumb-current{font-weight:600;color:var(--text)}.topbar .user-area{display:flex;align-items:center;gap:8px;font-size:12px;flex-shrink:0;white-space:nowrap}.topbar .user-area>*{flex-shrink:0}.topbar .user-area{color:var(--text);padding:0 4px}.topbar .user-area .badge{background:var(--accent);color:#fff;padding:3px 9px;border-radius:10px;font-size:11px;font-weight:600}.topbar .user-area .badge.super{background:#f57c00}.topbar .user-area button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600}.topbar .user-area button:hover{background:var(--panel);filter:brightness(.96)}.sidebar{grid-area:sidebar;background:var(--sidebar-bg);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:visible}.sidebar nav{flex:1;overflow:visible}.layout:not(.sidebar-collapsed) .sidebar nav{overflow-y:auto;overflow-x:hidden}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 18px 0 24px;height:56px;border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex-shrink:0}.sidebar-brand .logo-img{height:34px;background:var(--accent);border-radius:6px;padding:4px 10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0}.sidebar-brand .label{font-size:14px;font-weight:700;color:var(--text);flex:1;min-width:0}.sidebar-brand .label .sub{display:block;font-size:10px;color:var(--text-muted);font-weight:400;margin-top:1px}.sidebar-brand .topbar-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;flex-shrink:0}.sidebar-brand .topbar-toggle:hover{background:var(--sidebar-hover);border-color:var(--accent);color:var(--accent)}.sidebar-collapsed .sidebar-brand{flex-direction:column;gap:4px;padding:6px 4px;height:56px;align-items:stretch}.sidebar-collapsed .sidebar-brand .logo-img{height:28px;font-size:16px;padding:0;border-radius:6px;width:100%}.sidebar-brand .logo-img.logo-img-g{background:#2f4d49;font-weight:800;letter-spacing:0;box-shadow:none}.sidebar-collapsed .sidebar-brand .topbar-toggle{width:100%;height:20px;border-radius:4px}.sidebar-collapsed .sidebar-brand .topbar-toggle svg{width:14px;height:14px}.sidebar nav{flex:1;padding:8px 0}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 24px;font-size:15px;color:var(--sidebar-fg);border-left:3px solid transparent;transition:background .12s,border-color .12s,color .12s;gap:12px}.sidebar nav a:hover{background:var(--sidebar-hover);color:var(--sidebar-active-fg)}.sidebar nav a.active{background:var(--sidebar-active-bg);border-left-color:var(--accent);color:var(--sidebar-active-fg);font-weight:600}.sidebar nav a .icon{width:26px;text-align:center;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:currentColor;opacity:.85}.sidebar nav a:hover .icon,.sidebar nav a.active .icon{opacity:1}.sidebar nav a .icon svg{display:block}.sidebar .nav-section{display:flex;align-items:center;padding:16px 24px 8px;font-size:14px;color:var(--sidebar-section);font-weight:700;letter-spacing:.2px;border-top:1px solid var(--border);margin-top:2px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s;gap:10px}.sidebar .nav-section:hover{color:var(--sidebar-active-fg)}.sidebar .nav-section:first-of-type{border-top:none;padding-top:16px;margin-top:0}.sidebar .nav-section .sec-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;color:currentColor;opacity:.8}.sidebar .nav-section .sec-label{flex:1}.sidebar .nav-section .chev{font-size:13px;opacity:.55;transition:transform .18s;display:inline-block}.sidebar .nav-section.collapsed .chev{transform:rotate(-90deg)}.sidebar-collapsed .sidebar .nav-section{justify-content:center;padding:14px 0;border-top:1px solid var(--border);margin:0;gap:0}.sidebar-collapsed .sidebar .nav-section:first-of-type{border-top:1px solid var(--border);padding-top:14px;margin-top:0}.sidebar-collapsed .sidebar .nav-section .sec-label,.sidebar-collapsed .sidebar .nav-section .chev{display:none}.sidebar-collapsed .sidebar .nav-section .sec-icon{width:38px;height:38px;border-radius:8px;transition:background .12s,color .12s;display:inline-flex;align-items:center;justify-content:center}.sidebar-collapsed .sidebar .nav-section:hover .sec-icon{background:var(--sidebar-hover);color:var(--sidebar-active-fg);opacity:1}.sidebar-collapsed .sidebar .nav-section{position:relative}.sidebar-collapsed .sidebar .nav-section:before{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%) translate(8px);background:var(--text);color:var(--panel);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;z-index:10000;pointer-events:none;opacity:0;transition:opacity .15s ease .05s;box-shadow:0 2px 8px #00000026;letter-spacing:.2px}.sidebar-collapsed .sidebar .nav-section:hover:before{opacity:1}.sidebar-collapsed .sidebar .nav-section:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%) translate(2px);width:0;height:0;border-style:solid;border-width:5px 6px 5px 0;border-color:transparent var(--text) transparent transparent;z-index:10001;pointer-events:none;opacity:0;transition:opacity .15s ease .05s}.sidebar-collapsed .sidebar .nav-section:hover:after{opacity:1}.sidebar .nav-group{overflow:hidden;transition:max-height .2s ease;padding-left:14px}.sidebar .nav-group.collapsed{max-height:0!important}.sidebar nav a.tree-row{cursor:pointer}.sidebar .tree-kind{margin-left:auto;font-size:10px;color:var(--sidebar-fg-muted);padding:1px 6px;border-radius:3px;background:var(--panel-2)}.sidebar .nav-ai{margin-left:auto;font-size:11px;font-weight:900;letter-spacing:.4px;padding:2px 8px;border-radius:10px;color:#fff;background:#2f4d49;border:none;box-shadow:none;animation:none}.sidebar .nav-ai{margin-left:auto;font-size:11px;font-weight:900;letter-spacing:.4px;padding:2px 8px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#0d9488,#14b8a6);border:none;box-shadow:0 1px 3px #0d948873;animation:navAiPulse 2.6s ease-in-out infinite}@keyframes navAiPulse{0%,to{box-shadow:0 1px 3px #0d948873}50%{box-shadow:0 1px 8px #0d9488bf}}@media (prefers-reduced-motion: reduce){.sidebar .nav-ai{animation:none}}.sidebar-collapsed .sidebar .nav-ai{display:none!important}.sidebar .sub-tree{background:var(--panel-2);border-bottom:1px solid var(--border)}.sidebar .sub-tree .sub-item{padding:7px 22px 7px 46px;font-size:12px;color:var(--sidebar-fg-muted);border-left:3px solid transparent;cursor:pointer}.sidebar .sub-tree .sub-item.active{background:#eaf2fd;border-left-color:#2e86de;color:#1a3a6b;font-weight:600}.sidebar .sub-tree .sub-item:hover{background:var(--sidebar-hover);color:var(--sidebar-active-fg)}.sidebar .sub-tree .sub-item.active{color:var(--sidebar-active-fg);background:var(--sidebar-active-bg);border-left-color:var(--accent)}.sidebar .sub-tree .sub-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.sidebar .sub-tree .sub-item .dot.up{background:var(--ok)}.sidebar .sub-tree .sub-item .dot.down{background:var(--crit)}.sidebar .sub-empty{padding:7px 22px 7px 46px;font-size:11px;color:var(--sidebar-fg-muted);font-style:italic}.sidebar .foot{padding:10px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--sidebar-fg-muted);display:flex;flex-direction:column;gap:8px}.sidebar .foot-meta{font-size:10px;color:var(--sidebar-fg-muted);line-height:1.4;padding:0 8px}.sidebar .sidebar-collapse-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:600;color:var(--sidebar-fg);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:background .12s,color .12s,border-color .12s,transform .12s}.sidebar .sidebar-collapse-btn:hover{background:var(--sidebar-hover);color:var(--sidebar-active-fg);border-color:var(--accent)}.sidebar .sidebar-collapse-btn:active{transform:scale(.96)}.sidebar-collapsed .sidebar .foot{display:none}.main{grid-area:main;padding:24px;overflow-y:auto;background:var(--bg);color:var(--text)}.section-title{font-size:13px;font-weight:700;color:var(--text);margin:24px 0 12px}.section-title:first-child{margin-top:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-card);border-left:4px solid var(--accent);padding:16px 18px;color:var(--text)}.card .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.card .value{font-size:28px;font-weight:700;color:var(--text);margin:6px 0 2px}.card .sub{font-size:11px;color:var(--text-faint)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-card);padding:18px;color:var(--text)}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-card);color:var(--text)}th,td{text-align:left;padding:6px 12px;border-bottom:1px solid var(--border);font-size:12px;line-height:1.4}.agent-fleet-table th:nth-child(4),.agent-fleet-table td:nth-child(4){padding-left:8px;padding-right:8px}.agent-fleet-table td{vertical-align:middle}th{background:var(--panel-2);color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.4px;padding:7px 12px}td code,td .mono{font-family:JetBrains Mono,Consolas,monospace;font-size:11.5px}td.ellipsis{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.ellipsis a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.audit-markdown{font-size:13px;line-height:1.6;color:var(--text)}.audit-markdown h1,.audit-markdown h2,.audit-markdown h3{font-size:13px;font-weight:700;margin:10px 0 6px;color:var(--text)}.audit-markdown h2:first-child{margin-top:0}.audit-markdown p{margin:4px 0 8px}.audit-markdown ul,.audit-markdown ol{margin:4px 0 8px;padding-left:22px}.audit-markdown li{margin:2px 0}.audit-markdown code{background:var(--panel-2);padding:1px 5px;border-radius:3px;font-family:JetBrains Mono,Consolas,monospace;font-size:11.5px;color:var(--text);border:1px solid var(--border)}.audit-markdown pre{background:#1e1e1e;color:#e6edf3;padding:12px 14px;border-radius:4px;overflow-x:auto;margin:8px 0;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;line-height:1.5}.audit-markdown pre code{background:transparent;padding:0;border:none;color:inherit;font-size:inherit}.audit-markdown table{width:100%;margin:8px 0;border-collapse:collapse;font-size:12px;box-shadow:none}.audit-markdown th,.audit-markdown td{padding:5px 10px;border:1px solid var(--border)}.audit-markdown th{background:var(--panel-2);text-transform:none;font-size:11px}.audit-markdown strong{color:var(--text);font-weight:700}.audit-markdown a{color:var(--accent)}.audit-markdown blockquote{border-left:3px solid var(--border-strong);padding:4px 12px;margin:6px 0;color:var(--text-muted);background:var(--panel-2)}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.badge.online{background:var(--status-ok-bg);color:var(--status-ok-text)}.badge.offline{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.badge.critical{background:var(--status-danger-bg);color:var(--status-danger-text)}.badge.high{background:var(--status-warn-bg);color:var(--status-warn-text)}.badge.medium{background:var(--status-warn-bg-2);color:var(--status-warn-text)}.badge.low,.badge.info{background:var(--status-info-bg);color:var(--status-info-text)}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.device-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;background:var(--panel);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .12s;text-align:center}.device-card:hover{border-color:#bcd4f1;box-shadow:0 3px 10px #2e86de26}.device-card.is-down{background:var(--status-danger-bg);border-color:#f5c2c2}.device-card .dname{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.device-card .dmeta{font-size:11px;color:#888}.device-card .dstate{font-size:10px;font-weight:700;padding:2px 8px;border-radius:8px}.device-card .dstate.up{background:var(--status-ok-bg);color:var(--status-ok-text)}.device-card .dstate.down{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.markdown-body{font-size:13px;line-height:1.7;color:var(--text)}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--text)}.markdown-body h1{font-size:20px;margin:18px 0 10px}.markdown-body h2{font-size:16px;margin:22px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.markdown-body h3{font-size:14px;margin:14px 0 6px}.markdown-body h4{font-size:13px;color:var(--text-muted);margin:10px 0 4px}.markdown-body p{margin:6px 0;color:var(--text)}.markdown-body ul,.markdown-body ol{margin:6px 0 6px 22px;color:var(--text)}.markdown-body li{margin:3px 0}.markdown-body strong{color:var(--text)}.markdown-body code{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:1px 5px;border-radius:3px;font-size:12px}.markdown-body pre{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:12px;overflow-x:auto;margin:8px 0}.markdown-body pre code{background:none;border:none;padding:0;font-size:12px;color:var(--text)}.markdown-body table{margin:8px 0;box-shadow:none;color:var(--text);border-collapse:collapse}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:6px 10px}.markdown-body th{background:var(--panel-2);color:var(--text)}.markdown-body a{color:#4ea3ff}[data-theme=light] .markdown-body a{color:#2e86de}.markdown-body blockquote{border-left:3px solid var(--border-strong);padding-left:12px;color:var(--text-muted);margin:8px 0}.markdown-body hr{border:0;border-top:1px solid var(--border);margin:14px 0}.hw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.hw-mini{position:relative;display:flex;gap:8px;align-items:center;padding:6px 8px;background:var(--panel, #fff);border:1px solid var(--border, #e5e8ee);border-radius:6px;cursor:pointer;transition:all .12s}.hw-mini .hw-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-6px);background:var(--text);color:var(--bg);font-size:10.5px;font-weight:600;line-height:1.4;padding:6px 10px;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease .15s;z-index:30}.hw-mini .hw-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--text)}.hw-mini:hover .hw-tooltip{opacity:1}.hw-mini:hover{border-color:var(--border-strong);box-shadow:0 2px 6px #0000001a}.hw-mini.is-down{background:var(--status-danger-bg);border-color:var(--border-strong)}.hw-mini.is-off{background:var(--panel-2);border-color:var(--border)}.hw-mini .hw-body{flex:1;min-width:0}.hw-mini .hw-name{font-size:11px;font-weight:600;color:var(--accent, #1a3a6b);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hw-mini .mrow{display:flex;align-items:center;gap:4px;font-size:9px;margin-top:1px}.hw-mini .mrow .lbl{width:11px;height:11px;font-size:8px;font-weight:700;color:var(--text-muted);background:var(--panel-2);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0}.hw-mini .mrow .bar{flex:1;height:5px;background:var(--border, #e8ebf1);border-radius:2px;overflow:hidden}.hw-mini .mrow .bar .fill{display:block;height:100%;transition:width .3s}.hw-mini .mrow .bar .fill.ok{background:var(--text-faint)}.hw-mini .mrow .bar .fill.warn{background:var(--status-warn-text)}.hw-mini .mrow .bar .fill.crit{background:var(--status-danger-text)}.hw-mini .mrow .pct{width:44px;text-align:right;font-family:Consolas,monospace;font-size:10px;font-weight:600;color:var(--text);flex-shrink:0}.hw-mini .mrow .pct.warn{color:var(--status-warn-text)}.hw-mini .mrow .pct.crit{color:var(--status-danger-text)}.hw-mini .mrow .nodata{flex:1;font-size:9px;color:var(--text-faint);font-style:italic}.proc-pills{display:flex;flex-wrap:wrap;gap:6px}.proc-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 10px;border-radius:12px;background:var(--status-ok-bg);color:var(--status-ok-text);border:1px solid #c8e6c9}.proc-pill.down{background:var(--status-danger-bg-2);color:var(--status-danger-text);border-color:#f5c2c2}.proc-pill.unknown{background:var(--status-neutral-bg);color:var(--status-neutral-text);border-color:var(--border)}.proc-pill .dot{width:7px;height:7px;border-radius:50%}.proc-pill .dot.up{background:#28a745}.proc-pill .dot.down{background:#d32f2f}.proc-pill .dot.unknown{background:#bbb}.proc-pill button{background:none;border:none;padding:0;margin:0;color:inherit;font-size:14px;line-height:1;opacity:.55}.proc-pill button:hover{background:none;opacity:1}input,select,textarea{width:100%;padding:9px 12px;background:var(--panel);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);font-size:14px;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input[type=checkbox],input[type=radio]{width:auto;padding:0;margin:0;vertical-align:middle;accent-color:var(--accent)}button{padding:9px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600}button:hover{background:var(--accent);filter:brightness(.92)}button:disabled{background:var(--border-strong);color:var(--text-muted);cursor:not-allowed}button.ghost{background:transparent;border:1px solid var(--border-strong);color:var(--text)}button.ghost:hover{background:var(--panel-2);filter:none}button.primary{background:var(--accent);color:#fff}.error,.danger{background:#b915151a;color:var(--crit);padding:8px 12px;border-radius:6px;margin-top:10px;font-size:13px}.muted{color:var(--text-muted)}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--panel-2) 0%,var(--border) 50%,var(--panel-2) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:4px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{display:block;height:12px;margin:6px 0}.skeleton-line.lg{height:18px}.skeleton-line.sm{height:10px}.main>*{animation:page-fade-in .18s ease-out}@keyframes page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.card,.panel{transition:transform .15s ease,box-shadow .15s ease}.row-actions{margin:14px 0;display:flex;gap:10px;align-items:center}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{background:var(--panel);padding:36px 32px;border-radius:14px;box-shadow:0 14px 50px #00000040;width:380px}.login-box .login-logo{width:56px;height:56px;margin:0 auto 14px;background:#1b1b18;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:20px}.login-box h2{color:var(--accent);font-size:20px;text-align:center;margin-bottom:4px}.login-box p{color:var(--text-muted);font-size:12px;text-align:center;margin-bottom:18px}.login-box input{margin-top:10px}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-shell{background:var(--bg, #ffffff);color:var(--text, #111827);border-radius:8px;box-shadow:0 10px 30px #00000040;max-width:600px;width:100%;max-height:90vh;overflow:auto;position:relative}.modal-shell h3{margin-top:0}[data-theme=dark] .badge.medium{background:#d2992233;color:#d29922}[data-theme=dark] .device-card{background:var(--panel);border-color:var(--border)}[data-theme=dark] .device-card .dname{color:var(--text)}[data-theme=dark] .device-card.is-down{background:#f851491f;border-color:#f851494d}[data-theme=dark] .hw-mini.is-down{background:var(--status-danger-bg);border-color:var(--border-strong)}[data-theme=dark] .hw-mini.is-off{background:var(--panel-2);border-color:var(--border)}[data-theme=dark] .proc-pill.unknown{background:var(--panel-2);color:var(--text-muted);border-color:var(--border)}[data-theme=dark] .login-box{background:var(--panel);color:var(--text)}[data-theme=dark] .login-box h2{color:var(--text)}[data-theme=dark] .login-box p{color:var(--text-muted)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .badge.medium{background:#d2992233;color:#d29922}:root:not([data-theme=light]) .device-card{background:var(--panel);border-color:var(--border)}:root:not([data-theme=light]) .device-card .dname{color:var(--text)}:root:not([data-theme=light]) .device-card.is-down{background:#f851491f;border-color:#f851494d}:root:not([data-theme=light]) .hw-mini.is-down{background:var(--status-danger-bg);border-color:var(--border-strong)}:root:not([data-theme=light]) .hw-mini.is-off{background:var(--panel-2);border-color:var(--border)}:root:not([data-theme=light]) .proc-pill.unknown{background:var(--panel-2);color:var(--text-muted);border-color:var(--border)}:root:not([data-theme=light]) .login-box{background:var(--panel);color:var(--text)}:root:not([data-theme=light]) .login-box h2{color:var(--text)}:root:not([data-theme=light]) .login-box p{color:var(--text-muted)}}.guardia-marquee-track{display:inline-block;white-space:nowrap;padding-left:100%;will-change:transform;animation:guardia-marquee 14s linear infinite}@keyframes guardia-marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (prefers-reduced-motion: reduce){.guardia-marquee-track{animation:none;padding-left:16px}}.egress-add-form>select,.egress-add-form>input{width:100%;box-sizing:border-box}.egress-add-form>select .scroll-list,.egress-add-form>input .scroll-list{max-height:420px;overflow-y:auto;overflow-x:auto;border:1px solid var(--border);border-radius:6px}.egress-add-form>select .scroll-list>table,.egress-add-form>input .scroll-list>table{margin:0}.egress-add-form>select .scroll-list thead th,.egress-add-form>input .scroll-list thead th{position:sticky;top:0;z-index:1;background:var(--panel)}.egress-add-form>select .scroll-list-wrap,.egress-add-form>input .scroll-list-wrap{position:relative}.egress-add-form>select .scroll-list-wrap:after,.egress-add-form>input .scroll-list-wrap:after{content:"";position:absolute;left:1px;right:1px;bottom:1px;height:18px;pointer-events:none;border-radius:0 0 6px 6px;background:linear-gradient(to bottom,transparent,var(--panel))}.scroll-list{max-height:420px;overflow-y:auto;overflow-x:auto;border:1px solid var(--border);border-radius:6px}.scroll-list>table{margin:0}.scroll-list thead th{position:sticky;top:0;z-index:1;background:var(--panel)}.scroll-list-wrap{position:relative}.scroll-list-wrap:after{content:"";position:absolute;left:1px;right:1px;bottom:1px;height:18px;pointer-events:none;border-radius:0 0 6px 6px;background:linear-gradient(to bottom,transparent,var(--panel))}.dash-cards .card{border-left-color:var(--border-strong)}.dash-chip{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;line-height:1.45;white-space:nowrap;border:1px solid transparent}.dash-chip.danger{background:var(--status-danger-bg);color:var(--status-danger-text)}.dash-chip.warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.dash-chip.ok{background:var(--status-ok-bg);color:var(--status-ok-text)}.dash-chip.info{background:var(--status-info-bg);color:var(--status-info-text)}.dash-chip.neutral{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.dash-chip{border-color:var(--border)}.dash-chip.danger{margin-top:0;border-radius:4px;padding:2px 7px;font-size:11px}:root{--bg: #f6f7f7;--panel: #ffffff;--panel-2: #f1f3f3;--border: #e1e5e4;--border-strong: #c7cecc;--text: #1d2725;--text-muted: #5e6966;--text-faint: #87918e;--link: #2f6f68;--accent: #2f6f68;--ok: #34745a;--warn: #98671c;--crit: #b42318;--high: #b42318;--medium: #98671c;--low: #66736f;--sidebar-bg: #f0f3f2;--sidebar-fg: #2d3936;--sidebar-fg-muted: #74807d;--sidebar-section: #66726f;--sidebar-hover: #e6eae9;--sidebar-active-bg: #dce8e5;--sidebar-active-fg: #1d2725;--topbar-bg: #ffffff;--shadow-card: none;--status-info-bg: #dfe7e3;--status-info-text: #294e4a;--status-neutral-bg: #e5e1d7;--status-neutral-text: #615d55}[data-theme=dark]{--bg: #111715;--panel: #18201e;--panel-2: #202927;--border: #2d3835;--border-strong: #46534f;--text: #edf2f0;--text-muted: #aab5b1;--text-faint: #7f8b87;--link: #7fb2aa;--accent: #70a69e;--ok: #75ad8e;--warn: #d1a15b;--crit: #e4776d;--high: #e4776d;--medium: #d1a15b;--low: #8b9995;--sidebar-bg: #161d1b;--sidebar-fg: #dce4e1;--sidebar-fg-muted: #8e9a96;--sidebar-section: #a7b2ae;--sidebar-hover: #202a27;--sidebar-active-bg: #273a36;--sidebar-active-fg: #f3f7f5;--topbar-bg: #18201e;--shadow-card: none;--status-info-bg: #243331;--status-info-text: #9cc0b9;--status-neutral-bg: #2b2a25;--status-neutral-text: #b1ab9f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #111715;--panel: #18201e;--panel-2: #202927;--border: #2d3835;--border-strong: #46534f;--text: #edf2f0;--text-muted: #aab5b1;--text-faint: #7f8b87;--link: #7fb2aa;--accent: #70a69e;--ok: #75ad8e;--warn: #d1a15b;--crit: #e4776d;--high: #e4776d;--medium: #d1a15b;--low: #8b9995;--sidebar-bg: #161d1b;--sidebar-fg: #dce4e1;--sidebar-fg-muted: #8e9a96;--sidebar-section: #a7b2ae;--sidebar-hover: #202a27;--sidebar-active-bg: #273a36;--sidebar-active-fg: #f3f7f5;--topbar-bg: #18201e;--shadow-card: none;--status-info-bg: #243331;--status-info-text: #9cc0b9;--status-neutral-bg: #2b2a25;--status-neutral-text: #b1ab9f}}html,body,#root{background:var(--bg)}body{font-family:Pretendard Variable,Pretendard,Malgun Gothic,Apple SD Gothic Neo,sans-serif;letter-spacing:-.012em}body *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}::selection{color:#fff;background:var(--accent)}.layout,.layout.sidebar-collapsed{min-height:100vh;height:auto;gap:0;padding:0;grid-template-rows:56px auto;background:var(--bg)}.layout{grid-template-columns:256px minmax(0,1fr)}.layout.sidebar-collapsed{grid-template-columns:68px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:300;width:256px;height:100vh;border:0;border-right:1px solid var(--border);border-radius:0;background:var(--sidebar-bg);box-shadow:none}.layout.sidebar-collapsed .sidebar{width:68px}.sidebar-brand{min-height:56px;height:56px;padding:0 12px 0 16px;border-bottom:1px solid var(--border)}.sidebar-brand .logo-img{width:32px;height:32px;padding:0;border:1px solid var(--border-strong);border-radius:4px;background:var(--panel);color:var(--text);font-size:11px;letter-spacing:.04em}.sidebar-brand .logo-img.logo-img-g,.nav-ai{border-radius:3px;background:transparent;box-shadow:none;animation:none}.sidebar-brand .label,.sidebar-brand .label .sub{color:var(--sidebar-fg)}.sidebar nav{padding:8px 8px 20px}.sidebar .nav-section{min-height:34px;margin-top:10px;padding:7px 8px 5px;border-top:0;color:var(--sidebar-section);font-size:14px;font-weight:720;letter-spacing:0;text-transform:none}.sidebar .nav-subcat{padding:12px 9px 4px;font-size:10.5px;font-weight:650;letter-spacing:.3px;color:var(--text-faint);text-transform:uppercase}.sidebar .nav-group>.nav-subcat:first-child{padding-top:2px}.sidebar .nav-section:first-of-type{padding-top:7px;border-top:0}.sidebar .nav-section .chev{transition:transform .16s ease}.sidebar nav a{position:relative;min-height:34px;margin:1px 0;padding:7px 9px;border-left:0;border-radius:4px;color:var(--sidebar-fg);font-size:13px;gap:9px}.sidebar nav a:before{content:"";position:absolute;inset:7px auto 7px 1px;width:2px;background:transparent}.sidebar nav a:hover{background:var(--sidebar-hover)}.sidebar nav a.active{border-left-color:transparent;background:var(--sidebar-active-bg);color:var(--sidebar-active-fg);font-weight:650}.sidebar nav a.active:before{background:var(--accent)}.sidebar nav a .icon{width:20px}.sidebar .nav-ai{padding:2px 7px;border:none;border-radius:10px;color:#fff;background:var(--accent);font-size:10px;font-weight:800;letter-spacing:.3px}.sidebar .foot{border-top:1px solid var(--border);background:var(--sidebar-bg)}.sidebar .edition-mark{color:var(--sidebar-fg-muted)}.sidebar-collapse-btn,.topbar button{border-radius:0!important;box-shadow:none!important}.topbar{position:relative;z-index:20;min-width:0;min-height:56px;padding:0 clamp(14px,2vw,28px);border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--topbar-bg);box-shadow:none;overflow:visible}.topbar .crumb-area{min-width:0;gap:7px;padding:0;background:transparent;font-family:inherit;font-size:13px;letter-spacing:0;text-transform:none}.topbar .crumb-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .user-area{min-width:0;gap:11px;padding:0;background:transparent}.topbar-utilities,.topbar-account,.alarm-notifier-dock{display:flex;min-width:0;align-items:center}.topbar-utilities,.alarm-notifier-dock{gap:4px}.topbar-account{gap:5px;padding-left:11px;border-left:1px solid var(--border)}.topbar-tenant{max-width:120px;overflow:hidden;color:var(--text-muted);font-size:11px;font-weight:600;text-overflow:ellipsis}.demo-environment-label{flex:0 0 auto;margin-left:8px;padding:0;border:0;color:var(--text-faint);background:transparent;font:600 10px/1.2 inherit;letter-spacing:.02em;white-space:nowrap}.demo-label-short{display:none}.alarm-notifier-dock{background:transparent;white-space:nowrap}.topbar .user-area .alarm-count-button,.topbar .user-area .alarm-sound-button,.topbar .user-area .topbar-action,.topbar .user-area .topbar-user,.topbar .user-area .topbar-logout{box-sizing:border-box;display:inline-flex!important;height:32px;min-height:32px!important;align-items:center;justify-content:center;gap:5px;padding:0 9px!important;border:1px solid var(--border)!important;border-radius:3px!important;background:var(--panel)!important;color:var(--text)!important;box-shadow:none!important;font-size:11px!important;font-weight:600!important;line-height:1;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.topbar .user-area .alarm-count-button:hover,.topbar .user-area .alarm-sound-button:hover,.topbar .user-area .topbar-action:hover,.topbar .user-area .topbar-user:hover,.topbar .user-area .topbar-logout:hover{border-color:var(--border-strong)!important;background:var(--panel-2)!important;filter:none}.topbar .user-area .alarm-count-button{color:var(--text)!important;font-variant-numeric:tabular-nums}.topbar .alarm-count-button>svg{color:var(--warn)}.alarm-count-label{color:var(--text-muted);font-weight:550}.alarm-count-value{min-width:2ch;color:var(--warn);font-weight:750;text-align:right}.topbar .alarm-count-button.is-clear>svg,.topbar .alarm-count-button.is-clear .alarm-count-value{color:var(--text-faint)}.topbar .user-area .alarm-count-button.is-pulsing{border-color:color-mix(in srgb,var(--crit) 28%,var(--border))!important;background:color-mix(in srgb,var(--crit) 5%,var(--panel))!important;animation:none}.topbar .alarm-count-button.is-pulsing>svg,.topbar .alarm-count-button.is-pulsing .alarm-count-value{color:var(--crit)}.topbar .user-area .alarm-sound-button{width:32px;padding:0!important}.topbar .user-area .alarm-sound-button.is-muted{background:var(--panel-2)!important;color:var(--text-muted)!important}.topbar .user-area .alarm-sound-button,.topbar .user-area .topbar-search,.topbar .user-area .topbar-theme,.topbar .user-area .topbar-logout{border-color:transparent!important;background:transparent!important}.topbar-shortcut{padding:2px 4px;border:1px solid var(--border);border-radius:2px;background:var(--panel-2);color:var(--text-muted);font:500 9px/1 inherit}.alarm-pulse-overlay{display:none}.alarm-critical-toast{position:absolute;top:48px;right:12px;z-index:50;width:min(360px,calc(100vw - 32px));padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--crit);border-radius:4px;background:var(--panel);color:var(--text);box-shadow:none;animation:alarm-toast-in .2s ease-out}.alarm-toast-heading{display:flex;align-items:center;gap:6px;color:var(--crit);font-weight:700}@keyframes alarm-frame-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes alarm-signal-pulse{0%,to{opacity:.72}50%{opacity:1}}@keyframes alarm-toast-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 1450px){.topbar .action-label,.topbar kbd{display:none!important}.topbar .user-area .topbar-search,.topbar .user-area .topbar-theme,.topbar .user-area .topbar-logout{width:32px;padding:0!important}}@media (max-width: 1280px){.topbar-tenant,.topbar-account>.badge{display:none}}.topbar .user-area .topbar-user{max-width:150px!important;border-color:transparent!important;background:transparent!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .user-area .topbar-logout{color:var(--text-muted)!important}.mobile-nav-toggle,.sidebar-scrim{display:none}.main{min-width:0;min-height:calc(100vh - 56px);overflow:visible;padding:clamp(22px,2.6vw,38px) clamp(18px,3vw,46px) 72px;background:var(--bg)}.route-canvas{width:min(calc(100% - var(--route-indent, 0px)),var(--route-width, 1560px));margin-right:auto;margin-left:var(--route-indent, 0)}.main[data-route-kind=overview]{--route-width: 1640px;--route-indent: 0}.main[data-route-kind=analysis]{--route-width: 1500px;--route-indent: 0}.main[data-route-kind=detail]{--route-width: 1360px;--route-indent: 0}.main[data-route-kind=registry]{--route-width: 1420px;--route-indent: 0}.main[data-route-kind=reference]{--route-width: 1120px;--route-indent: 0}.main[data-route-kind=workspace]{--route-width: none;--route-indent: 0;padding-right:clamp(14px,2vw,28px);padding-left:clamp(14px,2vw,28px)}.main[data-route-kind=workspace] .route-canvas{width:100%}.route-canvas h1,.route-canvas>div>h2:first-of-type,.route-canvas>section>h2:first-of-type{max-width:none;margin-bottom:18px;color:var(--text);font-size:clamp(25px,2vw,31px);font-weight:720;line-height:1.2;letter-spacing:-.025em}.section-title{display:flex;align-items:center;gap:8px;margin:30px 0 12px;padding:0;border-bottom:0;color:var(--text);font-family:inherit;font-size:17px;font-weight:700;line-height:1.35;letter-spacing:-.015em;text-transform:none}.section-title:before{content:none}.section-group{margin:44px 0 12px;padding-top:16px;border-top:2px solid var(--border-strong);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.section-group-t{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.section-group-d{font-size:12.5px;color:var(--text-muted)}.stat-bar{position:relative}.stat-bar .stat-pop{position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(6px);width:max-content;min-width:220px;max-width:280px;background:var(--panel);border:1px solid var(--border-strong);border-radius:4px;box-shadow:0 6px 18px #0000002e;padding:10px 12px;z-index:40;opacity:0;visibility:hidden;transition:opacity .12s ease .15s,visibility .12s ease .15s;text-align:left;cursor:default}.stat-bar:hover .stat-pop,.stat-bar:focus-within .stat-pop{opacity:1;visibility:visible}.stat-bar:first-child .stat-pop{left:0;transform:translateY(6px)}.stat-bar:last-child .stat-pop{left:auto;right:0;transform:translateY(6px)}.page-masthead{width:100%!important;min-height:0!important;margin:0 0 24px!important;padding:0 0 20px!important;border:0!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;background:transparent!important;color:var(--text)!important;box-shadow:none!important}.page-masthead h1,.page-masthead h2,.page-masthead p,.page-masthead span:not(.badge){color:inherit!important}.page-masthead-heading{display:flex;align-items:flex-start;gap:12px}.page-masthead-heading h1{margin:0;font-size:clamp(25px,2vw,31px);line-height:1.2}.page-masthead-heading p{max-width:920px;margin:6px 0 0;color:var(--text-muted)!important;font-size:13px;line-height:1.55}.page-masthead-icon{flex:0 0 auto;margin-top:4px;color:var(--accent)}.masthead-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-top:20px;border-top:1px solid var(--border)}.hero-stat{min-width:0;padding:14px 16px 0;border-right:1px solid var(--border);background:transparent}.hero-stat:first-child{padding-left:0}.hero-stat:last-child{border-right:0}.hero-stat-label,.hero-stat-sub{color:var(--text-muted);font-size:11px;line-height:1.4}.hero-stat-value{margin:4px 0 2px;color:var(--text);font-size:24px;font-weight:720;line-height:1.05;letter-spacing:-.03em}.hero-stat.is-success .hero-stat-value{color:var(--ok)}.hero-stat.is-critical .hero-stat-value{color:var(--crit)}.hero-stat.is-progress .hero-stat-value{color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;padding:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:transparent}.card{min-height:96px;padding:16px 18px;border:0;border-right:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none}.cards>.card:last-child{border-right:0}.cards>.panel:only-child,.cards>.muted:only-child,.cards>:only-child{grid-column:1 / -1}.cards>.panel:not(:only-child){min-width:0}.dash-cards{grid-template-columns:repeat(auto-fit,minmax(170px,210px));width:fit-content;max-width:100%}.card .label{font-family:inherit;font-size:12px;letter-spacing:0}.card .value{margin-top:8px;font-size:clamp(25px,2.3vw,34px);line-height:1;letter-spacing:-.035em}.panel{border:1px solid var(--border);border-radius:4px;background:var(--panel);box-shadow:none}.route-canvas>div>.panel:has(table),.route-canvas>div>.panel:has(.scroll-list),.route-canvas>div>.panel:has(.data-table){max-width:100%;margin-left:0}table,.data-table{border-radius:0;box-shadow:none}th{border-top:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);font-family:inherit;font-size:12px;font-weight:650;letter-spacing:0}tbody tr:hover{background:var(--panel-2)}.scroll-list{border-radius:0}.scroll-list-wrap:after{display:none}button,.btn,input,select,textarea{border-radius:2px;box-shadow:none}button,.btn{min-height:34px;letter-spacing:-.01em}button.primary,.btn.primary,.btn-primary{border:1px solid var(--accent);background:var(--accent);color:#fff}button.ghost,.btn.ghost,.btn-secondary{border:1px solid var(--border-strong);background:transparent}button:hover,.btn:hover{filter:none;transform:none}button>svg,.btn>svg{vertical-align:-2px}.icon-spin{animation:console-icon-spin .9s linear infinite}@keyframes console-icon-spin{to{transform:rotate(360deg)}}.statistics-page-title{margin-top:0;margin-bottom:18px;font-size:clamp(25px,2vw,31px)}.statistics-kpi{border-right:1px solid var(--border)}.statistics-chart-panel{padding:16px}.dashboard-compromised-header{border-top-color:var(--border-strong)!important}.triage-hint{border-color:var(--border);background:transparent}.triage-hint-toggle{min-height:28px}.triage-hint svg{display:inline-block;flex:0 0 auto;vertical-align:-2px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge,.proc-pill,.device-card .dstate,[class*=chip],[class*=pill]{border-radius:2px!important;box-shadow:none!important}.badge{padding:2px 6px;border:1px solid currentColor;background:transparent!important;font-family:inherit;font-size:10px;letter-spacing:0;text-transform:none}.topbar .user-area .badge{border-color:var(--border-strong);background:transparent!important;color:var(--text-muted)!important}.device-grid,.hw-grid{gap:8px}.device-card,.hw-mini{border:1px solid var(--border);border-radius:4px;box-shadow:none}.device-card:hover,.hw-mini:hover{border-color:transparent;box-shadow:none}.alert,.error,.danger{border-radius:0!important;border-left:4px solid currentColor;box-shadow:none!important}.modal-backdrop{background:#0b0b09b8}.modal-shell,.modal,.modal-overlay .panel{border:1px solid var(--border-strong);border-radius:0!important;box-shadow:none!important}.login-page{position:relative;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);align-items:center;justify-content:stretch;min-height:100vh;padding:0;background:var(--bg);overflow-x:hidden}.login-page:before{content:"GUARDIA\aSecurity operations\awithout the noise.";align-self:stretch;display:flex;align-items:flex-end;padding:clamp(34px,5vw,76px);border-right:1px solid var(--border);background:var(--sidebar-bg);color:var(--text);white-space:pre;font-family:inherit;font-size:clamp(24px,2.6vw,46px);font-weight:720;line-height:1.08;letter-spacing:-.035em}.login-box{grid-column:2;width:min(460px,calc(100vw - 48px));margin:clamp(28px,7vw,110px);padding:38px 0 38px 28px;border:0;border-left:1px solid var(--border-strong);border-radius:0;background:transparent;box-shadow:none;text-align:left}.login-box .login-logo{width:48px;height:48px;margin:0 0 28px;border:1px solid var(--text);border-radius:4px;background:transparent;color:var(--text)}.login-box h2,.login-box p{text-align:left}.login-box h2{color:var(--text);font-size:30px;letter-spacing:-.03em}.login-box input{border:0;border-bottom:1px solid var(--border-strong);background:transparent;padding-left:12px;padding-right:12px}.demo-login-note{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 18px;padding:11px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.demo-login-note>div{display:grid;gap:2px}.demo-login-note b{color:var(--text);font-size:12px}.demo-login-note span{color:var(--text-muted);font-size:10px}.demo-login-note button{flex:0 0 auto;font-size:11px}.card,.panel,.topbar,.sidebar,.login-box,.modal-shell,.device-card,.hw-mini{box-shadow:none!important}.kiosk-device-frame{border-radius:36px!important}.kiosk-device-screen{border-radius:28px!important}.design-review-layout .sidebar{background:var(--sidebar-bg)}.design-review-layout .sidebar-brand .label{display:flex;flex-direction:column;font-size:16px;font-weight:800;letter-spacing:-.025em}.design-review-layout .sidebar-brand .sub{margin-top:3px;color:var(--sidebar-fg-muted);font-family:Consolas,SFMono-Regular,monospace;font-size:9px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.design-review-layout .sidebar .foot{margin-top:auto;padding:14px 18px}.design-review-layout .foot-meta{color:var(--sidebar-fg-muted);font-family:Consolas,SFMono-Regular,monospace;font-size:9px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.design-review-layout .topbar .crumb-area{display:flex;align-items:center}.design-review-layout .review-search{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:transparent;color:var(--text)}.review-search kbd{padding-left:8px;border-left:1px solid var(--border);color:var(--text-muted);font:inherit}.design-review-canvas{padding-bottom:36px}.review-masthead{display:grid;grid-template-columns:minmax(0,7fr) minmax(240px,3fr);gap:clamp(28px,6vw,96px);align-items:end;min-height:172px;margin-bottom:34px;padding:0 0 22px;border-bottom:1px solid var(--border-strong)}.review-masthead h1{max-width:18ch;margin:8px 0 14px;font-size:clamp(30px,3.2vw,40px);font-weight:720;line-height:1.08;letter-spacing:-.035em}.review-masthead h1 span{display:block}.review-headline>p:last-child{max-width:64ch;margin:0;color:var(--text-muted);font-size:14px;line-height:1.65}.review-kicker{margin:0;color:var(--accent);font-family:inherit;font-size:12px;font-weight:650;letter-spacing:0}.review-head-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.review-head-actions .review-shift{grid-column:1 / -1;padding-bottom:10px;border-bottom:1px solid var(--border);color:var(--text-muted);font-family:Consolas,SFMono-Regular,monospace;font-size:11px}.review-metrics .card{min-height:132px}.review-denominator{color:var(--text-faint);font-size:.42em;letter-spacing:-.02em}.critical-bulletin{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:22px;align-items:center;margin:38px 0 54px;padding:22px 24px 22px 0;border-top:4px solid var(--crit);border-bottom:1px solid var(--border-strong)}.critical-marker{align-self:stretch;display:flex;align-items:center;justify-content:center;gap:5px;background:var(--crit);color:#fff;font:800 12px/1 Consolas,monospace}.critical-bulletin h2{margin:5px 0 7px;color:var(--text);font-size:clamp(20px,2vw,30px);letter-spacing:-.035em}.critical-bulletin p:last-child{margin:0;color:var(--text-muted);font-family:Consolas,SFMono-Regular,monospace;font-size:11px}.critical-actions{display:flex;gap:8px}.review-workbench{display:grid;grid-template-columns:minmax(0,8fr) minmax(260px,3fr);gap:clamp(22px,3vw,48px);align-items:start;min-width:0}.review-workbench .panel,.review-bottom-grid .panel{max-width:none;margin:0}.review-table-panel{min-width:0;max-width:100%;padding:0;background:transparent}.review-panel-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:18px 0 14px}.review-panel-head h2,.review-context h2,.review-control h2,.review-qa h2{margin:5px 0 0;color:var(--text);font-size:clamp(20px,2vw,28px);line-height:1.08;letter-spacing:-.035em}.review-filter-row{display:flex;gap:5px}.review-table-scroll{min-width:0;max-width:100%;overflow-x:auto}.review-table-panel table{min-width:760px;margin:0}.review-table-panel th,.review-table-panel td{height:43px;padding:9px 10px;white-space:nowrap}.review-table-panel th:first-child,.review-table-panel td:first-child{padding-left:0}.severity{display:inline-flex;align-items:center;gap:6px;min-width:48px;font-family:Consolas,SFMono-Regular,monospace;font-size:10px;font-weight:800}.severity:before{content:"";width:7px;height:7px;background:var(--text-muted)}.severity-긴급,.severity-높음{color:var(--crit)}.severity-긴급:before,.severity-높음:before{background:var(--crit)}.severity-주의{color:var(--warn)}.severity-주의:before{background:var(--warn)}.severity-정보{color:var(--low)}.severity-정보:before{background:var(--low)}.review-table-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border);color:var(--text-muted);font-size:11px}.review-context{padding:22px 0 0 24px;border-top-width:5px;border-right:0;border-bottom:0;border-left:1px solid var(--border-strong);background:transparent}.review-context ol{margin:24px 0 30px;padding:0;list-style:none}.review-context li{display:grid;grid-template-columns:34px 1fr;gap:11px;padding:13px 0;border-top:1px solid var(--border)}.review-context li>span{color:var(--accent);font-family:Consolas,SFMono-Regular,monospace;font-size:11px}.review-context li div,.review-owner div{display:flex;flex-direction:column;gap:3px}.review-context small,.review-owner small{color:var(--text-muted);font-size:11px}.review-owner{display:flex;align-items:center;gap:11px;padding-top:16px;border-top:1px solid var(--border-strong)}.review-owner-mark{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--text);background:var(--text);color:var(--panel);font-weight:800}.review-bottom-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(280px,4fr);gap:clamp(28px,7vw,120px);align-items:stretch;width:min(92%,1260px);margin:68px 0 0 auto}.review-control{padding:24px 0;background:transparent}.review-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}.review-field-grid label{display:grid;gap:7px;color:var(--text-muted);font-size:11px;font-weight:700}.review-field-grid input,.review-field-grid select{width:100%;min-height:40px;border:0;border-bottom:1px solid var(--border-strong);background:transparent}.review-action-row{display:flex;align-items:center;gap:8px;margin-top:20px}.review-action-row span{margin-left:auto;color:var(--text-muted);font-size:10px}.review-qa{position:relative;padding:24px 26px;border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);color:var(--text)}.review-qa h2{color:var(--text)}.review-qa ul{display:grid;gap:10px;margin:25px 0 70px;padding:0;list-style:none;font-size:12px}.review-qa li{display:flex;align-items:center;gap:8px;padding-bottom:9px;border-bottom:1px solid var(--border)}.review-qa li svg{color:var(--accent)}.review-qa-stamp{position:absolute;right:24px;bottom:22px;display:flex;align-items:center;gap:9px;color:var(--text-muted);font-family:inherit;font-size:10px;font-weight:650;line-height:1.25;letter-spacing:0}.skeleton{background:var(--panel-2);animation:editorial-skeleton 1.15s steps(2,end) infinite}@keyframes editorial-skeleton{50%{opacity:.48}}@media (max-width: 1100px){.layout,.layout.sidebar-collapsed{grid-template-rows:56px auto;grid-template-columns:minmax(0,1fr);grid-template-areas:"topbar" "main"}.sidebar,.layout.sidebar-collapsed .sidebar{position:fixed;inset:0 auto 0 0;z-index:300;width:256px;transform:translate(0);transition:transform .18s ease}.layout.sidebar-collapsed .sidebar{transform:translate(-100%)}.sidebar-collapsed .sidebar .nav-section:before,.sidebar-collapsed .sidebar .nav-section:after{display:none!important}.mobile-nav-toggle{display:inline-grid;width:32px;min-height:32px;padding:0;place-items:center;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#0e16143d!important;color:transparent!important;filter:none!important}.topbar{min-width:0;padding:0 12px}.cards:not(.dash-cards){grid-template-columns:repeat(6,minmax(0,1fr))}.cards:not(.dash-cards)>.card,.cards:not(.dash-cards)>.card:first-child,.cards:not(.dash-cards)>.card:nth-child(n){grid-column:span 3;min-height:0}.route-canvas,.main[data-route-kind]{--route-indent: 0}.review-masthead{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:36px}.review-workbench{grid-template-columns:1fr}.review-context{width:min(76%,720px);margin-left:auto}.review-bottom-grid{width:100%;gap:30px}}@media (max-width: 760px){.demo-environment-label{display:none}.topbar .user-area .topbar-account>:not(.topbar-logout){display:none!important}.topbar-account{padding-left:7px}.topbar .user-area .alarm-count-button{width:38px;padding:0!important}.alarm-count-label{display:none}.topbar .crumb-area{gap:6px}.topbar .crumb-area>svg,.topbar .crumb-sep{display:none}.topbar .crumb-current{display:block}.main{padding:22px 16px 64px}.cards{grid-template-columns:1fr}.cards>.card,.cards>.card:first-child,.cards>.card:nth-child(n),.cards>.panel:not(:only-child){grid-column:1;min-height:0}.review-tenant,.design-review-layout .topbar .badge,.design-review-layout .review-search{display:none}.review-masthead{grid-template-columns:1fr;min-height:0;margin-bottom:34px}.review-masthead h1{font-size:clamp(30px,9vw,38px)}.review-head-actions{grid-template-columns:1fr 1fr}.critical-bulletin{grid-template-columns:58px 1fr;padding-right:0}.critical-actions{grid-column:1 / -1;padding-left:80px}.review-panel-head,.review-table-foot,.review-action-row{align-items:flex-start;flex-direction:column}.review-context{width:92%}.review-bottom-grid{grid-template-columns:1fr;margin-top:48px}.review-field-grid{grid-template-columns:1fr}.review-action-row span{margin-left:0}.login-page{display:block;padding:28px 20px 48px}.login-page:before{min-height:180px;margin:-28px -20px 32px;padding:28px 20px;border:0;border-bottom:1px solid var(--border);font-size:clamp(24px,7.7vw,32px)}.login-box{width:100%;margin:0;padding:24px 0 24px 22px}}@media (max-width: 900px){.statistics-chart-grid{grid-template-columns:minmax(0,1fr)!important}}@media (prefers-reduced-motion: reduce){.main>*,.skeleton{animation:none!important}}
