:root {
  --plam-azul: #1e293b;
  --plam-destaque: #0d6efd;
  --plam-fundo: #f1f5f9;
  --plam-texto-suave: #64748b;
}
body { background: var(--plam-fundo); font-family: 'Segoe UI', system-ui, sans-serif; min-height: 100vh; }

/* Login / setup */
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px; }
.auth-card { width: 100%; max-width: 420px; border: 0; border-radius: 18px; box-shadow: 0 20px 40px rgba(15,23,42,.10); overflow: hidden; }
.auth-header { background: var(--plam-azul); color: #fff; padding: 1.75rem 1.5rem 1.5rem; text-align: center; }
.auth-header img { height: 56px; margin-bottom: .75rem; }
.auth-header p { color: rgba(255,255,255,.65); margin: 0; font-size: .95rem; }
.auth-body { padding: 2rem; background: #fff; }

/* Topo */
.topbar { background: var(--plam-azul); }
.topbar .marca img { height: 36px; }
.topbar .marca-nome { font-weight: 600; letter-spacing: .02em; }
.topbar .nav-link { color: rgba(255,255,255,.80); border-radius: 8px; padding: .45rem .8rem !important; }
.topbar .nav-link:hover, .topbar .nav-link:focus { color: #fff; background: rgba(255,255,255,.08); }
.topbar .nav-link.active { color: #fff; background: rgba(255,255,255,.16); font-weight: 600; }
@media (max-width: 991.98px) {
  .topbar .navbar-collapse { padding: .5rem 0 .75rem; }
}

/* Trilha (você está em) */
.trilha { background: #fff; border-bottom: 1px solid #e2e8f0; padding: .55rem 0; font-size: .9rem; }
.trilha .breadcrumb-item a { text-decoration: none; color: var(--plam-destaque); font-weight: 500; }
.trilha .breadcrumb-item a:hover { text-decoration: underline; }
.trilha .breadcrumb-item.active { color: #334155; }

/* Cards */
.card-modulo { border: 1px solid #e2e8f0; border-radius: 14px; transition: transform .12s, box-shadow .12s; color: inherit; text-decoration: none; display: block; background: #fff; height: 100%; }
a.card-modulo:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,23,42,.10); color: inherit; }
.card-modulo .icone { width: 48px; height: 48px; border-radius: 12px; background: #e7f0ff; color: var(--plam-destaque); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; flex-shrink: 0; }
.card-modulo.desabilitado { opacity: .6; }
.card-modulo p { color: var(--plam-texto-suave); }

.tabela-usuarios td { vertical-align: middle; }
.badge-perm { background: #e2e8f0; color: #334155; font-weight: 500; }
.perm-filho { padding-left: 1.75rem; }
