body { background:#f5f5f5; }
.card { border-radius:14px; }
.btn-danger { border-radius:10px; }


.card {
    border-radius: 12px;
    transition: transform .2s ease-in-out, box-shadow .2s;
  }
  .card:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15);
  }
  .card-title {
    font-weight: 600;
    margin-bottom: 1rem;
  }
  
  :root{
    --eg-bg:#f6f7fb;
    --eg-ink:#101828;
    --eg-muted:#667085;
    --eg-line:#e5e7eb;
    --eg-card:#ffffff;
    --eg-soft:#eef4ff;
    --eg-primary:#dc3545;      /* vermelho (coerente com sua paleta) */
    --eg-primary-ink:#ffffff;
    --eg-warning:#f59e0b;
    --eg-success:#16a34a;
    --eg-radius:14px;
    --eg-shadow:0 .75rem 1.5rem rgba(16,24,40,.06);
  }
  
  body{ background:var(--eg-bg); color:var(--eg-ink); }
  
  /* ---------- Hero ---------- */
  .eg-hero{
    background:var(--eg-card);
    border:1px solid var(--eg-line);
    border-radius:var(--eg-radius);
    padding:20px 22px;
  }
  .eg-breadcrumb .eg-badge{
    background:var(--eg-soft);
    color:#1d4ed8;
    font-weight:700;
    letter-spacing:.2px;
  }
  .eg-title{ font-size:1.6rem; font-weight:800; margin:0; }
  .eg-username{ color:#111827; }
  .eg-subtitle{ color:var(--eg-muted); margin:6px 0 0; }
  .eg-perfil{
    background:#111827; color:#fff; font-weight:700; padding:.5rem .75rem; border-radius:999px;
  }
  
  /* ---------- KPIs ---------- */
  .eg-kpi{
    padding:16px;
    border:1px solid var(--eg-line);
    border-radius:var(--eg-radius);
    background:var(--eg-card);
  }
  .eg-kpi-label{ color:var(--eg-muted); font-size:.9rem; }
  .eg-kpi-value{ font-weight:800; font-size:2rem; line-height:1.1; }
  
  /* ---------- Section Title ---------- */
  .eg-section-title{
    font-size:.9rem;
    font-weight:800;
    color:#334155;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:12px;
  }
  
  /* ---------- Cards ---------- */
  .shadow-eg{ box-shadow:var(--eg-shadow); }
  
  .eg-card{
    display:flex;
    flex-direction:column;
    padding:18px;
    border:1px solid var(--eg-line);
    border-radius:var(--eg-radius);
    background:var(--eg-card);
    transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }
  .eg-card:hover{
    transform: translateY(-2px);
    box-shadow:0 .75rem 1.25rem rgba(16,24,40,.10);
    border-color:#d1d5db;
  }
  .eg-card-icon{
    width:40px; height:40px; display:grid; place-items:center;
    background:#f1f5f9; border-radius:12px; font-size:1.2rem; margin-bottom:10px;
  }
  .eg-card-title{ font-weight:800; font-size:1.05rem; margin-bottom:6px; color:#111827; }
  .eg-card-text{ color:var(--eg-muted); font-size:.93rem; }
  
  /* ---------- Botões custom ---------- */
  .btn-primary-eg{
    background:var(--eg-primary);
    color:var(--eg-primary-ink);
    border:none;
    border-radius:10px;
    padding:.5rem .9rem;
    font-weight:700;
  }
  .btn-primary-eg:hover{ filter:brightness(.95); color:#fff; }
  
  .btn-warning-eg{
    background:var(--eg-warning);
    color:#111827;
    border:none;
    border-radius:10px;
    padding:.5rem .9rem;
    font-weight:700;
  }
  .btn-warning-eg:hover{ filter:brightness(.95); color:#111827; }
  
  .btn-light-eg{
    background:#fff;
    color:#111827;
    border:1px solid var(--eg-line);
    border-radius:10px;
    padding:.5rem .9rem;
    font-weight:700;
  }
  .btn-light-eg:hover{ background:#f8fafc; }
  
  /* ---------- Navbar logo ajuste ---------- */
  .navbar-brand img{ max-height:40px; width:auto; }
  
  /* --- pagination no padrão cinza/preto e com respiro acima do footer --- */
.pagination .page-link{ 
    color:#111827; background:#fff; border:1px solid var(--eg-line); 
  }
  .pagination .page-item.active .page-link{
    background:#e5e7eb; color:#111827; border-color:#d1d5db;
  }
  .pagination .page-link:hover{ background:#f3f4f6; color:#111827; }
  .eg-bottom-spacer{ height:84px; } /* evita sobrepor o footer fixo */
  
  /* --- ícones de ação compactos --- */
  .eg-action-icons{
    display:flex; gap:8px; justify-content:center; align-items:center;
  }
  .eg-action-icons a{
    display:inline-flex; align-items:center; justify-content:center;
    width:32px; height:32px; border:1px solid var(--eg-line);
    border-radius:8px; background:#fff; transition:box-shadow .15s, transform .15s;
  }
  .eg-action-icons a:hover{ 
    box-shadow:0 .25rem .5rem rgba(16,24,40,.08); transform:translateY(-1px);
  }
  .eg-action-icons .edit{ color:#111827; }
  .eg-action-icons .del{ color:#dc2626; }
  
  /* linha mais fina na tabela */
  .table.eg-thin tr > * { padding-top:.45rem; padding-bottom:.45rem; }
  
  /* ajuda visual no divisor do responsável legal */
  .eg-section-divider{
    border-top:1px dashed var(--eg-line); margin:18px 0 12px;
  }
  
  /* --- Evitar salto ao abrir modal (barra de rolagem) --- */
html { overflow-y: scroll; }                 /* reserva o espaço da barra sempre */
.modal-open { padding-right: 0 !important; } /* anula ajuste automático do Bootstrap */
.navbar, footer { padding-right: 0 !important; }

/* --- Garantir que o modal fique acima do footer fixo --- */
.modal-backdrop { z-index: 1040 !important; }  /* padrão Bootstrap, explícito */
.modal         { z-index: 1050 !important; }
footer         { z-index: 1000; }              /* abaixo do modal/backdrop */

/* Quando um modal estiver aberto, não aplique transform nos cards (evita flicker) */
.modal-open .eg-card,
.modal-open .eg-card:hover { transform: none !important; }

/* Modal sempre acima do footer e sem "salto" de padding */
html { overflow-y: scroll; }
.modal-open { padding-right: 0 !important; }
.navbar, footer { padding-right: 0 !important; }
.modal-backdrop { z-index: 1040 !important; }
.modal { z-index: 1050 !important; }

/* Tabela mais compacta no listar */
.table.eg-thin { font-size: 0.83rem; }
.table.eg-thin > :not(caption) > * > * { padding: .38rem .55rem; }

/* ===== AUTH / LOGIN (escopo local) ===== */
.auth-layout { background: #f5f6f8; }

.auth-card {
  /* cantos arredondados já no card (também está no HTML como rounded-4) */
  border-radius: 1rem;
}

.brand-title {
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: .5px;
}
.brand-title .eg-black { color: #000; }
.brand-title .eg-red   { color: #dc3545; } /* Vermelho do projeto/Bootstrap Danger */

.brand-sub {
  font-size: .95rem;
  margin-top: .25rem;
}
.brand-sub.muted-2 { color: #6c757d; }

.auth-form .form-label { color: #111; }
.auth-form .form-control-lg {
  border-radius: .75rem;
}

/* Botão de mostrar/ocultar senha dentro do campo */
.auth-toggle {
  position: absolute;
  right: .5rem;
  top: 50%;
  transform: translateY(15%); /* ligeiro ajuste para o label acima */
  z-index: 2;
  padding: .25rem .5rem;
  border-radius: .5rem;
}

/* Alerte mais elegante */
.alert-danger {
  border: 0;
  background: #fee2e2;
  color: #7f1d1d;
}

/* Melhor focus visible */
.auth-form input:focus {
  box-shadow: 0 0 0 .2rem rgba(220,53,69,.15);
  border-color: #dc3545;
}

/* Botão principal do login */
.auth-form .btn-danger {
  border-radius: .75rem;
  box-shadow: 0 2px 12px rgba(220,53,69,.25);
}
.auth-form .btn-danger:hover {
  box-shadow: 0 4px 16px rgba(220,53,69,.35);
  transform: translateY(-1px);
}

.auth-logo {
  max-height: 80px;   /* controla a altura do logo */
  object-fit: contain;
}

/* Botão mostrar/ocultar alinhado pelo input-group */
.auth-toggle {
  border-radius: 0 .75rem .75rem 0; /* arredonda só o lado direito */
}

