/* Auth flip (login/registo) */
.gfc-auth-wrap{min-height:40vh; display:flex; align-items:center; justify-content:center; padding:24px;}
.gfc-auth-card{width:min(520px, 92vw); background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:16px; padding:22px; box-shadow:0 10px 40px rgba(0,0,0,.08); overflow:hidden;}
.gfc-auth-head h2{margin:0 0 6px; font-size:22px;}
.gfc-auth-head p{margin:0 0 14px; color:rgba(0,0,0,.65); font-size:13px;}

/* Flip container: altura é sincronizada via JS para acompanhar a face ativa */
.gfc-flip{position:relative; perspective:1100px; overflow:hidden;}
.gfc-flip-inner{position:relative; transform-style:preserve-3d; transition:transform .6s cubic-bezier(.2,.9,.2,1); will-change:transform;}
.gfc-flip.is-flipped .gfc-flip-inner{transform:rotateY(180deg);}

/* Faces: ambas absolutas para o efeito 3D; JS define a altura do container */
.gfc-flip-face{position:absolute; inset:0; width:100%; backface-visibility:hidden;}
.gfc-flip-front{transform:rotateY(0deg);}
.gfc-flip-back{transform:rotateY(180deg);}

.gfc-auth-form{display:flex; flex-direction:column; gap:12px;}
.gfc-auth-field label{display:block; font-size:14px; margin-bottom:6px; color:rgba(0,0,0,.7);}
.gfc-auth-field input{width:100%; border:1px solid rgba(0,0,0,.12); border-radius:10px; padding:10px 12px; font-size:14px;}
.gfc-auth-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:520px){.gfc-auth-grid{grid-template-columns:1fr;}}

.gfc-auth-btn{border:0; border-radius:10px; padding:11px 14px; font-weight:600; cursor:pointer; background:#0b5cff; color:#fff;}
.gfc-auth-btn:disabled{opacity:.6; cursor:not-allowed;}

.gfc-auth-links{display:flex; justify-content:space-between; gap:10px; font-size:12px;}
.gfc-auth-links a{text-decoration:none;}
.gfc-auth-hint{font-size:11px; margin-top:6px; color:rgba(0,0,0,.55);}

.gfc-auth-msg{font-size:12px; padding-top:4px; line-height:1.65;}
.gfc-auth-msg.is-error{color:#b00020;}
.gfc-auth-msg.is-ok{color:#0a7a2d;}
.gfc-auth-msg strong{font-weight:700;}
.gfc-auth-msg a{color:#0b5cff; text-decoration:none;}
.gfc-auth-msg a:hover{text-decoration:underline;}


.gfc-auth-btn--hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.gfc-human-wrap{
  margin-top:6px;
  padding:18px 16px 16px;
  border:1px solid rgba(11,92,255,.14);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(248,250,255,.98), rgba(241,245,255,.94));
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
  transition:border-color .2s ease, background .2s ease, opacity .2s ease, box-shadow .2s ease;
}
.gfc-human-wrap.is-disabled{
  opacity:.76;
  border-color:rgba(148,163,184,.28);
  background:linear-gradient(180deg, rgba(250,250,251,.98), rgba(245,245,246,.96));
  box-shadow:none;
}
.gfc-human-wrap.is-holding{
  border-color:rgba(11,92,255,.3);
  background:linear-gradient(180deg, rgba(238,244,255,.98), rgba(232,240,255,.95));
  box-shadow:0 14px 34px rgba(11,92,255,.10);
}
.gfc-human-wrap.is-authorized{
  border-color:rgba(10,122,45,.22);
  background:linear-gradient(180deg, rgba(239,251,243,.98), rgba(232,247,237,.94));
  box-shadow:0 14px 34px rgba(10,122,45,.10);
}
.gfc-human-label{
  font-size:14px;
  font-weight:800;
  letter-spacing:.01em;
  color:#0f172a;
}
.gfc-human-help,
.gfc-human-status{
  font-size:12px;
  color:rgba(15,23,42,.72);
  max-width:360px;
  line-height: 1.4;
}
.gfc-human-button{
  position:relative;
  width:138px;
  height:138px;
  border-radius:999px;
  border:1px solid rgba(11,92,255,.16);
  background:radial-gradient(circle at 50% 35%, rgba(255,255,255,.98), rgba(245,248,255,.98));
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  overflow:hidden;
  transition:transform .16s ease, box-shadow .22s ease, border-color .2s ease;
  box-shadow:0 16px 36px rgba(15,23,42,.10), inset 0 1px 0 rgba(255,255,255,.75);
}
.gfc-human-button::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:inherit;
  border:1px solid rgba(11,92,255,.08);
  z-index:1;
}
.gfc-human-button:hover{transform:translateY(-1px);}
.gfc-human-button:active{transform:scale(.985);}
.gfc-human-button:focus-visible{outline:2px solid #0b5cff; outline-offset:3px;}
.gfc-human-wrap.is-disabled .gfc-human-button,
.gfc-human-button:disabled{
  cursor:not-allowed;
  box-shadow:none;
  border-color:rgba(148,163,184,.22);
}
.gfc-human-fill{
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(circle, rgba(37,99,235,.96) 0%, rgba(11,92,255,.88) 48%, rgba(11,92,255,.74) 100%);
  transform:scale(0);
  transform-origin:center;
  transition:transform .08s linear;
  z-index:0;
}
.gfc-human-core{
  position:absolute;
  width:26px;
  height:26px;
  border-radius:999px;
  background:rgba(255,255,255,.38);
  box-shadow:0 0 0 14px rgba(255,255,255,.10), 0 0 22px rgba(255,255,255,.18);
  z-index:1;
  pointer-events:none;
}
.gfc-human-wrap.is-disabled .gfc-human-core{
  background:rgba(148,163,184,.18);
  box-shadow:0 0 0 14px rgba(148,163,184,.08);
}
.gfc-human-text{
  position:relative;
  z-index:2;
  max-width:88px;
  font-size:13px;
  font-weight:800;
  line-height:1.25;
  color:#0b2447;
}
.gfc-human-wrap.is-holding .gfc-human-text,
.gfc-human-wrap.is-authorized .gfc-human-text{
  color:#fff;
}
.gfc-human-wrap.is-authorized .gfc-human-button{
  border-color:rgba(10,122,45,.22);
}
.gfc-human-wrap.is-authorized .gfc-human-fill{
  background:radial-gradient(circle, rgba(22,163,74,.96) 0%, rgba(10,122,45,.86) 48%, rgba(10,122,45,.74) 100%);
}


.gfc-auth-card, .gfc-auth-card *{box-sizing:border-box;}
@media (max-width:380px){.gfc-auth-wrap{padding:12px;}.gfc-auth-card{padding:16px;}.gfc-auth-head h2{font-size:20px;}.gfc-auth-links{flex-direction:column;align-items:flex-start;}}
