/* ============================================================
   forms.css — Formularios (login / registro)
   Centrado real + ancho consistente con header/footer
============================================================ */

/* =========================
   CONTENEDOR GENERAL
========================= */
.form-page-wrapper {
    background-color: #fff8f0;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    padding: 32px 0;
}

/* =========================
   CAJA DEL FORMULARIO
========================= */
.form-container {
    background: #fff;
    padding: 28px 24px;
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);

    /* 🔑 ancho consistente */
    width: 100%;
    max-width: 520px;

    /* 🔑 centra el contenido interno */
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* =========================
   TÍTULO
========================= */
.form-title {
    text-align: center;
    margin-bottom: 24px;
    color: #b30000;
    font-family: 'Roboto', sans-serif;
    font-size: 24px;
}

/* =========================
   MENSAJES
========================= */
.form-errors {
    width: 100%;
    margin-bottom: 16px;
    text-align: center;
}

.alert-error,
.alert-success {
    padding: 8px;
    border-radius: 6px;
    font-size: 13px;
}

.alert-error {
    color: #b00000;
    background: #ffe1e1;
}

.alert-success {
    color: #1b7a1b;
    background: #e5ffe5;
}

/* ============================================================
   FORMULARIO — BLOQUE CENTRADO
============================================================ */

.form-box {
    width: 100%;
    max-width: 440px;   /* 🔑 centra el grid como bloque */
    display: grid;
    grid-template-columns: 140px 1fr;
    column-gap: 16px;
    row-gap: 12px;
    align-items: center;
}

/* Labels */
.form-label {
    text-align: right;
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

/* Inputs */
.input {
    width: 100%;
    padding: 9px 11px;
    font-size: 14px;
    border-radius: 6px;
    border: 1px solid #ccc;
}

.input:focus {
    outline: none;
    border-color: #b30000;
    box-shadow: 0 0 0 1px rgba(179,0,0,0.2);
}

/* Botón */
.form-box button {
    grid-column: 2 / 3;
    margin-top: 12px;
    padding: 10px;
    font-size: 14px;
    font-weight: 700;
    border-radius: 8px;
    cursor: pointer;
}

/* Texto inferior */
.form-message {
    margin-top: 18px;
    text-align: center;
    font-size: 13px;
}

/* ============================================================
   📱 MOBILE — MISMO ANCHO QUE HEADER/FOOTER
============================================================ */
@media (max-width: 768px) {

    .form-page-wrapper {
        padding: 20px 0 32px;
    }

    .form-container {
        width: 100%;
        max-width: 100%;
        padding: 24px 16px;
        border-radius: 0; /* 🔑 se integra visualmente */
    }

    .form-box {
        max-width: 100%;
        grid-template-columns: 1fr;
        row-gap: 10px;
    }

    .form-label {
        text-align: left;
        font-size: 14px;
    }

    .form-box button {
        grid-column: 1 / 2;
        width: 100%;
        margin-top: 14px;
    }

    .input {
        font-size: 15px;
        padding: 12px;
    }

    /* ============================================================
   FIX DEFINITIVO MOBILE — evitar overflow lateral
============================================================ */

*,
*::before,
*::after {
    box-sizing: border-box;
}

@media (max-width: 768px) {

    .form-container {
        width: 100%;
        max-width: 100vw;
        margin: 0;
        overflow-x: hidden;
    }

    .form-box,
    .input,
    .form-box button {
        max-width: 100%;
        width: 100%;
    }
}

}
