:root {
  --marca-azul: #154582;
  --marca-azul-2: #1d63b8;
  --marca-azul-claro: #4085c2;
  --marca-verde: #16a34a;
  --marca-vermelho: #dc2647;
  --ink: #0f172a;
  --muted: #64748b;
  --surface: #ffffff;
  --bg: #f1f5f9;
  --radius: 16px;
  --shadow: 0 10px 30px -12px rgba(15, 41, 82, .25);
}

* { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
body { background: var(--bg); color: var(--ink); }

.text-positivo { color: var(--marca-verde) !important; }
.text-negativo { color: var(--marca-vermelho) !important; }

/* ---------- Navbar ---------- */
.navbar.brand-nav {
  background: linear-gradient(90deg, var(--marca-azul), var(--marca-azul-2));
  box-shadow: 0 2px 12px rgba(15,41,82,.18);
}
.navbar.brand-nav .navbar-brand { font-weight: 800; letter-spacing: -.02em; }
.navbar.brand-nav .nav-link { font-weight: 500; }
.dropdown-menu { border: none; box-shadow: var(--shadow); border-radius: 12px; padding: .4rem; }
.dropdown-item { border-radius: 8px; padding: .5rem .75rem; }

/* ---------- Cards / métricas ---------- */
.card { border: 1px solid #e9eef5; border-radius: var(--radius); }
.card.shadow-sm { box-shadow: 0 4px 16px -10px rgba(15,41,82,.2) !important; }
.card-metric .card-title { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: .35rem; }
.card-metric .valor { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; }
.metric-accent { border-top: 3px solid var(--marca-azul); }

.btn { border-radius: 10px; }
.btn-primary { background: var(--marca-azul); border-color: var(--marca-azul); font-weight: 600; }
.btn-primary:hover { background: var(--marca-azul-2); border-color: var(--marca-azul-2); }

.table-clicavel tbody tr { cursor: pointer; transition: background .15s; }
.table-clicavel tbody tr:hover { background: #eef4fb; }
.table > :not(caption) > * > * { padding: .8rem .75rem; }
thead th { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }

/* ---------- Páginas de autenticação ---------- */
.auth-wrap { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.auth-hero {
  background: radial-gradient(1200px 600px at 20% 10%, #1d63b8 0%, var(--marca-azul) 45%, #0e2f59 100%);
  color: #fff; padding: 3.5rem; display: flex; flex-direction: column; justify-content: space-between;
}
.auth-hero h1 { font-weight: 800; letter-spacing: -.03em; font-size: 2.4rem; }
.auth-hero .lead { color: #cfe0f5; font-size: 1.05rem; max-width: 30rem; }
.auth-hero .feat { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: 1rem; color: #e8f1fc; }
.auth-hero .feat i { background: rgba(255,255,255,.14); width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.auth-card-side { display: grid; place-items: center; padding: 2rem; background: var(--surface); }
.auth-card { width: 100%; max-width: 380px; }
.auth-card h2 { font-weight: 800; letter-spacing: -.02em; }
.auth-card .form-control { border-radius: 12px; padding: .7rem .9rem; border-color: #dbe3ee; }
.auth-card .form-control:focus { border-color: var(--marca-azul-claro); box-shadow: 0 0 0 .2rem rgba(64,133,194,.18); }
.auth-card .btn-primary { padding: .7rem; border-radius: 12px; }
.btn-google { border: 1px solid #dbe3ee; border-radius: 12px; padding: .7rem; font-weight: 600; color: #344054; background:#fff; }
.btn-google:hover { background:#f8fafc; }
.input-icon { position: relative; }
.input-icon i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #94a3b8; }
.input-icon .form-control { padding-left: 40px; }

@media (max-width: 860px) {
  .auth-wrap { grid-template-columns: 1fr; }
  .auth-hero { display: none; }
}

/* inputs "crus" do allauth (signup/reset) */
.auth-card form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
.card form select, .card form textarea {
  display: block; width: 100%; padding: .7rem .9rem; font-size: 1rem; line-height: 1.5;
  color: var(--ink); background:#fff; border: 1px solid #dbe3ee; border-radius: 12px;
}

/* Telas allauth (reset de senha, confirmações, logout) */
.auth-card h1 { font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; margin-bottom: .5rem; }
.auth-card p { color: var(--muted); }
.auth-card label { font-weight: 600; font-size: .9rem; margin-bottom: .25rem; }
.auth-card form p { color: var(--ink); margin-bottom: .9rem; }
.auth-card button[type=submit], .auth-card input[type=submit] {
  display: inline-block; width: 100%; padding: .7rem 1rem; margin-top: .5rem;
  background: var(--marca-azul); color: #fff; font-weight: 600;
  border: none; border-radius: 12px; cursor: pointer;
}
.auth-card button[type=submit]:hover, .auth-card input[type=submit]:hover { background: var(--marca-azul-2); }
.auth-card a { color: var(--marca-azul); font-weight: 600; text-decoration: none; }
.auth-card ul { list-style: none; padding: 0; display: flex; gap: 1rem; justify-content: center; }
