@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0b1120;--bg-secondary:#0f1a2e;--bg-card:#152035;--bg-card-hover:#1c2d48;--bg-border:#243552;--bg-border-bright:#2e4468;--sqm-green:#6db33f;--sqm-blue:#1a4fa0;--sqm-blue-light:#3b7dd8;--accent-cyan:#6db33f;--accent-cyan-dim:#6db33f24;--accent-cyan-glow:#6db33f59;--accent-blue:#3b7dd8;--text-primary:#f0f4fa;--text-secondary:#b8c8e0;--text-muted:#6b85a8;--risk-critical:#ff4d4d;--risk-high:#ff8c42;--risk-medium:#ffd166;--risk-low:#4caf7d;--sidebar-width:256px;--header-height:60px}html{scroll-behavior:smooth;font-size:14px}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,-apple-system,sans-serif;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-border-bright);border-radius:3px}.mono{font-family:JetBrains Mono,monospace}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--bg-border);z-index:100;flex-direction:column;min-height:100vh;display:flex;position:fixed;top:0;left:0}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.page-content{flex:1;padding:24px}.sidebar-logo{border-bottom:1px solid var(--bg-border);background:linear-gradient(135deg,#0f1a2e 0%,#0d1f3c 100%);padding:16px 18px 14px}.sidebar-logo-sqm{border-bottom:1px solid var(--bg-border);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:10px;display:flex}.sidebar-logo-sqm img{filter:brightness(0)invert();opacity:.9;width:auto;height:28px}.sidebar-logo-brand{color:var(--sqm-green);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.sidebar-logo-title{color:var(--text-primary);margin-top:3px;font-size:13px;font-weight:700}.sidebar-logo-sub{color:var(--text-muted);letter-spacing:.03em;margin-top:2px;font-size:10px}.sidebar-nav{flex:1;padding:10px 0;overflow-y:auto}.sidebar-section-label{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;padding:14px 18px 5px;font-size:10px;font-weight:700}.sidebar-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:10px;width:100%;padding:9px 18px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-item:hover{color:var(--text-primary);background:var(--accent-cyan-dim);border-left-color:#6db33f80}.sidebar-item.active{color:var(--sqm-green);background:var(--accent-cyan-dim);border-left-color:var(--sqm-green)}.sidebar-item svg{opacity:.75;flex-shrink:0}.sidebar-item.active svg,.sidebar-item:hover svg{opacity:1}.sidebar-footer{border-top:1px solid var(--bg-border);background:var(--bg-secondary);padding:14px 18px}.header{height:var(--header-height);background:var(--bg-secondary);border-bottom:2px solid var(--sqm-blue);z-index:50;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.header-left{flex-direction:column;display:flex}.header-title{color:var(--text-primary);font-size:15px;font-weight:700}.header-subtitle{color:var(--text-secondary);margin-top:1px;font-size:11px}.header-actions{align-items:center;gap:10px;display:flex}.card{background:var(--bg-card);border:1px solid var(--bg-border);border-radius:8px;padding:20px;transition:border-color .2s}.card:hover{border-color:var(--bg-border-bright)}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.stat-card{background:var(--bg-card);border:1px solid var(--bg-border);border-radius:8px;padding:18px 20px;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--sqm-green);opacity:.7;height:3px;position:absolute;top:0;left:0;right:0}.stat-value{color:var(--text-primary);margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:28px;font-weight:800;line-height:1}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.stat-change{margin-top:6px;font-family:JetBrains Mono,monospace;font-size:11px}.badge{letter-spacing:.03em;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:inline-flex}.badge-critical{color:#ff6b6b;background:#ff4d4d2e;border:1px solid #ff4d4d66}.badge-high{color:#ffaa70;background:#ff8c422e;border:1px solid #ff8c4266}.badge-medium{color:#ffd166;background:#ffd1662e;border:1px solid #ffd16666}.badge-low{color:#6dd4a0;background:#4caf7d2e;border:1px solid #4caf7d66}.badge-info{color:#8fd458;background:#6db33f24;border:1px solid #6db33f59}.badge-open{color:#ff6b6b;background:#ff4d4d26;border:1px solid #ff4d4d59}.badge-inprogress{color:#ffaa70;background:#ff8c4226;border:1px solid #ff8c4259}.badge-closed{color:#6dd4a0;background:#4caf7d26;border:1px solid #4caf7d59}.badge-phase{color:#7ab3f0;background:#3b7dd82e;border:1px solid #3b7dd866}.risk-ring{border:3px solid;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:68px;height:68px;font-family:JetBrains Mono,monospace;font-size:18px;font-weight:800;display:flex}.risk-ring.critical{color:#ff6b6b;border-color:#ff4d4d;box-shadow:0 0 16px #ff4d4d4d}.risk-ring.high{color:#ffaa70;border-color:#ff8c42;box-shadow:0 0 16px #ff8c424d}.risk-ring.medium{color:#ffd166;border-color:#ffd166;box-shadow:0 0 16px #ffd1664d}.risk-ring.low{color:#6dd4a0;border-color:#4caf7d;box-shadow:0 0 16px #4caf7d4d}.progress-bar{background:var(--bg-border);border-radius:3px;height:6px;overflow:hidden}.progress-fill{border-radius:3px;height:100%;transition:width .5s}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;border-bottom:2px solid var(--bg-border);background:var(--bg-secondary);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--bg-border);color:var(--text-secondary);vertical-align:middle;padding:12px 14px}.data-table tr:hover td{background:var(--bg-card-hover);color:var(--text-primary)}.data-table tr:last-child td{border-bottom:none}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--sqm-green);color:#fff}.btn-primary:hover{box-shadow:0 0 14px var(--accent-cyan-glow);background:#7dcf47}.btn-ghost{color:var(--text-secondary);border:1px solid var(--bg-border);background:0 0}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--bg-border-bright)}.btn-sm{padding:5px 10px;font-size:12px}.tabs{border-bottom:1px solid var(--bg-border);margin-bottom:20px;display:flex}.tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--sqm-green);border-bottom-color:var(--sqm-green)}.alert{border-radius:6px;align-items:flex-start;gap:10px;margin-bottom:10px;padding:12px 16px;font-size:13px;line-height:1.6;display:flex}.alert-critical{color:#ffb3b3;background:#ff4d4d1a;border:1px solid #ff4d4d4d}.alert-high{color:#ffd0a8;background:#ff8c421a;border:1px solid #ff8c424d}.alert-info{color:#b8e68a;background:#6db33f14;border:1px solid #6db33f40}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.divider{background:var(--bg-border);height:1px;margin:18px 0}.text-green,.text-cyan{color:var(--sqm-green)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:12px}.text-xs{font-size:11px}.font-mono{font-family:JetBrains Mono,monospace}.font-bold{font-weight:700}.font-semibold{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.w-full{width:100%}.nist-govern{color:#c4b5fd}.nist-identify{color:#93c5fd}.nist-protect{color:#67e8f9}.nist-detect{color:#fde68a}.nist-respond{color:#fdba74}.nist-recover{color:#86efac}.nist-govern-bg{color:#c4b5fd;background:#a78bfa26;border:1px solid #a78bfa59}.nist-identify-bg{color:#93c5fd;background:#60a5fa26;border:1px solid #60a5fa59}.nist-protect-bg{color:#67e8f9;background:#22d3ee26;border:1px solid #22d3ee59}.nist-detect-bg{color:#fde68a;background:#fbbf2426;border:1px solid #fbbf2459}.nist-respond-bg{color:#fdba74;background:#fb923c26;border:1px solid #fb923c59}.nist-recover-bg{color:#86efac;background:#4ade8026;border:1px solid #4ade8059}select{background:var(--bg-secondary);border:1px solid var(--bg-border);color:var(--text-primary);cursor:pointer;border-radius:5px;outline:none;padding:5px 10px;font-family:Inter,sans-serif;font-size:12px}select:focus{border-color:var(--sqm-green)}select option{background:var(--bg-secondary);color:var(--text-primary)}.recharts-text,.recharts-cartesian-axis-tick-value{fill:var(--text-secondary)!important}.recharts-legend-item-text{color:var(--text-secondary)!important}@media (width<=1024px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}}@media (width<=768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
