/* Ojuoba — Login/Cadastro · brand neobrutalist (idêntico ao /public/index.html) */
:root{
  --osso:#F3EFE3;
  --osso-2:#E8E2D0;
  --vermelho:#D62828;
  --vermelho-2:#A41E1E;
  --amarelo:#F4C430;
  --amarelo-2:#E0B020;
  --preto:#1A1612;
  --verde:#2D6A4F;
  --azul:#1D3557;
  --offset:6px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--osso);
  color:var(--preto);
  font-family:'JetBrains Mono', monospace;
  font-size:15px;
  line-height:1.5;
  min-height:100vh;
  background-image:
    radial-gradient(circle at 25% 25%, rgba(26,22,18,0.03) 1px, transparent 1px),
    radial-gradient(circle at 75% 75%, rgba(26,22,18,0.02) 1px, transparent 1px);
  background-size: 24px 24px, 32px 32px;
  display:flex; flex-direction:column;
}

/* ── HEADER ── */
header.brand{
  background:var(--osso);
  border-bottom:3px solid var(--preto);
  padding:14px 24px;
  display:flex; justify-content:space-between; align-items:center;
}
header.brand .wordmark{
  font-family:'Archivo Black', sans-serif;
  font-size:22px;
  letter-spacing:0.05em;
  color:var(--preto);
  text-decoration:none;
  display:flex; align-items:center; gap:10px;
}
header.brand .wordmark::before{
  content:'';
  width:14px;height:14px;background:var(--vermelho);border-radius:50%;
  border:2px solid var(--preto);
}

/* ── MAIN ── */
main{
  flex:1;
  display:flex; align-items:center; justify-content:center;
  padding:50px 24px;
  position:relative;
}
.stamp-floater{
  position:absolute;
  top:30px; left:30px;
  background:var(--amarelo);
  color:var(--preto);
  border:3px solid var(--preto);
  padding:10px 14px;
  font-family:'Permanent Marker', cursive;
  font-size:16px;
  letter-spacing:0.05em;
  transform:rotate(-4deg);
  box-shadow:4px 4px 0 var(--preto);
  display:none;
}
@media(min-width:900px){ .stamp-floater{ display:inline-block; } }

/* ── CARD ── */
.auth-card{
  width:100%;
  max-width:520px;
  background:var(--osso);
  border:3px solid var(--preto);
  box-shadow: var(--offset) var(--offset) 0 var(--preto);
  padding:36px 34px 38px;
  position:relative;
}
.auth-card::before{
  content:'';
  position:absolute;
  top:-3px; left:-3px; right:-3px; height:8px;
  background:repeating-linear-gradient(90deg,
    var(--vermelho) 0 30px,
    var(--amarelo) 30px 60px,
    var(--preto) 60px 90px);
}

/* ── TABS ── */
.tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  margin: 16px 0 28px;
  border:3px solid var(--preto);
  box-shadow:4px 4px 0 var(--preto);
}
.tab{
  background:var(--osso);
  color:var(--preto);
  border:none;
  border-right:3px solid var(--preto);
  padding:14px 8px;
  font-family:'Archivo Black', sans-serif;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .15s, color .15s;
}
.tab:last-child{ border-right:none; }
.tab:hover{ background:var(--amarelo); }
.tab.active{
  background:var(--preto);
  color:var(--amarelo);
}

/* ── HEADINGS ── */
h1.display{
  font-family:'Anton', sans-serif;
  font-size:clamp(40px, 6vw, 60px);
  line-height:0.9;
  letter-spacing:-0.01em;
  text-transform:uppercase;
  color:var(--preto);
  margin-bottom:10px;
}
h1.display .accent{
  background:var(--amarelo);
  padding:0 8px;
  display:inline-block;
  transform:rotate(-1deg);
}
p.sub{
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  line-height:1.55;
  color:var(--preto);
  margin-bottom:22px;
  background:var(--osso-2);
  padding:10px 14px;
  border-left:4px solid var(--vermelho);
}

/* ── FORM ── */
form{ display:flex; flex-direction:column; }
label{
  font-family:'Archivo Black', sans-serif;
  font-size:11px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--preto);
  margin:14px 0 6px;
  display:flex; align-items:center; gap:8px;
}
label .hint{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:0;
  text-transform:none;
  color:var(--vermelho);
  font-weight:400;
}
input, select, textarea{
  width:100%;
  background:var(--osso);
  border:3px solid var(--preto);
  color:var(--preto);
  padding:13px 14px;
  font-family:'JetBrains Mono', monospace;
  font-size:14px;
  outline:none;
  transition:box-shadow .15s, transform .15s;
}
input:focus, select:focus, textarea:focus{
  box-shadow:4px 4px 0 var(--vermelho);
  transform:translate(-1px,-1px);
}
input::placeholder, textarea::placeholder{ color:rgba(26,22,18,0.4); }

select{
  appearance:none;
  -webkit-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--preto) 50%),
    linear-gradient(135deg, var(--preto) 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right:38px;
  cursor:pointer;
}

/* ── BUTTON ── */
.btn-primary{
  margin-top:24px;
  background:var(--vermelho);
  color:var(--osso);
  border:3px solid var(--preto);
  padding:16px 24px;
  font-family:'Archivo Black', sans-serif;
  font-size:14px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow: var(--offset) var(--offset) 0 var(--preto);
  transition:all .15s;
}
.btn-primary:hover{
  transform:translate(-3px,-3px);
  box-shadow: calc(var(--offset) + 4px) calc(var(--offset) + 4px) 0 var(--preto);
  background:var(--vermelho-2);
}
.btn-primary:disabled{
  opacity:0.55;
  cursor:not-allowed;
  transform:none;
  box-shadow:var(--offset) var(--offset) 0 var(--preto);
}

/* ── ERR ── */
.err{
  margin-top:14px;
  padding:12px 14px;
  background:var(--amarelo);
  color:var(--preto);
  border:3px solid var(--preto);
  box-shadow:4px 4px 0 var(--vermelho);
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  font-weight:700;
}

/* ── PANE swap ── */
.pane[hidden]{ display:none; }

/* ── FOOTER ── */
footer.brand{
  background:var(--preto);
  color:var(--osso);
  padding:18px 24px;
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  text-align:center;
  letter-spacing:0.05em;
}
footer.brand a{ color:var(--amarelo); text-decoration:underline; }
footer.brand a:hover{ color:var(--osso); }

@media(max-width:560px){
  .auth-card{ padding:28px 22px 32px; }
  h1.display{ font-size:36px; }
}
