/* ============================================
   PAGINI DE AUTENTIFICARE
   ============================================

   Se încarcă prin $page_css = 'auth';
   Folosit de: parola-uitata.php, parola-noua.php
   (și de login.php / activate.php, dacă le convertim mai târziu)

   Scris mobile-first.
   ============================================ */


/* ============================================
   1. FUNDAL PAGINĂ
   ============================================ */
/* Fundalul verde de pe vechile pagini de autentificare.
   ATENȚIE: aici NU punem display:flex pe body — ar așeza
   header-ul, conținutul și footer-ul unul lângă altul. */
body.page-recovery {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
    background-attachment: fixed;
}


/* ============================================
   2. CONTAINER
   ============================================ */
.recovery-wrap {
    display: flex;
    align-items: center;
    justify-content: center;

    /* Ocupă ecranul minus header, dar fără să forțeze derulare */
    min-height: calc(100vh - var(--header-height) - 200px);

    padding: var(--space-6) var(--space-4);
}

.recovery-card {
    width: 100%;
    max-width: 420px;

    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
padding: var(--space-8) var(--space-6);

    text-align: center;
}

@media (min-width: 768px) {
    .recovery-card {
padding: var(--space-10) var(--space-8);
    }
}


/* ============================================
   3. CONȚINUT CARD
   ============================================ */
.recovery-card__icon {
    font-size: 2.75rem;
    line-height: 1;
    margin-bottom: var(--space-3);
}

.recovery-card__title {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 800;
    color: var(--color-primary);
    margin: 0 0 var(--space-3);
}

.recovery-card__text {
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--color-gray-600);
    margin: 0 0 var(--space-4);
}

.recovery-card__text--muted {
    font-size: var(--text-sm);
    color: var(--color-gray-500);
}

.recovery-card__footer {
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-gray-200);
    font-size: var(--text-sm);
}

.recovery-card__footer a {
    color: var(--color-gray-600);
    text-decoration: none;
    font-weight: 600;
}

@media (hover: hover) {
    .recovery-card__footer a:hover {
        color: var(--color-primary);
        text-decoration: underline;
    }
}


/* ============================================
   4. FORMULARE
   ============================================ */
/* Etichetele și textul din formular se aliniază la stânga,
   chiar dacă restul cardului e centrat. */
.recovery-card .form-group {
    text-align: left;
    margin-bottom: var(--space-4);
}

.recovery-card .form-label {
    display: block;
    margin-bottom: var(--space-2);
    font-weight: 700;
    font-size: var(--text-sm);
    color: var(--color-gray-700);
}

.recovery-card .form-input {
    /* 16px minim — sub această valoare, Safari pe iPhone
       mărește automat pagina când atingi câmpul. */
    font-size: 16px;
    min-height: var(--tap-target);
}

.form-hint {
    margin: var(--space-2) 0 0;
    font-size: var(--text-xs);
    color: var(--color-gray-500);
}


/* ============================================
   5. BUTONUL CU OCHI (arată/ascunde parola)
   ============================================

   Structura e creată automat de main.js:

     <div class="password-field">
         <input type="password" class="form-input">
         <button class="password-toggle">...</button>
     </div>
   ============================================ */

.password-field {
    position: relative;
    display: block;
}

/* Lăsăm loc pe dreapta ca textul parolei să nu treacă pe sub buton */
.password-field .form-input {
    padding-right: calc(var(--tap-target) + var(--space-2));
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: var(--space-1);
    transform: translateY(-50%);

    display: flex;
    align-items: center;
    justify-content: center;

    /* Zonă de atins completă, deși pictograma e mică */
    width: var(--tap-target);
    height: var(--tap-target);

    background: none;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    padding: 0;

    color: var(--color-gray-500);
    -webkit-tap-highlight-color: transparent;

    transition: color var(--transition-fast),
                background-color var(--transition-fast);
}

.password-toggle svg {
    width: 22px;
    height: 22px;
    display: block;
    pointer-events: none;   /* clicul ajunge la buton, nu la desen */
}

/* Pictograma „ochi tăiat" e ascunsă cât timp parola e mascată */
.password-toggle .icon-eye-off {
    display: none;
}

/* Când parola e vizibilă, schimbăm pictograma */
.password-toggle[aria-pressed="true"] {
    color: var(--color-primary);
}

.password-toggle[aria-pressed="true"] .icon-eye {
    display: none;
}

.password-toggle[aria-pressed="true"] .icon-eye-off {
    display: block;
}

@media (hover: hover) {
    .password-toggle:hover {
        color: var(--color-gray-700);
        background: var(--color-gray-100);
    }
}

.password-toggle:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}


/* ============================================
   6. MIȘCARE REDUSĂ
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    .password-toggle,
    .recovery-card__footer a {
        transition: none;
    }
}

/* ============================================
   7. LIMITARE LĂȚIME PE ECRANE MARI
   ============================================ */
/* Pe telefon rămân late, e corect. De la tabletă în sus
   arată mai bine dacă nu se întind cât tot cardul. */
@media (min-width: 768px) {

    .recovery-card form {
        max-width: 320px;
        margin: 0 auto;
    }

    .recovery-card .btn-block {
        width: 100%;   /* 100% din formular, nu din card */
    }
}