/* GameZone — auth.css */

@keyframes gz-shake {
  0%,100%{transform:translateX(0)} 20%{transform:translateX(-7px)}
  40%{transform:translateX(7px)}   60%{transform:translateX(-4px)} 80%{transform:translateX(4px)}
}

/* Overlay */
.gz-auth-overlay {
  position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(10px);
  z-index:9999;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.gz-auth-overlay.open { opacity:1;pointer-events:auto; }

/* Modal */
.gz-auth-modal {
  background:#0f0f1a;border:1px solid #1e1e32;border-radius:18px;
  width:100%;max-width:420px;margin:16px;position:relative;
  box-shadow:0 28px 80px rgba(0,0,0,.8);overflow:hidden;
  transform:translateY(16px) scale(.97);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.gz-auth-overlay.open .gz-auth-modal { transform:none; }

/* Tabs */
.gz-auth-tabs { display:flex;background:rgba(0,0,0,.25);border-bottom:1px solid #1e1e32; }
.gz-auth-tab {
  flex:1;padding:14px 12px;background:transparent;border:none;border-bottom:2px solid transparent;
  margin-bottom:-1px;color:#555;font-size:.88rem;font-weight:700;cursor:pointer;
  transition:color .15s,border-color .15s;font-family:inherit;
  /* Place pour le bouton × */
}
.gz-auth-tab:last-child { padding-right:44px; }
.gz-auth-tab:hover:not(.active) { color:#b8b8d0; }
.gz-auth-tab.active { color:#fff;border-bottom-color:#7c3aed; }

/* Panels */
.gz-auth-panel { display:none; }
.gz-auth-panel.active { display:block; }
.gz-auth-panel-inner { padding:22px 22px 18px; }

.gz-auth-heading-wrap { margin-bottom:18px; }
.gz-auth-heading { font-size:1.15rem;font-weight:900;color:#fff;margin:0 0 3px; }
.gz-auth-sub { font-size:.82rem;color:#7777aa;margin:0; }

/* Alert */
.gz-auth-alert {
  display:none;padding:9px 13px;border-radius:8px;font-size:.82rem;
  font-weight:600;margin-bottom:14px;
}
.gz-auth-alert.gz-auth-message--success {
  display:block;background:rgba(34,197,94,.1);color:#22c55e;
  border:1px solid rgba(34,197,94,.22);
}
.gz-auth-alert.gz-auth-message--error {
  display:block;background:rgba(239,68,68,.1);color:#ef4444;
  border:1px solid rgba(239,68,68,.22);
}

/* Fields */
.gz-auth-field { margin-bottom:13px; }
.gz-auth-field label {
  display:flex;align-items:center;justify-content:space-between;
  font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.07em;color:#7777aa;margin-bottom:6px;
}
.gz-auth-field-row { display:flex;align-items:center;justify-content:space-between; }
.gz-auth-field-link {
  font-size:.74rem;font-weight:600;color:#555;text-decoration:none;
  text-transform:none;letter-spacing:0;
}
.gz-auth-field-link:hover { color:#a78bfa; }
.gz-auth-hint { font-size:.72rem;color:#555;margin-top:4px;line-height:1.45; }

.gz-auth-input-wrap { position:relative; }
.gz-auth-input-wrap input { padding-right:40px !important; }

.gz-auth-panel input[type="text"],
.gz-auth-panel input[type="email"],
.gz-auth-panel input[type="password"] {
  width:100%;background:rgba(255,255,255,.05);border:1.5px solid #1e1e32;
  border-radius:9px;color:#e2e2f0;padding:10px 13px;font-size:.92rem;
  font-family:inherit;outline:none;box-sizing:border-box;
  transition:border-color .15s,box-shadow .15s;
}
.gz-auth-panel input:focus {
  border-color:#7c3aed;
  box-shadow:0 0 0 3px rgba(124,58,237,.11);
  background:rgba(255,255,255,.07);
}
.gz-auth-panel input::placeholder { color:#3a3a55; }

.gz-auth-eye {
  position:absolute;right:11px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:#3a3a55;cursor:pointer;
  padding:3px;display:flex;align-items:center;
}
.gz-auth-eye:hover { color:#b8b8d0; }

/* Checkbox */
.gz-auth-check {
  display:flex;align-items:center;gap:9px;font-size:.83rem;
  color:#7777aa;cursor:pointer;margin-bottom:15px;user-select:none;
}
.gz-auth-check input { display:none; }
.gz-auth-check-box {
  width:17px;height:17px;border:1.5px solid #2a2a45;border-radius:5px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;
}
.gz-auth-check input:checked + .gz-auth-check-box {
  background:#7c3aed;border-color:#7c3aed;
}
.gz-auth-check input:checked + .gz-auth-check-box::after {
  content:'✓';font-size:10px;color:#fff;font-weight:900;
}

/* Submit */
.gz-auth-submit {
  width:100%;padding:12px;background:#7c3aed;color:#fff;border:none;
  border-radius:10px;font-size:.95rem;font-weight:800;cursor:pointer;
  transition:background .15s,transform .15s;margin-bottom:13px;font-family:inherit;
}
.gz-auth-submit:hover { background:#6d28d9;transform:translateY(-1px); }
.gz-auth-submit:disabled { background:#222;color:#444;cursor:not-allowed;transform:none; }

.gz-auth-back {
  padding:11px 15px;background:transparent;border:1.5px solid #1e1e32;
  color:#7777aa;border-radius:9px;font-size:.87rem;font-weight:700;
  cursor:pointer;transition:all .15s;font-family:inherit;
}
.gz-auth-back:hover { border-color:#7c3aed;color:#a78bfa; }

/* Steps d'inscription */
.gz-reg-steps {
  display:flex;align-items:center;margin-bottom:20px;
}
.gz-reg-step-item {
  display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;
}
.gz-reg-step-item span {
  font-size:.6rem;color:#444;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
}
.gz-reg-step-line {
  flex:1;height:2px;background:#1e1e32;margin:0 6px;margin-bottom:20px;transition:background .3s;
}
.gz-reg-step-line.done { background:#22c55e; }
.gz-reg-dot {
  width:28px;height:28px;border-radius:50%;border:2px solid #1e1e32;
  display:flex;align-items:center;justify-content:center;font-size:.76rem;
  font-weight:800;color:#444;background:#0f0f1a;transition:all .2s;
}
.gz-reg-dot.active {
  border-color:#7c3aed;color:#a78bfa;background:rgba(124,58,237,.12);
  box-shadow:0 0 0 3px rgba(124,58,237,.1);
}
.gz-reg-dot.done { border-color:#22c55e;background:#22c55e;color:#fff;font-size:0; }
.gz-reg-dot.done::before { content:'✓';font-size:.76rem;font-weight:900; }

.gz-reg-step { display:none; }
.gz-reg-step.active { display:block; }

.gz-reg-actions {
  display:flex;gap:8px;align-items:center;margin-bottom:10px;
}

/* Force mot de passe */
.gz-pass-meter { margin-top:6px;display:flex;align-items:center;gap:8px; }
.gz-pass-meter__track {
  flex:1;height:4px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden;
}
.gz-pass-meter__fill { height:100%;width:0%;border-radius:2px;transition:width .3s,background .3s; }
.gz-pass-meter__label { font-size:.7rem;font-weight:700;min-width:65px;text-align:right;flex-shrink:0; }

/* Footer */
.gz-auth-terms { font-size:.73rem;color:#555;text-align:center;margin:0 0 8px; }
.gz-auth-terms a { color:#7777aa; }
.gz-auth-terms a:hover { color:#a78bfa; }
.gz-auth-switch { font-size:.82rem;color:#7777aa;text-align:center;margin:0; }
.gz-auth-link {
  background:none;border:none;color:#a78bfa;font-weight:700;cursor:pointer;
  font-size:inherit;font-family:inherit;padding:0;
}
.gz-auth-link:hover { color:#fff;text-decoration:underline; }
.gz-auth-required { color:#ef4444; }

body.gz-modal-open { overflow:hidden !important; }

/* Bouton header */
.gz-header-auth-btn {
  padding:7px 18px;background:#7c3aed;color:#fff;border:none;border-radius:20px;
  font-size:.82rem;font-weight:700;cursor:pointer;transition:background .15s,transform .15s;
  flex-shrink:0;font-family:inherit;
}
.gz-header-auth-btn:hover { background:#6d28d9;transform:translateY(-1px); }

/* Mobile */
@media (max-width:480px) {
  .gz-auth-modal { margin:10px;border-radius:14px; }
  .gz-auth-panel-inner { padding:16px 15px 14px; }
}
