/* ==========================================================================
   Painel Administrativo - Prefeitura de Ecoporanga/ES
   Camada de polimento (carregada após os estilos de cada página).
   Ajusta apenas cor, raio, sombra e transição — NÃO altera layout.
   Paleta oficial: ecoporanga.es.gov.br
   ========================================================================== */

:root {
    --a-primary:      #0B3D91;
    --a-primary-dark: #082B63;
    --a-secondary:    #2563EB;
    --a-accent:       #16A34A;
    --a-warning:      #F59E0B;
    --a-danger:       #DC2626;
    --a-bg:           #F5F7FA;
    --a-text:         #1F2937;
    --a-muted:        #6B7280;
    --a-border:       #E5E7EB;
    --a-primary-soft: #E8EEF9;
    --a-radius:       12px;
    --a-transition:   0.2s ease;
}

body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* ===== Botões =========================================================== */
.btn,
button.btn,
a.btn {
    border-radius: var(--a-radius) !important;
    transition: all var(--a-transition) !important;
    font-weight: 600;
    border: 1px solid transparent;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary { background: var(--a-primary) !important; border-color: var(--a-primary) !important; color:#fff !important; }
.btn-primary:hover { background: var(--a-primary-dark) !important; border-color: var(--a-primary-dark) !important; }

.btn-secondary { background: var(--a-secondary) !important; border-color: var(--a-secondary) !important; color:#fff !important; }

.btn-success { background: var(--a-accent) !important; border-color: var(--a-accent) !important; color:#fff !important; }
.btn-success:hover { background: #12833c !important; }

.btn-warning { background: var(--a-warning) !important; border-color: var(--a-warning) !important; color:#3d2b00 !important; }
.btn-warning:hover { background: #e08d06 !important; }

.btn-danger { background: var(--a-danger) !important; border-color: var(--a-danger) !important; color:#fff !important; }
.btn-danger:hover { background: #b91c1c !important; }

.btn-light { background:#fff !important; border-color: var(--a-border) !important; color: var(--a-primary) !important; }
.btn-light:hover { background: var(--a-primary-soft) !important; color: var(--a-primary-dark) !important; }

/* Botões de ação em tabelas (editar/excluir/ativar) */
.btn-warning, .btn-danger, .btn-success, .action-btn {
    border-radius: 8px !important;
}

/* ===== Mensagens (sucesso / erro) ====================================== */
.alert {
    border-radius: var(--a-radius);
    border: 1px solid transparent;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.alert-success { background: #dcfce7 !important; color: #14683a !important; border-color: #bbf7d0 !important; }
.alert-error,
.alert-danger  { background: #fee2e2 !important; color: #991b1b !important; border-color: #fecaca !important; }
.alert-info    { background: var(--a-primary-soft) !important; color: var(--a-primary) !important; border-color: #cfe0f7 !important; }
.alert-warning { background: #fef3c7 !important; color: #92600a !important; border-color: #fde68a !important; }
.alert-success::before { content: "\2713"; font-weight: 700; }
.alert-error::before, .alert-danger::before { content: "\26A0"; font-weight: 700; }

/* ===== Tabelas ========================================================= */
.table-wrap {
    border-radius: var(--a-radius);
    overflow: hidden;
    border: 1px solid var(--a-border);
    box-shadow: 0 6px 18px rgba(15,23,42,0.05);
    background: #fff;
}
.table-wrap table { width: 100%; border-collapse: collapse; }
.table-wrap thead th,
table thead th {
    background: var(--a-primary);
    color: #fff;
    font-weight: 600;
    padding: 12px 14px;
    text-align: left;
    font-size: 0.9rem;
}
.table-wrap tbody td,
table tbody td {
    padding: 11px 14px;
    border-top: 1px solid var(--a-border);
    color: var(--a-text);
}
.table-wrap tbody tr:nth-child(even) td { background: #f8fafd; }
.table-wrap tbody tr:hover td { background: var(--a-primary-soft); }

/* ===== Formulários ===================================================== */
.form-control, .form-select,
input[type="text"], input[type="email"], input[type="password"],
input[type="number"], input[type="date"], input[type="search"],
select, textarea {
    border-radius: 10px !important;
    transition: border-color var(--a-transition), box-shadow var(--a-transition);
}
.form-control:focus, .form-select:focus,
input:focus, select:focus, textarea:focus {
    border-color: var(--a-secondary) !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
    outline: none;
}
.form-label { font-weight: 600; color: var(--a-text); }

/* ===== Badges de status ================================================ */
.status-badge, .status-chip {
    border-radius: 999px !important;
    padding: 4px 12px;
    font-size: 0.78rem;
    font-weight: 600;
}
.status-ativo   { background: #dcfce7 !important; color: #14683a !important; }
.status-inativo { background: #fee2e2 !important; color: #991b1b !important; }

/* ===== Cards (polimento leve) ========================================= */
.card, .stat-card, .form-card {
    border-radius: 18px !important;
}
.stat-card { transition: transform var(--a-transition), box-shadow var(--a-transition); }
.stat-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(15,23,42,0.10); }

/* ===== Foco acessível ================================================== */
a:focus-visible, button:focus-visible, .menu-link:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.45);
    outline-offset: 2px;
}

/* ===== Barra de rolagem ================================================ */
.admin-sidebar::-webkit-scrollbar { width: 8px; }
.admin-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 8px; }
