:root{--bg:#0f172a;--panel:#111827;--panel2:#1f2937;--text:#e5e7eb;--muted:#94a3b8;--line:#334155;--blue:#38bdf8;--green:#22c55e;--yellow:#f59e0b;--red:#ef4444;--purple:#a78bfa}*{box-sizing:border-box}body{margin:0;background:#0b1020;color:var(--text);font-family:Segoe UI,Arial,sans-serif}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;background:linear-gradient(180deg,#111827,#030712);border-right:1px solid var(--line);padding:22px}.brand{font-size:28px;font-weight:800;letter-spacing:-1px;margin-bottom:28px}.brand span{color:var(--blue)}nav a{display:block;color:var(--text);text-decoration:none;padding:12px 14px;border-radius:10px;margin:6px 0}nav a:hover{background:var(--panel2);color:#fff}.main{margin-left:230px;min-height:100vh}.topbar{padding:26px 34px;border-bottom:1px solid var(--line);background:rgba(15,23,42,.75)}h1{margin:0;font-size:32px}h2{margin:0 0 16px 0}.topbar p{margin:5px 0 0;color:var(--muted)}.content{padding:30px 34px}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px;margin-bottom:24px}.card,.panel{background:rgba(17,24,39,.95);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 38px rgba(0,0,0,.25)}.card{padding:22px}.card .label{color:var(--muted);font-size:14px}.card .number{font-size:42px;font-weight:800;margin-top:10px}.card.danger .number{color:var(--red)}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{padding:20px;overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:10px}td{border-bottom:1px solid rgba(51,65,85,.6);padding:10px;vertical-align:top}tr:hover td{background:rgba(255,255,255,.03)}.badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#334155;color:#fff;font-weight:700}.risk-low{background:rgba(34,197,94,.22);color:#86efac}.risk-medium{background:rgba(245,158,11,.22);color:#fcd34d}.risk-high{background:rgba(239,68,68,.22);color:#fca5a5}.btn{display:inline-block;border:1px solid var(--line);background:#1f2937;color:#fff;text-decoration:none;border-radius:10px;padding:9px 12px;cursor:pointer}.btn:hover{filter:brightness(1.15)}.btn.primary{background:linear-gradient(135deg,#2563eb,#7c3aed);border:0}.btn.small{font-size:13px;padding:6px 9px}.dangerbtn{background:#7f1d1d;border-color:#991b1b}.actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.search{display:flex;gap:10px;flex-wrap:wrap}.search input,input,textarea{background:#0b1224;border:1px solid var(--line);color:#fff;border-radius:10px;padding:10px 12px;min-width:220px}textarea{min-height:110px;width:100%}.form-panel{max-width:760px}.form-panel label{display:block;margin-top:14px;margin-bottom:6px;color:var(--muted)}.form-panel input{width:100%}.form-actions{display:flex;gap:10px;margin-top:18px}.row-actions{display:flex;gap:8px;align-items:center}.row-actions form{margin:0}.success{border-color:rgba(34,197,94,.5)}.error{border-color:rgba(239,68,68,.5)}a{color:var(--blue)}span.field-validation-error{display:block;color:#fca5a5;margin-top:5px}@media(max-width:1100px){.cards,.grid-two{grid-template-columns:1fr}.sidebar{position:relative;width:auto}.main{margin-left:0}}
.muted{color:var(--muted)}.warn{color:#fcd34d}.smalltext{font-size:13px;margin-top:8px;max-width:680px}.panel.success{border-color:rgba(34,197,94,.55)}.panel.error{border-color:rgba(239,68,68,.55)}code{background:#0b1224;border:1px solid var(--line);border-radius:6px;padding:2px 5px;color:#e0f2fe}
.smallnum { font-size: 18px !important; line-height: 1.2; }
.warn { color: #fbbf24; }

.logout-link {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
    color: var(--text);
    padding: 12px 14px;
    border-radius: 10px;
    margin: 6px 0;
    cursor: pointer;
    font: inherit;
}

.logout-link:hover {
    background: var(--panel2);
    color: #fff;
}

select {
    background: #0b1224;
    border: 1px solid var(--line);
    color: #fff;
    border-radius: 10px;
    padding: 10px 12px;
    min-width: 220px;
}
