.auth-page{padding:64px 0 88px;min-height:70vh}
.auth-wrap{width:min(100% - 28px,560px);margin:0 auto}
.auth-card{padding:30px;background:linear-gradient(180deg,rgba(255,248,234,.09),rgba(255,248,234,.035));border:1px solid var(--borde);border-radius:24px;box-shadow:var(--sombra)}
.auth-card h1{font-size:clamp(2rem,7vw,3.2rem);margin-bottom:10px}
.auth-card .auth-intro{margin-bottom:24px;color:var(--gris)}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.auth-field{display:grid;gap:8px;margin-bottom:15px}
.auth-field label{font-weight:800;color:#f4ead9;font-size:.92rem}
.auth-field input{width:100%;padding:14px 15px;border-radius:14px;border:1px solid rgba(246,223,131,.22);background:rgba(0,0,0,.28);color:var(--blanco);outline:none;font:inherit}
.auth-field input:focus{border-color:rgba(246,223,131,.65);box-shadow:0 0 0 3px rgba(216,137,33,.12)}
.auth-help{font-size:.82rem;color:#aa9d8c;line-height:1.5}
.auth-alert{padding:13px 15px;border-radius:14px;margin:0 0 18px;border:1px solid transparent;line-height:1.5}
.auth-alert.error{background:rgba(153,45,45,.18);border-color:rgba(255,105,105,.28);color:#ffd5d5}
.auth-alert.success{background:rgba(55,132,78,.18);border-color:rgba(114,214,143,.28);color:#d8ffe4}
.auth-alert.info{background:rgba(216,137,33,.12);border-color:rgba(246,223,131,.25);color:#fff0bd}
.auth-links{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-top:18px;font-size:.91rem}
.auth-links a{color:var(--dorado-claro);font-weight:750}
.auth-userbox{display:grid;gap:14px}
.auth-user-row{padding:14px;border:1px solid var(--borde);border-radius:14px;background:rgba(255,255,255,.03)}
.auth-user-row span{display:block;color:#aa9d8c;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.auth-user-row strong{font-size:1.02rem}
.auth-inline-form{display:inline}
.grecaptcha-badge{visibility:visible!important}
@media(max-width:620px){.auth-card{padding:22px}.auth-grid{grid-template-columns:1fr}.auth-page{padding-top:38px}}
.auth-wrap-wide{width:min(100% - 28px,760px)}
.auth-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;margin:0 0 22px;border:1px solid var(--borde);border-radius:16px;background:rgba(0,0,0,.22)}
.auth-mode-switch a,.auth-mode-switch span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border-radius:11px;font-weight:850;text-align:center}
.auth-mode-switch a{color:var(--dorado-claro)}
.auth-mode-switch .active{background:linear-gradient(135deg,var(--champagne),var(--dorado-claro),var(--dorado));color:#130b03}
.auth-links-center{justify-content:center;text-align:center;margin-top:13px}
.auth-separator{border:0;border-top:1px solid var(--borde);margin:26px 0}
.auth-subtitle{font-size:1.25rem;margin:0 0 16px;color:#f4ead9}
.auth-profile-form{display:grid;gap:4px}.auth-account-actions{align-items:center;margin-top:24px}.auth-account-actions form{margin:0}
.agenda-page{padding-top:42px}.agenda-wrap{width:min(100% - 28px,1120px)}.agenda-intro-card{margin-bottom:18px}
.agenda-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}
.agenda-slot-card{display:flex;flex-direction:column;gap:18px;min-height:100%}.agenda-slot-card.sold-out{opacity:.74}
.agenda-slot-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.agenda-slot-top h2{font-size:1.8rem;margin:3px 0 0}
.agenda-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:900;white-space:nowrap;border:1px solid var(--borde)}
.agenda-badge.available{background:rgba(55,132,78,.18);border-color:rgba(114,214,143,.28);color:#d8ffe4}.agenda-badge.full{background:rgba(153,45,45,.18);border-color:rgba(255,105,105,.28);color:#ffd5d5}.agenda-badge.mine{background:rgba(216,137,33,.16);border-color:rgba(246,223,131,.34);color:#fff0bd}
.agenda-slot-meta{display:grid;gap:8px;padding:14px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid var(--borde);color:#cdbfae;font-size:.9rem}.agenda-slot-meta strong{color:#fff0bd}.agenda-note{color:#b9ac9a;line-height:1.55;margin:0}
.agenda-take-form{display:grid;gap:12px;margin-top:auto}.agenda-take-form label{display:grid;gap:7px;font-weight:800;color:#f4ead9;font-size:.9rem}.agenda-take-form select{width:100%;padding:12px 14px;border-radius:13px;border:1px solid rgba(246,223,131,.22);background:#15120f;color:#fff;font:inherit}
.agenda-empty{grid-column:1/-1;text-align:center}.agenda-empty h2{margin-bottom:8px}.agenda-empty p{color:var(--gris)}
.agenda-timer-box{display:grid;gap:8px;text-align:center;padding:20px;margin:0 0 20px;border-radius:18px;border:1px solid rgba(246,223,131,.35);background:rgba(216,137,33,.10)}.agenda-timer-box span{font-weight:800;color:#e7dbc8}.agenda-timer-box strong{font-size:2.7rem;letter-spacing:.06em;color:var(--dorado-claro)}.agenda-timer-box small{color:#aa9d8c;line-height:1.5}
.btn[disabled],button[disabled]{opacity:.5;cursor:not-allowed;filter:saturate(.5)}
@media(max-width:620px){.auth-mode-switch{grid-template-columns:1fr}.agenda-slot-grid{grid-template-columns:1fr}.agenda-slot-top{display:grid}.auth-account-actions{display:grid}.auth-account-actions .btn,.auth-account-actions form,.auth-account-actions form .btn{width:100%}}


.auth-wrap-account{width:min(100% - 28px,1180px)}
.auth-account-card{padding:34px 36px}
.auth-account-grid{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(360px,1.25fr);gap:24px;align-items:start}
.auth-account-column{min-width:0}
.auth-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.auth-input-group{display:flex;align-items:center;border:1px solid rgba(246,223,131,.22);border-radius:14px;background:rgba(0,0,0,.28);overflow:hidden}
.auth-input-group:focus-within{border-color:rgba(246,223,131,.65);box-shadow:0 0 0 3px rgba(216,137,33,.12)}
.auth-prefix{display:flex;align-items:center;justify-content:center;min-height:50px;padding:0 14px;border-right:1px solid rgba(246,223,131,.18);color:#fff0bd;font-weight:900;background:rgba(255,255,255,.03)}
.auth-input-group input{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important}
.auth-profile-actions{margin-top:4px}
@media(max-width:980px){.auth-account-grid{grid-template-columns:1fr}.auth-wrap-account{width:min(100% - 22px,1180px)}.auth-account-card{padding:24px}.auth-profile-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.auth-profile-grid{grid-template-columns:1fr}.auth-prefix{min-height:48px}}

/* =========================================================
   BY GLO - AGENDA COMPACTA / ESCRITORIO
   Aprovecha el ancho disponible y reduce scroll vertical
   ========================================================= */

@media (min-width: 901px) {

    /* ---------- CONTENEDOR GENERAL AGENDA ---------- */

    .agenda-wrap {
        width: min(calc(100% - 48px), 1380px);
    }

    .agenda-page {
        padding-top: 34px;
        padding-bottom: 64px;
    }

    .agenda-intro-card {
        padding: 26px 30px;
        margin-bottom: 18px;
    }

    .agenda-intro-card h1 {
        font-size: clamp(2.3rem, 3vw, 3.2rem);
        margin-bottom: 8px;
    }

    .agenda-intro-card .auth-intro {
        margin-bottom: 0;
        max-width: 1050px;
    }


    /* =====================================================
       LISTADO DE FECHAS
       Cada fecha ocupa una FILA horizontal
       ===================================================== */

    .agenda-slot-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .agenda-slot-card {
        display: grid;

        grid-template-columns:
            minmax(210px, .75fr)
            minmax(320px, 1.25fr)
            minmax(280px, .9fr);

        grid-template-areas:
            "head meta action"
            "note meta action";

        column-gap: 24px;
        row-gap: 12px;

        align-items: center;

        padding: 24px 28px;
        min-height: 0;
    }

    .agenda-slot-top {
        grid-area: head;

        display: flex;
        align-items: flex-start;
        justify-content: space-between;

        gap: 12px;
    }

    .agenda-slot-top h2 {
        font-size: 2rem;
        margin: 3px 0 0;
    }

    .agenda-slot-meta {
        grid-area: meta;

        display: grid;
        align-content: center;

        gap: 10px;

        padding: 16px 18px;

        min-height: 100%;
    }

    .agenda-note {
        grid-area: note;

        margin: 0;

        align-self: start;
    }

    .agenda-take-form {
        grid-area: action;

        display: grid;

        gap: 12px;

        margin: 0;

        align-self: center;
    }

    .agenda-slot-card > .btn-full {
        grid-area: action;

        width: 100%;

        align-self: center;
    }

    .agenda-take-form select {
        min-height: 46px;
    }

    .agenda-take-form .btn {
        min-height: 48px;
    }


    /* =====================================================
       PÁGINA DE RESERVA
       Timer + información uno al lado del otro
       ===================================================== */

    .agenda-page .auth-wrap-wide {
        width: min(calc(100% - 48px), 1280px);
    }

    .agenda-page .auth-wrap-wide > .auth-card {
        padding: 30px 34px;
    }

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box) {

        display: grid;

        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(360px, .95fr);

        gap: 18px 24px;

        grid-auto-flow: row dense;
    }

    /* Encabezado ocupa todo el ancho */

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .eyebrow,

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > h1,

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .auth-intro {

        grid-column: 1 / -1;
    }


    /* Código de reserva largo */

    .agenda-page
    .auth-wrap-wide
    > .auth-card
    > h1 {

        font-size: clamp(2rem, 4vw, 3rem);

        line-height: 1;

        overflow-wrap: anywhere;
    }


    /* Timer a la izquierda */

    .agenda-page .agenda-timer-box {
        grid-column: 1;

        margin: 0;

        min-height: 100%;

        align-content: center;

        padding: 22px;
    }


    /* Datos de la reserva a la derecha */

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .auth-userbox {

        grid-column: 2;

        align-self: stretch;

        gap: 10px;
    }

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .auth-userbox
    .auth-user-row {

        padding: 12px 14px;
    }


    /* Mensajes inferiores */

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .auth-alert {

        grid-column: 1 / -1;

        margin: 0;
    }


    /* Botones inferiores */

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box)
    > .auth-links {

        grid-column: 1 / -1;

        margin-top: 0;

        align-items: center;
    }
}


/* =========================================================
   TABLET / MÓVIL
   Vuelve automáticamente a una sola columna
   ========================================================= */

@media (max-width: 900px) {

    .agenda-wrap {
        width: min(100% - 22px, 760px);
    }

    .agenda-slot-card {
        display: flex;
        flex-direction: column;

        gap: 16px;

        padding: 22px;
    }

    .agenda-slot-top,
    .agenda-slot-meta,
    .agenda-note,
    .agenda-take-form,
    .agenda-slot-card > .btn-full {

        width: 100%;
    }

    .agenda-page
    .auth-wrap-wide
    > .auth-card:has(.agenda-timer-box) {

        display: block;
    }

    .agenda-page .agenda-timer-box {
        margin-bottom: 18px;
    }

    .agenda-page
    .auth-wrap-wide
    > .auth-card
    > h1 {

        overflow-wrap: anywhere;
    }
}


/* =========================================================
   MI CUENTA V3
   Diseño compacto y horizontal
   ========================================================= */

.auth-account-page {
    padding: 34px 0 58px;
}

.auth-wrap-account-v3 {
    width: min(calc(100% - 40px), 1440px);
    margin: 0 auto;
}

.auth-account-card-v3 {
    padding: 28px 32px;
}


/* CABECERA */

.auth-account-heading-v3 {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 24px;

    margin-bottom: 20px;
}

.auth-account-heading-v3 h1 {

    font-size: clamp(
        2.35rem,
        4vw,
        3.35rem
    );

    margin: 2px 0 6px;

    line-height: 1;
}

.auth-account-heading-v3 .auth-intro {
    margin: 0;
}

.auth-account-verified {

    display: inline-flex;

    align-items: center;

    white-space: nowrap;

    padding: 9px 13px;

    border-radius: 999px;

    background:
        rgba(55,132,78,.16);

    border:
        1px solid
        rgba(114,214,143,.28);

    color: #d8ffe4;

    font-size: .84rem;

    font-weight: 900;
}


/* INFORMACIÓN PRINCIPAL */

.auth-account-summary-v3 {

    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap: 14px;

    margin-bottom: 18px;
}

.auth-account-summary-v3
.auth-user-row {

    min-height: 78px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 14px 16px;
}


/* DATOS DE RESERVA */

.auth-profile-panel-v3 {

    padding: 18px 20px;

    border:
        1px solid
        var(--borde);

    border-radius: 18px;

    background:
        rgba(255,255,255,.025);
}


.auth-profile-title-v3 {

    display: flex;

    align-items: end;

    justify-content:
        space-between;

    gap: 22px;

    margin-bottom: 14px;
}

.auth-profile-title-v3 h2 {

    margin: 3px 0 0;

    font-size: 1.35rem;

    color: #f4ead9;
}

.auth-profile-title-v3 p {

    margin: 0;

    color: #aa9d8c;

    font-size: .86rem;

    text-align: right;
}


/* FORMULARIO HORIZONTAL */

.auth-profile-form-v3 {

    display: grid;

    grid-template-columns:
        minmax(260px,1fr)
        minmax(260px,.9fr)
        auto;

    gap: 14px;

    align-items: end;
}

.auth-profile-form-v3
.auth-field {

    margin: 0;
}


/* BOTÓN GUARDAR */

.auth-profile-save-v3 {

    display: flex;

    align-items: end;

    padding-bottom: 1px;
}

.auth-profile-save-v3
.btn {

    min-height: 50px;

    white-space: nowrap;

    padding-left: 22px;

    padding-right: 22px;
}


/* ACCIONES */

.auth-account-actions-v3 {

    display: flex;

    align-items: center;

    justify-content:
        space-between;

    gap: 14px;

    margin-top: 18px;
}

.auth-account-actions-v3 form {
    margin: 0;
}


/* TABLET */

@media (max-width:1050px) {

    .auth-account-summary-v3 {

        grid-template-columns:
            1fr 1fr;
    }

    .auth-account-summary-v3
    .auth-user-row:last-child {

        grid-column:
            1 / -1;
    }

    .auth-profile-form-v3 {

        grid-template-columns:
            1fr 1fr;
    }

    .auth-profile-save-v3 {

        grid-column:
            1 / -1;
    }

    .auth-profile-save-v3
    .btn {

        width: 100%;

        justify-content:
            center;
    }

}


/* CELULAR */

@media (max-width:700px) {

    .auth-wrap-account-v3 {

        width:
            min(
                100% - 20px,
                1440px
            );
    }

    .auth-account-card-v3 {
        padding: 22px;
    }

    .auth-account-heading-v3 {
        display: grid;
    }

    .auth-account-verified {
        width: max-content;
    }

    .auth-account-summary-v3,
    .auth-profile-form-v3 {

        grid-template-columns:
            1fr;
    }

    .auth-account-summary-v3
    .auth-user-row:last-child {

        grid-column:
            auto;
    }

    .auth-profile-title-v3 {
        display: grid;
    }

    .auth-profile-title-v3 p {
        text-align: left;
    }

    .auth-profile-save-v3 {
        grid-column: auto;
    }

    .auth-account-actions-v3 {
        display: grid;
    }

    .auth-account-actions-v3 .btn,
    .auth-account-actions-v3 form,
    .auth-account-actions-v3 form .btn {

        width: 100%;

        justify-content:
            center;
    }

}
/* Acceso Google */
.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;padding:11px 16px;margin:0 0 16px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:#fff;color:#202124;font-weight:850;text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.18)}
.auth-google-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,.22)}
.auth-google-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-weight:900;font-family:Arial,sans-serif;color:#4285f4;background:#fff;border:1px solid #dadce0}
.auth-or{display:flex;align-items:center;gap:12px;margin:4px 0 18px;color:#aa9d8c;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.auth-or:before,.auth-or:after{content:"";height:1px;flex:1;background:var(--borde)}
