*,:before,:after{box-sizing:border-box}body{background:#0f1419;margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.app-shell{color:#e8eef5;background:radial-gradient(1200px 600px at 10% -10%,#1a2740 0%,#0f1419 45%);grid-template-columns:minmax(200px,240px) 1fr;min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif;display:grid}.nav-rail{border-right:1px solid #ffffff0f;flex-direction:column;gap:1rem;padding:1.25rem 1rem;display:flex}.brand{letter-spacing:.04em;color:#90caf9;font-size:.95rem;font-weight:700}.nav-rail nav{flex-direction:column;gap:.35rem;display:flex}.nav-rail a{color:#b0bec5;border-radius:8px;padding:.5rem .65rem;text-decoration:none}.nav-rail a.active{color:#fff;background:#1565c040}.main{width:100%;max-width:1200px;padding:1.5rem clamp(1rem,3vw,2.5rem)}.stack{flex-direction:column;gap:1.25rem;display:flex}.stack.narrow{max-width:480px}.page-head{flex-direction:column;gap:.35rem;display:flex}.page-head.page-head-row{flex-direction:row;justify-content:space-between;align-items:center}.page-head.page-head-row .scan-info{text-align:right;flex-direction:column;gap:.15rem;display:flex}.page-head h1{margin:0;font-size:1.5rem;font-weight:650}.muted{color:#90a4ae}.muted.small{font-size:.85rem}.error{color:#ffab91}.pill{background:#ffffff14;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;display:inline-block}.grid.kpis{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;padding:1rem 1.1rem}.card.kpi{flex-direction:column;gap:.35rem;display:flex}.card.kpi.warn{border-color:#ff8a6559}.kpi-label{color:#90a4ae;font-size:.8rem}.kpi-value{font-size:1.5rem;font-weight:700}.toolbar{flex-wrap:wrap;gap:.5rem;display:flex}.btn{color:#fff;cursor:pointer;background:#1565c0;border:1px solid #ffffff1f;border-radius:8px;justify-content:center;align-items:center;padding:.55rem .9rem;font-size:.9rem;text-decoration:none;display:inline-flex}.btn.secondary{color:#e8eef5;background:0 0}.btn.small{padding:.35rem .6rem;font-size:.8rem}.table-wrap{border:1px solid #ffffff14;border-radius:10px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #ffffff0f;padding:.55rem .65rem}.data-table th{color:#b0bec5;font-weight:600}.field{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.field input{color:#fff;background:#00000040;border:1px solid #ffffff1f;border-radius:8px;padding:.55rem .65rem}.kpi-category{flex-direction:column;gap:.5rem;display:flex}.category-label{text-transform:uppercase;letter-spacing:.06em;color:#64b5f6;margin:0;font-size:.85rem;font-weight:600}.category-note{margin:-.25rem 0 0}.kpi-card-hover{transition:border-color .15s,box-shadow .15s}.kpi-card-hover:hover{border-color:#64b5f659;box-shadow:0 0 12px #42a5f514}.spark-tooltip{z-index:10;pointer-events:none;background:#1a2740;border:1px solid #ffffff1f;border-radius:8px;padding:6px 8px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#151d2b;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;gap:1rem;width:100%;max-width:820px;max-height:90vh;padding:1.5rem;display:flex;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h2{align-items:center;gap:.5rem;margin:0;font-size:1.15rem;display:flex}.modal-filters{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.modal-filters label{color:#90a4ae;flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.modal-filters input{color:#fff;background:#00000040;border:1px solid #ffffff1f;border-radius:6px;padding:.4rem .55rem;font-size:.85rem}.modal-table{max-height:280px;overflow-y:auto}.modal-related h3{color:#90a4ae;margin:0 0 .5rem;font-size:.9rem}.related-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.related-item{background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:.35rem;padding:.65rem .75rem;display:flex}@media (width<=720px){.app-shell{grid-template-columns:1fr}.nav-rail{flex-direction:row;justify-content:space-between;align-items:center}.nav-rail nav{flex-direction:row}}
