:root{
  --bg-0:#0E0E0F;
  --bg-1:#141415;
  --bg:#0D0D0E;               /* base sólida */
  --bg-elev:#141415;          /* superfícies elevadas */
  --bg-elev-2:#101011;        /* elev. 2 */
  --border:rgba(255,255,255,.08); /* <— padronizei: usar --border */
  --text:#F5F5F5;
  --sub:#C9C9C9;
  --muted:#9A9A9A;
  --gold-1:#E6C572;
  --gold-2:#CBA34E;
  --gold-3:#A8832F;
  --radius:16px;
  --shadow:0 12px 48px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
}

/* base */
*{ box-sizing:border-box }
html, body{ height:100%; margin:0 }
html{ overscroll-behavior:none }
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 800px at 25% 15%, #1A1A1B 0%, var(--bg-0) 45%),
    radial-gradient(900px 700px at 80% 5%,  #1C1B19 0%, var(--bg-0) 55%),
    linear-gradient(180deg, #0B0B0C, #0C0C0D);
  background-color:var(--bg);
  background-attachment:fixed;
  background-repeat:no-repeat;
  background-size:cover;
  overflow-y:auto;
  scrollbar-gutter:stable both-edges;
}

/* scrollbar */
body::-webkit-scrollbar{ width:12px }
body::-webkit-scrollbar-track{ background:rgba(255,255,255,.03); border-radius:12px; margin:6px }
body::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, var(--gold-2), var(--gold-1));
  border-radius:12px; border:2px solid rgba(0,0,0,.25);
}
body::-webkit-scrollbar-thumb:hover{ filter:brightness(1.05) }
*{ scrollbar-width:thin; scrollbar-color: var(--gold-2) rgba(255,255,255,.06) }

/* top-left link */
.topbar{ position:fixed; inset:20px auto auto 24px; display:flex; align-items:center; gap:10px; z-index:2 }
.link-cadastro{
  color:var(--sub); text-decoration:none; font-size:.95rem; letter-spacing:.2px;
  display:inline-flex; align-items:center; gap:.5ch; padding:8px 12px; border-radius:999px;
  border:1px solid var(--border); backdrop-filter:blur(6px); background:rgba(255,255,255,.02);
  transition:.25s ease;
}
.link-cadastro:hover{ color:#fff; border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.04); transform:translateX(2px) }
.link-cadastro:focus-visible{ outline:2px solid var(--gold-1); outline-offset:3px }

/* centro */
.wrap{ min-height:calc(100vh - 86px); display:grid; place-items:center; padding:64px 24px }
.brand{ text-align:center; margin-bottom:22px; animation:fadeIn .7s ease both }

.footer-mark{
  display:block; width:120px; height:auto; margin:0 auto 10px;
  filter:drop-shadow(0 0 18px rgba(230,197,114,0.3));
}
.title{ font-family:"Cormorant Garamond", serif; font-weight:600; font-size:56px; letter-spacing:.5px; margin:0 0 8px; color:#F4E8C4 }
.subtitle{ margin:0; color:var(--sub); font-size:18px }

/* cartão */
.card{
  width:min(420px, 92vw); margin-top:28px; border-radius:var(--radius);
  border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow:var(--shadow); padding:28px; animation:rise .7s .08s ease both;
}
label{ display:block; font-size:.9rem; color:var(--muted); margin:14px 0 8px }
.field{ position:relative }
input[type=email], input[type=password]{
  width:100%; height:46px; border-radius:10px; color:#fff; font-size:1rem;
  border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.03);
  padding:12px 14px; transition:border-color .25s, background .25s, box-shadow .25s;
}
input::placeholder{ color:#B9B9B9 }
input:focus{
  outline:none; border-color:rgba(230,197,114,.55);
  box-shadow:0 0 0 3px rgba(230,197,114,.15); background:rgba(255,255,255,.05);
}

/* botões */
.cta{
  margin-top:18px; display:block; width:100%; height:48px; border:0; cursor:pointer; border-radius:10px;
  background:linear-gradient(90deg, var(--gold-2), var(--gold-1));
  color:#0E0E0F; font-weight:600; font-size:1.05rem; letter-spacing:.2px;
  box-shadow:0 10px 24px rgba(230,197,114,.18), inset 0 1px 0 rgba(255,255,255,.24);
  transition: transform .2s ease, filter .25s ease, box-shadow .25s ease;
}
.cta:hover{ filter:brightness(1.05); box-shadow:0 14px 34px rgba(230,197,114,.26), inset 0 1px 0 rgba(255,255,255,.28) }
.cta:active{ transform:translateY(1px) }
.cta:focus-visible{ outline:2px solid var(--gold-1); outline-offset:3px }

/* rodapé */
.site-footer{
  display:flex; align-items:center; justify-content:center; gap:12px;
  padding:18px 16px; border-top:1px solid var(--border); background:rgba(0,0,0,.2);
}
.site-footer .footer-text{ color:#bdbdbd; font-size:.9rem }

/* ——— RECOVERY LIMPO (sem herdar .field) ——— */
.recover{
  display:none; margin-top:14px; padding:12px;
  border:1px solid var(--border); border-radius:12px; background:var(--bg-elev);
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center;
}
.r-input{
  width:100%; padding:12px 14px; font:inherit; color:var(--text);
  background:var(--bg-elev-2); border:1px solid var(--border); border-radius:12px; outline:none;
}
.r-input:focus{ border-color:rgba(230,197,114,.55); box-shadow:0 0 0 3px rgba(230,197,114,.15) }
.recover .cta{ white-space:nowrap }

/* utilidades & animações */
.sr-only{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }
@keyframes fadeIn{ from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none} }
@keyframes rise{ from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none} }

/* responsivo */
@media (max-width:480px){
  .title{ font-size:40px }
  .card{ padding:22px }
}

    /* mensagens rápidas */
    .note{margin-top:10px;font-size:.95rem}
    .ok{color:#bfeabf}
    .err{color:#ffb3b3}
    .muted{color:var(--muted)}
    .spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:var(--gold-1);border-radius:50%;vertical-align:-2px;animation:spin .9s linear infinite}
    @keyframes spin{to{transform:rotate(360deg)}}

    /* link auxiliar */
    .aux-links{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:.95rem}
    .aux-links a{color:var(--muted);text-decoration:none}
    .aux-links a:hover{color:var(--text);text-decoration:underline}