body{
    background:#f4f6f9;
    font-family:"Inter",-apple-system,"Segoe UI",sans-serif;
}

.navbar{
    height:60px;
}

aside{
    background:#1f232a !important;
}

.list-group-item{
    background:transparent;
    color:#a8adb5;
    border:none;
    border-left:4px solid transparent;
    transition:.2s ease;
    font-size:15px;
    font-weight:500;
    border-radius:0;
}

.list-group-item:hover{
    background:#2b313a;
    color:#fff;
    border-left:4px solid #4d94ff;
}

.list-group-item.active{
    background:rgba(13,110,253,.18) !important;
    border-left:4px solid #0d6efd;
    color:#fff !important;
    font-weight:600;
}

.list-group-item i{
    width:22px;
}

.card{
    border:none;
    border-radius:18px;
    box-shadow:0 8px 25px rgba(0,0,0,.08);
}

.card:hover{
    transition:.25s;
    transform:translateY(-3px);
}

.card-body{
    padding:25px;
}

/* Cards de indicador do dashboard */
.stat-card{
    background:var(--stat-color-soft);
    border:none;
    border-radius:18px;
    border-left:6px solid var(--stat-color);
    box-shadow:0 8px 25px rgba(0,0,0,.06);
    transition:.25s;
}

.stat-card:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.stat-card .stat-label{
    font-size:14px;
    color:var(--stat-color);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.stat-card .stat-value{
    font-size:36px;
    font-weight:800;
    color:#212529;
    line-height:1.2;
}

.stat-card .stat-icon{
    width:56px;
    height:56px;
    border-radius:14px;
    background:var(--stat-color);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    box-shadow:0 4px 10px var(--stat-color-soft);
}

.stat-card.stat-primary{ --stat-color:#0d6efd; --stat-color-soft:rgba(13,110,253,.14); }
.stat-card.stat-success{ --stat-color:#198754; --stat-color-soft:rgba(25,135,84,.14); }
.stat-card.stat-warning{ --stat-color:#dc9c00; --stat-color-soft:rgba(220,156,0,.16); }
.stat-card.stat-danger{  --stat-color:#dc3545; --stat-color-soft:rgba(220,53,69,.14); }

/* Cabeçalho padrão dos painéis (Evolução Mensal, Últimos Atendimentos, etc.) */
.panel-title{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:17px;
    font-weight:700;
    color:#212529;
    margin-bottom:24px;
}

.panel-title .panel-icon{
    width:38px;
    height:38px;
    border-radius:10px;
    background:rgba(13,110,253,.12);
    color:#0d6efd;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    flex-shrink:0;
}

.panel-empty{
    text-align:center;
    color:#adb5bd;
    padding:48px 0;
}

.panel-empty i{
    font-size:52px;
    color:#dee2e6;
}

.panel-empty p{
    margin-top:14px;
    color:#868e96;
    font-size:15px;
}

/* Formulário de filtros */
.filtro-form .form-control{
    border-radius:10px;
    border:1px solid #dee2e6;
    padding:10px 14px;
    font-size:14.5px;
}

.filtro-form .form-control:focus{
    border-color:#0d6efd;
    box-shadow:0 0 0 .2rem rgba(13,110,253,.1);
}

.filtro-form .btn{
    border-radius:10px;
    padding:10px 18px;
    font-weight:600;
}

/* Tabelas */
.table thead th{
    background:#f8f9fa;
    color:#495057;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.4px;
    border-bottom:2px solid #e9ecef;
    padding:14px 12px;
}

.table tbody td{
    padding:14px 12px;
    font-size:14.5px;
    vertical-align:middle;
    border-bottom:1px solid #f1f3f5;
}

.table tbody tr:hover{
    background:#f8f9ff;
}

.table .btn-outline-primary{
    border-radius:8px;
}

/* Avatar circular com iniciais */
.avatar-circle{
    width:38px;
    height:38px;
    border-radius:50%;
    background:linear-gradient(135deg,#0d6efd,#4d94ff);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:700;
    flex-shrink:0;
}

/* Pill do código do associado */
.codigo-pill{
    display:inline-block;
    background:#f1f3f5;
    color:#495057;
    font-size:13px;
    font-weight:600;
    padding:4px 10px;
    border-radius:20px;
}

/* Evita quebra de linha no telefone da listagem */
.table td.text-nowrap-cell{
    white-space:nowrap;
}

/* Modais padronizados */
.modal-content{
    border:none;
    border-radius:18px;
    overflow:hidden;
}

.modal-header{
    background:linear-gradient(135deg,#0d6efd,#0b5ed7) !important;
    color:#fff !important;
    padding:22px 28px;
    border:none;
}

.modal-header .modal-title{
    font-weight:700;
    font-size:19px;
    color:#fff !important;
}

.modal-header .btn-close{
    filter:invert(1) grayscale(100%) brightness(200%);
    opacity:.85;
}

.modal-body{
    padding:28px;
}

.modal-body .form-label{
    font-size:13px;
    font-weight:700;
    color:#495057;
    text-transform:uppercase;
    letter-spacing:.4px;
    margin-bottom:6px;
}

.modal-body .form-control{
    border-radius:10px;
    border:1px solid #dee2e6;
    padding:10px 14px;
    font-size:14.5px;
}

.modal-body .form-control:focus{
    border-color:#0d6efd;
    box-shadow:0 0 0 .2rem rgba(13,110,253,.1);
}

.modal-footer{
    border-top:1px solid #f1f3f5;
    padding:18px 28px;
}

.modal-footer .btn{
    border-radius:10px;
    font-weight:600;
    padding:9px 20px;
}

h2{
    font-weight:700;
}

small{
    font-size:14px;
}

canvas{
    width:100%;
}

.text-muted{
    color:#6c757d !important;
}