/* ============================================================
   CONSELHO DO DIA — DESIGN SYSTEM "AUTORIDADE EDITORIAL"
   Grafite profundo · serifada de alto contraste · âmbar cirúrgico
   Compartilhado por: landing (index.php), login, cadastrar,
   recuperar-senha. Estilos específicos de página ficam inline.
   ============================================================ */
:root{
  --bg:#131417;
  --bg-deep:#0e0f11;
  --surface:#1a1b20;
  --surface-2:#202228;
  --line:rgba(236,233,224,.09);
  --line-strong:rgba(236,233,224,.16);
  --text:#eceae3;
  --text-soft:#c6c3b8;
  --muted:#93917f;
  --muted-2:#a3a190;
  --accent:#d4a24e;
  --accent-soft:rgba(212,162,78,.12);
  --accent-line:rgba(212,162,78,.35);
  --danger:#e07a6a;
  --danger-soft:rgba(224,122,106,.12);
  --danger-line:rgba(224,122,106,.4);
  --success:#8fbf7f;
  --success-soft:rgba(143,191,127,.12);
  --success-line:rgba(143,191,127,.4);
  --serif:'Fraunces', Georgia, serif;
  --sans:'Inter', -apple-system, "Segoe UI", sans-serif;
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:3rem; --s6:4.5rem; --s7:7rem;
  --radius:6px;
  --maxw:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#131417}

.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
@media (max-width:480px){.container{padding:0 18px}}

/* ---------- utilitários editoriais ---------- */
.serif{font-family:var(--serif)}
.hairline{border:0;border-top:1px solid var(--line)}
.kicker{
  display:flex;align-items:baseline;gap:14px;
  font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:var(--s3);
}
.kicker .num{font-family:var(--serif);font-size:1.05rem;font-weight:400;color:var(--accent);letter-spacing:0}
.kicker::after{content:"";flex:1;height:1px;background:var(--line);transform:translateY(-4px)}
.section{padding:var(--s7) 0}
@media (max-width:768px){.section{padding:var(--s6) 0}}
.section-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.9rem,4vw,2.9rem);
  line-height:1.12;
  letter-spacing:-.02em;
  max-width:18ch;
}
.section-lede{color:var(--text-soft);max-width:52ch;margin-top:var(--s2);font-size:1.02rem}

/* reveal contido */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);font-weight:600;font-size:.95rem;
  padding:14px 26px;border-radius:var(--radius);
  border:1px solid transparent;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--accent);color:#17130a;border-color:var(--accent)}
.btn-primary:hover{background:#e0b465;border-color:#e0b465;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--text-soft)}
.btn-block{width:100%}
.btn svg{flex:none}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:.92rem;color:var(--accent);
  border-bottom:1px solid transparent;transition:gap .18s ease,border-color .18s ease;
}
.link-arrow:hover{gap:12px;border-color:var(--accent-line)}
.link-accent{color:var(--accent);font-weight:600}
.link-accent:hover{text-decoration:underline;text-underline-offset:3px}

/* ============================================================
   NAVBAR
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(19,20,23,.92);
  backdrop-filter:saturate(120%) blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:72px;gap:var(--s4);
}
.brand{display:flex;align-items:baseline;gap:10px}
.brand .mark{
  font-family:var(--serif);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;
}
.brand .mark em{font-style:italic;color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:var(--s4);list-style:none}
.nav-links a{
  font-size:.92rem;font-weight:500;color:var(--text-soft);
  transition:color .15s ease;
}
.nav-links a:hover{color:var(--text)}
.nav-links a.sub{color:var(--muted);font-size:.88rem}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-cta .entrar{font-size:.92rem;font-weight:500;color:var(--text-soft)}
.nav-cta .entrar:hover{color:var(--text)}
.nav-cta .btn{padding:10px 20px;font-size:.9rem}
.nav-toggle{display:none;background:none;border:0;color:var(--text);cursor:pointer;padding:8px}
@media (max-width:920px){
  .nav-links{display:none}
  .nav-toggle{display:block}
  .nav.open .nav-links{
    display:flex;flex-direction:column;align-items:flex-start;
    position:absolute;left:0;right:0;top:72px;
    background:var(--bg-deep);border-bottom:1px solid var(--line);
    padding:var(--s3) 24px;gap:var(--s3);
  }
}
.nav-cta .btn .short{display:none}
@media (max-width:560px){
  .nav-cta .entrar{display:none}
  .nav-cta .btn .full{display:none}
  .nav-cta .btn .short{display:inline}
  .nav-cta .btn{padding:9px 16px;font-size:.85rem}
  .nav-cta{gap:8px}
  .brand .mark{font-size:1.25rem}
}

/* ============================================================
   FORMULÁRIOS (login / cadastro / recuperação)
   ============================================================ */
.field{margin-bottom:var(--s3)}
.field label{
  display:block;
  font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.field label .req{color:var(--accent)}
.input{
  width:100%;
  background:var(--bg-deep);
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  color:var(--text);
  font-family:var(--sans);font-size:1rem;
  padding:13px 16px;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.input::placeholder{color:var(--muted)}
.input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}
.input.is-invalid{border-color:var(--danger-line)}
.input.is-invalid:focus{box-shadow:0 0 0 3px var(--danger-soft)}
.invalid-feedback{
  display:block;
  font-size:.85rem;color:var(--danger);margin-top:7px;
}
.input-group{position:relative}
.input-group .input{padding-right:52px}
.toggle-eye{
  position:absolute;top:0;right:0;bottom:0;
  width:48px;display:flex;align-items:center;justify-content:center;
  background:none;border:0;cursor:pointer;color:var(--muted);
  transition:color .15s ease;
}
.toggle-eye:hover{color:var(--text-soft)}
.form-aux{
  display:flex;justify-content:flex-end;
  font-size:.9rem;margin:-6px 0 var(--s3);
}
.form-foot{
  text-align:center;margin-top:var(--s4);
  color:var(--muted);font-size:.95rem;
}

/* ---------- alertas ---------- */
.alert{
  position:relative;
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  background:var(--surface-2);
  color:var(--text-soft);
  font-size:.93rem;line-height:1.5;
  padding:14px 44px 14px 16px;
  margin-bottom:var(--s3);
}
.alert-success{border-color:var(--success-line);background:var(--success-soft);color:var(--success)}
.alert-danger,.alert-error{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger)}
.alert-warning{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}
.alert-info{border-color:var(--line-strong);background:var(--surface-2);color:var(--text-soft)}
.alert .alert-close{
  position:absolute;top:8px;right:8px;
  background:none;border:0;cursor:pointer;color:inherit;opacity:.7;
  font-size:1.1rem;line-height:1;padding:6px;
}
.alert .alert-close:hover{opacity:1}
.toggle-eye:focus-visible,.alert-close:focus-visible,.btn:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;
}

/* ---------- layout das páginas de acesso ---------- */
.auth-main{
  min-height:calc(100vh - 72px - 76px);
  display:flex;align-items:center;
  padding:var(--s6) 0;
}
.auth-wrap{width:100%;display:flex;justify-content:center}
.auth-card{
  width:100%;max-width:460px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  padding:var(--s5) var(--s4) var(--s4);
}
.auth-card.wide{max-width:520px}
@media (max-width:480px){
  .auth-main{padding:var(--s4) 0}
  .auth-card{padding:var(--s4) var(--s3) var(--s3);background:transparent;border:0}
}
.auth-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:var(--s2);
}
.auth-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.auth-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.9rem,5vw,2.5rem);
  line-height:1.1;letter-spacing:-.02em;
}
.auth-title em{font-style:italic;color:var(--accent)}
.auth-sub{color:var(--muted);font-size:.98rem;margin-top:10px}
.auth-head{margin-bottom:var(--s4)}
.auth-note{
  border:1px solid var(--accent-line);
  background:var(--accent-soft);
  border-radius:var(--radius);
  padding:12px 16px;
  font-size:.9rem;color:var(--text-soft);
  margin-bottom:var(--s3);
  display:flex;align-items:flex-start;gap:10px;
}
.auth-note svg{color:var(--accent);flex:none;margin-top:3px}
.auth-note b{color:var(--text)}

/* ============================================================
   FOOTER
   ============================================================ */
footer.site-foot{border-top:1px solid var(--line);background:var(--bg-deep);padding:var(--s5) 0 var(--s4)}
.foot-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s4);
}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}
.foot-brand p{color:var(--muted);font-size:.9rem;margin-top:12px;max-width:32ch}
.foot-col h4{
  font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  font-weight:600;margin-bottom:14px;
}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot-col a{font-size:.92rem;color:var(--text-soft)}
.foot-col a:hover{color:var(--accent)}
.foot-base{
  margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;
  font-size:.82rem;color:var(--muted);
}
/* rodapé compacto (páginas de acesso) */
footer.site-foot.compact{padding:var(--s3) 0}
footer.site-foot.compact .foot-base{margin-top:0;padding-top:0;border-top:0}
