@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Inter:wght@400;500;600&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#090c15}::-webkit-scrollbar-thumb{background:#1e293b;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#334155}:root{--font-family:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--bg-primary:#090c15;--bg-secondary:#101426;--bg-tertiary:#161c36;--border-color:#ffffff0f;--border-color-glow:#38bdf826;--accent-blue:#38bdf8;--accent-blue-deep:#0ea5e9;--accent-purple:#c084fc;--accent-teal:#2dd4bf;--accent-success:#34d399;--accent-warning:#fbbf24;--accent-danger:#f87171;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1);--glass-bg:#101426a6;--glass-shadow:0 8px 32px 0 #0000005e;--glass-border:1px solid #ffffff0d;--ui-font-base:13px;--sidebar-width:228px;--status-sidebar-width:244px;--content-pad:1.125rem;--header-pad-y:.7rem;--header-pad-x:1.125rem;--card-pad:.95rem;--grid-gap:.875rem;--card-radius:12px;--table-cell-pad-y:.65rem;--table-cell-pad-x:1rem;--panel-max-standard:1200px;--panel-max-wide:1400px;--panel-chrome-offset:7.25rem}html{font-size:var(--ui-font-base)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;line-height:1.4;overflow-x:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:.4s forwards fadeIn}.spin{animation:1.2s linear infinite spin}.app-container{background-color:var(--bg-primary);background-image:radial-gradient(at 0 0,#38bdf80d 0,#0000 50%),radial-gradient(at 100% 0,#c084fc0d 0,#0000 50%);min-height:100vh;display:flex}.app-workspace{flex:1;min-width:0;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border-color);background:#080c18f2;flex-direction:column;flex-shrink:0;height:100vh;padding:.95rem .7rem;transition:width .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow-y:hidden}.sidebar-brand{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:.75rem;padding:.4rem .55rem .95rem;display:flex}.sidebar-brand-logo{object-fit:cover;border:1px solid #38bdf84d;border-radius:8px;flex-shrink:0;width:2.15rem;height:2.15rem}.brand-icon{color:var(--accent-blue);filter:drop-shadow(0 0 8px #38bdf866);flex-shrink:0}.sidebar-brand h2{letter-spacing:.5px;background:linear-gradient(to right, #fff, var(--text-secondary));-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.brand-text-container{flex-direction:column;flex-grow:1;justify-content:center;display:flex;overflow:hidden}.brand-subtitle{color:var(--text-muted);white-space:nowrap;letter-spacing:.5px;opacity:.8;margin-top:1px;font-size:.62rem;font-weight:500}.sidebar-nav{flex-direction:column;flex-grow:1;gap:8px;display:flex}.sidebar-nav-category{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.sidebar-category-title{text-transform:uppercase;color:var(--text-muted);opacity:.7;letter-spacing:.08em;-webkit-user-select:none;user-select:none;padding:6px 16px 2px;font-size:.72rem;font-weight:700;transition:opacity .3s}.sidebar-category-divider{border-top:1px solid #ffffff0d;margin:8px 8px 4px}.nav-item{color:var(--text-secondary);font-family:var(--font-family);text-align:left;cursor:pointer;transition:var(--transition-smooth);background:0 0;border:1px solid #0000;border-radius:.55rem;align-items:center;gap:10px;padding:.5rem .65rem;font-size:.88rem;font-weight:500;display:flex}.nav-item:hover{color:var(--text-primary);background:#ffffff08}.nav-item.active{color:var(--accent-blue);box-shadow:none;background:#38bdf81f;border-color:#38bdf840;font-weight:600}.sidebar-footer{color:var(--text-muted);border-top:1px solid var(--border-color);align-items:center;gap:8px;padding:12px;font-size:.8rem;display:flex}.sidebar-footer-logo{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:center;align-items:center;margin-top:auto;padding:14px 10px 6px;display:flex}.sidebar-footer-logo img{object-fit:contain;width:100%;max-width:188px;height:auto}.sidebar-version{font-size:.65rem;font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--text-muted);opacity:.9;letter-spacing:.02em}.status-indicator{border-radius:50%;width:8px;height:8px}.status-indicator.online{background-color:var(--accent-success);box-shadow:0 0 8px var(--accent-success)}.main-content{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow-y:auto}.status-sidebar{width:var(--status-sidebar-width);border-left:1px solid var(--border-color);background:#080c18eb;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.status-sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;gap:8px;padding:1rem .9rem .75rem;display:flex}.status-sidebar-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px;font-size:.62rem;font-weight:700;display:block}.status-sidebar-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:190px;margin:0;font-size:.95rem;font-weight:700;overflow:hidden}.status-sidebar-refresh{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;width:28px;height:28px;transition:var(--transition-smooth);background:#ffffff08;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.status-sidebar-refresh:hover:not(:disabled){color:var(--text-primary);border-color:#ffffff2e}.status-sidebar-refresh:disabled{opacity:.6;cursor:default}.status-sidebar-loading{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;font-size:.82rem;display:flex}.status-sidebar-body{padding:.65rem .75rem 1rem}.status-sidebar-scroll{flex:1;min-height:0;overflow-y:auto}.status-sidebar-footer{text-align:center;border-top:1px solid var(--border-color);color:var(--text-muted);flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding:12px 10px;font-size:.78rem;display:flex}.status-sidebar-footer-status{justify-content:center;align-items:center;gap:8px;display:flex}.status-sidebar-footer-version{font-size:.65rem;font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--text-muted);opacity:.9;letter-spacing:.02em}.status-sidebar-footer-copy{color:var(--text-muted);white-space:nowrap;font-size:.68rem}.status-sidebar-section{border-bottom:1px solid #ffffff0a;margin-bottom:14px;padding-bottom:12px}.status-sidebar-section:last-child{border-bottom:none;margin-bottom:0}.status-sidebar-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.status-sidebar-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:6px;font-size:.68rem;font-weight:800;display:flex}.status-sidebar-link{color:var(--accent-blue);cursor:pointer;background:0 0;border:none;padding:0;font-size:.68rem;font-weight:600}.status-sidebar-link:hover{text-decoration:underline}.status-sidebar-metric+.status-sidebar-metric{margin-top:8px}.status-sidebar-metric-head{color:var(--text-secondary);justify-content:space-between;margin-bottom:4px;font-size:.72rem;display:flex}.status-sidebar-metric-track{background:#ffffff0d;border-radius:999px;height:5px;overflow:hidden}.status-sidebar-metric-fill{border-radius:inherit;height:100%;transition:width .4s}.status-sidebar-metric-fill.tone-ok{background:linear-gradient(90deg, var(--accent-teal), var(--accent-blue))}.status-sidebar-metric-fill.tone-warn{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.status-sidebar-metric-fill.tone-critical{background:linear-gradient(90deg,#f87171,#ef4444)}.status-sidebar-kv-grid{grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:10px;display:grid}.status-sidebar-k{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.62rem;display:block}.status-sidebar-v{color:var(--text-primary);font-size:.78rem;font-weight:600;display:block}.status-sidebar-v.mono{font-family:monospace}.status-sidebar-summary{color:var(--text-secondary);justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.72rem;display:flex}.status-sidebar-empty{color:var(--text-muted);margin:0;font-size:.75rem;font-style:italic}.status-sidebar-row{text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 4px;display:flex}.status-sidebar-row.clickable{cursor:pointer}.status-sidebar-row.clickable:hover{background:#ffffff08}.status-sidebar-row+.status-sidebar-row{margin-top:2px}.status-sidebar-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-sidebar-dot.tone-ok{background:var(--accent-success);box-shadow:0 0 6px #34d39980}.status-sidebar-dot.tone-warn{background:#fbbf24;box-shadow:0 0 6px #fbbf2466}.status-sidebar-dot.tone-down{background:var(--accent-danger);box-shadow:0 0 6px #f8717159}.status-sidebar-row-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.status-sidebar-row-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.status-sidebar-row-detail{color:var(--text-muted);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.status-sidebar-row-chevron{color:var(--text-muted);opacity:.5;flex-shrink:0}.text-success{color:var(--accent-success)!important}.text-warn{color:#fbbf24!important}.text-muted{color:var(--text-muted)!important}.main-header{padding:var(--header-pad-y) var(--header-pad-x);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#090c1566;justify-content:space-between;align-items:center;display:flex}.breadcrumbs{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.78rem}.badge-remote-ip{background:var(--bg-tertiary);color:var(--accent-blue);border:1px solid var(--border-color-glow);border-radius:5px;padding:4px 10px;font-family:monospace;font-size:.78rem}.header-status{align-items:center;gap:8px;display:flex}.header-icon-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;width:30px;height:30px;transition:var(--transition-smooth);background:#ffffff08;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.header-icon-btn:hover{color:var(--text-primary);background:#ffffff0f;border-color:#ffffff26}.header-icon-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#38bdf826;box-shadow:0 0 12px #38bdf833}.content-body{padding:var(--content-pad);flex-direction:column;flex-grow:1;min-width:0;min-height:0;display:flex}.panel-page{flex-direction:column;flex:1;width:100%;min-width:0;display:flex}.panel-page--standard{max-width:var(--panel-max-standard);margin-inline:auto}.panel-page--fill-height{min-height:calc(100vh - var(--panel-chrome-offset));overflow:hidden}.panel-page--wide{max-width:var(--panel-max-wide);margin-inline:auto}.panel-page--full{max-width:none}.panel-page--fill{max-width:none;min-height:calc(100vh - var(--panel-chrome-offset));overflow:hidden}.panel-body{gap:var(--grid-gap);flex-direction:column;width:100%;min-width:0;display:flex}.panel-body--fill{flex:1;min-height:0;overflow:hidden}.panel-split{gap:var(--grid-gap);grid-template-columns:1fr 1fr;align-items:start;display:grid}.panel-split--sidebar-end{grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.panel-split--sidebar-start{grid-template-columns:minmax(240px,380px) minmax(0,1fr)}.panel-scroll-region{flex:1;min-height:0;overflow-y:auto}@media (width<=1024px){.panel-split,.panel-split--sidebar-end,.panel-split--sidebar-start{grid-template-columns:1fr}}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:var(--glass-border);border-radius:var(--card-radius);box-shadow:var(--glass-shadow);padding:var(--card-pad);transition:var(--transition-smooth)}.card:hover{border-color:#ffffff1a;box-shadow:0 12px 40px #00000080}.dashboard-command{flex-direction:column;grid-column:1/-1;gap:12px;display:flex}.dashboard-kpi-row{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.dashboard-kpi{text-align:left;border:1px solid var(--border-color);color:inherit;cursor:pointer;background:#0f172a8c;border-radius:10px;min-width:0;padding:12px 14px}.dashboard-kpi:disabled{cursor:default}.dashboard-kpi-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:.68rem;display:block}.dashboard-kpi-value{color:var(--text-primary);font-size:1.55rem;font-weight:650;line-height:1.1;display:block}.dashboard-kpi-hint{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.72rem;display:block;overflow:hidden}.dashboard-kpi-spark{margin-top:6px;display:block}.dashboard-kpi--ok .dashboard-kpi-value{color:var(--accent-teal)}.dashboard-kpi--warn .dashboard-kpi-value{color:var(--accent-warning,#fbbf24)}.dashboard-kpi--fail .dashboard-kpi-value{color:var(--accent-danger,#f87171)}.dashboard-kpi--info .dashboard-kpi-value{color:var(--text-primary)}.dashboard-exception-inbox{border:1px solid var(--border-color);background:#0f172a66;border-radius:10px;padding:12px 14px}.dashboard-exception-head{align-items:center;gap:8px;margin-bottom:8px;font-size:.8rem;font-weight:600;display:flex}.dashboard-exception-empty{color:var(--text-secondary);margin:0;font-size:.8rem}.dashboard-exception-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.dashboard-exception-item{background:#ffffff08;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;display:flex}.dashboard-exception-item div{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-exception-item span{color:var(--text-secondary)}.dashboard-exception-item--warning{border-left:3px solid var(--accent-warning,#fbbf24)}.dashboard-exception-item--info{border-left:3px solid var(--accent-blue)}.dashboard-module-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.dashboard-module-card{text-align:left;border:1px solid var(--border-color);color:inherit;cursor:pointer;background:#0f172a73;border-radius:10px;padding:12px 14px}.dashboard-module-card-head{align-items:center;gap:8px;margin-bottom:6px;font-size:.78rem;font-weight:600;display:flex}.dashboard-module-card-head svg:last-child{opacity:.5;margin-left:auto}.dashboard-module-card p{color:var(--text-secondary);margin:0;font-size:.78rem}.dashboard-metrics-pill{color:var(--text-secondary);align-items:center;gap:10px;font-size:.75rem;display:flex}.dashboard-metrics-pill a,.dashboard-metrics-link{color:var(--accent-teal);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.dashboard-wifi-chip,.dashboard-idle-chip{text-align:left;cursor:pointer;background:var(--bg-card);grid-column:1/-1;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:.8rem;display:flex}.dashboard-idle-chip svg{flex-shrink:0}.dashboard-idle-chip-cta{color:var(--text-muted);margin-left:auto;font-size:.75rem}.dashboard-module-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.dashboard-module-title{align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.dashboard-module-title h3{margin:0;font-size:.95rem}.dashboard-empty-cta{color:var(--text-muted);text-align:left;margin:8px 0 0;font-size:.8rem}.dashboard-empty-cta button{color:var(--accent-teal);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0}.dashboard-sec-load{text-align:left;flex-direction:column;gap:12px;width:100%;margin-top:4px;display:flex}.dashboard-sec-load-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.dashboard-sec-load-actions{flex-shrink:0;gap:6px;display:flex}.dashboard-sec-load-actions .btn{padding:6px}.dashboard-loadavg{gap:8px;display:flex}.dashboard-loadavg-cell{text-align:center;background:#ffffff08;border-radius:8px;flex:1;padding:8px 6px}.dashboard-loadavg-cell span{color:var(--text-muted);font-size:.7rem;display:block}.dashboard-ssl-row,.dashboard-lb-row{border-bottom:1px solid #ffffff0a;flex-direction:column;gap:4px;padding-bottom:8px;display:flex}.dashboard-ssl-row:last-child,.dashboard-lb-row:last-child{border-bottom:none;padding-bottom:0}.dashboard-ssl-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.dashboard-bar{background:#ffffff0d;border-radius:3px;width:100%;height:6px;overflow:hidden}.dashboard-bar>span{border-radius:3px;height:100%;display:block}.dashboard-grid .stat-card{min-height:0}@media (width<=1400px){.dashboard-kpi-row{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=1100px){.dashboard-kpi-row,.dashboard-module-row,.dashboard-exception-list{grid-template-columns:1fr 1fr}}@media (width<=640px){.dashboard-kpi-row,.dashboard-module-row,.dashboard-exception-list{grid-template-columns:1fr}}.dashboard-grid{gap:var(--grid-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dashboard-grid-row{gap:var(--grid-gap);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.dashboard-grid-row>*{min-width:0}.dashboard-span-2{grid-column:span 2}.dashboard-span-3{grid-column:span 3}.dashboard-stat-card{text-align:left;flex-direction:column;align-items:stretch;min-height:220px;display:flex}.dashboard-grid-row .stat-card,.dashboard-grid-row .dashboard-firewall-card,.dashboard-grid-row .dashboard-stat-card{height:100%}.col-span-3{grid-column:span 3}.topology-page{flex-direction:column;gap:12px;min-height:0;display:flex}.topology-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.topology-kpi{border:1px solid var(--border-color);background:#0f172a8c;border-radius:10px;min-width:0;padding:10px 12px}.topology-kpi span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:.68rem;display:block}.topology-kpi strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.topology-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.topology-filters{flex-wrap:wrap;flex:1;gap:6px;display:flex}.topology-filter{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#0f172a73;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:500}.topology-filter.is-active{color:var(--accent-blue);background:#38bdf81f;border-color:#38bdf873}.topology-search{border:1px solid var(--border-color);color:var(--text-primary);min-width:160px;font-size:.8rem;font-family:var(--font-sans);background:#00000059;border-radius:8px;padding:6px 10px}.topology-legend{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.72rem;display:flex}.topology-legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.topology-banner{border:1px solid var(--border-color);color:var(--text-secondary);background:#00000038;border-radius:8px;margin:0;padding:10px 12px;font-size:.82rem}.topology-banner--warn{background:#f59e0b14;border-color:#f59e0b66}.topology-stage{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:stretch;gap:16px;min-height:0;display:grid}.topology-canvas{background:radial-gradient(at 50% 42%,#38bdf81a 0%,#0f172ab8 52%,#020617eb 100%);height:min(72vh,760px);min-height:560px;padding:0;overflow:hidden}.topology-canvas svg{touch-action:none;width:100%;height:100%;display:block}.topology-inspector{flex-direction:column;min-height:0;max-height:min(72vh,760px);display:flex;overflow:hidden}.topology-inspector-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.topology-inspector-head h3{margin:0;font-size:.95rem;font-weight:600}.topology-inspector-body{flex-direction:column;gap:10px;font-size:.85rem;display:flex;overflow-y:auto}.topology-kv span{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.7rem;display:block}.topology-kv code,.topology-link{font-family:var(--font-mono);font-size:.78rem}.topology-link{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 0;display:block}.topology-link:hover{color:var(--accent-teal)}.topology-chip-row{flex-wrap:wrap;gap:6px;display:flex}.topology-subcard{background:#0000002e;border:1px solid #ffffff0a;border-radius:8px;padding:8px 10px;font-size:.75rem}.topology-subcard--route{background:#fb923c14;border-color:#fb923c33}.topology-hint{border-top:1px solid var(--border-color);color:var(--text-muted);padding-top:10px;font-size:.72rem}.labnet-page{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.labnet-sub{color:var(--text-muted);margin:2px 0 0;font-size:.78rem}.labnet-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.labnet-check{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.labnet-apply-list{margin:10px 0 0;padding-left:18px;font-size:.85rem;line-height:1.5}.labnet-stage{flex:1;grid-template-columns:140px minmax(0,1fr) 240px;gap:10px;min-height:0;display:grid}.labnet-stage--no-inspector{grid-template-columns:140px minmax(0,1fr)}.labnet-stage--no-palette{grid-template-columns:minmax(0,1fr) 240px}.labnet-stage--no-palette.labnet-stage--no-inspector{grid-template-columns:minmax(0,1fr)}.labnet-inspector-toggle,.labnet-palette-toggle{z-index:6;border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-primary);cursor:pointer;background:#0f172adb;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px}.labnet-inspector-toggle{right:10px}.labnet-palette-toggle{top:52px;left:10px}.labnet-palette-head{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:.78rem;display:flex}.labnet-palette-head .btn,.labnet-inspector .topology-inspector-head .btn{min-width:0;padding:4px 8px}.labnet-wire--route{stroke:#fbbf24}.labnet-wire--docker{stroke:#22d3ee}.labnet-wire--overlay{stroke-dasharray:7 5;stroke-width:1.6px}.labnet-wire--dnat{stroke:#f472b6}.labnet-wire--lb{stroke:#a78bfa}.labnet-wire--mwan{stroke:#34d399}.labnet-wire--pbr{stroke:#facc15}.labnet-wire--static{stroke:#94a3b8}.labnet-palette,.labnet-inspector{border:1px solid var(--border-color);background:#0f172a8c;border-radius:12px;flex-direction:column;gap:6px;min-height:0;padding:10px;display:flex;overflow:auto}.labnet-tool{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px;font-size:.78rem;display:flex}.labnet-tool.is-active,.labnet-tool:hover{border-color:var(--border-color-glow);color:var(--text-primary);background:#38bdf814}.labnet-hint{color:var(--text-muted);font-size:.72rem;line-height:1.4}.labnet-canvas-shell{flex-direction:column;flex:1;min-width:0;min-height:420px;display:flex;position:relative}.labnet-canvas{border:1px solid var(--border-color);background:#080c18d9;border-radius:12px;flex:1;min-height:420px;position:relative;overflow:auto}.labnet-world-space{position:relative}.labnet-world{transform-origin:0 0;background-color:#0000;background-image:linear-gradient(#38bdf80d 1px,#0000 1px),linear-gradient(90deg,#38bdf80d 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:20px 20px,20px 20px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;position:relative}.labnet-zoombar{z-index:6;border:1px solid var(--border-color);background:#080c18d1;border-radius:8px;align-items:center;gap:6px;margin:8px 0 0 8px;padding:4px 6px;display:inline-flex;position:sticky;top:8px}.labnet-zoom-label{text-align:center;min-width:48px;color:var(--text-muted);font-size:.75rem}.labnet-minimap{z-index:7;border:1px solid var(--border-color);cursor:crosshair;background:#080c18e0;border-radius:8px;width:192px;height:128px;position:absolute;bottom:8px;right:8px;overflow:hidden}.labnet-minimap-node{pointer-events:none;border-radius:1px;width:5px;height:5px;position:absolute}.labnet-minimap-view{pointer-events:none;box-sizing:border-box;background:#38bdf81f;border:1px solid #38bdf8;position:absolute}.labnet-popout-shell{min-height:100vh;color:var(--text-primary);background:#0a0d16;flex-direction:column;display:flex}.labnet-page--popout{min-height:100vh;padding:16px 18px 20px}.labnet-page--popout .labnet-stage{min-height:calc(100vh - 160px)}.labnet-wires{pointer-events:none;position:absolute;top:0;left:0}.labnet-wire-hit{fill:none;stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.labnet-wire{fill:none;stroke:#818cf8;stroke-width:2px;opacity:.85;pointer-events:none}.labnet-wire.is-selected{stroke:#f87171;stroke-width:3px;opacity:1}.labnet-wire.is-live{opacity:1;filter:drop-shadow(0 0 4px #22d3ee59)}.labnet-wire-flow{fill:none;stroke-width:2.5px;stroke-linecap:round;pointer-events:none;animation:linear infinite labnet-nic-flow}.labnet-wire-flow--tx{stroke:#22d3ee;stroke-dasharray:7 16}.labnet-wire-flow--rx{stroke:#c084fc;stroke-dasharray:5 18;animation-direction:reverse}.labnet-wire-rate{fill:#e2e8f0;pointer-events:none;paint-order:stroke;stroke:#080c18d9;stroke-width:3px;font-size:10px;font-weight:600}@keyframes labnet-nic-flow{to{stroke-dashoffset:-46px}}.labnet-link-row{align-items:center;gap:6px;display:flex}.labnet-link-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.labnet-node{width:96px;min-height:86px;color:var(--text-primary);text-align:center;cursor:grab;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;gap:2px;padding:0;display:flex;position:absolute}.labnet-glyph{pointer-events:none;display:block}.labnet-node strong{word-break:break-word;max-width:104px;font-size:.68rem;line-height:1.15}.labnet-node span{color:var(--text-muted);max-width:104px;font-size:.62rem}.labnet-ports{justify-content:center;gap:3px;min-height:10px;margin-top:-6px;display:flex}.labnet-port{cursor:pointer;background:#0f172a;border:1px solid #38bdf8;border-radius:2px;width:8px;height:8px;padding:0}.labnet-port:hover,.labnet-port.is-active{background:#22d3ee;border-color:#e0f2fe}.labnet-wire-role{fill:#94a3b8;pointer-events:none;paint-order:stroke;stroke:#080c18d9;stroke-width:3px;font-size:9px}.labnet-slot{min-width:140px;margin:0}.labnet-node.is-selected .labnet-glyph,.labnet-node.is-link-from .labnet-glyph{outline-offset:2px;border-radius:6px;outline:2px solid #38bdf8b3}.labnet-node.is-path .labnet-glyph{outline-offset:3px;outline:2px solid #38bdf8;box-shadow:0 0 12px #38bdf873}.labnet-wire.is-path{stroke:#38bdf8;stroke-width:2.6px;stroke-dasharray:none;filter:drop-shadow(0 0 4px #38bdf8cc)}.labnet-ping-out{white-space:pre-wrap;font-family:var(--font-mono,ui-monospace, monospace);max-height:8rem;margin:8px 0 0;font-size:.75rem;overflow:auto}.labnet-menu{z-index:4000;border:1px solid var(--border-color);background:#0f172afa;border-radius:10px;flex-direction:column;gap:2px;min-width:220px;max-width:min(280px,100vw - 16px);padding:6px;display:flex;position:fixed;overflow:visible;box-shadow:0 12px 32px #0006}.labnet-menu button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;display:flex}.labnet-menu button:hover:not(:disabled){background:#38bdf81f}.labnet-menu button:disabled{opacity:.4;cursor:not-allowed}.labnet-facts{flex-direction:column;gap:8px;margin:8px 0 12px;display:flex}.labnet-facts-block{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.72rem;display:flex}.labnet-nic-row{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;overflow:hidden}.labnet-nic-row--btn{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;margin:0;padding:2px 0;display:block}.labnet-nic-row--btn:hover,.labnet-nic-row.is-active{color:#38bdf8}.labnet-link-chip{color:var(--text-primary);cursor:pointer;background:#38bdf81a;border:1px solid #38bdf840;border-radius:999px;align-self:flex-start;padding:3px 8px;font-size:.7rem}.labnet-field{color:var(--text-muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:.72rem;display:flex}.labnet-field input,.labnet-field select,.labnet-field textarea{border:1px solid var(--border-color);color:var(--text-primary);background:#00000040;border-radius:8px;padding:8px}@media (width<=1100px){.labnet-stage,.labnet-stage--no-inspector,.labnet-stage--no-palette,.labnet-stage--no-palette.labnet-stage--no-inspector{grid-template-columns:1fr}.topology-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}.topology-stage{grid-template-columns:1fr}.topology-inspector{max-height:none}}.dashboard-alerts-section{grid-column:1/-1;padding:16px 20px}.dashboard-alerts-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.dashboard-alerts-header h3{margin:0;font-size:1rem}.dashboard-alerts-count{color:var(--text-secondary);margin-left:auto;font-size:.75rem}.dashboard-notification-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dashboard-notification-item{border-radius:8px;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.dashboard-notification-item--warning{background:#f59e0b14;border:1px solid #f59e0b33}.dashboard-notification-item--info{background:#38bdf814;border:1px solid #38bdf833}.dashboard-notification-item__icon{flex-shrink:0}.dashboard-notification-item__icon--warning{color:#f59e0b}.dashboard-notification-item__icon--info{color:var(--accent-blue)}.dashboard-notification-item__body{flex:1;min-width:0}.dashboard-notification-item__title{font-size:.85rem;font-weight:600}.dashboard-notification-item__message{color:var(--text-secondary);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:.8rem;display:-webkit-box;overflow:hidden}.dashboard-notification-item__action{flex-shrink:0;padding:4px 10px;font-size:.75rem}.dashboard-health-report-card{grid-column:1/-1;padding:16px 20px}.dashboard-health-report-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.dashboard-health-report-header h3{margin:0;font-size:1rem}.dashboard-health-report-meta{color:var(--text-secondary);margin-left:auto;font-size:.75rem}.dashboard-health-report-desc{color:var(--text-secondary);max-width:72ch;margin:0 0 14px;font-size:.82rem}.dashboard-health-report-fields{grid-template-columns:minmax(200px,280px) minmax(240px,1fr);align-items:end;gap:12px 16px;margin-bottom:8px;display:grid}.dashboard-health-report-field{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:.78rem;display:flex}.dashboard-health-report-field input{font-size:.82rem}.dashboard-health-report-field--cron input{font-family:var(--font-mono,monospace)}.dashboard-health-report-hint{color:var(--text-muted);margin:0 0 14px;font-size:.72rem}.dashboard-health-report-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.dashboard-health-report-toolbar__primary,.dashboard-health-report-toolbar__secondary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dashboard-health-report-toolbar__secondary{margin-left:auto}.dashboard-health-report-preview{white-space:pre-wrap;background:#00000040;border-radius:8px;max-height:220px;margin:0;padding:12px;font-size:.75rem;overflow:auto}@media (width<=1100px){.dashboard-notification-list,.dashboard-health-report-fields{grid-template-columns:1fr}.dashboard-health-report-toolbar__secondary{margin-left:0}}.hero-card{background:linear-gradient(135deg,#101426cc 0%,#161c36cc 100%);position:relative;overflow:hidden}.hero-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#c084fc1f 0%,#0000 70%);width:300px;height:300px;position:absolute;top:-50%;right:-20%}.hero-content{justify-content:space-between;align-items:center;display:flex}.hero-device-info{align-items:center;gap:20px;display:flex}.hero-logo{object-fit:contain;flex-shrink:0;width:auto;height:104px}.hero-card h1{letter-spacing:-.5px;margin-bottom:4px;font-size:1.45rem;font-weight:700}.subtitle{color:var(--text-secondary);font-size:.85rem}.system-actions{gap:12px;display:flex}.uptime-badge{color:var(--text-secondary);background:#ffffff0a;border-radius:4px;margin-top:8px;padding:4px 10px;font-size:.8rem;display:inline-block}.appliance-hero-banner{flex-shrink:0;margin-bottom:16px}.appliance-hero-banner__grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;display:grid}.appliance-hero-banner__brand{justify-self:start;align-items:center;min-width:0;display:flex}.appliance-hero-banner__brand .appliance-hero-banner__logo{width:auto;height:72px;display:block}.appliance-hero-banner__host{text-align:center;justify-self:center;min-width:0}.appliance-hero-banner__host .uptime-badge{margin-left:auto;margin-right:auto}.appliance-hero-banner__host h1{letter-spacing:-.5px;margin:0 0 4px;font-size:1.45rem;font-weight:700}.appliance-hero-banner__actions{justify-content:flex-end;justify-self:end}@media (width<=960px){.appliance-hero-banner__grid{grid-template-columns:1fr;gap:16px}.appliance-hero-banner__brand,.appliance-hero-banner__host,.appliance-hero-banner__actions{justify-self:stretch}.appliance-hero-banner__host{text-align:left}.appliance-hero-banner__host .uptime-badge{margin-left:0;margin-right:0}.appliance-hero-banner__actions{justify-content:flex-start}}.stat-card{text-align:center;flex-direction:column;align-items:center;min-height:13.5rem;display:flex}.stat-card.stat-card--wide-table{text-align:left;align-items:stretch}.stat-card.stat-card--wide-table .card-header{text-align:left}.dashboard-dhcp-dns-body{text-align:left;grid-template-columns:minmax(220px,.9fr) minmax(0,1.6fr);gap:16px;width:100%;margin-top:4px;display:grid}.dashboard-dns-summary,.dashboard-dhcp-leases{flex-direction:column;gap:10px;min-width:0;display:flex}.dashboard-dns-summary{background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;padding:12px 14px}.dashboard-dns-summary__title{color:var(--text-primary);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.dashboard-dns-summary__grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.dashboard-dns-summary__grid>div{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dashboard-dns-summary__wide{grid-column:1/-1}.dashboard-dhcp-meta-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.dashboard-dhcp-mono{color:var(--text-secondary);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.dashboard-dhcp-empty{color:var(--text-muted);margin:0;font-size:.8rem;font-style:italic}.dashboard-dhcp-iface-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dashboard-dhcp-iface-tab{color:var(--text-secondary);cursor:pointer;background:#ffffff08;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:.78rem;display:inline-flex}.dashboard-dhcp-iface-tab.is-active{color:var(--text-primary);background:#2dd4bf1a;border-color:#2dd4bf73}.dashboard-dhcp-iface-dot{background:var(--text-muted);border-radius:50%;width:7px;height:7px}.dashboard-dhcp-iface-dot.is-up{background:var(--accent-success,#22c55e)}.dashboard-dhcp-iface-count{background:#ffffff14;border-radius:999px;padding:1px 6px;font-size:.68rem}.dashboard-dhcp-meta-row{flex-wrap:wrap;align-items:flex-end;gap:12px 18px;display:flex}.dashboard-dhcp-meta-row>div{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dashboard-dhcp-action-msg{color:var(--accent-teal);margin:0;font-size:.75rem}.dashboard-dhcp-lease-table th:last-child,.dashboard-dhcp-lease-table td:last-child{width:88px}.dashboard-dhcp-lease-actions{justify-content:center;align-items:center;gap:6px;display:inline-flex}.dashboard-dhcp-delete-btn{color:#f87171;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:inline-flex}.dashboard-dhcp-delete-btn:disabled{opacity:.5;cursor:default}.dashboard-dhcp-reserve-btn{color:var(--accent-blue);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:inline-flex}.dashboard-dhcp-reserve-btn:disabled{opacity:.5;cursor:default}.dashboard-dhcp-reservations{flex-direction:column;gap:6px;font-size:.78rem;display:flex}.dashboard-dhcp-reservation-chips{flex-wrap:wrap;gap:6px;display:flex}.dashboard-dhcp-reservation-chip{color:var(--text-secondary);background:#ffffff0d;border:1px solid #ffffff14;border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem}@media (width<=960px){.dashboard-dhcp-dns-body{grid-template-columns:1fr}}.dashboard-monitored-row{gap:var(--grid-gap);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:100%;display:grid}.stat-card.stat-card--monitoring{text-align:left;align-items:stretch;height:100%;min-height:13.5rem;padding:20px 24px}.stat-card--monitoring .dashboard-card-title{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:1.05rem;font-weight:600;display:flex}.stat-card--monitoring .dashboard-card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:16px;padding-bottom:10px;display:flex}.stat-card--monitoring .dashboard-card-header--solo{justify-content:flex-start}.stat-card--monitoring .dashboard-card-body{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.monitored-app-row{border-bottom:1px solid #ffffff08;flex-direction:column;gap:10px;width:100%;padding:12px 0;display:flex}.monitored-app-row__info{align-items:flex-start;gap:12px;min-width:0;display:flex}.monitored-app-row__actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dashboard-network-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;width:100%;margin:0 0 10px;display:flex}.dashboard-network-header{justify-content:space-between;align-items:flex-start;gap:12px;width:100%;margin-bottom:10px}.dashboard-network-table-wrap{flex:1;width:100%;min-height:0;overflow:auto}.dashboard-network-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.86rem}.dashboard-network-table th,.dashboard-network-table td{text-align:left;vertical-align:middle;padding:8px 10px}.dashboard-network-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;padding-top:0;padding-bottom:6px;font-size:.7rem;font-weight:600}.dashboard-network-table td{border-bottom:1px solid #ffffff0d}.dashboard-network-table tbody tr:last-child td{border-bottom:none}.dashboard-network-table tbody tr:hover td{background:#ffffff05}.dashboard-network-table .iface-name{font-weight:600;font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-primary)}.dashboard-network-table .iface-status{white-space:nowrap}.dashboard-network-summary-table .iface-status{text-align:right;width:5.5rem}.dashboard-network-summary-table th.iface-status{text-align:right}.dashboard-network-table .iface-ip{font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-secondary);word-break:break-all;font-size:.8rem}.dashboard-network-summary-table th:first-child,.dashboard-network-summary-table td:first-child{width:46%}.dashboard-network-summary-table th:nth-child(2),.dashboard-network-summary-table td:nth-child(2){width:38%}.dashboard-network-summary-table th:nth-child(3),.dashboard-network-summary-table td:nth-child(3){width:16%}.dashboard-network-summary-table .iface-cell{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.dashboard-network-summary-table .iface-alias-chip{letter-spacing:.02em;color:var(--accent-teal);text-overflow:ellipsis;white-space:nowrap;background:#2dd4bf1a;border:1px solid #2dd4bf40;border-radius:4px;align-items:center;max-width:100%;padding:1px 6px;font-size:.68rem;font-weight:600;line-height:1.3;display:inline-flex;overflow:hidden}.dashboard-vpn-table{min-width:34rem}.dashboard-vpn-table th:first-child,.dashboard-vpn-table td:first-child{width:24%}.dashboard-vpn-table th:nth-child(2),.dashboard-vpn-table td:nth-child(2){width:14%}.dashboard-vpn-table th:nth-child(3),.dashboard-vpn-table td:nth-child(3){width:16%}.dashboard-vpn-table th:nth-child(4),.dashboard-vpn-table td:nth-child(4){width:28%}.dashboard-vpn-table th:nth-child(5),.dashboard-vpn-table td:nth-child(5),.dashboard-vpn-table .vpn-action-col{text-align:right;white-space:nowrap;width:18%;min-width:6.75rem}:is(.dashboard-vpn-table:not(:has(.vpn-action-col)) th:nth-child(4),.dashboard-vpn-table:not(:has(.vpn-action-col)) td:nth-child(4)){width:46%}.stat-card--vpn-tunnels{min-height:unset;align-self:start}.stat-card--vpn-tunnels .dashboard-network-table-wrap{overflow:auto hidden}.dashboard-vpn-table .vpn-type-cell,.dashboard-vpn-table .vpn-status-cell,.dashboard-vpn-table .vpn-transfer-cell{text-align:left}.dashboard-vpn-table .vpn-pill{letter-spacing:.02em;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;max-width:100%;padding:3px 8px;font-size:.68rem;font-weight:600;line-height:1.2;display:inline-flex}.dashboard-vpn-table .vpn-pill-type{color:var(--text-secondary);background:#ffffff0f;border:1px solid #ffffff0f}.dashboard-vpn-table .vpn-pill-up{color:var(--accent-success);background:#10b98124;border:1px solid #10b98138}.dashboard-vpn-table .vpn-pill-down{color:var(--accent-danger);background:#ef44441f;border:1px solid #ef444433}.dashboard-vpn-table .vpn-transfer-cell{color:var(--text-secondary);font-size:.78rem;font-family:var(--font-mono,ui-monospace, monospace)}.dashboard-vpn-table .vpn-action-btn{min-width:6.25rem;color:var(--bg-primary);justify-content:center;align-items:center;gap:5px;padding:5px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.dashboard-vpn-table .vpn-action-btn.btn-secondary{color:var(--text-primary)}.dashboard-vpn-table th:last-child,.dashboard-vpn-table .vpn-action-col{padding-right:4px}.dashboard-network-empty{text-align:center;width:100%;color:var(--text-muted);padding:28px 12px;font-size:.85rem}.card-header{align-items:center;gap:8px;width:100%;margin-bottom:14px;display:flex}.card-header h3{color:var(--text-secondary);font-size:.92rem;font-weight:600}.metric-display{flex-grow:1;justify-content:center;align-items:center;display:flex}.progress-ring-container{width:96px;height:96px;position:relative}.progress-ring{width:96px;height:96px;transform:rotate(-90deg)}.progress-ring-bg{fill:#0000;stroke:#ffffff08;stroke-width:8px}.progress-ring-bar{fill:#0000;stroke-width:8px;stroke-linecap:round;stroke-dasharray:314;transition:stroke-dashoffset .6s}.blue-glow{stroke:var(--accent-blue);filter:drop-shadow(0 0 6px #38bdf899)}.purple-glow{stroke:var(--accent-purple);filter:drop-shadow(0 0 6px #c084fc99)}.teal-glow{stroke:var(--accent-teal);filter:drop-shadow(0 0 6px #2dd4bf99)}.progress-text{fill:var(--text-primary);text-anchor:middle;transform-origin:48px 48px;font-size:1.15rem;font-weight:700;transform:rotate(90deg)}.card-footer{border-top:1px solid var(--border-color);width:100%;margin-top:12px;padding-top:16px}.info-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.8rem;display:block}.info-value{font-size:.95rem;font-weight:600}.cpu-model{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:.75rem;overflow:hidden}.bar-details{justify-content:space-around;width:100%;display:flex}.bar-col{flex-direction:column;display:flex}.loading-container{height:300px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:3px solid #38bdf81a;border-top:3px solid var(--accent-blue);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin;box-shadow:0 0 12px #38bdf833}.btn{font-family:var(--font-family);cursor:pointer;transition:var(--transition-smooth);border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--accent-blue), var(--accent-blue-deep));color:var(--bg-primary);box-shadow:0 4px 14px #38bdf833}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #38bdf866}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:var(--glass-border)}.btn-secondary:hover:not(:disabled){background:#ffffff14}.btn-warning{color:var(--accent-warning);background:#fbbf241a;border:1px solid #fbbf2433}.btn-warning:hover:not(:disabled){background:#fbbf2433}.btn-danger{color:var(--accent-danger);background:#f871711a;border:1px solid #f8717133}.btn-danger:hover:not(:disabled){background:#f8717133}.w-full{width:100%}.split-view{gap:var(--grid-gap);margin-top:var(--grid-gap);grid-template-columns:1fr 1fr;display:grid}.network-split-view{grid-template-columns:minmax(280px,360px) 1fr}.section-header{margin-bottom:var(--grid-gap);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.section-header h2{margin:0;font-size:1.05rem;font-weight:600}.panel-kpi-row,.topology-kpi-row{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px;display:grid}.panel-kpi,.topology-kpi{border:1px solid var(--border-color);background:#0f172a8c;border-radius:10px;min-width:0;padding:10px 12px}.panel-kpi span,.topology-kpi span{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:.68rem;display:block}.panel-kpi strong,.topology-kpi strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:600}.panel-kpi--ok strong{color:var(--accent-teal)}.panel-kpi--warn strong{color:var(--accent-warning)}.panel-kpi--fail strong{color:var(--accent-danger)}.panel-filters,.topology-filters{flex-wrap:wrap;flex:1;gap:6px;display:flex}.panel-filter,.topology-filter{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#0f172a73;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:500}.panel-filter.is-active,.topology-filter.is-active{color:var(--accent-blue);background:#38bdf81f;border-color:#38bdf873}.app-store-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;min-width:0;display:grid}.app-store-card{flex-direction:column;gap:10px;min-width:0;display:flex;overflow:hidden}.app-store-card-head{align-items:flex-start;gap:10px;min-width:0;display:flex}.app-store-card-head svg{flex-shrink:0}.app-store-card-head>div{flex:1;min-width:0}.app-store-card-head h4{text-overflow:ellipsis;white-space:nowrap;margin:0;padding-right:64px;font-size:1rem;font-weight:600;overflow:hidden}.app-store-card-meta{color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.app-store-card-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.app-store-chip{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:.62rem}.app-store-chip--docker{color:var(--accent-teal);background:#2dd4bf1f}.app-store-chip--cat{color:var(--text-secondary);background:#ffffff0d}.app-store-card-desc{color:var(--text-secondary);-webkit-line-clamp:4;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.82rem;line-height:1.4;display:-webkit-box;overflow:hidden}.app-store-card>div:last-child{margin-top:auto}.app-store-installed{position:absolute;top:12px;right:12px}.interface-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.interface-item{border:1px solid var(--border-color);cursor:pointer;transition:var(--transition-smooth);background:#ffffff05;border-radius:8px;padding:12px}.interface-item:hover{background:#ffffff0a;border-color:#38bdf833}.interface-item.selected{border-color:var(--accent-blue);background:#38bdf80d;box-shadow:0 0 12px #38bdf826}.iface-main{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.iface-name{font-size:.92rem;font-weight:600}.status-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:600}.status-up{color:var(--accent-success);background:#34d3991a}.status-down{color:var(--accent-danger);background:#f871711a}.status-unknown{color:var(--accent-warning);background:#fbbf241a}.network-interface-list-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.network-interface-list-head h3{margin:0;font-size:1rem}.network-interface-filter{border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-family);background:#00000040;border-radius:6px;min-width:92px;padding:5px 8px;font-size:.78rem}.network-interface-filter-summary{color:var(--text-muted);margin:0 0 10px;font-size:.72rem}.network-interface-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:8px;padding:18px 12px;font-size:.82rem;font-style:italic}.network-throughput-grid{text-align:left;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;width:100%;margin-top:12px;display:grid;overflow-y:auto}.network-throughput-item{border-bottom:1px solid #ffffff0a;min-width:0;padding-bottom:6px}.network-throughput-item-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.network-throughput-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.network-throughput-item-speeds{color:var(--text-secondary);flex-wrap:wrap;gap:8px 12px;font-size:.75rem;display:flex}.network-throughput-speed{align-items:center;gap:4px;min-width:0;display:flex}@media (width<=900px){.network-throughput-grid{grid-template-columns:1fr}}.iface-details p{color:var(--text-secondary);margin-bottom:4px;font-size:.85rem}.mac-addr{color:var(--text-muted);font-family:monospace}.settings-form{flex-direction:column;gap:14px;margin-top:12px;display:flex}.form-info-header{color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding-bottom:8px;font-size:.88rem}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.form-group input{border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-family);transition:var(--transition-smooth);background:#0003;border-radius:7px;padding:9px 11px;font-size:.88rem}.form-group input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 2px #38bdf826}.empty-state{text-align:center;height:300px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-icon{opacity:.3;margin-bottom:16px}.feedback-alert{border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:12px;font-size:.85rem;display:flex}.alert-success{color:var(--accent-success);background:#34d39914;border-color:#34d39926}.alert-error{color:var(--accent-danger);background:#f8717114;border-color:#f8717126}.error-card{text-align:center;background:#f8717105;border:1px solid #f871711a;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:16px;max-width:400px;margin:100px auto 0;padding:40px;display:flex}.text-danger{color:var(--accent-danger)}.services-container{flex-direction:column;gap:20px;display:flex}.controls-row{justify-content:space-between;align-items:center;display:flex}.search-bar{width:320px;position:relative}.search-icon{color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-bar input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-family);transition:var(--transition-smooth);background:#ffffff08;border-radius:8px;padding:10px 14px 10px 38px;font-size:.9rem}.search-bar input:focus{border-color:var(--accent-purple);outline:none;box-shadow:0 0 0 2px #c084fc26}.table-card{-webkit-overflow-scrolling:touch;padding:0;overflow:auto hidden}.services-table{border-collapse:collapse;text-align:left;width:100%}.services-table th,.services-table td{padding:var(--table-cell-pad-y) var(--table-cell-pad-x);border-bottom:1px solid var(--border-color)}.services-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:#ffffff03;font-size:.78rem;font-weight:600}.services-table tr:last-child td{border-bottom:none}.services-table tr:hover td{background:#ffffff03}.service-name-cell{color:var(--text-primary);align-items:center;gap:8px;font-family:monospace;font-size:.82rem;display:flex}.service-icon-inline{color:var(--text-muted)}.desc-cell{color:var(--text-secondary);font-size:.82rem}.badge{border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:600}.badge-active{color:var(--accent-success);background:#34d3991a}.badge-inactive{color:var(--text-muted);background:#ffffff0d}.substate-label{color:var(--text-secondary);font-family:monospace;font-size:.85rem}.actions-header{text-align:right}.actions-cell{justify-content:flex-end;gap:8px;display:flex}.btn-action{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;width:30px;height:30px;transition:var(--transition-smooth);background:#ffffff08;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.btn-action:hover:not(:disabled){color:var(--text-primary);border-color:#fff3}.btn-action-start:hover:not(:disabled){color:var(--accent-success);background:#34d3991a;border-color:#34d3994d}.btn-action-stop:hover:not(:disabled){color:var(--accent-danger);background:#f871711a;border-color:#f871714d}.btn-action-restart:hover:not(:disabled){color:var(--accent-purple);background:#c084fc1a;border-color:#c084fc4d}.docker-containers-table{table-layout:fixed;min-width:960px}.docker-containers-table th,.docker-containers-table td{overflow:hidden}.docker-containers-table td{vertical-align:middle}.docker-containers-table .container-cell{min-width:0;max-width:100%}.docker-containers-table .container-cell .container-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.docker-containers-table .container-cell .container-image{font-family:var(--font-mono,monospace);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.75rem;display:block;overflow:hidden}.docker-containers-table .port-tags{flex-wrap:wrap;gap:4px;max-width:100%;display:flex}.docker-containers-table .port-tag{font-size:.72rem;font-family:var(--font-mono,monospace);background:color-mix(in srgb, var(--accent-blue) 12%, transparent);color:var(--accent-blue);border:1px solid color-mix(in srgb, var(--accent-blue) 22%, transparent);border-radius:4px;padding:2px 6px;line-height:1.3}.docker-containers-table .status-badge{text-overflow:ellipsis;white-space:nowrap;border-radius:12px;align-items:center;gap:6px;max-width:100%;padding:4px 10px;font-size:.72rem;font-weight:600;line-height:1.3;display:inline-flex;overflow:hidden}.docker-containers-table .resource-cell{min-width:0}.docker-containers-table .resource-value{font-family:var(--font-mono,monospace);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:.78rem;display:block;overflow:hidden}.docker-containers-table .resource-bar{background:#ffffff0d;border-radius:2px;width:72px;height:4px;overflow:hidden}.docker-containers-table .resource-bar-fill{border-radius:2px;height:100%;transition:width .3s}.docker-containers-table .actions-header,.docker-containers-table .actions-cell{width:176px;min-width:176px;max-width:176px}.docker-containers-table .actions-cell{text-align:right;vertical-align:middle;white-space:nowrap;padding-right:16px;display:table-cell;overflow:visible}.docker-containers-table .actions-group{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.empty-table-state{text-align:center;color:var(--text-muted);font-style:italic;padding:40px!important}.terminal-container{flex-direction:column;gap:20px;height:calc(100vh - 140px);display:flex}.connection-badge{border-radius:20px;margin-left:auto;padding:4px 10px;font-size:.75rem;font-weight:600}.connection-badge.connected{color:var(--accent-success);background:#34d3991a;box-shadow:0 0 8px #34d39933}.connection-badge.disconnected{color:var(--accent-danger);background:#f871711a}.terminal-card-wrapper{border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;flex-grow:1;display:flex;overflow:hidden;background:#0a0d16!important;padding:16px!important}.xterm-instance-container{flex-grow:1;width:100%;height:100%;min-height:380px}.xterm-viewport,.xterm-screen{background-color:#0a0d16!important}.login-screen{z-index:9999;position:fixed;top:0;left:0}.login-container{box-sizing:border-box;background-color:var(--bg-primary);justify-content:center;align-items:stretch;width:100vw;min-height:100vh;padding:0;display:flex;position:relative;overflow:hidden}.login-background{pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-background-image{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.login-orb{filter:blur(80px);opacity:.32;border-radius:50%;position:absolute}.login-orb-1{background:#38bdf859;width:320px;height:320px;top:-80px;left:-60px}.login-orb-2{background:#c084fc47;width:360px;height:360px;bottom:-120px;right:-100px}.login-grid{opacity:.65;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 30% 20%,#000 15%,#0000 72%);mask-image:radial-gradient(circle at 30% 20%,#000 15%,#0000 72%)}.login-layout{z-index:1;grid-template-columns:minmax(280px,1.1fr) minmax(360px,.9fr);width:100%;min-height:100vh;display:grid;position:relative}.login-hero{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(135deg,#080f1cb8,#0a16288c);border-right:1px solid #ffffff0f;justify-content:center;align-items:center;padding:3rem;display:flex}.login-hero-content{width:100%;max-width:540px}.login-hero-showcase{text-align:center;background:#090c1599;border:1px solid #38bdf840;border-radius:1rem;margin-bottom:1.25rem;padding:2rem;box-shadow:0 20px 48px #00000073,0 0 32px #38bdf81f}.login-hero-logo-img{object-fit:cover;border:1px solid #38bdf859;border-radius:16px;width:5rem;height:5rem;margin-bottom:1.25rem;box-shadow:0 12px 32px #38bdf833}.login-hero-title{color:var(--text-primary);letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.65rem;font-weight:700;line-height:1.2}.login-hero-text{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.6}.login-hero-caption{color:var(--text-secondary);text-align:center;margin:0 0 1.25rem;font-size:.88rem;line-height:1.5}.login-feature-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.1rem;margin:0;padding:0;list-style:none;display:grid}.login-feature-list li{color:var(--text-secondary);align-items:flex-start;gap:.55rem;font-size:.82rem;line-height:1.35;display:flex}.login-feature-list li svg{color:var(--accent-blue);flex-shrink:0;margin-top:.1rem}.login-feature-list li.login-feature-span{grid-column:1/-1;justify-content:center;padding-top:.15rem}.login-panel{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#070c168c,#080e1ab8);justify-content:center;align-items:center;padding:2rem;display:flex}.login-card{z-index:1;border:1px solid #ffffff1a;border-radius:1.25rem;width:100%;max-width:420px;padding:2.25rem;position:relative;box-shadow:0 24px 60px #0000008c}.login-brand{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.login-logo{background:#38bdf814;border:1px solid #38bdf84d;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:4.5rem;height:4.5rem;display:flex;overflow:hidden;box-shadow:0 8px 24px #38bdf82e}.login-logo img{object-fit:cover;width:100%;height:100%}.login-logo-2fa{width:3.5rem;height:3.5rem}.login-title{color:var(--text-primary);font-size:1.45rem;font-weight:700;line-height:1.2}.login-subtitle{color:var(--text-secondary);text-transform:none;letter-spacing:normal;margin-top:.35rem;font-size:.85rem}.login-form{flex-direction:column;gap:1.35rem;display:flex}.login-fields{background:#03071259;border:1px solid #ffffff0f;border-radius:.85rem;flex-direction:column;gap:.9rem;padding:1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;display:flex}.login-field label{color:var(--text-secondary);margin-bottom:0;padding-left:.1rem;font-size:.78rem;font-weight:600}.login-input-wrap{border:1px solid var(--border-color);background:#030712;border-radius:.7rem;align-items:stretch;min-height:2.85rem;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.login-input-wrap:focus-within{border-color:var(--accent-blue);box-shadow:0 0 0 3px #38bdf824}.login-input-icon{width:2.85rem;color:var(--text-muted);background:#ffffff05;border-right:1px solid #ffffff0f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-input-wrap:focus-within .login-input-icon{color:var(--accent-blue)}.login-input{width:100%;min-width:0;color:var(--text-primary);font-size:.9rem;font-family:var(--font-family);background:0 0;border:none;flex:1;padding:.8rem .95rem}.login-input:focus{box-shadow:none;outline:none}.login-input::placeholder{color:var(--text-muted);opacity:.85}.login-toggle-password{width:2.65rem;color:var(--text-muted);cursor:pointer;background:#ffffff05;border:none;border-left:1px solid #ffffff0f;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .2s,background-color .2s;display:inline-flex}.login-toggle-password:hover{color:var(--accent-blue);background:#38bdf80f}.login-input-wrap .twofa-code-input{letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;padding-left:.5rem;padding-right:.5rem;font-family:ui-monospace,monospace;font-size:1.1rem}.login-submit-btn{background:linear-gradient(135deg, var(--accent-blue), var(--accent-blue-deep));justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:0;padding:.85rem 1rem;display:inline-flex;box-shadow:0 8px 24px #38bdf847}.login-back-btn{justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.5rem;display:inline-flex}.login-error{margin-top:0}.login-actions{text-align:center;margin-top:1rem}.login-forgot-btn{color:var(--accent-blue);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.85rem;text-decoration:underline}.login-forgot-btn:hover{color:#7dd3fc}.login-footer{text-align:center;color:var(--text-muted);letter-spacing:.04em;margin-top:1.5rem;font-size:.72rem}.login-loading{text-align:center;color:var(--text-secondary);padding:2rem 0}.login-loading p{margin-top:.75rem;font-size:.9rem}.input-with-icon{width:100%;position:relative}.input-icon{color:var(--text-muted);transition:var(--transition-smooth);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-with-icon input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-family);transition:var(--transition-smooth);background:#0000004d;border-radius:10px;padding:12px 14px 12px 42px;font-size:.95rem}.input-with-icon input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 2px #38bdf826}.input-with-icon input:focus+.input-icon{color:var(--accent-blue)}.tab-loader{min-height:12rem;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:.82rem;display:flex}.diag-deps-badge{color:var(--accent-warning);background:#fbbf241f;border:1px solid #fbbf2459;border-radius:999px;padding:.15rem .45rem;font-size:.62rem;font-weight:600}.diag-refresh-deps-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;display:inline-flex}.diag-refresh-deps-btn:hover{color:var(--accent-blue)}.diag-tool-status{vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.diag-tool-status.available{background:var(--accent-success);box-shadow:0 0 6px #34d39980}.diag-tool-status.missing{background:var(--accent-warning);box-shadow:0 0 6px #fbbf2480}.diag-tool-status.limited{background:#60a5fa;box-shadow:0 0 6px #60a5fa73}.diag-export-report-btn{background:linear-gradient(135deg, var(--accent-blue), var(--accent-blue-deep))!important}.diag-install-chip{border:1px solid var(--border-color-glow);color:var(--accent-blue);cursor:pointer;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.15rem .4rem;font-size:.62rem}.diag-install-chip:hover{background:#38bdf81a}@media (width<=900px){.login-layout{grid-template-columns:1fr}.login-hero{background:linear-gradient(#38bdf80f,#0000);border-bottom:1px solid #ffffff0f;border-right:none;padding:1.25rem 1.5rem 0}.login-hero-content{max-width:100%}.login-hero-showcase{margin-bottom:.85rem;padding:1.25rem}.login-hero-title{font-size:1.25rem}.login-hero-text{display:none}.login-hero-caption{margin-bottom:0;font-size:.8rem}.login-feature-list{display:none}.login-panel{padding:1.5rem}}.filemanager-container{flex-direction:column;gap:20px;display:flex}.filemanager-toolbar{border:1px solid var(--border-color);background:#ffffff05;border-radius:12px;align-items:center;gap:16px;padding:12px 18px;display:flex}.breadcrumbs-bar{color:var(--text-secondary);flex-wrap:wrap;flex-grow:1;align-items:center;gap:4px;font-family:monospace;font-size:.95rem;display:flex}.breadcrumb-link{cursor:pointer;transition:var(--transition-smooth);border-radius:4px;padding:4px 8px}.breadcrumb-link:hover{color:var(--accent-teal);background:#ffffff0d}.breadcrumb-separator{color:var(--text-muted);font-weight:700}.files-table{border-collapse:collapse;table-layout:fixed;width:100%}.files-table th,.files-table td{border-bottom:1px solid var(--border-color);text-overflow:ellipsis;white-space:nowrap;padding:14px 16px;overflow:hidden}.files-table th:first-child,.files-table td:first-child{width:45%}.files-table th:nth-child(2),.files-table td:nth-child(2){width:12%}.files-table th:nth-child(3),.files-table td:nth-child(3){width:13%}.files-table th:nth-child(4),.files-table td:nth-child(4){width:22%}.fe-content .files-table th:first-child,.fe-content .files-table td:first-child{width:auto;min-width:0}.fe-content .files-table th:nth-child(2),.fe-content .files-table td:nth-child(2){width:88px}.fe-content .files-table th:nth-child(3),.fe-content .files-table td:nth-child(3){width:96px}.fe-content .files-table th:nth-child(4),.fe-content .files-table td:nth-child(4){width:148px}.fe-content .files-table td.file-name-cell{overflow:hidden}.fe-content .files-table th:nth-child(5),.fe-content .files-table td:nth-child(5){display:none}.network-vlan-table{border-collapse:collapse;table-layout:fixed;width:100%}.network-vlan-table th,.network-vlan-table td{border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;padding:12px 14px;overflow:hidden}.network-vlan-table th{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;background:#ffffff03;font-size:.72rem;font-weight:600}.network-vlan-table td{color:var(--text-primary);font-size:.875rem}.network-vlan-table .col-device{width:22%}.network-vlan-table .col-parent{width:18%}.network-vlan-table .col-vlan-id,.network-vlan-table .col-state{width:10%}.network-vlan-table .col-connection{width:30%}.network-vlan-table .col-action{text-align:center;width:10%}.network-vlan-table td.mono{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:.85rem}.network-vlan-table .vlan-state-pill{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.network-vlan-table .vlan-state-pill.is-up{color:var(--accent-teal);background:#14b8a61f;border:1px solid #14b8a640}.network-vlan-table .vlan-state-pill.is-down{color:var(--text-secondary);border:1px solid var(--border-color);background:#ffffff0a}.network-vlan-form{border:1px solid var(--border-color);background:#ffffff04;border-radius:8px;grid-template-columns:minmax(180px,1.4fr) 110px minmax(160px,1fr) auto;align-items:end;gap:12px;margin-bottom:16px;padding:16px;display:grid}@media (width<=900px){.network-vlan-form{grid-template-columns:1fr 1fr}}@media (width<=560px){.network-vlan-form{grid-template-columns:1fr}}.files-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:#ffffff03;font-size:.85rem;font-weight:600}.guest-routes-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:.72rem}.guest-routes-table th,.guest-routes-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:8px 10px;line-height:1.35}.guest-routes-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#ffffff05;font-size:.68rem;font-weight:600}.guest-routes-table td.mono{word-break:break-all;white-space:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.guest-routes-table .route-actions{flex-wrap:nowrap;justify-content:flex-end;gap:4px;width:100%;display:inline-flex}.guest-routes-table .route-actions .btn{min-width:unset;padding:3px 6px;font-size:.68rem}.route-type-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:2px 6px;font-size:.62rem;font-weight:600;display:inline-block}.route-type-badge.saved{color:#34d399;background:#34d3991f;border:1px solid #34d39940}.route-type-badge.system{color:var(--text-muted);background:#94a3b814;border:1px solid #94a3b826}.port-forward-list{flex-direction:column;gap:10px;display:flex}.port-forward-rule{border:1px solid var(--border-color);background:#ffffff05;border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:12px 16px;padding:14px 16px;display:grid}.port-forward-rule-main{flex-wrap:wrap;align-items:center;gap:10px 14px;min-width:0;display:flex}.port-forward-endpoint{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.port-forward-endpoint code{font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--text-primary);word-break:break-all;font-size:.88rem}.port-forward-port{color:var(--accent-teal);font-weight:600}.port-forward-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);flex:0 0 100%;font-size:.68rem;font-weight:700}.port-forward-sep{color:var(--text-muted);-webkit-user-select:none;user-select:none}.port-forward-proto{text-transform:uppercase;padding:2px 7px;font-size:.68rem}.port-forward-arrow{color:var(--accent-teal);flex-shrink:0}.port-forward-meta{color:var(--text-muted);grid-column:1/-1;align-items:center;gap:6px;margin-top:-4px;font-size:.8rem;display:flex}.port-forward-actions{justify-content:flex-end;align-self:start;gap:6px;display:flex}.port-forward-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:10px;padding:24px}@media (width<=720px){.port-forward-rule{grid-template-columns:1fr}.port-forward-actions{justify-content:flex-start}.port-forward-arrow{transform:rotate(90deg)}}.vm-manager-container{flex-direction:column;gap:4px;display:flex}.vm-manager-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.vm-manager-title{align-items:center;gap:10px;min-width:0;display:flex}.vm-manager-subtitle{color:var(--text-secondary);font-size:.8rem}.hypervisor-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}@media (width<=900px){.vm-manager-header{flex-direction:column;align-items:stretch}.hypervisor-toolbar{justify-content:flex-start}}.hypervisor-subtabs{border:1px solid var(--border-color);background:#ffffff05;border-radius:10px;flex-wrap:wrap;gap:8px;padding:4px;display:flex}.hypervisor-subtab{color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:.88rem;font-weight:600;display:inline-flex}.hypervisor-subtab:hover{color:var(--text-primary);background:#ffffff0a}.hypervisor-subtab.active{color:var(--text-primary);background:#2dd4bf1f;box-shadow:inset 0 0 0 1px #2dd4bf40}.vm-fleet-summary{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:.75rem;display:flex}.vm-fleet-summary span{background:#ffffff08;border:1px solid #ffffff0f;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.vm-group-filter{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.vm-group-chip{appearance:none;color:var(--text-secondary);cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:.75rem;transition:background .15s,border-color .15s,color .15s}.vm-group-chip:hover{color:var(--text-primary);border-color:#60a5fa59}.vm-group-chip.active{color:var(--accent-blue,#60a5fa);background:#3b82f629;border-color:#60a5fa73}.vm-monitor-strip{background:#00000029;border:1px solid #ffffff0d;border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.vm-monitor-strip-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:.68rem;display:inline-flex}.vm-monitor-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}@media (width>=900px){.vm-monitor-strip-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.vm-metric{flex-direction:column;gap:6px;min-width:0;display:flex}.vm-metric-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.vm-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;font-size:.68rem;display:inline-flex}.vm-metric-value{color:var(--text-primary);font-size:.78rem;font-family:var(--font-mono,monospace);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.vm-metric-track{background:#ffffff0f;border-radius:999px;height:6px;overflow:hidden}.vm-metric-fill{border-radius:999px;height:100%;transition:width .45s}.vm-metric-io-hint{color:var(--text-muted);font-size:.68rem}.hypervisor-network-layout{grid-template-columns:minmax(240px,320px) 1fr;align-items:start;gap:16px;display:grid}.hypervisor-network-sidebar{padding:12px}.hypervisor-network-sidebar-section+.hypervisor-network-sidebar-section{border-top:1px solid var(--border-color);margin-top:16px;padding-top:16px}.hypervisor-network-sidebar-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.hypervisor-network-item{text-align:left;border:1px solid var(--border-color);width:100%;color:var(--text-primary);cursor:pointer;transition:var(--transition-smooth);background:#ffffff05;border-radius:8px;margin-bottom:6px;padding:10px 12px;display:block}.hypervisor-network-item:hover{border-color:#2dd4bf59}.hypervisor-network-item.active{background:#2dd4bf14;border-color:#2dd4bf80}.hypervisor-network-item-meta{color:var(--text-muted);flex-wrap:wrap;gap:6px;margin-top:4px;font-size:.75rem;display:flex}.hypervisor-network-detail{min-height:420px;padding:20px}.hypervisor-network-detail-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:18px;padding-bottom:14px;display:flex}.hypervisor-network-info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px;display:grid}.hypervisor-network-info-grid>div{border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;padding:10px 12px}.hypervisor-network-info-grid span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.72rem;display:block}.hypervisor-lab-tools{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:0 0 4px;display:grid}.hypervisor-lab-tool{border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;padding:12px}.hypervisor-lab-tool-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.hypervisor-lab-tool h6{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-size:.72rem;font-weight:600}.hypervisor-lab-tool p{color:var(--text-secondary);margin:0 0 10px;font-size:.75rem;line-height:1.4}.hypervisor-lab-tool-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.hypervisor-lab-field{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.72rem;display:flex}.hypervisor-lab-field input{width:92px}.hypervisor-lab-tool.recipe{grid-column:1/-1}.hypervisor-lab-recipe-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:8px 12px;margin-bottom:10px;display:grid}.hypervisor-lab-recipe-grid .hypervisor-lab-field input,.hypervisor-lab-recipe-grid .hypervisor-lab-field select{width:100%}.hypervisor-lab-alerts{max-height:9.5rem;color:var(--text-secondary);margin:8px 0 0;padding:0;font-size:.75rem;line-height:1.4;list-style:none;overflow:auto}.hypervisor-lab-alerts li{border-top:1px solid var(--border-color,#ffffff14);padding:4px 0}.hypervisor-lab-alerts-empty{color:var(--text-muted);margin:8px 0 0;font-size:.75rem}.hypervisor-lab-report{margin-top:10px}.hypervisor-lab-report-pre{white-space:pre-wrap;background:var(--bg-secondary,#0003);border-radius:6px;max-height:12rem;margin:8px 0 0;padding:8px 10px;font-size:.72rem;line-height:1.4;overflow:auto}.hypervisor-lab-dns{color:var(--text-secondary);flex-wrap:wrap;gap:12px 20px;margin:0 0 10px;font-size:.78rem;display:flex}.hypervisor-lab-dns code{font-size:.78rem}.hypervisor-network-section{margin-top:20px}.hypervisor-network-section h5{align-items:center;gap:8px;margin:0 0 10px;font-size:.92rem;display:flex}.hypervisor-network-table{border-collapse:collapse;width:100%;font-size:.85rem}.hypervisor-network-table th,.hypervisor-network-table td{border-bottom:1px solid var(--border-color);text-align:left;padding:10px 12px}.hypervisor-network-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.hypervisor-network-dhcp-form{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:12px;display:grid}.hypervisor-network-member-list{flex-wrap:wrap;gap:8px;display:flex}.hypervisor-network-member{border:1px solid var(--border-color);background:#ffffff05;border-radius:6px;padding:6px 10px}.hypervisor-network-member.is-vnet{background:#2dd4bf14;border-color:#2dd4bf59}.hypervisor-network-empty{text-align:center;min-height:320px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}@media (width<=900px){.hypervisor-network-layout{grid-template-columns:1fr}}.vm-template-catalog{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.vm-template-catalog-compact{margin-bottom:4px}.vm-template-card{border:1px solid var(--border-color);background:#ffffff05;border-radius:10px;padding:14px}.vm-template-pick{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;text-align:left;background:#00000026;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.vm-template-pick small{color:var(--text-muted);font-size:.72rem}.vm-template-pick.active,.vm-template-pick:hover{background:#2dd4bf14;border-color:#2dd4bf73}.file-item-row{cursor:pointer;transition:var(--transition-smooth)}.file-item-row.selected td{background:#14b8a614}.file-grid-view{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.file-grid-item{border:1px solid var(--border-color);cursor:pointer;transition:var(--transition-smooth);background:#00000026;border-radius:10px;flex-direction:column;align-items:center;gap:8px;min-height:110px;padding:14px 10px;display:flex}.file-grid-item:hover,.file-grid-item.selected{background:#14b8a614;border-color:#14b8a673}.file-grid-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.8rem;font-weight:500;overflow:hidden}.file-grid-meta{color:var(--text-secondary);font-size:.7rem}.file-name-cell{align-items:center;gap:12px;min-width:0;font-weight:500;display:flex}.file-name-cell span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.folder-icon-color{color:#f59e0b;filter:drop-shadow(0 0 4px #f59e0b33)}.file-icon-color{color:var(--text-secondary)}.file-type-label{color:var(--text-secondary);background:#ffffff0a;border-radius:4px;padding:3px 8px;font-size:.8rem}.size-cell,.date-cell{color:var(--text-secondary);font-family:monospace;font-size:.85rem}.mobile-menu-toggle{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:4px;display:none}.sidebar-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px;display:none;position:absolute;top:18px;right:12px}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);z-index:998;background:#0009;position:fixed;inset:0}@media (width<=1200px){.status-sidebar{display:none}}@media (width<=768px){.mobile-menu-toggle,.sidebar-close-btn{display:block}.sidebar{z-index:999;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:10px 0 30px #000000b3;width:260px!important;padding:24px 16px!important}.sidebar.open{transform:translate(0)}.main-header{flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 16px}.breadcrumbs-prefix,.badge-remote-ip{display:none}.header-status{border-top:1px solid #ffffff0d;flex-wrap:wrap;justify-content:flex-start;width:100%;margin-top:4px;padding-top:8px;gap:8px!important}.header-user-badge{padding:4px 8px!important}.user-badge-label,.user-badge-role{display:none}.content-body{padding:12px}.dashboard-grid{grid-template-columns:1fr;gap:12px}.dashboard-grid-row{grid-template-columns:1fr}.dashboard-span-2,.dashboard-span-3{grid-column:1/-1}.col-span-3,.col-span-2{grid-column:1/-1!important}.dashboard-monitored-row{grid-template-columns:1fr}.split-view,.network-split-view{grid-template-columns:1fr;gap:12px}.table-card{-webkit-overflow-scrolling:touch;border-radius:8px;width:100%;overflow-x:auto}.services-table,.files-table{min-width:500px}.hero-content{flex-direction:column;align-items:flex-start;gap:12px}.system-actions{width:100%}.system-actions button{flex:1}.terminal-container{height:calc(100vh - 200px)}.modal-overlay{padding:8px}.terminal-modal-card,.modal-card{border-radius:8px!important;width:100%!important;height:95vh!important;max-height:none!important}.controls-row{flex-direction:column;align-items:stretch;gap:12px}.search-bar{width:100%!important}.diagnostics-tab-bar{gap:4px;padding-bottom:6px}}@media (width<=480px){.header-status{gap:6px!important}.header-icon-btn{width:32px!important;height:32px!important}.header-user-badge span{display:none!important}.header-theme-container{padding:4px!important}.header-theme-container select{max-width:100px;font-size:.75rem!important}.header-solar-accent-select{max-width:88px!important;padding-left:6px!important}}body.theme-midnight-teal{--bg-primary:#090c15;--bg-secondary:#101426;--bg-tertiary:#161c36;--accent-blue:#38bdf8;--accent-purple:#c084fc;--accent-teal:#2dd4bf;--text-primary:#f8fafc;--text-secondary:#94a3b8}body.theme-cyberpunk{--bg-primary:#0b0214;--bg-secondary:#130321;--bg-tertiary:#1c0532;--border-color:#ff007f26;--border-color-glow:#00f0ff4d;--accent-blue:#00f0ff;--accent-purple:#ff007f;--accent-teal:#00ff9f;--accent-success:#39ff14;--accent-warning:#ffb800;--accent-danger:#ff073a;--text-primary:#fff;--text-secondary:#d373ff;--text-muted:#7d5a9c}body.theme-dracula{--bg-primary:#282a36;--bg-secondary:#21222c;--bg-tertiary:#191a21;--border-color:#ffffff0a;--border-color-glow:#bd93f94d;--accent-blue:#8be9fd;--accent-purple:#bd93f9;--accent-teal:#50fa7b;--accent-success:#50fa7b;--accent-warning:#f1fa8c;--accent-danger:#f55;--text-primary:#f8f8f2;--text-secondary:#6272a4;--text-muted:#44475a}body.theme-classic-slate{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--border-color:#ffffff14;--border-color-glow:#60a5fa4d;--accent-blue:#60a5fa;--accent-purple:#c084fc;--accent-teal:#34d399;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b}body.theme-solar-ops{--bg-primary:#002b36;--bg-secondary:#073642;--bg-tertiary:#0a4b5c;--border-color:#93a1a124;--border-color-glow:#268bd247;--glass-bg:#073642c7;--glass-shadow:0 8px 32px 0 #00000073;--text-primary:#eee8d5;--text-secondary:#93a1a1;--text-muted:#657b83;--accent-blue:#61afef;--accent-blue-deep:#268bd2;--accent-purple:#6c71c4;--accent-teal:#56b6c2;--accent-success:#95c356;--accent-warning:#e5c07b;--accent-danger:#ff6a64}body.theme-solar-ops[data-solar-accent=tangerine]{--border-color-glow:#fb923c52;--accent-blue:#fb923c;--accent-blue-deep:#ea580c;--accent-purple:#f472b6;--accent-teal:#fdba74;--accent-success:#a3e635;--accent-warning:#fcd34d;--accent-danger:#ef4444}body.theme-solar-ops[data-solar-accent=magenta]{--border-color-glow:#c084fc52;--accent-blue:#c084fc;--accent-blue-deep:#9333ea;--accent-purple:#e879f9;--accent-teal:#a78bfa}body.theme-solar-ops[data-solar-accent=emerald]{--border-color-glow:#34d39947;--accent-blue:#34d399;--accent-blue-deep:#059669;--accent-purple:#6ee7b7;--accent-teal:#2dd4bf}body.theme-solar-ops[data-solar-accent=amber]{--border-color-glow:#fbbf244d;--accent-blue:#fbbf24;--accent-blue-deep:#d97706;--accent-purple:#f59e0b;--accent-teal:#fcd34d;--accent-danger:#fb7185}body.theme-ocean-depth{--bg-primary:#01131f;--bg-secondary:#062033;--bg-tertiary:#0b334d;--border-color:#7dd3fc1a;--border-color-glow:#22d3ee47;--glass-bg:#062033c7;--glass-shadow:0 8px 32px 0 #010a128c;--accent-blue:#38bdf8;--accent-blue-deep:#0284c7;--accent-purple:#67e8f9;--accent-teal:#2dd4bf;--accent-success:#34d399;--accent-warning:#fbbf24;--accent-danger:#fb7185;--text-primary:#e0f2fe;--text-secondary:#7dd3fc;--text-muted:#4b8eae}body.theme-graphite-minimal{--font-family:Inter, "IBM Plex Sans", system-ui, -apple-system, sans-serif;--bg-primary:#0c0d10;--bg-secondary:#14161a;--bg-tertiary:#1c1f24;--border-color:#ffffff12;--border-color-glow:#94a3b82e;--glass-bg:#14161ae0;--glass-shadow:0 8px 28px 0 #0000006b;--glass-border:1px solid #ffffff0f;--card-radius:10px;--accent-blue:#8ea3b8;--accent-blue-deep:#64748b;--accent-purple:#94a3b8;--accent-teal:#5eead4;--accent-success:#34d399;--accent-warning:#f0b429;--accent-danger:#f07178;--text-primary:#eceef1;--text-secondary:#9aa3ad;--text-muted:#6b7280}body.theme-solar-ops[data-solar-accent=coral]{--border-color-glow:#fb71854d;--accent-blue:#fb7185;--accent-blue-deep:#e11d48;--accent-purple:#f472b6;--accent-teal:#fda4af}@keyframes strokeoffset{to{stroke-dashoffset:-100px}}.dash-animate{animation:1.5s linear infinite strokeoffset}@keyframes pulse-scale{0%,to{filter:drop-shadow(0 0 2px var(--accent-blue));transform:scale(1)}50%{filter:drop-shadow(0 0 10px var(--accent-blue));transform:scale(1.1)}}.scale-pulse{transform-origin:50%;animation:2s ease-in-out infinite pulse-scale}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:1200;box-sizing:border-box;background:#080a12bf;justify-content:center;align-items:center;width:100vw;height:100vh;padding:14px;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-card{flex-direction:column;width:90%;max-height:85vh;padding:0;display:flex;overflow:hidden}.modal-card-sm{max-width:450px}.modal-card-md{max-width:650px}.modal-card-lg{max-width:850px}.modal-card-xl{max-width:1100px;max-height:90vh}.modal-card-full{border-radius:16px;width:96%;max-width:1800px;height:94vh;max-height:98vh}.modal-header{border-bottom:1px solid var(--border-color);background:#ffffff03;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.modal-header h3{align-items:center;gap:8px;margin:0;font-size:.92rem;font-weight:600;display:flex}.modal-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.modal-body{flex-grow:1;min-height:0;overflow-y:auto}.modal-body-padded{padding:16px}.modal-body-flush{padding:0}.web-browser-modal-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.modal-footer{border-top:1px solid var(--border-color);flex-shrink:0;padding:12px 16px}.modal-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;line-height:0;display:flex}.modal-close-btn:hover{color:var(--text-primary)}.terminal-modal-card{background:#0a0d16;border:1px solid #38bdf840;border-radius:12px;flex-direction:column;width:90%;max-width:950px;height:80vh;max-height:800px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #0009,0 0 25px #38bdf826}.terminal-modal-card.maximized{border-radius:16px;width:96%;max-width:1800px;height:94vh;max-height:98vh}.terminal-modal-header{background:#0f172ad9;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.terminal-modal-body{background:#0a0d16;flex-direction:column;flex-grow:1;padding:16px 20px;display:flex;overflow:hidden}.terminal-window-dots{align-items:center;gap:8px;margin-right:14px;display:flex}.terminal-window-dot{opacity:.75;border-radius:50%;width:11px;height:11px}.terminal-window-dot.close{background:#ff5f56}.terminal-window-dot.minimize{background:#ffbd2e}.terminal-window-dot.maximize{background:#27c93f}.terminal-overlay-header-inner{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.terminal-overlay-title-group{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.terminal-overlay-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.terminal-overlay-btn{align-items:center;gap:4px;padding:6px 10px;font-size:.8rem;display:flex}.terminal-overlay-body{background:var(--bg-primary);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.terminal-minimize-dock{z-index:1300;color:var(--text-primary);cursor:pointer;background:#0a0d16f2;border:1px solid #38bdf859;border-radius:12px;align-items:center;gap:10px;padding:10px 16px;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 12px 32px #00000073}.terminal-minimize-dock:hover{background:#0f172afa;border-color:#38bdf88c}.terminal-minimize-dock-title{font-size:.85rem;font-weight:600}.terminal-minimize-dock-sub{color:var(--text-secondary);font-size:.75rem}.terminal-minimize-dock-restore{color:var(--accent-blue);margin-left:4px;font-size:.75rem;font-weight:600}.terminal-popout-shell{min-height:100vh;color:var(--text-primary);background:#0a0d16;flex-direction:column;display:flex}.terminal-popout-header{background:#0f172ae6;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.terminal-popout-main{flex-direction:column;flex:1;padding:12px 16px 16px;display:flex;overflow:hidden}.terminal-popout-xterm{flex:1;min-height:calc(100vh - 72px)}.vm-console-popout-shell{height:100vh;overflow:hidden}.vm-console-popout-shell .terminal-popout-header{flex-shrink:0;gap:12px}.vm-console-popout-main,.vm-console-popout-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.host-kvm-stage{min-height:0}.vm-console-stage{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.vm-console-stage.is-expanded{min-height:0}.vm-console-stage:fullscreen{box-sizing:border-box;background:#0b1220;gap:8px;width:100%;height:100%;padding:10px}.vm-console-stage.is-fullscreen:fullscreen{box-sizing:border-box;background:#0b1220;gap:8px;width:100%;height:100%;padding:10px}:is(.vm-console-stage:fullscreen .vm-console-viewport,.vm-console-stage:fullscreen .vm-console-vnc-host){flex:1;min-height:0;max-height:none}.vm-console-stage:fullscreen .vm-console-toolbar{background:#00000073;border:1px solid #ffffff14;border-radius:8px;flex-shrink:0;padding:8px 10px}.vm-console-viewport{flex-direction:column;flex:1;min-height:0;display:flex}.vm-console-vnc-host{flex:1;width:100%;min-height:0;overflow:hidden}.vm-console-vnc-host canvas{display:block}.dashboard-firewall-card .card-header h3{font-size:1rem}.dashboard-firewall-body{flex-direction:column;flex:1;gap:12px;margin-top:12px;display:flex}.dashboard-firewall-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.dashboard-firewall-metric{border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.dashboard-firewall-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.dashboard-firewall-metric strong{color:var(--text-primary);font-size:1.15rem;line-height:1.1}.dashboard-firewall-metric-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.dashboard-firewall-meta{flex-direction:column;gap:6px;display:flex}.dashboard-firewall-meta-row{color:var(--text-secondary);justify-content:space-between;gap:10px;font-size:.78rem;display:flex}.dashboard-firewall-meta-row strong{color:var(--text-primary);text-align:right;font-size:.76rem}.dashboard-firewall-meta-row--logging{align-items:center}.dashboard-firewall-logging-control{align-items:center;gap:10px;display:inline-flex}.dashboard-firewall-logging-toggle{cursor:pointer;align-items:center;display:inline-flex;position:relative}.dashboard-firewall-logging-toggle input{opacity:0;width:0;height:0;position:absolute}.dashboard-firewall-logging-toggle-track{border:1px solid var(--border-color);background:#ffffff1f;border-radius:999px;width:34px;height:18px;transition:background .2s,border-color .2s;position:relative}.dashboard-firewall-logging-toggle-track:after{content:"";background:var(--text-secondary);border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.dashboard-firewall-logging-toggle input:checked+.dashboard-firewall-logging-toggle-track{border-color:var(--accent-teal);background:#14b8a640}.dashboard-firewall-logging-toggle input:checked+.dashboard-firewall-logging-toggle-track:after{background:var(--accent-teal);transform:translate(16px)}.dashboard-firewall-logging-toggle input:disabled+.dashboard-firewall-logging-toggle-track{opacity:.55;cursor:not-allowed}.enable-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex;position:relative}.enable-toggle--compact{gap:8px}.enable-toggle--label-after{flex-direction:row}.enable-toggle--disabled{opacity:.65;cursor:not-allowed}.enable-toggle-label{color:var(--text-primary);font-size:.88rem;font-weight:500}.enable-toggle-label--compact{color:var(--text-secondary);font-size:.82rem;font-weight:400}.enable-toggle-description{width:100%;color:var(--text-muted);font-size:.78rem;line-height:1.4;display:block}.enable-toggle-control{flex-shrink:0;align-items:center;display:inline-flex;position:relative}.enable-toggle input{opacity:0;width:0;height:0;position:absolute}.enable-toggle-track{border:1px solid var(--border-color);background:#ffffff1f;border-radius:999px;width:38px;height:20px;transition:background .2s,border-color .2s;position:relative}.enable-toggle-track:after{content:"";background:var(--text-secondary);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.enable-toggle input:checked+.enable-toggle-track{border-color:var(--accent-teal);background:#14b8a640}.enable-toggle input:checked+.enable-toggle-track--danger{border-color:var(--accent-danger);background:#f8717133}.enable-toggle input:checked+.enable-toggle-track:after{background:var(--accent-teal);transform:translate(18px)}.enable-toggle input:disabled+.enable-toggle-track{opacity:.55;cursor:not-allowed}.enable-toggle-state{min-width:62px;font-size:.78rem;font-weight:600}.enable-toggle-state.is-on{color:var(--accent-teal)}.enable-toggle-state.is-off{color:var(--text-muted)}.enable-toggle-field{margin-bottom:14px}.enable-toggle-row{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.enable-toggle-row .enable-toggle{flex-shrink:0;margin-left:auto}.fg-checkbox-row.enable-toggle{width:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dashboard-firewall-latest-deny{color:var(--text-secondary);background:#f8717114;border:1px solid #f8717140;border-radius:8px;padding:8px 10px;font-size:.76rem}.dashboard-firewall-latest-deny code{font-family:var(--font-mono,monospace);color:var(--accent-danger);word-break:break-all;font-size:.72rem}.dashboard-firewall-latest-deny--empty{border-color:var(--border-color);color:var(--text-muted);background:#ffffff05}.dashboard-firewall-open{flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.78rem;display:inline-flex}.dashboard-firewall-actions{gap:8px;width:100%;margin-top:auto;display:flex}.dashboard-firewall-clear{color:var(--accent-danger);justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.78rem;display:inline-flex}.dashboard-firewall-clear-msg{color:var(--text-secondary);text-align:center;font-size:.72rem}.diagnostics-tab-bar{border-bottom:1px solid var(--border-color);-webkit-overflow-scrolling:touch;gap:8px;max-width:100%;margin-bottom:20px;padding-bottom:10px;display:flex;overflow-x:auto}.diagnostics-tab-bar::-webkit-scrollbar{height:6px}.diagnostics-tab-bar::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.diagnostics-tab-bar::-webkit-scrollbar-thumb{transition:var(--transition-smooth);background:#ffffff1a;border-radius:3px}.diagnostics-tab-bar::-webkit-scrollbar-thumb:hover{background:var(--accent-blue)}select{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}option{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;padding:8px!important}.pulse-indicator{animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%{opacity:.6;transform:scale(.9);box-shadow:0 0 #38bdf866}50%{opacity:1;transform:scale(1.2);box-shadow:0 0 8px 3px #38bdf8cc}to{opacity:.6;transform:scale(.9);box-shadow:0 0 #38bdf866}}.quick-link-item{transition:var(--transition-smooth)}.quick-link-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;background:#38bdf814!important;border-color:#38bdf84d!important}.quick-link-delete{transition:var(--transition-smooth)}.quick-link-delete:hover{color:var(--accent-danger)!important;background:#f871711a!important}.context-menu-container{-webkit-backdrop-filter:blur(20px);z-index:1500;transform-origin:0 0;background:#111827f2;border:1px solid #ffffff14;border-radius:12px;min-width:200px;padding:6px;animation:.1s cubic-bezier(.16,1,.3,1) forwards contextMenuShow;position:fixed;transform:scale(.98);box-shadow:0 10px 30px -10px #000000b3}@keyframes contextMenuShow{to{transform:scale(1)}}.context-menu-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:.825rem;font-weight:500;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex}.context-menu-item:hover{background:color-mix(in srgb, var(--accent-blue) 12%, transparent);color:var(--accent-blue);transform:translate(2px)}.context-menu-item.danger{color:var(--accent-danger)}.context-menu-item.danger:hover{color:#ef4444;background:#ef44441f}.context-menu-divider{background:#ffffff0f;height:1px;margin:4px}.fe-shell{border:1px solid var(--border-color);background:#0000001f;border-radius:8px;gap:0;min-height:520px;display:flex;overflow:hidden}.fe-sidebar{border-right:1px solid var(--border-color);background:#ffffff05;flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow:hidden}.fe-sidebar-header{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:8px;padding:10px 10px 10px 14px;font-size:.72rem;font-weight:600;display:flex}.fe-sidebar-header-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.fe-sidebar-header-btn:hover{color:var(--accent-blue);background:#38bdf81f}.fe-sidebar-row{align-items:center;display:flex}.fe-sidebar-row .fe-sidebar-item{flex:1;min-width:0}.fe-sidebar-nav{flex:1;padding:6px 0;overflow-y:auto}.fe-sidebar-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 14px;font-size:.82rem;transition:background .12s;display:flex}.fe-sidebar-item:hover{background:#38bdf81a}.fe-sidebar-item.active{color:var(--accent-blue);background:#38bdf829;font-weight:500}.fe-sidebar-item-action{opacity:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 6px 4px 0;display:flex}.fe-sidebar-row:hover .fe-sidebar-item-action,.fe-sidebar-row:focus-within .fe-sidebar-item-action{opacity:1}.fe-sidebar-item-action:hover{color:var(--text-primary)}.fe-main{flex-direction:column;flex:1;min-width:0;display:flex}.fe-ribbon{border-bottom:1px solid var(--border-color);background:#ffffff08;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 10px;display:flex}.fe-ribbon-group{border-right:1px solid var(--border-color);align-items:center;gap:2px;margin-right:8px;padding-right:8px;display:inline-flex}.fe-ribbon-group:last-child{border-right:none}.fe-ribbon-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:.8rem;transition:background .12s;display:inline-flex}.fe-ribbon-btn:hover:not(:disabled){background:#ffffff14}.fe-ribbon-btn:disabled{opacity:.35;cursor:not-allowed}.fe-ribbon-btn.active{color:var(--accent-blue);background:#38bdf826}.fe-address-bar{border:1px solid var(--border-color);background:#0003;border-radius:4px;flex:1;align-items:center;gap:2px;min-width:200px;padding:4px 8px;display:flex;overflow-x:auto}.fe-address-bar-fill{cursor:text;min-width:48px;min-height:22px;color:var(--text-muted);opacity:.55;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:1;padding:3px 8px;font-size:.72rem}.fe-address-bar-edit{min-height:30px}.fe-address-segment{color:var(--text-secondary);font-size:.8rem;font-family:var(--font-mono,monospace);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:3px;align-items:center;gap:2px;padding:3px 8px;display:inline-flex}.fe-address-segment:hover{color:var(--accent-blue);background:#ffffff0f}.fe-address-segment.current{color:var(--text-primary);font-weight:500}.fe-address-chevron{color:var(--text-muted);flex-shrink:0}.fe-content{background:#00000014;flex:1;min-height:280px;overflow:auto}.fe-content-inner{min-height:100%;padding:4px}.fe-content-inner.empty-area{justify-content:center;align-items:center;display:flex}.fe-status-bar{border-top:1px solid var(--border-color);color:var(--text-secondary);background:#ffffff05;justify-content:space-between;align-items:center;gap:12px;padding:4px 12px;font-size:.75rem;display:flex}.fe-context-menu{z-index:1500;background:#1e2433;border:1px solid #ffffff1f;border-radius:6px;min-width:220px;padding:4px;animation:.1s forwards contextMenuShow;position:fixed;box-shadow:0 8px 24px #00000080}.fe-context-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;padding:7px 12px;font-size:.82rem;display:flex}.fe-context-item:hover:not(:disabled){background:#38bdf824}.fe-context-item:disabled{opacity:.45;cursor:default}.fe-context-item.danger{color:#f87171}.fe-context-item.danger:hover:not(:disabled){background:#f871711f}.fe-context-item-left{align-items:center;gap:10px;display:inline-flex}.fe-context-shortcut{color:var(--text-muted);font-size:.72rem}.fe-context-divider{background:#ffffff14;height:1px;margin:4px 6px}.file-item-row.selected td,.file-grid-item.selected{border-color:#38bdf859;background:#38bdf82e!important}.file-item-row:hover td{background:#ffffff08}.file-grid-item{border-radius:4px;min-height:96px;padding:10px 8px}.file-grid-view{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:4px;padding:4px}.files-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:#ffffff08;padding:8px 14px;font-size:.72rem}.files-table td{padding:6px 14px;font-size:.84rem}.fe-preview-body{background:#0003;border-radius:8px;justify-content:center;align-items:center;min-height:320px;display:flex;overflow:hidden}.fe-preview-loading{text-align:center;color:var(--text-secondary)}.fe-preview-image{object-fit:contain;max-width:100%;max-height:70vh}.fe-preview-media{width:100%;max-height:70vh}.fe-preview-audio{width:100%}.fe-preview-pdf{background:#fff;border:none;width:100%;height:70vh}.fe-preview-footer{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.fe-properties{flex-direction:column;gap:10px;display:flex}.fe-properties-row{grid-template-columns:90px 1fr;gap:12px;font-size:.85rem;display:grid}.fe-properties-label{color:var(--text-muted);font-weight:500}.fe-properties-value{color:var(--text-primary);word-break:break-all}.fe-properties-path{font-family:var(--font-mono,monospace);font-size:.8rem}.table-input{border:1px solid var(--border-color)!important;color:var(--text-primary)!important;font-family:var(--font-family)!important;transition:var(--transition-smooth)!important;background:#0000004d!important;border-radius:6px!important}.table-input:focus{border-color:var(--accent-blue)!important;outline:none!important;box-shadow:0 0 0 2px #38bdf826!important}.table-input:disabled{opacity:.5;cursor:not-allowed}.table-select{cursor:pointer;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;font-family:var(--font-family)!important;transition:var(--transition-smooth)!important;background:#0000004d!important;border-radius:6px!important}.table-select:focus{border-color:var(--accent-blue)!important;outline:none!important}.table-select:disabled{opacity:.5;cursor:not-allowed}.first-run-overlay{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.first-run-modal{border:1px solid #2dd4bf59;width:100%;max-width:480px;padding:28px;box-shadow:0 24px 80px #00000073}.first-run-step{border:1px solid var(--border-color);background:#ffffff05;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.first-run-step p{color:var(--text-secondary);margin:4px 0 0;font-size:.8rem}.toast-stack{z-index:10000;pointer-events:none;flex-direction:column;gap:10px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:24px;right:24px}.toast{border:1px solid var(--border-color);color:var(--text-primary);pointer-events:auto;background:#0f172af5;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.85rem;line-height:1.4;animation:.2s ease-out toast-in;display:flex;box-shadow:0 12px 40px #00000059}.toast-success{background:#064e3beb;border-color:#34d39959}.toast-error{background:#450a0aeb;border-color:#f8717159}.toast-warning{background:#452d0aeb;border-color:#f59e0b59}.toast-dismiss{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:2px}.toast-dismiss:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.filemanager-scope-banner{color:var(--text-secondary);background:#f59e0b14;border:1px solid #f59e0b40;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.82rem;line-height:1.45;display:flex}.file-manager-upload-input{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:-10000px}.file-picker-button{cursor:pointer;align-items:center;gap:6px;margin-top:8px;display:inline-flex;position:relative;overflow:hidden}.file-picker-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.fg-policy-manager{flex-direction:column;gap:14px;display:flex}.fg-policy-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:10px 16px;display:grid}.fg-policy-tabs{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.fg-policy-tab{border:1px solid var(--border-color);height:34px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:#00000026;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.78rem;font-weight:600;line-height:1;display:inline-flex}.fg-policy-tab.active{color:var(--accent-teal);background:#14b8a61f;border-color:#14b8a659}.fg-policy-toolbar-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.fg-toolbar-badge{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;height:34px;font-size:.68rem;line-height:1;display:inline-flex;padding:0 10px!important}.fg-policy-toolbar-actions .btn-primary,.fg-policy-toolbar-actions .btn-secondary{white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:.78rem;line-height:1;display:inline-flex}.fg-search-wrap{border:1px solid var(--border-color);background:#0003;border-radius:6px;align-items:center;gap:8px;height:34px;padding:0 10px;display:flex}.fg-search-wrap input{color:var(--text-primary);background:0 0;border:none;outline:none;width:148px;font-size:.8rem;line-height:1.2}.fg-policy-table-wrap,.fg-object-table-wrap{padding:0;overflow:hidden}.fg-policy-hint{color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin:0;padding:12px 16px;font-size:.78rem;line-height:1.45}.fg-policy-table-scroll{padding:0;overflow-x:auto}.fg-policy-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.78rem}.fg-policy-table--transit{min-width:1050px}.fg-policy-table--local{min-width:880px}.fg-col-w-id{width:48px}.fg-col-w-order{width:72px}.fg-col-w-name{width:20%}.fg-col-w-iface{width:9%}.fg-col-w-object{width:14%}.fg-col-w-service{width:12%}.fg-col-w-action{width:88px}.fg-col-w-status{width:68px}.fg-col-w-actions{width:72px}.fg-order-controls{align-items:center;gap:4px;display:inline-flex}.fg-col-order .btn-action:disabled{opacity:.35;cursor:not-allowed}.fg-policy-table--local .fg-col-w-name{width:24%}.fg-policy-table--local .fg-col-w-iface{width:10%}.fg-policy-table--local .fg-col-w-object{width:15%}.fg-policy-table--local .fg-col-w-service{width:13%}.fg-policy-table thead th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);white-space:nowrap;vertical-align:middle;background:#00000059;height:38px;padding:0 16px;font-size:.65rem;font-weight:700}.fg-policy-table tbody td{vertical-align:middle;border-bottom:1px solid #ffffff0a;height:46px;padding:0 16px;line-height:1.2}.fg-policy-table tbody tr:hover{background:#ffffff05}.fg-row-disabled{opacity:.55}.fg-th-id,.fg-col-id{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;padding-left:12px;padding-right:12px;font-weight:700}.fg-th-name,.fg-col-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fg-th-iface,.fg-col-iface{text-align:center;font-family:var(--font-mono,monospace);color:var(--text-secondary);font-size:.74rem}.fg-th-object,.fg-col-object,.fg-th-service,.fg-col-service{text-align:left}.fg-policy-table tbody td.fg-col-iface,.fg-policy-table tbody td.fg-col-object,.fg-policy-table tbody td.fg-col-service,.fg-policy-table tbody td.fg-col-action,.fg-policy-table tbody td.fg-col-status,.fg-policy-table tbody td.fg-col-name,.fg-policy-table tbody td.fg-col-id{overflow:hidden}.fg-policy-table tbody td.fg-col-iface,.fg-policy-table tbody td.fg-col-action,.fg-policy-table tbody td.fg-col-status{text-align:center}.fg-col-object .fg-object-chip,.fg-col-service .fg-object-chip{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;align-items:center;max-width:100%;display:inline-flex;overflow:hidden}.fg-col-service .fg-object-chip{font-family:var(--font-mono,monospace);font-size:.71rem}.fg-th-action,.fg-col-action,.fg-th-status,.fg-col-status{text-align:center}.fg-th-actions{text-align:right;padding-left:8px;padding-right:16px}.fg-policy-table tbody td.fg-col-actions{text-align:right;white-space:nowrap;padding-left:8px;padding-right:16px}.fg-col-actions-inner{justify-content:flex-end;align-items:center;gap:6px;min-height:26px;display:inline-flex}@media (width<=900px){.fg-policy-toolbar{grid-template-columns:1fr}.fg-policy-toolbar-actions{flex-wrap:wrap;justify-content:flex-start}}.fg-object-chip{max-width:100%;height:26px;color:var(--accent-teal);cursor:default;vertical-align:middle;background:#14b8a614;border:1px solid #14b8a640;border-radius:4px;justify-content:center;align-items:center;padding:0 10px;font-size:.72rem;font-weight:600;line-height:1;display:inline-flex}.fg-action-pill{letter-spacing:.03em;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;min-width:68px;height:26px;padding:0 10px;font-size:.68rem;font-weight:800;line-height:1;display:inline-flex}.fg-action-accept{color:#34d399;background:#34d39926;border:1px solid #34d39959}.fg-action-deny{color:#f87171;background:#f871711f;border:1px solid #f871714d}.fg-action-reject{color:#fbbf24;background:#fbbf241f;border:1px solid #fbbf244d}.fg-toggle-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:100%;min-height:24px;padding:0;display:inline-flex}.fg-empty{text-align:center;color:var(--text-secondary);padding:28px 16px!important}.fg-builtin-tag{text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em;margin-left:8px;font-size:.62rem}.fg-muted{color:var(--text-muted)}.fg-modal-backdrop{z-index:1200;background:#0000008c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.fg-modal{width:min(520px,100%);max-height:90vh;padding:0;overflow-y:auto}.fg-modal-head{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.fg-modal-head h3{margin:0;font-size:1rem}.fg-modal-form{flex-direction:column;gap:12px;padding:16px 18px 18px;display:flex}.fg-modal-form label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-direction:column;gap:6px;font-size:.72rem;font-weight:700;display:flex}.fg-modal-form input,.fg-modal-form select{border:1px solid var(--border-color);color:var(--text-primary);text-transform:none;letter-spacing:normal;background:#00000040;border-radius:8px;padding:10px 12px;font-size:.85rem;font-weight:500}.fg-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fg-select-row{gap:8px;display:flex}.fg-select-row select{flex:1}.fg-checkbox-row{align-items:center;text-transform:none!important;color:var(--text-secondary)!important;flex-direction:row!important;font-size:.82rem!important;font-weight:500!important}.fg-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}
