:root{--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", Consolas, monospace;--accent-color:#0078d4;--accent-hover:#106ebe;--accent-light:#38bdf8;--accent-subtle:#0078d424;--accent-glow:0 0 20px #0078d459;--success:#10b981;--success-subtle:#10b98126;--warning:#f59e0b;--warning-subtle:#f59e0b26;--danger:#ef4444;--danger-subtle:#ef444426;--purple:#8b5cf6;--purple-subtle:#8b5cf626}html[data-theme=azure-light]{--bg-canvas:#f4f7fb;--bg-header:#fffffff2;--bg-command:#fff;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-input:#f1f5f9;--border-main:#e2e8f0;--border-subtle:#f1f5f9;--border-highlight:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-link:#0078d4;--grid-header-bg:#f8fafc;--grid-row-hover:#f0f7ff;--shadow-portal:0 4px 16px -2px #0000000d, 0 0 0 1px #e2e8f0;--glass-bg:#ffffffe6}html[data-theme=light-clean]{--bg-canvas:#fff;--bg-header:#fffffff5;--bg-command:#f8fafc;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-input:#f8fafc;--border-main:#e2e8f0;--border-subtle:#f1f5f9;--border-highlight:#cbd5e1;--text-primary:#020617;--text-secondary:#334155;--text-muted:#64748b;--text-link:#2563eb;--grid-header-bg:#f8fafc;--grid-row-hover:#f8fafc;--shadow-portal:0 2px 10px #0000000a, 0 0 0 1px #e2e8f0;--glass-bg:#fffffff2}html[data-theme=light-warm]{--bg-canvas:#faf8f5;--bg-header:#fffdfaf0;--bg-command:#fffdfb;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#fdf9f3;--bg-input:#f5efeb;--border-main:#eae3d9;--border-subtle:#f4efe6;--border-highlight:#d8cebd;--text-primary:#1c1917;--text-secondary:#57534e;--text-muted:#78716c;--text-link:#d97706;--grid-header-bg:#fbf8f3;--grid-row-hover:#f9f4ec;--shadow-portal:0 4px 16px -2px #28140a0d, 0 0 0 1px #eae3d9;--glass-bg:#fffdfae6}html[data-theme=light-mint]{--bg-canvas:#f0fdf4;--bg-header:#fffffff0;--bg-command:#fff;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f2fbf7;--bg-input:#dcfce7;--border-main:#d1fae5;--border-subtle:#ecfdf5;--border-highlight:#a7f3d0;--text-primary:#064e3b;--text-secondary:#047857;--text-muted:#059669;--text-link:#059669;--grid-header-bg:#f0fdf4;--grid-row-hover:#ecfdf5;--shadow-portal:0 4px 16px -2px #064e3b0d, 0 0 0 1px #d1fae5;--glass-bg:#ffffffe6}html[data-theme=light-slate]{--bg-canvas:#eef2f6;--bg-header:#fffffff0;--bg-command:#fff;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-input:#e2e8f0;--border-main:#d8e2ec;--border-subtle:#e6edf4;--border-highlight:#bac8d7;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--text-link:#0284c7;--grid-header-bg:#f1f5f9;--grid-row-hover:#e2e8f0;--shadow-portal:0 4px 16px -2px #0f172a0f, 0 0 0 1px #d8e2ec;--glass-bg:#ffffffeb}html[data-theme=azure-dark]{--bg-canvas:#070d18;--bg-header:#0b1426d9;--bg-command:#0a1324;--bg-surface:#0e1a30;--bg-card:#101c33b3;--bg-card-hover:#182848d9;--bg-input:#08101e;--border-main:#ffffff14;--border-subtle:#ffffff0a;--border-highlight:#38bdf840;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-link:#38bdf8;--grid-header-bg:#091325;--grid-row-hover:#38bdf80a;--shadow-portal:0 10px 30px -5px #00000080, 0 0 0 1px #ffffff0f;--glass-bg:#0e1a30bf}html[data-theme=azure-midnight]{--bg-canvas:#030712;--bg-header:#0b0f19e6;--bg-command:#0b0f19;--bg-surface:#0f172a;--bg-card:#111827bf;--bg-card-hover:#1f2937d9;--bg-input:#030712;--border-main:#ffffff17;--border-subtle:#ffffff0a;--border-highlight:#ffffff2e;--text-primary:#f9fafb;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-link:#60a5fa;--grid-header-bg:#090d17;--grid-row-hover:#ffffff08;--shadow-portal:0 12px 36px -4px #000000b3, 0 0 0 1px #ffffff14;--glass-bg:#0f172ad9}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,.font-heading{font-family:var(--font-heading);letter-spacing:-.02em}.app-wrapper{flex-direction:column;min-height:100vh;display:flex}.top-nav{background:var(--bg-header);-webkit-backdrop-filter:blur(16px);color:var(--text-primary);border-bottom:1px solid var(--border-main);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #00000026}.nav-brand{font-size:16px;font-weight:700;font-family:var(--font-heading);letter-spacing:-.01em;align-items:center;gap:14px;display:flex}.nav-brand-icon{background:linear-gradient(135deg, var(--accent-color), #38bdf8);width:36px;height:36px;box-shadow:var(--accent-glow);color:#fff;border-radius:10px;justify-content:center;align-items:center;display:flex}.nav-brand-text{flex-direction:column;display:flex}.nav-brand-title{font-size:15px;font-weight:700;line-height:1.2}.nav-brand-subtitle{color:var(--text-secondary);letter-spacing:.02em;font-size:11px;font-weight:500}.badge-arch{background:var(--accent-subtle);border:1px solid var(--border-highlight);color:var(--text-link);letter-spacing:.02em;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.nav-actions{align-items:center;gap:10px;display:flex}.btn-nav{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-main);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 1px 3px #0000000d}.btn-nav:hover{background:var(--bg-card-hover);border-color:var(--border-highlight);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.btn-nav:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg, var(--accent-color), var(--accent-hover));border:1px solid #fff3;box-shadow:0 4px 14px #0078d459;color:#fff!important}.btn-primary:hover{background:linear-gradient(135deg, var(--accent-hover), var(--accent-color));border-color:#ffffff4d;box-shadow:0 6px 20px #0078d473}.btn-icon{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.command-bar{background:var(--bg-command);border-bottom:1px solid var(--border-main);justify-content:space-between;align-items:center;padding:0 24px;display:flex;overflow-x:auto}.blade-tabs{gap:6px;padding:6px 0;display:flex}.blade-tab{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.blade-tab:hover{background:var(--bg-card-hover);color:var(--text-primary)}.blade-tab.active{background:var(--bg-card);color:var(--text-link);border:1px solid var(--border-highlight);box-shadow:0 2px 8px #00000026}.blade-tab .tab-badge{background:var(--bg-surface);border:1px solid var(--border-main);color:var(--text-secondary);font-size:11px;font-weight:700;font-family:var(--font-mono);border-radius:12px;padding:2px 8px}.blade-tab.active .tab-badge{background:var(--accent-color);color:#fff;border-color:#0000}.feed-banner{background:var(--bg-surface);border-bottom:1px solid var(--border-main);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:8px 24px;font-size:12px;display:flex}.pulse-dot{background:#10b981;border-radius:50%;width:8px;height:8px;margin-right:8px;animation:2s infinite pulse-glow;display:inline-block;box-shadow:0 0 10px #10b981}@keyframes pulse-glow{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.25)}to{opacity:.8;transform:scale(.95)}}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.blade-content{box-sizing:border-box;flex:1;width:100%;max-width:100%;margin:0;padding:20px 24px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-bottom:24px;display:grid}.kpi-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-main);box-shadow:var(--shadow-portal);border-radius:14px;flex-direction:column;padding:20px 22px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.kpi-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-color), transparent);opacity:.8;height:3px;position:absolute;top:0;left:0;right:0}.kpi-card:hover{border-color:var(--border-highlight);box-shadow:0 14px 32px -4px #0000004d, var(--accent-glow);transform:translateY(-3px)}.kpi-title{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.05em;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.kpi-icon-bubble{background:var(--accent-subtle);width:34px;height:34px;color:var(--accent-color);border-radius:10px;justify-content:center;align-items:center;display:flex}.kpi-value{font-size:28px;font-weight:800;font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.03em;line-height:1.15}.kpi-subtext{color:var(--text-muted);margin-top:8px;font-size:12px;font-weight:500}.filter-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-main);box-shadow:var(--shadow-portal);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px;padding:18px 20px;display:flex}.filter-group{flex:1;align-items:center;gap:10px;min-width:210px;display:flex}.filter-group label{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.filter-control{background:var(--bg-input);border:1px solid var(--border-main);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);border-radius:8px;outline:none;width:100%;padding:9px 14px;transition:all .2s}.filter-control:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-subtle)}.filter-actions{gap:10px;margin-left:auto;display:flex}.table-container{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-main);-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-portal);border-radius:14px;position:relative;overflow-x:auto}.table-header-title{border-bottom:1px solid var(--border-main);background:var(--bg-surface);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.table-header-title h3{align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.portal-table{border-collapse:collapse;text-align:left;width:100%;min-width:680px;font-size:13px}.portal-table th{background:var(--grid-header-bg);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--border-main);white-space:nowrap;padding:14px 20px;font-size:12px;font-weight:700}.portal-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.portal-table th.sortable-th:hover{background:var(--bg-card-hover);color:var(--text-link)}.portal-table th.sortable-th.active-sort{color:var(--accent-color);background:var(--accent-subtle);border-bottom-color:var(--accent-color)}.th-sort-wrapper{align-items:center;gap:6px;display:inline-flex}.th-sort-icon{opacity:.35;align-items:center;transition:transform .15s,opacity .15s;display:inline-flex}.portal-table th.sortable-th:hover .th-sort-icon{opacity:.8}.portal-table th.sortable-th.active-sort .th-sort-icon{opacity:1;color:var(--accent-color)}.portal-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:14px 20px;transition:background .15s}html[data-density=compact] .portal-table th{padding:9px 14px;font-size:11px}html[data-density=compact] .portal-table td{padding:8px 14px;font-size:12px}.portal-table tr:hover td{background:var(--grid-row-hover)}.portal-table tfoot td{background:var(--grid-header-bg);border-top:2px solid var(--border-main);font-weight:700}.code-val{font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;padding:3px 7px;font-size:12px;font-weight:500}.badge{letter-spacing:.02em;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{background:var(--success-subtle);color:#34d399;border:1px solid #10b98159}.badge-warning{background:var(--warning-subtle);color:#fbbf24;border:1px solid #f59e0b59}.badge-danger{background:var(--danger-subtle);color:#f87171;border:1px solid #ef444459}.badge-primary{background:var(--accent-subtle);color:var(--text-link);border:1px solid var(--border-highlight)}.badge-purple{background:var(--purple-subtle);color:#c084fc;border:1px solid #8b5cf659}.badge-vuln-high{box-shadow:0 0 10px #ef444433;color:#b91c1c!important;background:#fee2e2!important;border:1px solid #f87171!important;font-weight:700!important}.badge-vuln-medium{box-shadow:0 0 10px #f9731626;color:#c2410c!important;background:#ffedd5!important;border:1px solid #fb923c!important;font-weight:700!important}.badge-vuln-low{box-shadow:0 0 8px #eab30826;color:#854d0e!important;background:#fef9c3!important;border:1px solid #facc15!important;font-weight:700!important}.badge-vuln-clean{color:#15803d!important;background:#dcfce7!important;border:1px solid #4ade80!important;font-weight:700!important}html[data-theme=azure-dark] .badge-vuln-high,html[data-theme=azure-midnight] .badge-vuln-high{color:#fca5a5!important;background:#ef444433!important;border-color:#ef444480!important}html[data-theme=azure-dark] .badge-vuln-medium,html[data-theme=azure-midnight] .badge-vuln-medium{color:#fdba74!important;background:#f9731633!important;border-color:#f9731680!important}html[data-theme=azure-dark] .badge-vuln-low,html[data-theme=azure-midnight] .badge-vuln-low{color:#fde047!important;background:#eab30833!important;border-color:#eab30880!important}html[data-theme=azure-dark] .badge-vuln-clean,html[data-theme=azure-midnight] .badge-vuln-clean{color:#86efac!important;background:#22c55e33!important;border-color:#22c55e80!important}@keyframes alert-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.alert-icon-pulse{align-items:center;animation:1.8s ease-in-out infinite alert-pulse;display:inline-flex}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:1000;background:#030712bf;justify-content:center;align-items:center;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-surface);border:1px solid var(--border-highlight);width:100%;max-width:620px;box-shadow:0 25px 60px -10px #0009, 0 0 0 1px var(--border-main);border-radius:18px;flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) modalPop;display:flex;overflow:hidden}@keyframes modalPop{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border-main);background:var(--bg-surface);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header-icon{background:var(--accent-subtle);width:38px;height:38px;color:var(--accent-color);border-radius:10px;justify-content:center;align-items:center;display:flex}.modal-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;transition:all .15s;display:flex}.modal-close-btn:hover{background:var(--bg-card-hover);border-color:var(--border-main);color:var(--text-primary)}.modal-body{max-height:75vh;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-main);background:var(--bg-surface);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.dropzone{border:2px dashed var(--border-highlight);text-align:center;cursor:pointer;background:var(--bg-canvas);border-radius:14px;padding:38px 24px;transition:all .25s;position:relative;overflow:hidden;box-sizing:border-box!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;width:100%!important;display:flex!important}.dropzone:hover,.dropzone.active{border-color:var(--accent-color);background:var(--accent-subtle);box-shadow:var(--accent-glow);transform:translateY(-2px)}.dropzone-icon-circle{background:linear-gradient(135deg, var(--accent-subtle), #38bdf833);border:1px solid var(--border-highlight);width:60px;height:60px;color:var(--accent-color);border-radius:50%;justify-content:center;align-items:center;margin-bottom:14px;transition:transform .2s;display:flex}.dropzone:hover .dropzone-icon-circle{color:var(--accent-hover);transform:scale(1.1)}.file-selected-pill{background:var(--bg-surface);border:1px solid var(--border-highlight);border-radius:10px;align-items:center;gap:12px;width:100%;max-width:480px;margin-top:14px;padding:10px 16px;display:flex}.theme-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:8px;display:grid}.theme-option{border:2px solid var(--border-main);cursor:pointer;border-radius:10px;flex-direction:column;gap:6px;padding:12px;transition:all .2s;display:flex}.theme-option:hover{border-color:var(--accent-color);transform:translateY(-2px)}.theme-option.selected{border-color:var(--accent-color);box-shadow:0 0 0 2px var(--accent-subtle), var(--accent-glow)}.color-swatch-bar{gap:10px;margin-top:8px;display:flex}.color-swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;transition:transform .2s,box-shadow .2s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#fff;box-shadow:0 0 12px #fff6}.empty-state{text-align:center;color:var(--text-secondary);padding:56px 24px}.empty-state h4{color:var(--text-primary);margin:12px 0 6px;font-size:18px}.dashboard-two-col{grid-template-columns:repeat(auto-fit,minmax(520px,1fr));gap:22px;margin-bottom:24px;display:grid}@media (width<=1100px){.dashboard-two-col{grid-template-columns:1fr}}.dashboard-three-col{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;margin-bottom:24px;display:grid}.progress-bar-container{background:var(--border-main);border-radius:999px;width:100%;height:6px;margin-top:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-color), var(--accent-hover));border-radius:999px;height:100%;transition:width .4s cubic-bezier(.16,1,.3,1)}.tier-stat-badge{background:var(--bg-surface);border:1px solid var(--border-main);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:12px 16px;font-size:13px;transition:all .2s;display:flex}.tier-stat-badge:hover{border-color:var(--border-highlight);background:var(--bg-card-hover)}.quick-tag{background:var(--bg-surface);border:1px solid var(--border-main);border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}button,select,input,a{touch-action:manipulation}@media (width<=1024px){.top-nav{padding:0 16px}.badge-arch,.nav-actions .btn-nav span{display:none}.nav-actions .btn-nav{gap:0;padding:8px 10px}.nav-actions .btn-primary span{font-size:11px;display:inline}.blade-content{padding:20px 16px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.dashboard-two-col{grid-template-columns:1fr;gap:16px}.dashboard-three-col{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}}@media (width<=768px){.top-nav{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:10px 12px}.nav-brand{gap:10px}.nav-brand-title{font-size:14px}.nav-brand-subtitle{font-size:10px}.nav-actions{flex-wrap:wrap;gap:6px}.nav-actions .btn-nav{justify-content:center;min-width:36px;height:36px;padding:6px 10px}.command-bar{padding:0 10px}.blade-tabs{gap:4px;padding:6px 0}.blade-tab{gap:6px;padding:7px 11px;font-size:12px}.blade-tab .tab-badge{padding:1px 5px;font-size:10px}.blade-content{padding:14px 10px}.feed-banner{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 12px;font-size:11px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.kpi-card{border-radius:12px;padding:14px}.kpi-title{margin-bottom:6px;font-size:11px}.kpi-icon-bubble{border-radius:8px;width:28px;height:28px}.kpi-icon-bubble svg{width:15px;height:15px}.kpi-value{font-size:20px}.kpi-subtext{margin-top:6px;font-size:11px}.filter-card{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px;padding:14px}.filter-group{flex-direction:column;align-items:flex-start;gap:5px;width:100%;min-width:100%!important;max-width:100%!important}.filter-group label{font-size:11px}.filter-control{width:100%;min-height:40px;font-size:14px}.filter-actions{gap:8px;width:100%;margin-left:0}.filter-actions .btn-nav{flex:1;justify-content:center;height:40px}.table-header-title{flex-direction:column!important;align-items:stretch!important;gap:12px!important;padding:14px 16px!important}.table-header-title h3{font-size:14px}.table-header-title>div:last-child{flex-wrap:wrap!important;gap:6px!important;width:100%!important}.table-header-title>div:last-child button,.table-header-title>div:last-child a{flex:auto!important;justify-content:center!important;height:36px!important;padding:7px 10px!important;font-size:11px!important}.portal-table th,.portal-table td{padding:10px 12px;font-size:12px}.dashboard-three-col{grid-template-columns:1fr;gap:14px}.modal-overlay{align-items:flex-end;padding:10px}.modal-card{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:92vh}.modal-header{padding:14px 16px}.modal-body{max-height:70vh;padding:14px 16px}.modal-footer{flex-direction:column-reverse;gap:8px;padding:12px 16px}.modal-footer button{justify-content:center;width:100%;height:42px}}@media (width<=480px){.top-nav{padding:8px 10px}.nav-brand-subtitle{display:none}.nav-brand-icon{border-radius:8px;width:30px;height:30px}.nav-brand-icon svg{width:16px;height:16px}.nav-actions .btn-primary span{display:none}.kpi-grid{grid-template-columns:1fr;gap:10px}.kpi-card{padding:12px 14px}.blade-tab{gap:5px;padding:6px 9px;font-size:11px}.blade-tab svg{width:13px;height:13px}.theme-grid{grid-template-columns:1fr 1fr;gap:8px}.portal-table th,.portal-table td{padding:8px 10px;font-size:11px}}.login-page-container{background:radial-gradient(circle at 50% 20%, #0078d414, transparent 70%), radial-gradient(circle at 80% 80%, #10b9810d, transparent 60%), var(--bg-canvas);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-ambient-orb{filter:blur(80px);pointer-events:none;z-index:0;opacity:.6;border-radius:50%;position:absolute}.orb-1{background:radial-gradient(circle,#0078d440,#0000 70%);width:380px;height:380px;top:-80px;left:10%}.orb-2{background:radial-gradient(circle,#8b5cf633,#0000 70%);width:320px;height:320px;bottom:-60px;right:15%}.login-card-wrapper{z-index:1;flex-direction:column;gap:16px;width:100%;max-width:460px;animation:.4s ease-out fadeIn;display:flex;position:relative}.login-card{background:var(--bg-surface);border:1px solid var(--border-main);box-shadow:0 20px 40px -10px #00000014, 0 0 0 1px var(--border-subtle);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;padding:32px 28px}.login-header{align-items:center;gap:16px;display:flex}.login-brand-icon{background:var(--accent-subtle);border:1px solid #0078d440;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:0 4px 12px #0078d426}.login-title-group{flex-direction:column;gap:2px;display:flex}.login-badge-cloud{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-color);font-size:11px;font-weight:700}.login-title{color:var(--text-primary);font-size:20px;font-weight:700;font-family:var(--font-heading);line-height:1.2}.login-subtitle{color:var(--text-muted);font-size:12px}.login-divider{background:var(--border-subtle);height:1px;margin:20px 0 16px}.login-quick-bar{background:var(--bg-input);border:1px dashed var(--border-highlight);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:8px 12px;display:flex}.quick-chip-label{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.quick-fill-chip{background:var(--bg-surface);border:1px solid var(--border-main);color:var(--text-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;transition:all .15s;display:inline-flex}.quick-fill-chip:hover{border-color:var(--accent-color);background:var(--accent-subtle)}.quick-fill-chip code{font-family:var(--font-mono);color:var(--accent-color);font-weight:700}.login-error-banner{background:var(--danger-subtle);color:#dc2626;border:1px solid #ef444459;border-radius:8px;align-items:center;gap:10px;margin-bottom:18px;padding:10px 12px;font-size:12px;font-weight:600;animation:.3s shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-primary);font-size:12px;font-weight:600}.password-hint{color:var(--text-muted);font-size:11px}.input-with-icon{align-items:center;display:flex;position:relative}.input-leading-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.login-input{width:100%;font-size:13px;font-family:var(--font-sans);background:var(--bg-input);border:1px solid var(--border-main);color:var(--text-primary);border-radius:8px;outline:none;padding:10px 38px 10px 36px;transition:all .15s}.login-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-subtle);background:var(--bg-surface)}.password-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:8px}.password-toggle-btn:hover{color:var(--text-primary)}.login-options-row{justify-content:space-between;align-items:center;margin-top:-2px;display:flex}.checkbox-container{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;display:inline-flex}.checkbox-container input[type=checkbox]{accent-color:var(--accent-color);cursor:pointer;width:15px;height:15px}.login-submit-btn{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:6px;padding:12px 18px;font-size:14px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #0078d440}.login-submit-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px #0078d459}.login-submit-btn:disabled{opacity:.65;cursor:not-allowed}.login-security-footer{border-top:1px solid var(--border-subtle);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;font-size:11px;display:flex}.security-item{align-items:center;gap:6px;display:flex}.login-meta-footer{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.nav-user-badge{background:var(--bg-input);border:1px solid var(--border-main);border-radius:20px;align-items:center;gap:10px;padding:4px 10px 4px 6px;transition:all .15s;display:flex}.nav-user-avatar{background:var(--accent-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex;box-shadow:0 2px 6px #0078d44d}.nav-user-details{flex-direction:column;line-height:1.15;display:flex}.nav-user-name{color:var(--text-primary);font-size:12px;font-weight:700}.nav-user-role{color:var(--text-muted);font-size:10px}.btn-signout{border:1px solid var(--border-highlight);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 9px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn-signout:hover{background:var(--danger-subtle);color:#ef4444;border-color:#ef444466}@media (width<=640px){.login-card{padding:24px 18px}.nav-user-details{display:none}}.pulse-dot{background-color:var(--success);width:9px;height:9px;box-shadow:0 0 10px var(--success);border-radius:50%;margin-right:8px;display:inline-block;position:relative}.pulse-dot:after{content:"";border:1px solid var(--success);border-radius:50%;animation:2s cubic-bezier(0,.2,.8,1) infinite radarPulse;position:absolute;inset:-3px}@keyframes radarPulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}.shield-animated{justify-content:center;align-items:center;transition:transform .2s,filter .2s;display:inline-flex;position:relative}.shield-animated:hover{filter:drop-shadow(0 0 8px var(--accent-color));transform:scale(1.1)}@keyframes shieldGlow{0%,to{filter:drop-shadow(0 0 3px #38bdf866)}50%{filter:drop-shadow(0 0 12px #38bdf8cc)}}.shield-active-glow{animation:3s ease-in-out infinite shieldGlow}html[data-animations=enabled] body{background-image:radial-gradient(at 15% 10%,#38bdf814 0,#0000 50%),radial-gradient(at 85% 20%,#8b5cf60f 0,#0000 50%),radial-gradient(at 50% 80%,#10b9810d 0,#0000 50%);background-size:100% 100%;background-attachment:fixed}html[data-animations=enabled] .header-brand-logo{animation:4s ease-in-out infinite floatSubtle}@keyframes floatSubtle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.spin{animation:1.5s linear infinite spinSlow}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html[data-animations=disabled] *,html[data-animations=disabled] :before,html[data-animations=disabled] :after{transition:none!important;animation:none!important}html[data-animations=disabled] body{background-image:none!important}.portals-kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}@media (width<=1200px){.portals-kpi-grid{grid-template-columns:repeat(2,1fr);gap:14px}}@media (width<=640px){.portals-kpi-grid{grid-template-columns:1fr;gap:10px}}.portals-filter-container{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-main);box-shadow:var(--shadow-portal);border-radius:14px;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.portals-filter-top-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.portals-search-box{flex:280px;align-items:center;min-width:220px;display:flex;position:relative}.portals-search-box .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.portals-search-input{background:var(--bg-input);border:1px solid var(--border-main);width:100%;height:38px;color:var(--text-primary);border-radius:8px;padding:0 12px 0 36px;font-size:13px;transition:all .2s}.portals-search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.portals-ecosystem-box{flex-shrink:0;align-items:center;gap:8px;display:flex}.portals-ecosystem-select{background:var(--bg-input);border:1px solid var(--border-main);height:38px;color:var(--text-primary);cursor:pointer;border-radius:8px;outline:none;min-width:180px;padding:0 12px;font-size:12px;font-weight:500}.portals-ecosystem-select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-subtle)}.portals-view-switcher{background:var(--bg-surface);border:1px solid var(--border-main);-webkit-overflow-scrolling:touch;border-radius:10px;gap:4px;padding:4px;display:flex;overflow-x:auto}.portals-view-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;flex:auto;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:12px;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.portals-view-btn:hover{color:var(--text-primary);background:var(--bg-card-hover)}.portals-view-btn.active{background:var(--accent-color);color:#fff;box-shadow:0 2px 8px #0284c759}.portals-action-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-scroll-hint{border-bottom:1px solid var(--border-main);color:#38bdf8;background:#38bdf814;justify-content:space-between;align-items:center;padding:8px 16px;font-size:11px;font-weight:600;display:none}@media (width<=1100px){.table-scroll-hint{display:flex}}.portal-table.table-infrastructure{min-width:1050px}.portal-table.table-unified{min-width:1150px}.portal-table.table-ssl{min-width:950px}.portal-table.table-ecosystem{min-width:850px}@media (width<=1024px){.portals-filter-top-row{flex-wrap:wrap}.portals-view-switcher{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.portals-action-group{width:100%;margin-top:10px}.portals-action-group button,.portals-action-group a{flex:auto;justify-content:center;height:36px;padding:6px 10px;font-size:11px}}@media (width<=768px){.portals-filter-top-row{flex-direction:column;align-items:stretch}.portals-search-box{width:100%;min-width:100%}.portals-ecosystem-box{justify-content:space-between;width:100%}.portals-ecosystem-select{flex:1;min-width:0}.portals-action-group button,.portals-action-group a{flex:calc(50% - 4px)}.table-header-title{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px}}@media (width<=480px){.portals-view-switcher{grid-template-columns:1fr}.portals-action-group button,.portals-action-group a{flex:100%}}
