:root{--bg-app: #F7F8FA;--bg-surface: #FFFFFF;--bg-subtle: #F2F4F7;--border-soft: #E5E7EB;--text-main: #0F172A;--text-muted: #64748B;--risk-low-bg: #E6F7EE;--risk-low-text: #137A3E;--risk-medium-bg: #EAF2FF;--risk-medium-text: #1D4ED8;--risk-high-bg: #FFF1E6;--risk-high-text: #C2410C;--risk-critical-bg: #FEE2E2;--risk-critical-text: #B91C1C;--blue: #2563eb;--green: #16a34a;--amber: #f59e0b;--red: #ef4444;--gray: #94a3b8;--bg: var(--bg-app);--panel: var(--bg-surface);--text: var(--text-main);--muted: var(--text-muted);--border: var(--border-soft);--shadow: 0 10px 24px rgba(15, 23, 42, .08);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .04);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4;color:var(--text);background:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font-family:inherit}#root{height:100%}.appShell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w, 216px) 1fr;background:var(--bg)}.sidebar{background:#ffffffdb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;overflow:auto;padding:18px 14px}.sidebarHeader{position:sticky;top:0;z-index:3;margin:-18px -14px 12px;padding:14px 14px 12px;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(15,23,42,.06)}.sidebarHeaderRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.tenantBlock{display:flex;align-items:center;gap:10px;min-width:0}.tenantLogoImg{width:40px;height:40px;border-radius:14px;object-fit:cover;border:1px solid rgba(15,23,42,.08);background:#fff;box-shadow:0 10px 22px #0f172a1a}.tenantLogoFallback{width:40px;height:40px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-weight:950;font-size:12px;letter-spacing:.12em;color:#fffffff5;background:linear-gradient(135deg,#2563eb,#6366f1 52%,#2563eb);border:1px solid rgba(37,99,235,.28);box-shadow:0 14px 34px #2563eb2e}.tenantText{min-width:0}.tenantName{font-weight:950;font-size:14px;letter-spacing:-.01em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.tenantSub{margin-top:1px;font-size:12px;color:var(--muted);font-weight:750}.sidebarTitle{font-weight:800;font-size:16px;letter-spacing:.2px;margin:8px 8px 14px}.sidebarActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:8px 8px 14px}.miniBtn{border:1px solid var(--border);background:#ffffffe6;padding:6px 8px;border-radius:10px;cursor:pointer;font-size:12px;color:var(--text);font-weight:800;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}.miniBtn:hover{background:#2563eb0f;border-color:#2563eb33;transform:translateY(-1px);box-shadow:0 6px 14px #0f172a14}.navGroupLabel{margin:14px 8px 8px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.navGroupBtn{width:100%;text-align:left;display:flex;align-items:center;gap:8px;padding:14px 8px 8px;margin:0;border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.navGroupBtn[data-group]{color:color-mix(in srgb,var(--nav-accent) 62%,var(--muted) 38%)}.navGroupBtn[data-group=executive],.navBtn[data-group=executive]{--nav-accent: rgba(37, 99, 235, .95);--nav-accent-bg: rgba(37, 99, 235, .1);--nav-accent-brd: rgba(37, 99, 235, .18)}.navGroupBtn[data-group=identity],.navBtn[data-group=identity]{--nav-accent: rgba(20, 184, 166, .95);--nav-accent-bg: rgba(20, 184, 166, .1);--nav-accent-brd: rgba(20, 184, 166, .18)}.navGroupBtn[data-group=exposure],.navBtn[data-group=exposure]{--nav-accent: rgba(124, 58, 237, .95);--nav-accent-bg: rgba(124, 58, 237, .1);--nav-accent-brd: rgba(124, 58, 237, .18)}.navGroupBtn[data-group=privileged],.navBtn[data-group=privileged]{--nav-accent: rgba(245, 158, 11, .95);--nav-accent-bg: rgba(245, 158, 11, .12);--nav-accent-brd: rgba(245, 158, 11, .18)}.navGroupBtn[data-group=planning],.navBtn[data-group=planning]{--nav-accent: rgba(14, 165, 233, .95);--nav-accent-bg: rgba(14, 165, 233, .1);--nav-accent-brd: rgba(14, 165, 233, .18)}.navGroupBtn[data-group=governance],.navBtn[data-group=governance]{--nav-accent: rgba(99, 102, 241, .95);--nav-accent-bg: rgba(99, 102, 241, .1);--nav-accent-brd: rgba(99, 102, 241, .18)}.navGroupBtn[data-group=run],.navBtn[data-group=run]{--nav-accent: rgba(34, 197, 94, .95);--nav-accent-bg: rgba(34, 197, 94, .1);--nav-accent-brd: rgba(34, 197, 94, .18)}.navGroupBtn:hover{color:color-mix(in srgb,var(--nav-accent) 70%,var(--text) 30%)}.navGroupChevron{display:inline-block;transform-origin:50% 55%;transition:transform .12s ease;opacity:.8}.navGroupIcon{width:24px;height:24px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:var(--nav-accent, var(--muted));background:var(--nav-accent-bg, rgba(15, 23, 42, .05));border:1px solid var(--nav-accent-brd, rgba(15, 23, 42, .06))}.navGroupIcon svg{display:block}.navGroupBtn[data-open=false] .navGroupChevron{transform:rotate(-90deg)}.navGroupItems{margin-bottom:4px}.navBtn{width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:9px 10px;border-radius:12px;cursor:pointer;color:var(--text);display:flex;gap:10px;align-items:center;font-size:13px;font-weight:650;transition:background .14s ease,border-color .14s ease,transform .14s ease}.navIcon{width:26px;height:26px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:11px;font-weight:900;letter-spacing:.02em;color:#0f172ab8;background:#0f172a0a;border:1px solid rgba(15,23,42,.06)}.navBtn[data-group] .navIcon{color:var(--nav-accent, rgba(15, 23, 42, .72));background:var(--nav-accent-bg, rgba(15, 23, 42, .04));border-color:var(--nav-accent-brd, rgba(15, 23, 42, .06))}.navIcon svg{display:block}.navText{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navBtn:hover{background:var(--bg-subtle);border-color:#0f172a0f;transform:translateY(-1px)}.navBtnActive{background:var(--risk-medium-bg);border-color:#1d4ed82e;color:var(--risk-medium-text);font-weight:800}.navBtnActive .navIcon{background:#2563eb1f;border-color:#2563eb38;color:var(--risk-medium-text)}.navBtnActive[data-group] .navIcon{background:color-mix(in srgb,var(--nav-accent-bg) 100%,white 0%);border-color:color-mix(in srgb,var(--nav-accent-brd) 100%,white 0%);color:var(--nav-accent)}.main{display:flex;flex-direction:column}.header{background:#ffffffc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;position:sticky;top:0;z-index:200;isolation:isolate}.headerLeft{display:flex;align-items:center;gap:12px}.brand{font-weight:900;font-size:20px;letter-spacing:-.01em}.tenantSelect{border:1px solid var(--border);background:#fff;padding:8px 10px;border-radius:10px}.statusPills{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.dataSourcesPill{cursor:pointer;-webkit-user-select:none;user-select:none}.dataSourcesMenu[open] .dataSourcesPill{background:#2563eb0a;border-color:#2563eb33;box-shadow:0 12px 28px #0f172a1a}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:#fff}.dot{width:8px;height:8px;border-radius:999px;background:var(--gray);box-shadow:0 0 #2563eb00}.dotOk{background:var(--green)}.dotWarn{background:var(--amber)}@keyframes dotPulse{0%{box-shadow:0 0 #2563eb00}60%{box-shadow:0 0 0 6px #2563eb1a}to{box-shadow:0 0 0 10px #2563eb00}}.dotOk,.dotWarn{animation:dotPulse 2.2s ease-out infinite}.headerRight{display:flex;gap:10px;align-items:center}.menu{position:relative}.menuBtn{display:inline-flex;align-items:center;gap:8px;font-weight:850;border-radius:999px;padding:10px 14px;-webkit-user-select:none;user-select:none;cursor:pointer}.menuBtnIconOnly{padding:10px 12px;gap:6px}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.menuBtn:hover{background:#2563eb0a;border-color:#2563eb33}.menuBtn:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.menu[open] .menuBtn{background:#2563eb0f;border-color:#2563eb38;box-shadow:0 12px 28px #0f172a1a}.menu>summary{list-style:none}.menu>summary::marker,.menu>summary::-webkit-details-marker{display:none}.menuPanel{position:absolute;right:0;top:calc(100% + 8px);min-width:260px;padding:10px;border-radius:16px;border:1px solid rgba(15,23,42,.1);background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 24px 60px #0f172a29;z-index:1200;transform-origin:top right}.menuPanelLeft{left:0;right:auto;transform-origin:top left}.menuPanelLeft:before{left:20px;right:auto}.menu[open] .menuPanel{animation:menuIn .13s ease-out}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.menu[open] .menuPanel{animation:none}}.menuPanel:before{content:"";position:absolute;right:20px;top:-7px;width:14px;height:14px;background:#fffffff5;border-left:1px solid rgba(15,23,42,.1);border-top:1px solid rgba(15,23,42,.1);transform:rotate(45deg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.menuHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px 8px;color:color-mix(in srgb,var(--muted) 78%,var(--text) 22%);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.menuSub{color:var(--muted);font-size:12px;font-weight:750;letter-spacing:0;text-transform:none}.menuItem{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;color:var(--text);text-decoration:none;font-weight:800;border:1px solid transparent;background:#0f172a04;transition:transform .12s ease,background .12s ease,border-color .12s ease}.menuItem:hover{background:#2563eb0f;border-color:#2563eb24;transform:translateY(-1px)}.menuItem:active{transform:translateY(0)}.menuItemDisabled{opacity:.45;cursor:not-allowed}.menuMeta{margin-top:8px;padding:8px 10px 2px;color:var(--muted);font-size:12px;font-weight:750;border-top:1px solid rgba(15,23,42,.06)}.btn{border:1px solid var(--border);background:#fff;padding:10px 12px;border-radius:10px;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.btnGhost{background:#0f172a05;border-color:#0f172a1a;color:color-mix(in srgb,var(--muted) 62%,var(--text) 38%)}.btnGhost:hover:not(:disabled){background:#2563eb0a;border-color:#2563eb2e;box-shadow:0 10px 24px #0f172a14}.btnGhost:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:2px}.btnPrimary{background:var(--blue);color:#fff;border-color:#2563eb99;font-weight:800;box-shadow:0 10px 26px #2563eb24;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.btnScan{border-radius:999px;padding:10px 16px;display:inline-flex;align-items:center;gap:10px;letter-spacing:-.01em;background:linear-gradient(135deg,#2563eb,#3b82f6 55%,#2563eb);border-color:#2563eb8c;box-shadow:0 14px 34px #2563eb2e,0 2px #ffffff2e inset;position:relative;overflow:hidden}.btnScan:before{content:"";position:absolute;inset:-40% -30% auto;height:160%;background:radial-gradient(closest-side,#ffffff38,#fff0 65%);transform:translate(-40%) rotate(12deg);opacity:0;transition:opacity .16s ease,transform .3s ease}.btnScan:hover:not(:disabled):before{opacity:1;transform:translate(10%) rotate(12deg)}.btnScan:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.btnScan:disabled{filter:saturate(.9)}.spinnerSm{width:14px;height:14px;border-radius:999px;border:2px solid rgba(255,255,255,.38);border-top-color:#fffffff2;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.btnPrimary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 34px #2563eb2e;filter:saturate(1.02)}.btn:disabled,.btnPrimary:disabled{opacity:.6;cursor:not-allowed}.content{padding:18px 20px;font-size:15px;position:relative;z-index:0}.grid{display:grid;grid-template-columns:1.35fr .95fr;gap:14px}@media(max-width:1100px){.appShell{grid-template-columns:1fr}.sidebar{display:none}.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid rgba(15,23,42,.06);border-radius:16px;box-shadow:var(--shadow-soft);padding:18px;min-width:0;overflow-wrap:normal;word-break:normal;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a14;border-color:#0f172a1a}.card a{overflow-wrap:anywhere;word-break:break-word;max-width:100%}.cardTitle{font-weight:950;letter-spacing:-.01em;font-size:18px;margin-bottom:10px}.cardCompact{padding:12px;border-radius:14px}.cardCompact .cardTitle{font-size:15px;margin-bottom:8px}.cardCompact .btn,.cardCompact .btnPrimary{padding:8px 10px}.card p{margin:8px 0}.card details{margin-top:10px}.card details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-weight:900;font-size:12px;letter-spacing:.02em;display:flex;align-items:center;gap:8px}.card details>summary:hover{color:var(--text)}.card details>summary::marker,.card details>summary::-webkit-details-marker{display:none}.card details[open]>summary{color:var(--text)}.riskHero{border-radius:16px;padding:22px;color:var(--risk-high-text);background:var(--risk-high-bg)}.riskHeroLow{background:var(--risk-low-bg);color:var(--risk-low-text)}.riskHeroMedium{background:var(--risk-medium-bg);color:var(--risk-medium-text)}.riskHeroHigh{background:var(--risk-high-bg);color:var(--risk-high-text)}.riskHeroCritical{background:var(--risk-critical-bg);color:var(--risk-critical-text)}.riskHeroBig{font-size:56px;font-weight:1000;line-height:1.05;letter-spacing:-.02em}.kpis{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--bg-surface);border:1px solid rgba(15,23,42,.06);border-radius:14px;padding:12px;box-shadow:0 1px 2px #0000000a}.kpiLabel{color:var(--muted);font-size:12px;font-weight:700}.kpiValue{font-size:26px;font-weight:900;margin-top:4px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{border-top:1px solid rgba(15,23,42,.06);padding:10px 8px;vertical-align:top}.table tbody tr:hover{background:#0f172a05}.table th{text-align:left;color:var(--muted);font-size:12px;font-weight:800}.sev{display:inline-flex;padding:4px 10px;border-radius:999px;font-weight:900;font-size:11px;border:1px solid rgba(15,23,42,.1)}.sevCritical{background:#ef44441a;border-color:#ef444440;color:#b91c1c}.sevHigh{background:#f59e0b1f;border-color:#f59e0b40;color:#b45309}.sevMedium{background:#2563eb1a;border-color:#2563eb38;color:#1d4ed8}.sevLow{background:#16a34a1a;border-color:#16a34a38;color:#15803d}.progress{width:100%;height:10px;border-radius:999px;background:#0f172a0f;overflow:hidden}.progressBar{height:100%;background:linear-gradient(90deg,#2563eb59,#2563ebd9,#2563eb59);background-size:200% 100%;width:0%}@keyframes progressShimmer{0%{background-position:0% 0%}to{background-position:200% 0%}}.progressRunning .progressBar{animation:progressShimmer 1.2s linear infinite}.logBox{margin-top:10px;padding:10px;border-radius:12px;border:1px solid var(--border);background:#0b1220;color:#d1d5db;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;max-height:200px;overflow:auto;white-space:pre-wrap}.logPanel{margin-top:10px;border-radius:12px;border:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,#ffffff08,#fff0),#0b1220;overflow:hidden}.logHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(148,163,184,.16);color:#e2e8f0eb;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,Liberation Sans,sans-serif}.logHeaderTitle{font-size:12px;font-weight:900;letter-spacing:.02em}.logHeaderMeta{font-size:12px;color:#94a3b8eb;font-weight:800}.logPanel .logBox{margin-top:0;border:none;border-radius:0;background:transparent;max-height:260px;white-space:pre;padding:10px}.diffMeta{color:var(--muted);font-weight:700}.diffChip{display:inline-flex;align-items:baseline;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.1);background:#0f172a08;font-size:12px;font-weight:800;color:var(--text)}.diffChipKey{color:var(--muted);font-weight:900}.diffList{margin:0;padding-left:18px}.diffItem{margin:0 0 8px;color:var(--muted);font-weight:700}.diffItemChanged{color:var(--text)}.diffName{font-weight:900}.diffArrow{margin-left:8px;font-weight:800}
