/* ── BASE ──────────────────────────────────────────────────────────────────── */
body { font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; background: #f8f9fa; }

/* ── AUTH PAGES ────────────────────────────────────────────────────────────── */
.auth-body { background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.auth-container { width: 100%; max-width: 420px; }
.auth-card { background: #fff; border-radius: 16px; padding: 2.5rem 2rem; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.auth-logo { width: 64px; height: 64px; background: linear-gradient(135deg, #2563eb, #1d4ed8); border-radius: 16px; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.25rem; }
.auth-logo i { font-size: 1.75rem; color: #fff; }
.auth-title { font-size: 1.35rem; font-weight: 700; text-align: center; margin-bottom: 0.35rem; color: #0f172a; }
.auth-subtitle { font-size: 0.85rem; color: #64748b; text-align: center; margin-bottom: 1.75rem; }
.auth-footer { margin-top: 1.5rem; text-align: center; font-size: 0.85rem; color: #64748b; }
.auth-footer a { color: #2563eb; font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }

/* ── UPLOAD ZONE ───────────────────────────────────────────────────────────── */
.upload-zone { border: 2px dashed #cbd5e1; border-radius: 12px; padding: 2.5rem 1.5rem; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.upload-zone:hover, .upload-zone.dragover { border-color: #2563eb; background: #eff6ff; }
.upload-icon { font-size: 2.5rem; color: #94a3b8; display: block; margin-bottom: .75rem; }
.upload-text { font-weight: 600; color: #374151; margin-bottom: .25rem; font-size: .9rem; }
.upload-hint { font-size: .75rem; color: #94a3b8; margin-bottom: 0; }

/* ── EMPTY STATE ───────────────────────────────────────────────────────────── */
.empty-state { text-align: center; padding: 3rem 1rem; }
.empty-icon { font-size: 3rem; color: #e2e8f0; display: block; margin-bottom: 1rem; }

/* ── STAT CARDS ────────────────────────────────────────────────────────────── */
.stat-label { font-size: .75rem; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; }
.stat-value { font-size: 2.5rem; font-weight: 700; line-height: 1; }

/* ── RISK CIRCLE ───────────────────────────────────────────────────────────── */
.risk-circle { width: 90px; height: 90px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.risk-score { font-size: 1.6rem; font-weight: 700; }
.risk-success { background: #d1fae5; color: #065f46; }
.risk-info    { background: #dbeafe; color: #1e40af; }
.risk-warning { background: #fef3c7; color: #92400e; }
.risk-danger  { background: #fee2e2; color: #7f1d1d; }
.risk-secondary { background: #f1f5f9; color: #475569; }

/* ── PRINT ─────────────────────────────────────────────────────────────────── */
@media print {
    nav, .btn, form[action*="Logout"] { display: none !important; }
    .card { box-shadow: none !important; border: 1px solid #dee2e6 !important; }
    .accordion-collapse { display: block !important; }
}
