/* ===== ABCERAM • Eleição 2026 — tema visual ===== */
:root{
  --abc-primary:#9b1c1c;       /* bordô institucional */
  --abc-primary-dark:#7a1414;
  --abc-primary-soft:#fdecec;
  --abc-ink:#1f2430;
  --abc-muted:#6b7280;
  --abc-line:#e6e8ec;
  --abc-bg:#f4f5f7;
  --abc-success:#1d7a4d;
  --abc-radius:14px;
  --abc-shadow:0 10px 30px rgba(20,24,40,.08);
  --abc-shadow-sm:0 4px 14px rgba(20,24,40,.06);
}

*{ box-sizing:border-box; }
body{
  background:var(--abc-bg);
  color:var(--abc-ink);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* Faixa superior / topo */
.abc-topbar{ height:6px; background:linear-gradient(90deg,var(--abc-primary),#c0392b,var(--abc-primary-dark)); }
.abc-header{
  background:#fff;
  border-bottom:1px solid var(--abc-line);
  padding:18px 0;
}
.abc-header img{ height:64px; width:auto; }
.abc-header .abc-sub{ color:var(--abc-muted); font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; }

/* Hero / título da eleição */
.abc-hero{
  background:linear-gradient(135deg,var(--abc-primary),var(--abc-primary-dark));
  color:#fff; border-radius:var(--abc-radius);
  padding:28px 32px; box-shadow:var(--abc-shadow);
  position:relative; overflow:hidden;
}
.abc-hero::after{
  content:""; position:absolute; right:-40px; top:-40px;
  width:180px; height:180px; border-radius:50%;
  background:rgba(255,255,255,.07);
}
.abc-hero h1{ font-weight:700; font-size:1.6rem; margin:0; }
.abc-hero .gestao{ font-size:1rem; opacity:.92; margin-top:4px; }
.abc-hero .meta{ font-size:.85rem; opacity:.8; margin-top:10px; }

/* Cartões de seção */
.abc-card{
  background:#fff; border:1px solid var(--abc-line);
  border-radius:var(--abc-radius); box-shadow:var(--abc-shadow-sm);
  margin-bottom:22px; overflow:hidden;
}
.abc-card__head{
  display:flex; align-items:center; gap:12px;
  padding:16px 20px; border-bottom:1px solid var(--abc-line);
  background:linear-gradient(180deg,#fff,#fafbfc);
}
.abc-card__num{
  flex:0 0 auto; width:30px; height:30px; border-radius:50%;
  background:var(--abc-primary); color:#fff; font-weight:700;
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
}
.abc-card__title{ font-weight:700; font-size:1.05rem; margin:0; line-height:1.2; }
.abc-card__hint{ color:var(--abc-muted); font-size:.82rem; margin-top:2px; }
.abc-card__body{ padding:18px 20px; }

/* Item selecionável (candidato) */
.abc-pick{
  display:flex; align-items:flex-start; gap:12px;
  border:1.5px solid var(--abc-line); border-radius:12px;
  padding:14px 16px; cursor:pointer; height:100%;
  transition:border-color .15s, background .15s, box-shadow .15s, transform .05s;
  background:#fff;
}
.abc-pick:hover{ border-color:#c9ccd2; box-shadow:var(--abc-shadow-sm); }
.abc-pick:active{ transform:scale(.997); }
.abc-pick input{ margin-top:3px; width:20px; height:20px; flex:0 0 auto; accent-color:var(--abc-primary); cursor:pointer; }
.abc-pick .nome{ font-weight:600; display:block; line-height:1.25; }
.abc-pick .org{ color:var(--abc-muted); font-size:.84rem; display:block; margin-top:2px; }
.abc-pick.is-selected{
  border-color:var(--abc-primary); background:var(--abc-primary-soft);
  box-shadow:0 0 0 1px var(--abc-primary) inset;
}
/* realce nativo via :has (navegadores modernos) */
.abc-pick:has(input:checked){
  border-color:var(--abc-primary); background:var(--abc-primary-soft);
  box-shadow:0 0 0 1px var(--abc-primary) inset;
}
.abc-pick.branco:has(input:checked){
  border-color:var(--abc-muted); background:#f3f4f6; box-shadow:0 0 0 1px var(--abc-muted) inset;
}
.abc-pick.is-selected.branco{ border-color:var(--abc-muted); background:#f3f4f6; box-shadow:0 0 0 1px var(--abc-muted) inset; }

/* Chapa da diretoria */
.abc-chapa-list{ list-style:none; margin:0; padding:0; }
.abc-chapa-list li{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:11px 4px; border-bottom:1px dashed var(--abc-line); flex-wrap:wrap;
}
.abc-chapa-list li:last-child{ border-bottom:0; }
.abc-chapa-list .cargo{ color:var(--abc-muted); font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; flex:0 0 220px; }
.abc-chapa-list .pessoa{ font-weight:600; flex:1 1 240px; }
.abc-chapa-list .pessoa small{ display:block; color:var(--abc-muted); font-weight:400; }

/* Barra de ação fixa */
.abc-actionbar{
  position:sticky; bottom:0; z-index:20;
  background:rgba(255,255,255,.96); backdrop-filter:blur(6px);
  border-top:1px solid var(--abc-line); box-shadow:0 -6px 20px rgba(20,24,40,.06);
  padding:14px 0;
}
.btn-abc{
  background:var(--abc-primary); border-color:var(--abc-primary); color:#fff;
  font-weight:600; padding:.7rem 2.4rem; border-radius:10px;
}
.btn-abc:hover{ background:var(--abc-primary-dark); border-color:var(--abc-primary-dark); color:#fff; }

/* Login */
.abc-login-wrap{ min-height:calc(100vh - 200px); display:flex; align-items:center; }
.abc-login-card{
  background:#fff; border-radius:var(--abc-radius); box-shadow:var(--abc-shadow);
  overflow:hidden; border:1px solid var(--abc-line);
}
.abc-login-aside{
  background:linear-gradient(160deg,var(--abc-primary),var(--abc-primary-dark));
  color:#fff; padding:38px 34px; height:100%;
}
.abc-login-aside h2{ font-weight:700; font-size:1.5rem; }
.abc-login-aside ol{ padding-left:1.1rem; }
.abc-login-aside li{ margin-bottom:.5rem; opacity:.95; font-size:.92rem; }
.abc-login-body{ padding:38px 34px; }
.abc-form-label{ font-weight:600; font-size:.9rem; }
.abc-input{ padding:.75rem .9rem; border-radius:10px; }
.abc-badge-cat{
  display:inline-block; background:var(--abc-primary-soft); color:var(--abc-primary-dark);
  border:1px solid #f1c9c9; padding:.2rem .7rem; border-radius:999px; font-size:.8rem; font-weight:600;
}

/* Aviso / mensagens */
.abc-aguarde{
  text-align:center; padding:30px 20px; border:1px dashed var(--abc-line);
  border-radius:12px; background:#fafbfc;
}
.abc-aguarde .clock{ font-size:2rem; }

footer.abc-footer{ color:var(--abc-muted); font-size:.85rem; padding:26px 0; text-align:center; }
footer.abc-footer a{ color:var(--abc-primary); text-decoration:none; }
