:root{--n:#0e2d59;--b:#246197;--s:#59748f;--ice:#eef4f8;--iv:#f5f2e8;--ink:#1d2a39;--mut:#6f7c89;--bd:#dde5ec}
*{box-sizing:border-box}body{font-family:Inter,system-ui,sans-serif;background:#f5f7fa;color:var(--ink)}a{text-decoration:none}.btn-brand{background:linear-gradient(135deg,var(--b),var(--n));border:0;color:#fff;font-weight:700}.btn-brand:hover{color:#fff}.btn-soft{background:var(--ice);color:var(--n);font-weight:700}.btn-outline-brand{border-color:var(--b);color:var(--n)}
.login-page{min-height:100vh;background:url('../img/fondo-login.png') center/cover fixed;display:flex;align-items:center;justify-content:center;padding:32px;position:relative}.login-overlay{position:absolute;inset:0;background:rgba(6,22,44,.75)}.login-card{z-index:2;width:min(1100px,100%);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border-radius:28px;overflow:hidden}.login-brand{background:linear-gradient(145deg,var(--n),var(--b));color:#fff;padding:54px}.login-logo{width:145px;height:145px;object-fit:cover;border-radius:25px;padding:6px;background:var(--iv)}.eyebrow,.form-kicker,.section-kicker,.topbar-kicker,.client-kicker{letter-spacing:.14em;font-size:.72rem;font-weight:800;color:#89b5d7}.login-brand h1{font-size:3rem;font-weight:800;margin-top:16px}.login-form-panel{padding:52px;display:flex;align-items:center}.login-form-wrap{width:100%}.login-form-wrap h2{color:var(--n);font-weight:800}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,var(--n),#081c37);padding:25px 18px;flex-direction:column}.brand-panel{display:flex;gap:13px;align-items:center;color:#fff;padding:5px 7px 25px}.brand-panel img{width:54px;height:54px;border-radius:14px;object-fit:cover}.brand-panel strong,.brand-panel span{display:block}.brand-panel strong{font:1.35rem Georgia}.brand-panel span{font-size:.75rem;letter-spacing:.12em;color:#9db9d0}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.nav-item{color:#b8c9d8;padding:13px 14px;border-radius:12px;font-weight:600}.nav-item.active,.nav-item:hover{background:#286a9d;color:#fff}.nav-caption{font-size:.65rem;font-weight:800;letter-spacing:.13em;color:#708da8;padding:20px 14px 5px}.sidebar-bottom{margin-top:auto;color:#fff}.sidebar-mobile{background:var(--n);color:#fff}.app-main{margin-left:270px;min-height:100vh}.topbar{height:86px;background:#fff;border-bottom:1px solid var(--bd);display:flex;align-items:center;padding:0 32px}.topbar-title{font-size:1.4rem;font-weight:800;color:var(--n);margin:0}.user-chip{display:flex;gap:10px;align-items:center}.user-chip strong,.user-chip small{display:block}.user-avatar{width:38px;height:38px;border-radius:10px;background:var(--n);color:#fff;display:grid;place-items:center}.content-area{padding:28px 32px}.app-footer{padding:20px 32px;background:#fff;color:var(--mut)}.hero-admin{background:linear-gradient(120deg,var(--n),var(--b));color:#fff;padding:30px;border-radius:22px;margin-bottom:22px}.hero-admin h2{font-weight:800}.metric-card,.panel-card,.client-card{background:#fff;border:1px solid var(--bd);border-radius:20px;padding:22px;color:var(--ink)}.metric-card{display:flex;gap:14px;align-items:center}.metric-icon{width:48px;height:48px;border-radius:14px;background:var(--ice);color:var(--b);display:grid;place-items:center}.metric-copy{display:flex;flex-direction:column}.metric-copy strong{font-size:1.6rem;color:var(--n)}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.panel-header h3{color:var(--n);font-size:1.2rem;font-weight:800}.filter-bar{display:flex;gap:10px;background:#f7f9fb;padding:12px;border-radius:14px;margin-bottom:18px}.client-cell{display:flex;gap:11px;align-items:center}.client-cell img,.client-avatar-fallback{width:46px;height:46px;border-radius:13px;object-fit:cover}.client-avatar-fallback{background:var(--ice);display:grid;place-items:center;font-weight:800;color:var(--n)}.client-cell strong,.client-cell small{display:block}.role-pill,.status-pill,.state{display:inline-block;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--ice);color:var(--n)}.state-activo{background:#e9f7ef;color:#147942}.state-inactivo{background:#f2f3f5;color:#66717c}.state-bloqueado{background:#fff0f0;color:#a72c2c}.empty-state{text-align:center;padding:35px;color:var(--mut)}.profile-form-grid{display:grid;grid-template-columns:220px 1fr;gap:28px}.photo-card{border:1px solid var(--bd);padding:16px;border-radius:18px}.photo-preview{aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--ice)}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-placeholder{height:100%;display:grid;place-items:center;font-size:5rem;color:#a7bccd}.form-section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--bd)}.form-section h4{font-size:1rem;font-weight:800;color:var(--n)}.access-section{background:#f7fafc;border:1px solid var(--bd);border-radius:16px;padding:18px}.access-email-note{display:flex;gap:10px;background:#fff;border:1px solid var(--bd);padding:12px;border-radius:12px}.access-email-note strong,.access-email-note span{display:block}.access-email-note span{font-size:.8rem;color:var(--mut)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.role-selector{display:flex;flex-direction:column;gap:7px}.role-selector a{padding:12px;border:1px solid var(--bd);border-radius:12px;color:var(--ink);display:flex;justify-content:space-between}.role-selector a.active{background:var(--ice)}.permission-group{padding:18px 0;border-top:1px solid var(--bd)}.permission-item{display:flex;gap:10px;border:1px solid var(--bd);border-radius:13px;padding:13px;height:100%}.permission-item strong,.permission-item small{display:block}.permission-item small{font-size:.75rem;color:var(--mut)}.permission-toolbar{text-align:right}.superadmin-lock{display:flex;gap:15px;background:var(--ice);padding:20px;border-radius:16px}.client-portal{background:#f3f6f8}.client-topbar{height:82px;background:#fff;display:flex;align-items:center;padding:0 max(20px,calc((100vw - 1180px)/2));gap:25px}.client-brand{display:flex;gap:10px;align-items:center;color:var(--n)}.client-brand img{width:48px;height:48px;border-radius:13px}.client-brand strong,.client-brand span{display:block}.client-nav{margin-left:auto}.client-nav a{padding:10px;color:var(--mut)}.client-container{max-width:1180px;margin:auto;padding:30px 20px}.client-hero{background:linear-gradient(120deg,var(--n),var(--b));color:#fff;border-radius:26px;padding:34px;display:flex;gap:30px;align-items:center}.client-profile-photo{width:160px;height:160px;border-radius:28px;overflow:hidden;background:rgba(255,255,255,.15);display:grid;place-items:center;border:5px solid rgba(255,255,255,.18)}.client-profile-photo img{width:100%;height:100%;object-fit:cover}.client-profile-photo span{font-size:3rem;font-weight:800}.client-hero h1{font-weight:800}.client-tags{display:flex;gap:8px;flex-wrap:wrap}.client-tags span{padding:8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px}.client-card-header{display:flex;justify-content:space-between}.profile-stat{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--bd)}
@media(max-width:992px){.app-main{margin-left:0}.login-card{grid-template-columns:1fr}.login-brand{display:none}.profile-form-grid{grid-template-columns:1fr}.photo-card{max-width:250px}.content-area{padding:20px 15px}.topbar{padding:0 15px}}
@media(max-width:700px){.client-hero{flex-direction:column;align-items:flex-start}.client-profile-photo{width:120px;height:120px}}

/* Sprint 04: Canchas, horarios y agenda */
.court-card{height:100%;border:1px solid var(--sf-border);border-radius:18px;padding:20px;background:linear-gradient(180deg,#fff,#fbfcfd);box-shadow:0 5px 18px rgba(14,45,89,.04)}
.court-card-top{display:flex;align-items:center;justify-content:space-between}.court-icon{width:48px;height:48px;border-radius:14px;background:var(--sf-ice);display:grid;place-items:center;color:var(--sf-blue);font-size:1.25rem}
.court-sport{display:block;color:var(--sf-blue);font-size:.7rem;font-weight:800;letter-spacing:.12em;margin-top:18px}.court-card h4{font-size:1.2rem;font-weight:800;color:var(--sf-navy);margin:5px 0}.court-card p{color:var(--sf-muted);font-size:.86rem;min-height:42px}
.court-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.court-stats>div{background:#f6f9fb;border-radius:11px;padding:10px}.court-stats small,.court-stats strong{display:block}.court-stats small{color:var(--sf-muted);font-size:.7rem}.court-stats strong{color:var(--sf-navy);font-size:.9rem;margin-top:2px}
.court-actions{display:flex;gap:7px;flex-wrap:wrap}
.agenda-day{display:flex;flex-direction:column}.agenda-reservation{display:grid;grid-template-columns:90px 1fr auto auto;gap:16px;align-items:center;padding:16px 8px;border-top:1px solid var(--sf-border)}
.agenda-time{border-left:4px solid var(--sf-blue);padding-left:12px}.agenda-time strong,.agenda-time span{display:block}.agenda-time strong{font-size:1.1rem;color:var(--sf-navy)}.agenda-time span{font-size:.77rem;color:var(--sf-muted)}
.agenda-title{display:flex;align-items:center;gap:9px}.agenda-title strong{color:var(--sf-navy)}.agenda-title span{font-size:.72rem;color:var(--sf-muted)}
.agenda-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:5px}.agenda-meta span{font-size:.78rem;color:var(--sf-muted)}.agenda-meta i{margin-right:5px;color:var(--sf-blue)}
.agenda-status{text-align:right}.agenda-status small{display:block;color:var(--sf-muted);font-size:.7rem;margin-top:4px}.agenda-actions{display:flex;gap:5px}
@media(max-width:767.98px){.agenda-reservation{grid-template-columns:70px 1fr}.agenda-status{grid-column:2;text-align:left}.agenda-actions{grid-column:2}.court-stats{grid-template-columns:1fr 1fr}}

/* ============================================================
   Revisión Sprint 04 - navegación, paginación y validaciones
   ============================================================ */
.sidebar-nav .nav-item{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    border:0;
    text-align:left;
    background:transparent;
}
.sidebar-nav .nav-item.active,
.sidebar-nav .nav-item:hover{
    background:#286a9d;
    color:#fff;
}
.nav-icon{
    width:24px;
    min-width:24px;
    height:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 24px;
    font-size:1rem;
}
.nav-label{
    flex:1;
    min-width:0;
}
.nav-toggle{
    color:#b8c9d8;
    cursor:pointer;
}
.nav-toggle .nav-chevron{
    margin-left:auto;
    font-size:.8rem;
    transition:transform .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-chevron{
    transform:rotate(180deg);
}
.sidebar-submenu{
    margin:3px 0 8px 36px;
    padding-left:12px;
    border-left:1px solid rgba(255,255,255,.12);
}
.nav-subitem{
    display:flex;
    align-items:center;
    gap:10px;
    color:#9fb5c7;
    padding:10px 12px;
    border-radius:10px;
    font-size:.88rem;
    font-weight:600;
}
.nav-subitem:hover,
.nav-subitem.active{
    color:#fff;
    background:rgba(255,255,255,.08);
}
.nav-subitem i{
    width:18px;
    text-align:center;
}

.pagination-wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
    padding-top:18px;
    border-top:1px solid var(--bd);
    margin-top:10px;
}
.pagination-info{
    color:var(--mut);
    font-size:.84rem;
}
.pagination .page-link{
    color:var(--n);
    border-color:var(--bd);
}
.pagination .page-item.active .page-link{
    background:var(--n);
    border-color:var(--n);
    color:#fff;
}

.field-hint{
    font-size:.74rem;
    color:var(--mut);
    margin-top:5px;
}
.discount-summary{
    background:#f7fafc;
    border:1px solid var(--bd);
    border-radius:14px;
    padding:14px;
}
.discount-summary .line{
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:4px 0;
}
.discount-summary .line.total{
    border-top:1px solid var(--bd);
    margin-top:6px;
    padding-top:10px;
    font-weight:800;
    color:var(--n);
}
@media(max-width:575.98px){
    .pagination-wrap{align-items:flex-start}
}


/* ============================================================
   HOTFIX PRE-SPRINT 05
   Sidebar con scroll vertical independiente
   ============================================================ */
.sidebar{
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.28) transparent;
}

.sidebar::-webkit-scrollbar{
    width:7px;
}

.sidebar::-webkit-scrollbar-track{
    background:transparent;
}

.sidebar::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.22);
    border-radius:999px;
}

.sidebar::-webkit-scrollbar-thumb:hover{
    background:rgba(255,255,255,.34);
}

.sidebar .brand-panel{
    flex-shrink:0;
}

.sidebar .sidebar-nav{
    flex:0 0 auto;
    min-height:min-content;
}

.sidebar .sidebar-bottom{
    flex-shrink:0;
    margin-top:24px;
    padding:18px 13px 8px;
    border-top:1px solid rgba(255,255,255,.10);
}

/* El contenido principal conserva su propio desplazamiento de página. */
.app-main{
    min-height:100vh;
}

/* Scroll del menú móvil */
.sidebar-mobile .offcanvas-body{
    overflow-y:auto;
    overscroll-behavior:contain;
}


/* ============================================================
   SPRINT 05 - PORTAL CLIENTE
   Calendario, reservas, perfil y fidelización
   ============================================================ */
.client-topbar{
    position:sticky;
    top:0;
    z-index:1030;
    border-bottom:1px solid var(--bd);
    box-shadow:0 4px 18px rgba(14,45,89,.04);
}
.client-nav{
    display:flex;
    align-items:center;
    gap:5px;
}
.client-nav a{
    display:flex;
    align-items:center;
    padding:10px 13px;
    border-radius:11px;
    color:var(--mut);
    font-weight:700;
    font-size:.86rem;
}
.client-nav a:hover,
.client-nav a.active{
    background:var(--ice);
    color:var(--n);
}
.client-account{
    display:flex;
    align-items:center;
    gap:9px;
}
.client-account strong,
.client-account small{
    display:block;
    line-height:1.2;
}
.client-account strong{
    color:var(--n);
    font-size:.84rem;
}
.client-account small{
    color:var(--mut);
    font-size:.68rem;
    margin-top:3px;
}
.client-account-photo{
    width:40px;
    height:40px;
    object-fit:cover;
    border-radius:12px;
    border:2px solid var(--ice);
}
.client-account-fallback{
    display:grid;
    place-items:center;
    background:var(--n);
    color:#fff;
    font-size:.72rem;
    font-weight:800;
}
.client-mobile-nav{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:1040;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    background:rgba(255,255,255,.96);
    border:1px solid var(--bd);
    border-radius:18px;
    box-shadow:0 15px 40px rgba(14,45,89,.18);
    padding:6px;
    backdrop-filter:blur(10px);
}
.client-mobile-nav a{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    padding:8px 5px;
    border-radius:12px;
    color:var(--mut);
    font-size:.68rem;
    font-weight:700;
}
.client-mobile-nav a i{
    font-size:1.05rem;
}
.client-mobile-nav a.active{
    background:var(--ice);
    color:var(--n);
}

.client-page-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}
.client-page-heading h1{
    color:var(--n);
    font-size:2rem;
    font-weight:800;
    margin:5px 0 7px;
}
.client-page-heading p{
    color:var(--mut);
    margin:0;
    max-width:680px;
}

.client-dashboard-hero,
.client-profile-hero{
    background:linear-gradient(120deg,var(--n),var(--b));
    border-radius:26px;
    color:#fff;
    padding:30px;
    display:flex;
    align-items:center;
    gap:24px;
    position:relative;
    overflow:hidden;
    box-shadow:0 16px 40px rgba(14,45,89,.16);
}
.client-dashboard-hero:after,
.client-profile-hero:after{
    content:"";
    position:absolute;
    width:370px;
    height:370px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.11);
    right:-130px;
    top:-210px;
}
.client-dashboard-profile,
.client-profile-main-photo{
    width:116px;
    height:116px;
    flex:0 0 116px;
    border-radius:24px;
    overflow:hidden;
    border:4px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.11);
    display:grid;
    place-items:center;
    position:relative;
    z-index:2;
}
.client-dashboard-profile img,
.client-profile-main-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.client-dashboard-profile span,
.client-profile-main-photo span{
    font-size:2.5rem;
    font-weight:800;
}
.client-dashboard-copy,
.client-profile-hero>div:nth-child(2){
    position:relative;
    z-index:2;
}
.client-dashboard-copy h1,
.client-profile-hero h1{
    font-size:2.15rem;
    font-weight:800;
    margin:6px 0;
}
.client-dashboard-copy p,
.client-profile-hero p{
    color:#d6e4ef;
    margin:0;
}
.client-dashboard-pills{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:17px;
}
.client-dashboard-pills span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    border:1px solid rgba(255,255,255,.17);
    background:rgba(255,255,255,.08);
    padding:7px 10px;
    border-radius:999px;
    font-size:.76rem;
    font-weight:700;
}
.client-hero-action{
    margin-left:auto;
    position:relative;
    z-index:2;
    white-space:nowrap;
}

/* Calendario mensual */
.calendar-nav{
    display:flex;
    align-items:center;
    gap:10px;
}
.calendar-nav strong{
    min-width:140px;
    text-align:center;
    color:var(--n);
    font-size:.88rem;
}
.client-calendar{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    border:1px solid var(--bd);
    border-radius:17px;
    overflow:hidden;
    background:var(--bd);
    gap:1px;
}
.calendar-weekday{
    background:#f4f7f9;
    color:var(--mut);
    text-align:center;
    padding:9px 4px;
    font-size:.68rem;
    font-weight:800;
    text-transform:uppercase;
}
.calendar-day{
    min-height:93px;
    background:#fff;
    padding:9px;
    color:var(--ink);
    position:relative;
    transition:.18s ease;
}
.calendar-day:hover{
    background:#f6fafc;
    color:var(--ink);
}
.calendar-day.outside{
    background:#fafbfc;
    opacity:.45;
}
.calendar-day.today .calendar-number{
    background:var(--n);
    color:#fff;
}
.calendar-day.selected{
    box-shadow:inset 0 0 0 2px var(--b);
    background:#f3f8fc;
}
.calendar-number{
    width:27px;
    height:27px;
    border-radius:9px;
    display:grid;
    place-items:center;
    font-size:.78rem;
    font-weight:800;
}
.calendar-occupancy{
    display:flex;
    flex-wrap:wrap;
    gap:3px;
    margin-top:9px;
}
.calendar-occupancy span{
    display:inline-flex;
    align-items:center;
    padding:3px 5px;
    border-radius:999px;
    font-size:.6rem;
    font-weight:800;
}
.calendar-occupancy .padel{
    background:#e9f2f9;
    color:#245e8b;
}
.calendar-occupancy .pickleball{
    background:#eef2f4;
    color:#526d83;
}
.calendar-free-dot{
    position:absolute;
    right:8px;
    bottom:8px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#47a36b;
}
.calendar-legend{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:12px;
    color:var(--mut);
    font-size:.72rem;
}
.calendar-legend span{
    display:flex;
    align-items:center;
    gap:5px;
}
.legend-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    display:inline-block;
}
.legend-dot.free{background:#47a36b}
.legend-dot.occupied{background:var(--b)}
.sport-filter{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
}

/* Disponibilidad diaria */
.court-availability-list{
    display:flex;
    flex-direction:column;
    gap:19px;
}
.availability-court{
    border:1px solid var(--bd);
    border-radius:16px;
    padding:16px;
}
.availability-court-header{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}
.availability-court-header h3{
    font-size:1rem;
    color:var(--n);
    font-weight:800;
    margin:4px 0 0;
}
.court-type-badge{
    color:var(--b);
    font-size:.65rem;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.availability-slots{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}
.availability-slot{
    min-height:73px;
    border-radius:12px;
    padding:10px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border:1px solid transparent;
}
.availability-slot strong,
.availability-slot span,
.availability-slot small{
    display:block;
}
.availability-slot strong{
    font-size:.82rem;
}
.availability-slot span{
    font-size:.7rem;
    margin-top:2px;
}
.availability-slot small{
    margin-top:3px;
    font-size:.68rem;
}
.availability-slot.available{
    background:#ebf8f0;
    border-color:#cdebd8;
    color:#176d3d;
}
.availability-slot.available:hover{
    background:#def3e7;
    color:#105a32;
}
.availability-slot.ocupado{
    background:#eaf1f7;
    color:#315d80;
}
.availability-slot.bloqueado,
.availability-slot.pasado{
    background:#f1f3f5;
    color:#7c8994;
}

/* Reservas cliente */
.client-reservations-table{
    display:flex;
    flex-direction:column;
}
.client-reservation-row{
    display:grid;
    grid-template-columns:72px minmax(0,1fr) 120px 130px;
    gap:16px;
    align-items:center;
    padding:16px 4px;
    border-top:1px solid var(--bd);
}
.client-reservation-date{
    width:58px;
    min-height:66px;
    border-radius:14px;
    background:var(--ice);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:var(--n);
}
.client-reservation-date strong{
    font-size:1.25rem;
    line-height:1;
}
.client-reservation-date span{
    font-size:.62rem;
    font-weight:800;
    margin-top:3px;
}
.client-reservation-date small{
    font-size:.58rem;
    color:var(--mut);
}
.client-reservation-info h3{
    font-size:.98rem;
    font-weight:800;
    color:var(--n);
    margin:3px 0 5px;
}
.client-reservation-meta{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}
.client-reservation-meta span{
    font-size:.72rem;
    color:var(--mut);
}
.client-reservation-meta i{
    color:var(--b);
    margin-right:4px;
}
.client-reservation-payment{
    text-align:right;
}
.client-reservation-payment strong,
.client-reservation-payment small{
    display:block;
}
.client-reservation-payment strong{
    color:var(--n);
}
.client-reservation-payment small{
    color:var(--mut);
    font-size:.7rem;
    margin-top:3px;
}
.client-reservation-status{
    text-align:right;
}
.reservation-hold-note{
    display:flex;
    gap:11px;
    background:#f6f9fb;
    border:1px solid var(--bd);
    border-radius:13px;
    padding:13px;
}
.reservation-hold-note>i{
    color:var(--b);
    font-size:1.2rem;
}
.reservation-hold-note strong,
.reservation-hold-note span{
    display:block;
}
.reservation-hold-note span{
    color:var(--mut);
    font-size:.78rem;
    margin-top:2px;
}

/* Perfil, puntos y recompensas */
.profile-metrics-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-top:17px;
}
.profile-metrics-grid>div{
    border:1px solid var(--bd);
    border-radius:15px;
    padding:15px;
    background:#fafcfd;
}
.profile-metrics-grid i{
    color:var(--b);
    font-size:1.2rem;
}
.profile-metrics-grid strong,
.profile-metrics-grid span{
    display:block;
}
.profile-metrics-grid strong{
    color:var(--n);
    font-size:1.25rem;
    margin-top:8px;
}
.profile-metrics-grid span{
    color:var(--mut);
    font-size:.72rem;
    margin-top:2px;
}
.points-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:var(--ice);
    color:var(--n);
    padding:8px 11px;
    border-radius:999px;
    font-weight:800;
    font-size:.78rem;
}
.points-chip i{color:#d5a126}
.rewards-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.reward-card{
    border:1px solid var(--bd);
    border-radius:16px;
    padding:17px;
    position:relative;
}
.reward-card.locked{
    background:#fafbfc;
}
.reward-icon{
    width:42px;
    height:42px;
    border-radius:13px;
    display:grid;
    place-items:center;
    background:var(--ice);
    color:var(--b);
    font-size:1.15rem;
}
.reward-points{
    position:absolute;
    top:17px;
    right:17px;
    font-size:.7rem;
    font-weight:800;
    color:var(--n);
    background:#f4f6f8;
    border-radius:999px;
    padding:5px 8px;
}
.reward-card h3{
    font-size:.95rem;
    font-weight:800;
    color:var(--n);
    margin:12px 0 5px;
}
.reward-card p{
    color:var(--mut);
    font-size:.78rem;
    min-height:38px;
    margin-bottom:6px;
}
.loyalty-big-points,
.loyalty-points-number{
    color:var(--n);
    font-size:2.2rem;
    font-weight:800;
    margin:15px 0;
}
.loyalty-big-points small,
.loyalty-points-number small{
    display:block;
    color:var(--mut);
    font-size:.72rem;
    font-weight:600;
}
.loyalty-progress-copy{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:.75rem;
    color:var(--mut);
    margin-top:16px;
    margin-bottom:6px;
}
.loyalty-progress-copy strong{
    color:var(--n);
}
.loyalty-progress{
    height:8px;
    background:#e8edf1;
}
.loyalty-progress .progress-bar{
    background:linear-gradient(90deg,var(--b),var(--n));
}
.points-history{
    display:flex;
    flex-direction:column;
}
.points-history-row{
    display:grid;
    grid-template-columns:36px 1fr auto;
    gap:10px;
    align-items:center;
    padding:11px 0;
    border-top:1px solid var(--bd);
}
.points-history-icon{
    width:34px;
    height:34px;
    border-radius:10px;
    background:var(--ice);
    display:grid;
    place-items:center;
    color:var(--b);
}
.points-history-row strong,
.points-history-row small{
    display:block;
}
.points-history-row small{
    color:var(--mut);
    font-size:.7rem;
    margin-top:2px;
}
.redeem-list{
    display:flex;
    flex-direction:column;
}
.redeem-list>div{
    padding:10px 0;
    border-top:1px solid var(--bd);
}
.redeem-list strong,
.redeem-list span,
.redeem-list small{
    display:block;
}
.redeem-list strong{
    color:var(--n);
    font-size:.82rem;
}
.redeem-list span{
    color:var(--mut);
    font-size:.68rem;
    margin-top:2px;
}
.redeem-list small{
    color:var(--b);
    font-size:.68rem;
    margin-top:2px;
}

@media(max-width:991.98px){
    .client-container{
        padding-bottom:92px;
    }
    .client-dashboard-hero,
    .client-profile-hero{
        align-items:flex-start;
        flex-wrap:wrap;
    }
    .client-hero-action{
        margin-left:0;
    }
    .availability-slots{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .profile-metrics-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:767.98px){
    .client-page-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .client-calendar{
        overflow-x:auto;
        grid-template-columns:repeat(7,minmax(72px,1fr));
    }
    .calendar-day{
        min-height:80px;
    }
    .availability-slots{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .client-reservation-row{
        grid-template-columns:62px 1fr;
    }
    .client-reservation-payment,
    .client-reservation-status{
        grid-column:2;
        text-align:left;
    }
    .client-reservation-payment{
        display:flex;
        gap:8px;
        align-items:center;
    }
    .rewards-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:575.98px){
    .client-topbar{
        padding:0 14px;
        height:72px;
    }
    .client-brand img{
        width:42px;
        height:42px;
    }
    .client-account>div{
        display:none!important;
    }
    .client-dashboard-hero,
    .client-profile-hero{
        padding:22px;
    }
    .client-dashboard-profile,
    .client-profile-main-photo{
        width:90px;
        height:90px;
        flex-basis:90px;
    }
    .client-dashboard-copy h1,
    .client-profile-hero h1{
        font-size:1.65rem;
    }
    .availability-slots{
        grid-template-columns:1fr 1fr;
    }
}


/* Mejora módulo Horarios - tarifas por franja */
.pricing-band-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.pricing-band{
    border:1px solid var(--bd);
    border-radius:15px;
    padding:16px;
    background:#fafcfd;
}
.full-day-price-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:20px;
    border:1px solid #cfe0ec;
    border-radius:17px;
    background:linear-gradient(135deg,#eef5fa,#f8fbfd);
}
.full-day-price-card h4{
    color:var(--n);
    font-size:1rem;
    font-weight:800;
    margin:4px 0;
}
.full-day-price-card p{
    color:var(--mut);
    font-size:.8rem;
    margin:0;
    max-width:520px;
}
.full-day-price-input{
    max-width:230px;
    flex:0 0 230px;
}
.schedule-info-card{
    display:flex;
    gap:12px;
    padding:14px;
    border:1px solid var(--bd);
    border-radius:14px;
    background:#f6f9fb;
}
.schedule-info-card>i{
    color:var(--b);
    font-size:1.2rem;
}
.schedule-info-card strong,
.schedule-info-card span{
    display:block;
}
.schedule-info-card strong{
    color:var(--n);
}
.schedule-info-card span{
    color:var(--mut);
    font-size:.8rem;
    margin-top:3px;
}
@media(max-width:767.98px){
    .full-day-price-card{
        align-items:stretch;
        flex-direction:column;
    }
    .full-day-price-input{
        max-width:none;
        flex:auto;
        width:100%;
    }
}


/* ============================================================
   Mejora módulo Reservas - disponibilidad y total en vivo
   ============================================================ */
.reservation-live-status{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:15px 16px;
    border-radius:14px;
    border:1px solid var(--bd);
    background:#f7f9fb;
    transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.reservation-live-status .reservation-live-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#e8edf1;
    color:var(--mut);
    font-size:1.05rem;
}
.reservation-live-status strong,
.reservation-live-status span{
    display:block;
}
.reservation-live-status strong{
    font-size:.88rem;
    color:var(--n);
    margin-bottom:2px;
}
.reservation-live-status>div>span{
    color:var(--mut);
    font-size:.78rem;
    line-height:1.45;
}
.reservation-live-status.loading{
    background:#f2f7fb;
    border-color:#cbddea;
}
.reservation-live-status.loading .reservation-live-icon{
    background:#dfedf7;
    color:var(--b);
}
.reservation-live-status.loading .reservation-live-icon i{
    animation:sf-spin .8s linear infinite;
}
.reservation-live-status.available{
    background:#edf8f1;
    border-color:#bfe3cd;
}
.reservation-live-status.available .reservation-live-icon{
    background:#d9f0e1;
    color:#207a46;
}
.reservation-live-status.available strong{
    color:#185f37;
}
.reservation-live-status.unavailable,
.reservation-live-status.error{
    background:#fff2f2;
    border-color:#edc5c5;
}
.reservation-live-status.unavailable .reservation-live-icon,
.reservation-live-status.error .reservation-live-icon{
    background:#f9dddd;
    color:#b33e3e;
}
.reservation-live-status.unavailable strong,
.reservation-live-status.error strong{
    color:#8f3030;
}
@keyframes sf-spin{
    to{transform:rotate(360deg)}
}
.discount-summary{
    position:relative;
}
.discount-summary .line:first-child{
    padding-bottom:8px;
}
#btnGuardarReserva:disabled{
    cursor:not-allowed;
    opacity:.58;
}


/* ============================================================
   Mejora: Días festivos y trazabilidad de descuentos
   ============================================================ */
.holiday-open-switch{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:17px 18px;
    border:1px solid var(--bd);
    border-radius:15px;
    background:#f7f9fb;
}
.holiday-open-switch strong,
.holiday-open-switch span{
    display:block;
}
.holiday-open-switch strong{
    color:var(--n);
    font-size:.9rem;
}
.holiday-open-switch span{
    color:var(--mut);
    font-size:.77rem;
    margin-top:3px;
}
.holiday-courts-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.holiday-court-card{
    border:1px solid var(--bd);
    border-radius:16px;
    padding:16px;
    background:#fafcfd;
}
.holiday-court-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.holiday-court-title span,
.holiday-court-title strong{
    display:block;
}
.holiday-court-title span{
    color:var(--b);
    font-size:.65rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.holiday-court-title strong{
    color:var(--n);
    font-size:.92rem;
    margin-top:2px;
}
.calendar-day.holiday-closed{
    background:#fff3f3;
}
.calendar-day.holiday-open{
    background:#fff9e9;
}
.calendar-holiday-label{
    display:inline-flex;
    margin-top:6px;
    padding:3px 6px;
    border-radius:999px;
    background:#f3dada;
    color:#923e3e;
    font-size:.55rem;
    font-weight:800;
}
.calendar-day.holiday-open .calendar-holiday-label{
    background:#f4e7b9;
    color:#7d641b;
}
.legend-dot.holiday{
    background:#c65d5d;
}
.holiday-client-alert{
    display:flex;
    align-items:flex-start;
    gap:12px;
    border-radius:14px;
    padding:14px 15px;
    margin-bottom:16px;
}
.holiday-client-alert i{
    font-size:1.15rem;
    margin-top:2px;
}
.holiday-client-alert strong,
.holiday-client-alert span{
    display:block;
}
.holiday-client-alert strong{
    font-size:.86rem;
}
.holiday-client-alert span{
    font-size:.76rem;
    margin-top:2px;
}
.holiday-client-alert.closed{
    background:#fff1f1;
    border:1px solid #ecc8c8;
    color:#853535;
}
.holiday-client-alert.open{
    background:#fff8e7;
    border:1px solid #eadba9;
    color:#70591b;
}
.discount-reason-field{
    transition:opacity .2s ease;
}
.discount-reason-field.discount-reason-inactive{
    opacity:.48;
}
.discount-reason-summary strong{
    max-width:62%;
    text-align:right;
    font-size:.76rem;
    color:var(--mut);
}
.agenda-discount{
    color:#7b5d18!important;
}
@media(max-width:767.98px){
    .holiday-courts-grid{
        grid-template-columns:1fr;
    }
    .holiday-open-switch{
        align-items:flex-start;
    }
}


/* ============================================================
   Dashboard ejecutivo - mejora previa al siguiente Sprint
   ============================================================ */
.dashboard-hero{
    background:linear-gradient(120deg,var(--n),var(--b));
    color:#fff;
    padding:30px;
    border-radius:24px;
    margin-bottom:26px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    position:relative;
    overflow:hidden;
    box-shadow:0 15px 38px rgba(14,45,89,.14);
}
.dashboard-hero:after{
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    right:-100px;
    top:-210px;
}
.dashboard-kicker{
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.14em;
    color:#a9cbe3;
}
.dashboard-hero h2{
    font-size:1.75rem;
    font-weight:800;
    margin:7px 0;
}
.dashboard-hero p{
    color:#d3e2ed;
    max-width:720px;
    margin:0;
}
.dashboard-hero-meta{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    position:relative;
    z-index:2;
}
.dashboard-hero-meta span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    font-size:.72rem;
    font-weight:700;
    white-space:nowrap;
}
.dashboard-section{
    margin-bottom:25px;
}
.dashboard-section-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    margin-bottom:18px;
}
.dashboard-section-heading h3{
    color:var(--n);
    font-size:1.16rem;
    font-weight:800;
    margin:4px 0;
}
.dashboard-section-heading p{
    color:var(--mut);
    font-size:.8rem;
    margin:0;
}
.dashboard-metric{
    height:100%;
    min-height:134px;
    border:1px solid var(--bd);
    background:#fff;
    border-radius:18px;
    padding:19px;
    display:flex;
    gap:13px;
    align-items:flex-start;
    box-shadow:0 5px 16px rgba(14,45,89,.035);
}
.dashboard-metric.featured{
    background:linear-gradient(145deg,var(--n),var(--b));
    color:#fff;
    border-color:transparent;
}
.dashboard-metric-icon{
    width:45px;
    height:45px;
    flex:0 0 45px;
    border-radius:13px;
    display:grid;
    place-items:center;
    background:var(--ice);
    color:var(--b);
    font-size:1.08rem;
}
.dashboard-metric.featured .dashboard-metric-icon{
    background:rgba(255,255,255,.12);
    color:#fff;
}
.dashboard-metric div>small,
.dashboard-metric div>strong,
.dashboard-metric div>span{
    display:block;
}
.dashboard-metric div>small{
    color:var(--mut);
    font-size:.7rem;
    font-weight:700;
}
.dashboard-metric div>strong{
    color:var(--n);
    font-size:1.45rem;
    line-height:1.15;
    margin:7px 0 5px;
}
.dashboard-metric div>span{
    color:var(--mut);
    font-size:.68rem;
}
.dashboard-metric.featured div>small,
.dashboard-metric.featured div>span{
    color:#c8ddec;
}
.dashboard-metric.featured div>strong{
    color:#fff;
}
.dashboard-filter-card{
    display:grid;
    grid-template-columns:220px 220px 1fr auto;
    gap:12px;
    align-items:end;
    background:#fff;
    border:1px solid var(--bd);
    border-radius:17px;
    padding:15px;
}
.dashboard-filter-card label{
    font-size:.72rem;
    font-weight:700;
    color:var(--mut);
}
.dashboard-filter-actions{
    display:flex;
    gap:7px;
}
.dashboard-chart-card{
    height:100%;
}
.dashboard-chart-wrap{
    height:315px;
    position:relative;
}
.dashboard-chart-wrap.compact{
    height:315px;
}
.dashboard-chart-footer{
    padding-top:12px;
    margin-top:8px;
    border-top:1px solid var(--bd);
    color:var(--mut);
    font-size:.75rem;
}
.dashboard-chart-footer i{
    color:var(--b);
    margin-right:5px;
}
.top-clients-list{
    display:flex;
    flex-direction:column;
}
.top-client-row{
    display:grid;
    grid-template-columns:30px 46px 1fr;
    align-items:center;
    gap:11px;
    padding:10px 0;
    border-top:1px solid var(--bd);
}
.top-client-position{
    color:var(--mut);
    font-size:.76rem;
    font-weight:800;
    text-align:center;
}
.top-client-photo{
    width:43px;
    height:43px;
    border-radius:12px;
    object-fit:cover;
}
.top-client-photo.fallback{
    background:var(--ice);
    color:var(--n);
    display:grid;
    place-items:center;
    font-size:.7rem;
    font-weight:800;
}
.top-client-main{
    min-width:0;
}
.top-client-copy{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.top-client-copy>div strong,
.top-client-copy>div span{
    display:block;
}
.top-client-copy>div strong{
    color:var(--n);
    font-size:.8rem;
}
.top-client-copy>div span{
    color:var(--mut);
    font-size:.65rem;
    margin-top:2px;
}
.top-client-total{
    color:var(--n);
    font-size:.83rem;
}
.top-client-bar{
    height:7px;
    border-radius:999px;
    background:#edf1f4;
    overflow:hidden;
    margin-top:7px;
}
.top-client-bar span{
    display:block;
    height:100%;
    border-radius:999px;
    background:linear-gradient(90deg,var(--b),var(--n));
    min-width:3px;
}
.dashboard-quick-list{
    display:flex;
    flex-direction:column;
    margin-top:15px;
}
.dashboard-quick-list a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:13px 0;
    border-top:1px solid var(--bd);
    color:var(--ink);
}
.dashboard-quick-list a span{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--mut);
    font-size:.78rem;
}
.dashboard-quick-list a i{
    color:var(--b);
}
.dashboard-quick-list a strong{
    color:var(--n);
    font-size:.95rem;
}
.report-summary-card{
    height:100%;
    padding:17px;
    border:1px solid var(--bd);
    border-radius:15px;
    background:#f9fbfc;
}
.report-summary-card span,
.report-summary-card strong{
    display:block;
}
.report-summary-card span{
    color:var(--mut);
    font-size:.72rem;
}
.report-summary-card strong{
    color:var(--n);
    font-size:1.25rem;
    margin-top:5px;
}
.report-summary-card.featured{
    background:var(--n);
    border-color:var(--n);
}
.report-summary-card.featured span{
    color:#bcd1e2;
}
.report-summary-card.featured strong{
    color:#fff;
}
.ranking-client-cell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:235px;
}
.ranking-position{
    width:26px;
    height:26px;
    flex:0 0 26px;
    border-radius:8px;
    background:var(--ice);
    display:grid;
    place-items:center;
    color:var(--n);
    font-size:.7rem;
    font-weight:800;
}
.ranking-client-cell img,
.ranking-avatar-fallback{
    width:42px;
    height:42px;
    border-radius:11px;
    object-fit:cover;
}
.ranking-avatar-fallback{
    background:var(--ice);
    display:grid;
    place-items:center;
    color:var(--n);
    font-weight:800;
    font-size:.68rem;
}
.ranking-client-cell strong,
.ranking-client-cell small{
    display:block;
}
.ranking-client-cell strong{
    color:var(--n);
    font-size:.8rem;
}
.ranking-client-cell small{
    color:var(--mut);
    font-size:.66rem;
    margin-top:2px;
}
.ranking-total{
    display:inline-grid;
    place-items:center;
    min-width:36px;
    height:30px;
    padding:0 8px;
    border-radius:9px;
    background:var(--ice);
    color:var(--n);
}
.dashboard-ranking-table thead th{
    white-space:nowrap;
    font-size:.72rem;
}
.dashboard-ranking-table tbody td{
    font-size:.76rem;
}
@media(max-width:1199.98px){
    .dashboard-filter-card{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .dashboard-filter-actions{
        grid-column:span 2;
    }
}
@media(max-width:767.98px){
    .dashboard-hero{
        align-items:flex-start;
        flex-direction:column;
    }
    .dashboard-filter-card{
        grid-template-columns:1fr;
    }
    .dashboard-filter-actions{
        grid-column:auto;
    }
    .dashboard-chart-wrap,
    .dashboard-chart-wrap.compact{
        height:270px;
    }
}


/* Mejora de seguridad / dashboard */
.dashboard-link-metric{
    color:inherit;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.dashboard-link-metric:hover{
    color:inherit;
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(14,45,89,.08);
    border-color:#c6d7e4;
}
.login-forgot-link{
    color:var(--b);
    font-size:.84rem;
    font-weight:700;
}
.login-forgot-link:hover{
    color:var(--n);
}
.login-card-security{
    max-width:1000px;
}


/* ============================================================
   Sprint Pagos - Mercado Pago / retención
   ============================================================ */
.payment-hold-card{
    position:relative;
    overflow:hidden;
}
.payment-countdown-shell{
    text-align:center;
    padding:24px;
    border:1px solid #cfe0ec;
    border-radius:18px;
    background:linear-gradient(145deg,#f4f9fc,#fff);
}
.payment-countdown-value{
    color:var(--n);
    font-size:3.25rem;
    font-weight:800;
    letter-spacing:.04em;
    line-height:1;
    margin:9px 0 12px;
    font-variant-numeric:tabular-nums;
}
.payment-countdown-shell p{
    color:var(--mut);
    font-size:.82rem;
    max-width:540px;
    margin:0 auto 15px;
}
.payment-countdown-progress{
    height:9px;
    border-radius:999px;
    background:#e6edf2;
}
.payment-countdown-progress .progress-bar{
    background:linear-gradient(90deg,var(--b),var(--n));
    transition:width 1s linear;
}
.payment-countdown-progress .progress-bar.ending{
    background:#b45b4f;
}
.payment-countdown-shell.expired{
    background:#fff2f2;
    border-color:#e8c4c4;
}
.payment-countdown-shell.expired .payment-countdown-value{
    color:#9c3d3d;
}
.payment-reservation-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.payment-reservation-summary>div{
    border:1px solid var(--bd);
    border-radius:13px;
    padding:13px;
    background:#fafcfd;
}
.payment-reservation-summary span,
.payment-reservation-summary strong{
    display:block;
}
.payment-reservation-summary span{
    color:var(--mut);
    font-size:.68rem;
}
.payment-reservation-summary strong{
    color:var(--n);
    margin-top:3px;
    font-size:.84rem;
}
.payment-reservation-summary .total{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    background:var(--n);
    border-color:var(--n);
}
.payment-reservation-summary .total span{
    color:#c6d9e8;
}
.payment-reservation-summary .total strong{
    color:#fff;
    font-size:1.15rem;
    margin:0;
}
.payment-security-note{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:8px;
    color:var(--mut);
    font-size:.72rem;
    margin-top:12px;
    text-align:center;
}
.payment-security-note i{
    color:#2e8350;
}
.payment-steps{
    display:flex;
    flex-direction:column;
    margin-top:15px;
}
.payment-steps>div{
    display:grid;
    grid-template-columns:38px 1fr;
    gap:10px;
    padding:11px 0;
    border-top:1px solid var(--bd);
}
.payment-steps>div>span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#edf2f5;
    color:var(--mut);
    font-size:.76rem;
    font-weight:800;
}
.payment-steps>div.active>span{
    background:var(--n);
    color:#fff;
}
.payment-steps strong,
.payment-steps small{
    display:block;
}
.payment-steps strong{
    color:var(--n);
    font-size:.8rem;
}
.payment-steps small{
    color:var(--mut);
    font-size:.69rem;
    margin-top:2px;
}
.payment-result{
    text-align:center;
    padding:42px 20px;
}
.payment-result>i{
    font-size:3.25rem;
    color:var(--b);
}
.payment-result.success>i{
    color:#2c8b56;
}
.payment-result.expired>i,
.payment-result.warning>i{
    color:#aa7131;
}
.payment-result.danger>i{
    color:#b44a4a;
}
.payment-result h1,
.payment-result h2{
    color:var(--n);
    font-weight:800;
    margin:12px 0 7px;
}
.payment-result p{
    color:var(--mut);
    max-width:540px;
    margin:0 auto 20px;
}
@media(max-width:575.98px){
    .payment-countdown-value{
        font-size:2.6rem;
    }
    .payment-reservation-summary{
        grid-template-columns:1fr;
    }
    .payment-reservation-summary .total{
        grid-column:auto;
    }
}


.integration-status-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.integration-status-card{
    border:1px solid var(--bd);
    border-radius:16px;
    padding:17px;
    display:grid;
    grid-template-columns:44px 1fr auto;
    gap:11px;
    align-items:start;
}
.integration-status-icon{
    width:42px;
    height:42px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:var(--ice);
    color:var(--b);
    font-size:1.1rem;
}
.integration-status-card strong,
.integration-status-card span,
.integration-status-card small{
    display:block;
}
.integration-status-card strong{
    color:var(--n);
}
.integration-status-card span{
    color:var(--mut);
    font-size:.72rem;
    margin-top:3px;
}
.integration-status-card small{
    font-size:.67rem;
    margin-top:7px;
    font-weight:700;
}
.integration-status-card.ready>i,
.integration-status-card.ready small{
    color:#2b8350;
}
.integration-status-card.pending>i,
.integration-status-card.pending small{
    color:#a36c2d;
}
.integration-config-info{
    padding:17px;
    border:1px solid var(--bd);
    border-radius:15px;
    background:#f8fafc;
}
.integration-config-info h4{
    color:var(--n);
    font-size:.92rem;
    font-weight:800;
}
.integration-config-info p{
    color:var(--mut);
    font-size:.76rem;
    margin:8px 0 0;
}
@media(max-width:991.98px){
    .integration-status-grid{
        grid-template-columns:1fr;
    }
}

.availability-slot.apartado{
    background:#fff4dc;
    border-color:#ead29d;
    color:#80621f;
}
