/* Dashboard Primăria Căbești - identitate oficială */
.sidebar-link { display:flex; align-items:center; gap:12px; padding:10px 16px; border-radius:10px; color:#4A4A4A; font-weight:500; font-size:14px; transition:all .15s; cursor:pointer; }
.sidebar-link:hover { background:#F6D8DA40; color:#D1212B; }
.sidebar-link.active { background:#D1212B; color:#fff; }
.sidebar-link.active i { color:#fff; }
.sidebar-link i { width:20px; text-align:center; color:#9A9A9A; }
.sidebar-link:hover i { color:#D1212B; }

.stat-card { background:#fff; border:1px solid #E5E1D8; border-radius:16px; padding:20px; }
.badge { display:inline-flex; align-items:center; gap:4px; padding:2px 10px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.3px; }

.b-noua, .b-deschis, .b-datorat { background:#DDEAF7; color:#1B5FA8; }
.b-in_lucru { background:#FBEEDC; color:#B8741A; }
.b-rezolvata, .b-platit, .b-inchis, .b-activ { background:#E3F1E8; color:#2E7D4F; }
.b-respinsa, .b-anulat { background:#F8DDDC; color:#C4302B; }
.b-draft { background:#EEECE6; color:#6B6B6B; }
.b-urgenta { background:#D1212B; color:#fff; }
.b-ridicata { background:#F8DDDC; color:#C4302B; }
.b-normala { background:#EEECE6; color:#6B6B6B; }
.b-scazuta { background:#E3F1E8; color:#2E7D4F; }
.b-alerta { background:#D1212B; color:#fff; }
.b-anunt { background:#FBEEDC; color:#B8741A; }
.b-informare { background:#DDEAF7; color:#1B5FA8; }
.b-aprobata, .b-platita, .b-onorata, .b-confirmata { background:#E3F1E8; color:#2E7D4F; }
.b-refuzata, .b-anulata, .b-defect, .b-neprezentat { background:#F8DDDC; color:#C4302B; }
.b-initiata, .b-neplatita { background:#DDEAF7; color:#1B5FA8; }
.b-mentenanta, .b-timeout { background:#FBEEDC; color:#B8741A; }

table.data { width:100%; border-collapse:collapse; font-size:13.5px; }
table.data th { text-align:left; padding:10px 14px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:#9A9A9A; border-bottom:1px solid #E5E1D8; font-weight:700; }
table.data td { padding:12px 14px; border-bottom:1px solid #F1EEE8; vertical-align:top; }
table.data tr:hover td { background:#FAF7F2; }

.btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:10px; font-size:13px; font-weight:600; cursor:pointer; transition:all .15s; border:1px solid transparent; }
.btn-primary { background:#D1212B; color:#fff; }
.btn-primary:hover { background:#A51A22; }
.btn-outline { border-color:#E5E1D8; background:#fff; color:#4A4A4A; }
.btn-outline:hover { border-color:#D1212B; color:#D1212B; }
.btn-sm { padding:4px 10px; font-size:12px; border-radius:8px; }

.input, select.input, textarea.input { width:100%; padding:9px 12px; border:1px solid #E5E1D8; border-radius:10px; font-size:14px; background:#fff; outline:none; transition:border .15s; }
.input:focus { border-color:#D1212B; }
label.form-label { display:block; font-size:12px; font-weight:600; color:#6B6B6B; margin-bottom:5px; }

.modal-backdrop { position:fixed; inset:0; background:rgba(26,26,26,.45); display:flex; align-items:center; justify-content:center; z-index:50; padding:16px; }
.modal-box { background:#fff; border-radius:20px; max-width:560px; width:100%; max-height:90vh; overflow-y:auto; padding:28px; }

.toast { position:fixed; bottom:24px; right:24px; z-index:100; background:#1A1A1A; color:#fff; padding:12px 20px; border-radius:12px; font-size:14px; font-weight:500; display:flex; align-items:center; gap:10px; animation:slideup .25s ease; }
@keyframes slideup { from { transform:translateY(20px); opacity:0 } to { transform:translateY(0); opacity:1 } }

.progress-track { background:#F1EEE8; border-radius:999px; height:8px; overflow:hidden; }
.progress-fill { background:#D1212B; height:100%; border-radius:999px; }

@media (max-width: 1023px) {
  #sidebar { position:fixed; left:-280px; top:0; bottom:0; z-index:40; transition:left .25s; }
  #sidebar.open { left:0; }
}
