*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:#0f1115;color:#e6e7ea}a{color:#7aa2ff;text-decoration:none}button{cursor:pointer;background:#243049;color:#e6e7ea;border:1px solid #38456a;padding:.5rem .9rem;border-radius:6px;font-size:.9rem}button:hover{background:#2c3958}button.primary{background:#3b82f6;border-color:#3b82f6}button.primary:hover{background:#2563eb}button.danger{background:#b91c1c;border-color:#b91c1c}input,select{background:#161a23;border:1px solid #2a3243;color:#e6e7ea;padding:.5rem .7rem;border-radius:6px;font-size:.9rem;width:100%}label{display:block;margin:.6rem 0 .25rem;font-size:.85rem;color:#a8b2c8}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:#161a23;border-right:1px solid #232938;padding:1.2rem 1rem;display:flex;flex-direction:column;gap:.25rem}.sidebar h1{font-size:1.05rem;margin:0 0 1rem;color:#fff}.sidebar a{padding:.5rem .6rem;border-radius:6px;color:#c9d1e6}.sidebar a.active{background:#243049;color:#fff}.main{flex:1;padding:1.5rem 2rem;overflow:auto}.card{background:#161a23;border:1px solid #232938;border-radius:10px;padding:1.1rem}.grid{display:grid;gap:1rem}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}table{width:100%;border-collapse:collapse}th,td{padding:.6rem .7rem;text-align:left;border-bottom:1px solid #232938;font-size:.9rem}th{color:#a8b2c8;font-weight:600}tr:hover{background:#181d28}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge.critical{background:#7f1d1d;color:#fee2e2}.badge.high{background:#b45309;color:#fef3c7}.badge.medium{background:#1d4ed8;color:#dbeafe}.badge.low{background:#475569;color:#f1f5f9}.badge.info{background:#334155;color:#e2e8f0}.badge.ok{background:#166534;color:#dcfce7}h2{font-size:1.2rem;margin:0 0 1rem}.muted{color:#8a93a9;font-size:.85rem}.setup-wizard{max-width:520px;margin:5vh auto}.setup-wizard .steps{display:flex;gap:.5rem;margin-bottom:1.5rem}.setup-wizard .steps .step{flex:1;height:4px;background:#232938;border-radius:999px}.setup-wizard .steps .step.active{background:#3b82f6}.login{max-width:360px;margin:12vh auto}.row{display:flex;gap:.5rem;align-items:center}.spacer{flex:1}
