/* =============================================================
   custom-full-screen.css — Auth / full-screen pages
   (login, register, forgot-password, reset-password)
   ─────────────────────────────────────────────────────────────
   Uses the same CSS variables as styles.css.
   This file is loaded ONLY on auth pages (via $extra_css).
   ============================================================= */

/* Hide header/footer for full-screen experience */
header, footer { display: none !important; }
main  { padding: 0 !important; }

/* ── Base container ─────────────────────────────────────────── */
.fullscreen-hero {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 2rem 0;
}

.fullscreen-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 25% 25%, rgba(255,255,255,0.12) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 75%, rgba(255,255,255,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 10%,  rgba(255,255,255,0.06) 0%, transparent 45%);
  animation: fsAmbient 18s ease-in-out infinite;
  z-index: 1;
  pointer-events: none;
}

.fullscreen-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.fullscreen-content {
  position: relative;
  z-index: 3;
  width: 100%;
}

/* ── Card ───────────────────────────────────────────────────── */
.fullscreen-card {
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--r-2xl);
  border: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 28px 80px rgba(0,0,0,0.22);
  overflow: hidden;
  transition: var(--trans-slow);
}

.fullscreen-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 36px 100px rgba(0,0,0,0.28);
}

/* ── Icon circle ────────────────────────────────────────────── */
.fullscreen-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.4rem;
  box-shadow: 0 10px 32px rgba(0,0,0,0.2);
  transition: var(--trans);
}

.fullscreen-icon:hover { transform: scale(1.06) rotate(4deg); }

/* ── Header stripe (top of card) ────────────────────────────── */
.fullscreen-header {
  background: var(--grad-primary);
  position: relative;
  overflow: hidden;
}

.fullscreen-header::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 50%);
  animation: fsRotate 12s linear infinite;
}

.fullscreen-logo {
  width: 56px;
  height: 56px;
  background: rgba(255,255,255,0.18);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  animation: fsPulse 3.5s ease-in-out infinite;
}

/* ── Back link ──────────────────────────────────────────────── */
.fullscreen-back-link {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.875rem;
  transition: var(--trans);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.fullscreen-back-link:hover {
  color: var(--clr-accent-lt);
  transform: translateX(-4px);
}

/* ── Welcome badge ──────────────────────────────────────────── */
.fullscreen-welcome-badge {
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.28);
  color: rgba(255,255,255,0.95);
  padding: 0.4rem 1.1rem;
  border-radius: var(--r-pill);
  font-size: 0.8rem;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 1rem;
  letter-spacing: 0.04em;
}

/* ── Theme variants ─────────────────────────────────────────── */

/* Login */
.fullscreen-hero--login {
  background: linear-gradient(155deg, var(--clr-primary-dk) 0%, var(--clr-primary) 55%, var(--clr-green) 100%);
}

.fullscreen-overlay--login { background: rgba(20,32,48,0.30); }

.fullscreen-icon--login {
  background: var(--grad-primary);
  box-shadow: 0 10px 32px rgba(45,106,143,0.35);
}

/* Register */
.fullscreen-hero--register {
  background: linear-gradient(155deg, var(--clr-dark) 0%, var(--clr-primary) 45%, var(--clr-green) 100%);
}

.fullscreen-overlay--register { background: rgba(20,32,48,0.25); }

.fullscreen-icon--register {
  background: var(--grad-green);
  box-shadow: 0 10px 32px rgba(74,124,94,0.35);
}

/* Forgot password */
.fullscreen-hero--forgot {
  background: linear-gradient(155deg, var(--clr-primary-dk) 0%, var(--clr-primary) 50%, var(--clr-accent-dk) 100%);
}

.fullscreen-overlay--forgot { background: rgba(20,32,48,0.28); }

.fullscreen-icon--forgot {
  width: 76px;
  height: 76px;
  background: var(--grad-accent);
  box-shadow: 0 10px 32px rgba(232,147,58,0.35);
}

.fullscreen-icon--forgot:hover { transform: scale(1.08) rotate(-4deg); }

.fullscreen-icon--forgot-success {
  background: var(--grad-green);
  box-shadow: 0 10px 32px rgba(74,124,94,0.35);
}

/* Reset password */
.fullscreen-hero--reset {
  background: linear-gradient(155deg, var(--clr-green-dk) 0%, var(--clr-green) 50%, var(--clr-primary) 100%);
}

.fullscreen-overlay--reset { background: rgba(20,32,48,0.25); }

.fullscreen-icon--reset {
  background: var(--grad-green);
  box-shadow: 0 10px 32px rgba(74,124,94,0.35);
}

.fullscreen-icon--reset-success {
  background: var(--grad-primary);
  box-shadow: 0 10px 32px rgba(45,106,143,0.35);
}

/* ── Form overrides (scoped to fullscreen-card only) ─────────── */
.fullscreen-card .form-control {
  transition: var(--trans);
}

.fullscreen-card .form-control:focus {
  transform: translateY(-1px);
}

.fullscreen-card .form-check-input:checked {
  background-color: var(--clr-primary);
  border-color: var(--clr-primary);
}

.fullscreen-card .form-label {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--clr-text-2);
}

/* ── Button styles (scoped to this page context) ────────────── */
.fullscreen-card .btn-primary {
  border-radius: var(--r-pill);
  padding: 0.7rem 2rem;
  font-size: 0.95rem;
}

.fullscreen-card .alert-success {
  animation: slideInDown 0.45s ease both;
}

.fullscreen-card .alert-danger {
  animation: shake 0.45s ease both;
}

/* Rate limit notice */
.rate-limited-notice {
  background: var(--grad-accent);
  color: #fff;
  border: none;
  border-left: 4px solid var(--clr-accent-dk);
}

/* Password requirements */
.password-requirements { font-size: 0.8rem; color: var(--clr-text-3); }
.requirement-met { color: var(--clr-green) !important; font-weight: 600; }

/* Gender option */
.gender-option {
  transition: var(--trans);
  padding: 0.5rem 1rem;
  border-radius: var(--r-md);
  cursor: pointer;
}

.gender-option:hover { background: var(--clr-primary-xl); transform: scale(1.03); }

/* Success message */
.success-message {
  background: var(--clr-green-xl);
  border: 1px solid rgba(74,124,94,0.2);
  color: var(--clr-green-dk);
  border-radius: var(--r-md);
}

/* ── Animations ─────────────────────────────────────────────── */
@keyframes fsAmbient {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.8; transform: scale(1.03); }
}

@keyframes fsRotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes fsPulse {
  0%, 100% { transform: scale(1); }
  50%       { transform: scale(1.06); }
}

@keyframes slideInDown {
  from { transform: translateY(-14px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25%       { transform: translateX(-5px); }
  75%       { transform: translateX(5px); }
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 576px) {
  .fullscreen-hero { padding: 1.5rem 0; }
  .fullscreen-card { border-radius: var(--r-xl); }
}
