/*==================================================
TOP BAR (HEADER) - FIJA ARRIBA, ANCHO COMPLETO
==================================================*/

.top-bar{
    position:fixed;
    top:0;
    left:0;
    right:0;

    display:flex !important;
    align-items:center !important;
    gap:12px !important;

    background:rgba(10,10,10,.92);

    padding:10px 24px !important;

    border-radius:0;

    box-shadow:
        0 2px 12px rgba(0,0,0,.25),
        0 1px 3px rgba(0,0,0,.15);

    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);

    border-bottom:1px solid rgba(39,39,42,.8);

    margin:0;

    width:100%;
    max-width:none;

    flex-wrap:nowrap !important;
    overflow:visible !important;

    height:64px !important;

    box-sizing:border-box !important;

    line-height:1 !important;

    z-index:1000;

    isolation:isolate;
}

.top-bar.scrolled{
    box-shadow:
        0 4px 16px rgba(0,0,0,.35),
        0 2px 6px rgba(0,0,0,.2);
}

body{
    padding-top:64px;
    background:#000000;
}

/*==================================================
LOGO
==================================================*/

.top-bar .logo{
    display:flex !important;
    align-items:center !important;
    text-decoration:none !important;
    flex-shrink:0 !important;

    height:38px !important;

    margin:0 !important;
    padding:0 !important;
}

.top-bar .logo-img{
    height:38px !important;
    width:auto !important;
    max-width:140px !important;
    object-fit:contain !important;
    object-position:left center !important;

    display:block !important;
    margin:0 !important;
    padding:0 !important;

    transition:.2s;
}

.top-bar .logo-img:hover{
    transform:scale(1.03);
}

/*==================================================
BOTÓN DE FILTRO ACTUAL (ROJO)
==================================================*/

.top-bar .btn-filtro-actual{
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;

    padding:0 14px !important;

    background:#dc2626 !important;
    color:#fff !important;

    border:none !important;
    border-radius:20px !important;

    height:34px !important;
    min-height:34px !important;
    max-height:34px !important;

    font-size:13px !important;
    font-weight:600 !important;

    cursor:pointer;

    flex-shrink:0 !important;

    box-sizing:border-box !important;

    transition:.2s;
}

.top-bar .btn-filtro-actual:hover{
    background:#ef4444 !important;
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(220,38,38,.35);
}

.top-bar .btn-filtro-actual:active{
    transform:translateY(0);
}

.top-bar .btn-filtro-actual .filtro-icono{
    font-size:15px;
    line-height:1;
}

.top-bar .btn-filtro-actual .filtro-texto{
    white-space:nowrap;
}

.top-bar .btn-filtro-actual .filtro-flecha{
    font-size:10px;
    opacity:.8;
    margin-left:2px;
}

/*==================================================
BUSCADOR
==================================================*/

.top-bar .buscar-menu{
    border:1px solid #27272a !important;
    border-radius:20px !important;

    padding:0 14px !important;

    font-size:12.5px !important;

    width:180px !important;
    min-width:180px !important;
    max-width:180px !important;

    height:34px !important;

    flex-shrink:0 !important;

    background:#1a1a1a !important;
    color:#ffffff !important;

    outline:none !important;

    box-sizing:border-box !important;

    margin:0 !important;

    transition:border-color .2s, box-shadow .2s, background .2s;

    position:relative;
    z-index:5;
}

.top-bar .buscar-menu::placeholder{
    color:#71717a !important;
}

.top-bar .buscar-menu:focus{
    border-color:#dc2626 !important;
    background:#1a1a1a !important;
    box-shadow:0 0 0 3px rgba(220,38,38,.15) !important;
}

/*==================================================
MENÚ DERECHO (avatar + acciones)
==================================================*/

.top-bar .header-menu{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;

    flex-shrink:0 !important;

    height:100% !important;

    margin:0 0 0 auto !important;
    padding:0 !important;
}

.top-bar .header-perfil{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;

    text-decoration:none !important;
    color:#ffffff !important;
    font-weight:600 !important;
    font-size:13px !important;

    padding:0 8px !important;
    border-radius:20px !important;

    height:34px !important;
    box-sizing:border-box !important;

    margin:0 !important;

    transition:.2s;
}

.top-bar .header-perfil:hover{
    background:#1a1a1a;
}

.top-bar .header-avatar{
    width:28px !important;
    height:28px !important;
    border-radius:50% !important;
    object-fit:cover !important;
    border:2px solid #27272a !important;

    margin:0 !important;
    padding:0 !important;
}

.top-bar .header-menu .btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    height:34px !important;
    min-height:34px !important;
    max-height:34px !important;

    padding:0 12px !important;

    font-size:13px !important;
    line-height:1 !important;

    border-radius:10px !important;

    box-sizing:border-box !important;

    margin:0 !important;

    background:#1a1a1a !important;
    border:1px solid #27272a !important;
    color:#ffffff !important;
}

.top-bar .header-menu .btn:hover{
    background:#27272a !important;
    border-color:#3f3f46 !important;
}

.top-bar .header-menu .btn[href="logout.php"]:hover{
    background:#dc2626 !important;
    border-color:#dc2626 !important;
    color:#ffffff !important;
}

/*==================================================
SWITCH DISPONIBLE HOY (ESCRITORIO)
==================================================*/

.switch-disponible{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:4px 12px 4px 4px;

    background:#1a1a1a;
    color:#a1a1aa;

    border:1px solid #27272a;
    border-radius:20px;

    font-size:12.5px;
    font-weight:600;

    cursor:pointer;

    user-select:none;
    -webkit-user-select:none;
    -webkit-tap-highlight-color:transparent;

    transition:.2s;

    height:34px;

    flex-shrink:0;

    margin:0;

    box-sizing:border-box;
}

.switch-disponible:focus,
.switch-disponible:focus-within,
.switch-disponible:active{
    outline:none !important;
    box-shadow:none !important;
}

.switch-disponible:hover{
    background:#27272a;
    color:#ffffff;
}

.switch-disponible.activo{
    background:rgba(34,197,94,.15);
    color:#4ade80;
    border-color:rgba(34,197,94,.4);
}

.switch-disponible.activo:hover{
    background:rgba(34,197,94,.25);
}

.switch-disponible input[type="checkbox"]{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
    pointer-events:none;
}

.switch-slider{
    position:relative;
    width:22px;
    height:22px;
    background:#3f3f46;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s;
    flex-shrink:0;
}

.switch-disponible.activo .switch-slider{
    background:#22c55e;
    box-shadow:0 0 8px rgba(34,197,94,.5);
}

.switch-icono{
    font-size:11px;
    opacity:.4;
    transition:.25s;
}

.switch-disponible.activo .switch-icono{
    opacity:1;
}

.switch-texto{
    white-space:nowrap;
}

/*==================================================
BOTÓN HAMBURGUESA
==================================================*/

.btn-hamburguesa{
    display:none;

    align-items:center;
    justify-content:center;

    width:38px;
    height:38px;

    border-radius:10px;

    background:#1a1a1a;
    border:1px solid #27272a;
    color:#ffffff;

    font-size:20px;
    line-height:1;

    cursor:pointer;

    flex-shrink:0;

    transition:.2s;
}

.btn-hamburguesa:hover{
    background:#27272a;
    color:#ffffff;
}

/*==================================================
OVERLAY (fondo oscuro)
==================================================*/

.overlay-movil{
    display:none;

    position:fixed;
    inset:0;

    background:rgba(0,0,0,.65);

    z-index:1040;

    opacity:0;
    transition:opacity .25s;
}

.overlay-movil.activo{
    display:block;
    opacity:1;
}

/*==================================================
MENÚ LATERAL (MÓVIL)
==================================================*/

.menu-lateral{
    position:fixed;

    top:0;
    right:0;

    width:340px;
    max-width:88vw;

    height:100vh;

    background:#0a0a0a;

    box-shadow:-8px 0 24px rgba(0,0,0,.5);

    z-index:1050;

    transform:translateX(100%);

    transition:transform .28s ease;

    overflow-y:auto;
    overflow-x:hidden;

    padding:18px 16px 32px;

    display:flex;
    flex-direction:column;

    gap:16px;

    box-sizing:border-box;
}

.menu-lateral.activo{
    transform:translateX(0);
}

.menu-lateral-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;

    padding-bottom:14px;

    border-bottom:1px solid #27272a;

    flex-shrink:0;
}

.menu-lateral-perfil{
    display:flex;
    align-items:center;
    gap:10px;

    text-decoration:none;
    color:#ffffff;

    font-weight:700;
    font-size:15px;

    min-width:0;
}

.menu-lateral-avatar{
    width:42px;
    height:42px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #27272a;
    flex-shrink:0;
}

.menu-lateral-perfil span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.menu-lateral-cerrar{
    width:34px;
    height:34px;

    border-radius:10px;

    border:1px solid #27272a;
    background:#1a1a1a;
    color:#ffffff;

    font-size:16px;
    cursor:pointer;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    transition:.2s;

    flex-shrink:0;
}

.menu-lateral-cerrar:hover{
    background:#dc2626;
    color:#fff;
    border-color:#dc2626;
}

/*==================================================
SWITCH DISPONIBLE HOY (MÓVIL)
==================================================*/

.switch-disponible-movil{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;

    padding:14px 16px;

    background:#1a1a1a;
    color:#ffffff;

    border:1px solid #27272a;
    border-radius:14px;

    font-size:14px;
    font-weight:600;

    cursor:pointer;

    user-select:none;
    -webkit-user-select:none;
    -webkit-tap-highlight-color:transparent;

    transition:.2s;

    margin:0;

    flex-shrink:0;

    box-sizing:border-box;
}

.switch-disponible-movil:hover{
    background:#27272a;
}

.switch-disponible-movil.activo{
    background:rgba(34,197,94,.15);
    color:#4ade80;
    border-color:rgba(34,197,94,.4);
}

.switch-disponible-movil-slider{
    width:28px;
    height:28px;

    background:#3f3f46;
    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    transition:.25s;

    flex-shrink:0;
}

.switch-disponible-movil.activo .switch-disponible-movil-slider{
    background:#22c55e;
    box-shadow:0 0 8px rgba(34,197,94,.5);
}

.switch-disponible-movil-icono{
    font-size:13px;
    opacity:.4;
    transition:.25s;
}

.switch-disponible-movil.activo .switch-disponible-movil-icono{
    opacity:1;
}

/*==================================================
ACCIONES DEL MENÚ LATERAL
==================================================*/

.menu-lateral-acciones{
    display:flex;
    flex-direction:column;
    gap:4px;

    padding-bottom:14px;

    border-bottom:1px solid #27272a;

    flex-shrink:0;
}

.menu-lateral-item{
    display:flex;
    align-items:center;
    gap:12px;

    padding:12px 14px;

    border-radius:12px;

    text-decoration:none;
    color:#ffffff;

    font-weight:600;
    font-size:14px;

    transition:.2s;

    position:relative;

    box-sizing:border-box;
}

.menu-lateral-item:hover{
    background:#1a1a1a;
}

.menu-lateral-icono{
    font-size:18px;
    width:22px;
    text-align:center;
    flex-shrink:0;
}

.menu-lateral-badge{
    margin-left:auto;

    background:#dc2626;
    color:#fff;

    font-size:11px;
    font-weight:700;

    padding:3px 9px;

    border-radius:20px;

    flex-shrink:0;
}

/*==================================================
BOTÓN SALIR (MENÚ LATERAL MÓVIL) - CON SVG
==================================================*/

.menu-lateral-salir{
    color:#fca5a5 !important;
    font-weight:700;
    margin-top:12px;
}

.menu-lateral-salir .menu-lateral-icono{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    color:#ef4444;

    width:22px;
    height:22px;

    font-size:0;
}

.menu-lateral-salir .menu-lateral-icono svg{
    width:20px;
    height:20px;

    stroke:currentColor;

    flex-shrink:0;
}

.menu-lateral-salir:hover{
    background:rgba(220,38,38,.12) !important;
    color:#ffffff !important;
}

.menu-lateral-salir:hover .menu-lateral-icono{
    color:#ffffff;
}

.menu-lateral-salir:hover .menu-lateral-icono svg{
    stroke:#ffffff;
}

/*==================================================
FILTROS EN EL MENÚ LATERAL
==================================================*/

.menu-lateral-filtros{
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;

    width:100% !important;

    padding:0 !important;
    margin:0 !important;

    flex-shrink:0;
}

.menu-lateral-titulo{
    font-size:11.5px;
    font-weight:700;
    color:#71717a;

    text-transform:uppercase;
    letter-spacing:.6px;

    padding:0 4px 8px;
    margin:0;

    flex-shrink:0;
}

.menu-lateral-filtro{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;

    width:100% !important;

    padding:12px 14px !important;

    background:#1a1a1a !important;
    color:#ffffff !important;

    border:1px solid #27272a !important;
    border-radius:12px !important;

    text-decoration:none !important;

    font-size:14px !important;
    font-weight:600 !important;

    line-height:1.2 !important;

    transition:.15s !important;

    box-sizing:border-box !important;

    white-space:nowrap !important;

    flex-shrink:0;
}

.menu-lateral-filtro:hover{
    background:#27272a !important;
    color:#ffffff !important;
    transform:translateX(2px) !important;
}

.menu-lateral-filtro.active{
    background:#dc2626 !important;
    color:#ffffff !important;
    border-color:#dc2626 !important;
    box-shadow:0 4px 12px rgba(220,38,38,.35) !important;
}

/*==================================================
MODAL DE FILTROS (ESCRITORIO)
==================================================*/

.modal-filtros-dialog{
    max-width:420px;
}

.modal-filtros-content{
    border-radius:18px;
    overflow:hidden;
    border:1px solid #27272a;
    background:#0a0a0a;
    box-shadow:0 20px 60px rgba(0,0,0,.6);
}

.modal-filtros-header{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:16px 20px;

    border-bottom:1px solid #27272a;

    background:#16161d;
}

.modal-filtros-titulo{
    margin:0;
    font-weight:700;
    font-size:16px;
    color:#ffffff;
}

.modal-filtros-content .btn-close{
    filter:invert(1);
    opacity:.6;
}

.modal-filtros-content .btn-close:hover{
    opacity:1;
}

.modal-filtros-lista{
    display:flex;
    flex-direction:column;

    max-height:70vh;
    overflow-y:auto;

    padding:8px;
}

.modal-filtro-item{
    display:flex;
    align-items:center;
    gap:12px;

    padding:12px 14px;

    border-radius:12px;

    text-decoration:none;
    color:#a1a1aa;

    font-weight:600;
    font-size:14.5px;

    transition:.15s;
}

.modal-filtro-item:hover{
    background:#1a1a1a;
    color:#ffffff;
}

.modal-filtro-item.activo{
    background:#dc2626;
    color:#fff;
}

.modal-filtro-icono{
    font-size:18px;
    width:22px;
    text-align:center
    flex-shrink:0;
}

.modal-filtro-texto{
    flex:1;
}

.modal-filtro-contador{
    color:#71717a;
    font-weight:500;
    font-size:13px;
    margin-left:4px;
}

.modal-filtro-item.activo .modal-filtro-contador{
    color:rgba(255,255,255,.75);
}

.modal-filtro-check{
    font-weight:bold;
    font-size:16px;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:1300px){

    .top-bar .buscar-menu{
        width:150px !important;
        min-width:150px !important;
        max-width:150px !important;
    }

}

@media(max-width:1200px){

    .switch-disponible .switch-texto{
        display:none;
    }

    .switch-disponible{
        padding:4px;
        width:34px;
        height:34px;
        justify-content:center;
    }

}

@media(max-width:1100px){

    .top-bar .header-menu{
        display:none !important;
    }

    .top-bar .buscar-menu{
        display:none !important;
    }

    .top-bar .btn-filtro-actual{
        display:none !important;
    }

    .top-bar .btn-chat-grupal,
    .top-bar .btn-eventos-header{
        display:none !important;
    }

    .top-bar .header-movil{
        display:flex !important;
    }

    .top-bar .btn-hamburguesa{
        display:inline-flex !important;
        margin-left:0;
    }

    .top-bar .switch-disponible{
        display:none !important;
    }

}

@media(max-width:480px){

    .top-bar{
        padding:8px 12px !important;
        height:56px !important;
        gap:8px !important;
    }

    body{
        padding-top:56px;
    }

    .top-bar .logo-img{
        height:32px !important;
    }

    .top-bar .btn-hamburguesa{
        width:34px;
        height:34px;
        font-size:18px;
    }

}

/*==================================================
MODAL DISPONIBLE HOY
==================================================*/

.modal-disponible-dialog{
    max-width:420px;
}

.modal-disponible-content{
    border:1px solid #27272a;
    border-radius:24px;

    padding:32px 28px 24px;

    text-align:center;

    box-shadow:0 24px 60px rgba(0,0,0,.6);

    background:#0a0a0a;

    position:relative;
    overflow:hidden;
}

.modal-disponible-content::before{
    content:"";

    position:absolute;

    top:-80px;
    left:50%;
    transform:translateX(-50%);

    width:200px;
    height:200px;

    background:radial-gradient(circle, rgba(34,197,94,.15) 0%, transparent 70%);

    pointer-events:none;
}

.modal-disponible-icono{
    font-size:56px;

    line-height:1;

    margin-bottom:12px;

    display:inline-block;

    animation:reboteDisponible 1s ease-in-out infinite alternate;

    position:relative;
    z-index:1;
}

@keyframes reboteDisponible{
    from{ transform:translateY(0) scale(1); }
    to{ transform:translateY(-6px) scale(1.08); }
}

.modal-disponible-titulo{
    font-size:22px;
    font-weight:800;

    color:#ffffff;

    margin:0 0 12px 0;

    line-height:1.2;

    position:relative;
    z-index:1;
}

.modal-disponible-texto{
    font-size:14.5px;
    line-height:1.5;

    color:#a1a1aa;

    margin:0 0 20px 0;

    position:relative;
    z-index:1;
}

.modal-disponible-texto b{
    color:#4ade80;
    font-weight:700;
}

.modal-disponible-tiempo{
    display:flex;
    align-items:center;
    gap:12px;

    background:rgba(34,197,94,.1);

    border:1px solid rgba(34,197,94,.3);

    border-radius:14px;

    padding:14px 16px;

    text-align:left;

    margin-bottom:22px;

    position:relative;
    z-index:1;
}

.modal-disponible-tiempo-icono{
    font-size:24px;

    flex-shrink:0;
}

.modal-disponible-tiempo-titulo{
    font-size:13.5px;
    font-weight:700;

    color:#4ade80;

    line-height:1.2;

    margin-bottom:2px;
}

.modal-disponible-tiempo-subtitulo{
    font-size:12.5px;
    color:#22c55e;

    font-weight:500;
}

.modal-disponible-btn{
    width:100%;

    padding:12px 20px;

    background:#dc2626;
    color:#ffffff;

    border:none;
    border-radius:12px;

    font-size:15px;
    font-weight:700;

    cursor:pointer;

    transition:.2s;

    margin-bottom:12px;

    position:relative;
    z-index:1;
}

.modal-disponible-btn:hover{
    background:#ef4444;

    transform:translateY(-1px);

    box-shadow:0 8px 20px rgba(220,38,38,.5);
}

.modal-disponible-btn:active{
    transform:translateY(0);
}

.modal-disponible-footer{
    font-size:11.5px;

    color:#71717a;

    line-height:1.4;

    position:relative;
    z-index:1;
}

@media(max-width:480px){

    .modal-disponible-content{
        padding:26px 22px 20px;
        border-radius:20px;
    }

    .modal-disponible-icono{
        font-size:48px;
    }

    .modal-disponible-titulo{
        font-size:20px;
    }

    .modal-disponible-texto{
        font-size:13.5px;
    }

}

/*==================================================
LABELS EN AZUL (registro)
==================================================*/

#formRegistro .form-label{
    color:#2563eb;
    font-weight:600;
    font-size:13.5px;

    margin-bottom:6px;

    letter-spacing:.2px;
}

.contador-nombre{
    font-size:11.5px;
    color:#94a3b8;
    text-align:right;
    margin-top:4px;
    font-weight:500;
    transition:.2s;
}

.contador-nombre.limite{
    color:#ef4444;
    font-weight:700;
}

#grupoDepartamento,
#grupoCiudad {
    animation: fadeInCascada .3s ease;
}

@keyframes fadeInCascada {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*==================================================
HEADER - Botones de acción (notif / mensajes / salir)
==================================================*/

.header-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;

    color: #ffffff;
    font-size: 18px;
    text-decoration: none;
    cursor: pointer;
    padding: 0;
    line-height: 1;

    transition: all .22s cubic-bezier(.4,0,.2,1);
}

.header-btn:hover {
    background: rgba(220,38,38,.25);
    border-color: #dc2626;
    color: #ffffff;
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 6px 18px rgba(220,38,38,.4);
}

.header-btn-badge {
    position: absolute;
    top: -4px;
    right: -4px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 18px;
    height: 18px;
    padding: 0 5px;

    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #ffffff;

    font-size: 10.5px;
    font-weight: 800;
    line-height: 1;

    border-radius: 10px;
    border: 2px solid #0a0a0a;

    box-shadow: 0 2px 8px rgba(220,38,38,.6);

    animation: pulsoBadgeHeader 2s ease-in-out infinite;
}

@keyframes pulsoBadgeHeader {
    0%,100% { box-shadow: 0 2px 8px rgba(220,38,38,.6); }
    50%     { box-shadow: 0 2px 14px rgba(220,38,38,1); }
}

.header-btn-salir:hover {
    background: rgba(220,38,38,.35);
    border-color: #ef4444;
    box-shadow: 0 6px 18px rgba(220,38,38,.6);
}

/*==================================================
BUSCADOR DEL HEADER
==================================================*/

.buscar-menu {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    color: #ffffff;
    padding: 8px 16px;
    font-size: 14px;
    outline: none;
    transition: all .2s ease;
    min-width: 180px;
    max-width: 320px;
    font-family: inherit;
}

.buscar-menu::placeholder {
    color: #a1a1aa;
}

.buscar-menu:focus {
    border-color: #dc2626;
    background: rgba(220,38,38,.08);
    box-shadow: 0 0 0 3px rgba(220,38,38,.15);
    min-width: 240px;
}

/*==================================================
MENÚ LATERAL MÓVIL - Badge de contador
==================================================*/

.menu-lateral-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #ffffff;
    font-size: 11.5px;
    font-weight: 800;
    border-radius: 11px;
    margin-left: auto;
    box-shadow: 0 2px 8px rgba(220,38,38,.5);
}

/*==================================================
RESPONSIVE HEADER
==================================================*/

@media(max-width:768px){

    .header-btn {
        width: 38px;
        height: 38px;
        font-size: 17px;
    }

    .header-btn-badge {
        min-width: 17px;
        height: 17px;
        font-size: 10px;
    }

    .buscar-menu {
        min-width: 130px;
        padding: 7px 12px;
        font-size: 13px;
    }

    .buscar-menu:focus {
        min-width: 160px;
    }
}

/*==================================================
BOTÓN CHAT GRUPAL (ESCRITORIO) — con brillo de fondo
==================================================*/

.btn-chat-grupal{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;

    padding:0 14px;
    height:34px;
    min-height:34px;
    max-height:34px;

    border:1px solid rgba(168,85,247,.45);
    border-radius:20px;

    color:#c084fc;
    font-size:13px;
    font-weight:600;
    text-decoration:none;
    white-space:nowrap;
    flex-shrink:0;

    box-sizing:border-box;

    position:relative;
    overflow:hidden;

    background:linear-gradient(
        120deg,
        rgba(168,85,247,.18) 0%,
        rgba(168,85,247,.18) 40%,
        rgba(216,180,254,.55) 50%,
        rgba(168,85,247,.18) 60%,
        rgba(168,85,247,.18) 100%
    );
    background-size:250% 100%;
    background-position:100% 0;

    animation:
        brilloChatGrupal 2.5s ease-in-out infinite,
        barridoChatGrupalBg 3s ease-in-out infinite;

    transition:all .22s cubic-bezier(.4,0,.2,1);

    z-index:1;
}

@keyframes brilloChatGrupal{
    0%, 100%{
        box-shadow:
            0 0 0 0 rgba(168,85,247,.5),
            0 4px 14px rgba(168,85,247,.25);
        border-color:rgba(168,85,247,.45);
    }
    50%{
        box-shadow:
            0 0 0 6px rgba(168,85,247,0),
            0 6px 22px rgba(168,85,247,.55);
        border-color:rgba(168,85,247,.85);
    }
}

@keyframes barridoChatGrupalBg{
    0%{
        background-position:100% 0;
    }
    100%{
        background-position:-100% 0;
    }
}

.btn-chat-grupal::before{
    display:none !important;
}

.btn-chat-grupal:hover{
    background:linear-gradient(135deg, #a855f7, #8b5cf6);
    border-color:#a855f7;
    color:#ffffff;
    transform:translateY(-2px);
    box-shadow:
        0 0 0 4px rgba(168,85,247,.15),
        0 8px 24px rgba(168,85,247,.7);
    animation:brilloChatGrupalHover 1s ease-in-out infinite;
}

@keyframes brilloChatGrupalHover{
    0%, 100%{
        box-shadow:
            0 0 0 4px rgba(168,85,247,.15),
            0 8px 24px rgba(168,85,247,.7);
    }
    50%{
        box-shadow:
            0 0 0 8px rgba(168,85,247,.25),
            0 10px 32px rgba(168,85,247,.9);
    }
}

.chat-grupal-icono{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    line-height:1;
    animation:pulsoIconoChat 2s ease-in-out infinite;
}

@keyframes pulsoIconoChat{
    0%, 100%{
        transform:scale(1) rotate(0);
    }
    25%{
        transform:scale(1.15) rotate(-6deg);
    }
    75%{
        transform:scale(1.15) rotate(6deg);
    }
}

.chat-grupal-texto{
    font-size:13.5px;
    line-height:1;
    position:relative;
    z-index:2;
}

@media(max-width:992px){

    .chat-grupal-texto{
        display:none;
    }

    .btn-chat-grupal{
        padding:0 10px;
        width:34px;
        height:34px;
        min-height:34px;
        max-height:34px;
    }
}

@media(max-width:768px){

    .btn-chat-grupal{
        display:none;
    }
}

/*==================================================
BOTÓN EVENTOS (escritorio) — con brillo de fondo
==================================================*/

.btn-eventos-header{
    position:relative;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;

    padding:0 14px;
    height:34px;
    min-height:34px;
    max-height:34px;

    border:1px solid rgba(220,38,38,.45);
    border-radius:20px;

    color:#fca5a5;
    font-size:13px;
    font-weight:600;
    text-decoration:none;
    white-space:nowrap;
    flex-shrink:0;

    box-sizing:border-box;

    overflow:visible;

    background:linear-gradient(
        120deg,
        rgba(220,38,38,.18) 0%,
        rgba(220,38,38,.18) 40%,
        rgba(252,165,165,.55) 50%,
        rgba(220,38,38,.18) 60%,
        rgba(220,38,38,.18) 100%
    );
    background-size:250% 100%;
    background-position:100% 0;

    animation:
        brilloEventos 2.5s ease-in-out infinite,
        barridoEventosBg 3s ease-in-out infinite;

    transition:all .22s cubic-bezier(.4,0,.2,1);

    margin-left:4px;

    z-index:1;
}

@keyframes brilloEventos{
    0%, 100%{
        box-shadow:
            0 0 0 0 rgba(220,38,38,.5),
            0 4px 14px rgba(220,38,38,.25);
        border-color:rgba(220,38,38,.45);
    }
    50%{
        box-shadow:
            0 0 0 6px rgba(220,38,38,0),
            0 6px 22px rgba(220,38,38,.55);
        border-color:rgba(220,38,38,.85);
    }
}

@keyframes barridoEventosBg{
    0%{
        background-position:100% 0;
    }
    100%{
        background-position:-100% 0;
    }
}

.btn-eventos-header::before{
    display:none !important;
}

.btn-eventos-header:hover{
    background:linear-gradient(135deg, #dc2626, #b91c1c);
    border-color:#dc2626;
    color:#ffffff;
    transform:translateY(-2px);
    box-shadow:
        0 0 0 4px rgba(220,38,38,.15),
        0 8px 24px rgba(220,38,38,.7);
    animation:brilloEventosHover 1s ease-in-out infinite;
}

@keyframes brilloEventosHover{
    0%, 100%{
        box-shadow:
            0 0 0 4px rgba(220,38,38,.15),
            0 8px 24px rgba(220,38,38,.7);
    }
    50%{
        box-shadow:
            0 0 0 8px rgba(220,38,38,.25),
            0 10px 32px rgba(220,38,38,.9);
    }
}

.eventos-header-icono{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    line-height:1;
    animation:pulsoIconoEventos 2s ease-in-out infinite;
}

@keyframes pulsoIconoEventos{
    0%, 100%{
        transform:scale(1) rotate(0);
    }
    25%{
        transform:scale(1.18) rotate(-8deg);
    }
    75%{
        transform:scale(1.18) rotate(8deg);
    }
}

.eventos-header-texto{
    font-size:13.5px;
    line-height:1;
    position:relative;
    z-index:2;
}

.eventos-header-badge{
    position:absolute;

    top:-6px;
    right:-6px;

    min-width:20px;
    height:20px;
    padding:0 6px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    background:linear-gradient(135deg, #dc2626, #b91c1c);
    color:#ffffff;

    font-size:10.5px;
    font-weight:800;
    line-height:1;

    border-radius:10px;
    border:2px solid #0a0a0a;

    box-shadow:0 2px 8px rgba(220,38,38,.6);

    animation:pulsoBadgeHeader 2s ease-in-out infinite;

    z-index:10;

    pointer-events:none;
}

@media(max-width:992px){

    .eventos-header-texto{
        display:none;
    }

    .btn-eventos-header{
        padding:0 10px;
        width:34px;
        height:34px;
        min-height:34px;
        max-height:34px;
    }
}

@media(max-width:768px){

    .btn-eventos-header{
        display:none;
    }
}

/*==================================================
ITEM DE EVENTOS EN EL MENÚ LATERAL MÓVIL
==================================================*/

.menu-lateral-item.menu-lateral-eventos{
    color:#fca5a5;
}

.menu-lateral-item.menu-lateral-eventos:hover{
    background:rgba(220,38,38,.12);
    color:#ffffff;
}

.menu-lateral-item.menu-lateral-eventos .menu-lateral-icono{
    animation:pulsoIconoEventos 2s ease-in-out infinite;
    display:inline-block;
}

/*==================================================
SWITCH DISPONIBLE HOY (ESCRITORIO) - EFECTOS
==================================================*/

.switch-disponible{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:4px 12px 4px 4px;

    background:#1a1a1a;
    color:#a1a1aa;

    border:1px solid #27272a;
    border-radius:20px;

    font-size:12.5px;
    font-weight:600;

    cursor:pointer;

    user-select:none;
    -webkit-user-select:none;
    -webkit-tap-highlight-color:transparent;

    transition:all .25s ease;

    height:34px;

    flex-shrink:0;

    margin:0;

    box-sizing:border-box;

    position:relative;
    overflow:hidden;

    animation:switchDisponibleBrillo 2.4s ease-in-out infinite;
}

@keyframes switchDisponibleBrillo{
    0%, 100%{
        box-shadow:
            0 0 0 0 rgba(220,38,38,.35),
            0 4px 14px rgba(220,38,38,.15);
        border-color:rgba(220,38,38,.3);
    }
    50%{
        box-shadow:
            0 0 0 6px rgba(220,38,38,0),
            0 6px 22px rgba(220,38,38,.4);
        border-color:rgba(220,38,38,.6);
    }
}

.switch-disponible::before{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:60%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );
    transform:skewX(-20deg);
    animation:switchDisponibleBarrido 3s ease-in-out infinite;
    pointer-events:none;
    clip-path:inset(0 round 20px);
    -webkit-clip-path:inset(0 round 20px);
}

@keyframes switchDisponibleBarrido{
    0%{
        left:-100%;
    }
    50%, 100%{
        left:200%;
    }
}

.switch-disponible:focus,
.switch-disponible:focus-within,
.switch-disponible:active{
    outline:none !important;
    box-shadow:none !important;
}

.switch-disponible:hover{
    background:#27272a;
    color:#ffffff;
    animation:none;
    border-color:#3f3f46;
    box-shadow:none;
}

.switch-disponible.activo{
    background:#1a1a1a;
    color:#4ade80;
    border-color:rgba(34,197,94,.35);

    animation:none;
    box-shadow:none;
}

.switch-disponible.activo::before{
    display:none;
}

.switch-disponible.activo:hover{
    background:#1a1a1a;
    border-color:rgba(34,197,94,.5);
}

.switch-disponible input[type="checkbox"]{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
    pointer-events:none;
}

.switch-slider{
    position:relative;
    width:22px;
    height:22px;
    background:#3f3f46;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background .3s ease;
    flex-shrink:0;
    z-index:2;
}

.switch-disponible.activo .switch-slider{
    background:rgba(34,197,94,.15);
}

.switch-icono{
    font-size:11px;
    opacity:.35;
    filter:grayscale(1);
    transition:all .3s ease;
}

.switch-disponible.activo .switch-icono{
    opacity:1;
    filter:grayscale(0);
    animation:switchLedParpadeo 1.2s ease-in-out infinite;
}

@keyframes switchLedParpadeo{
    0%, 100%{
        opacity:1;
        filter:grayscale(0) drop-shadow(0 0 6px rgba(34,197,94,1)) drop-shadow(0 0 12px rgba(34,197,94,.6));
    }
    50%{
        opacity:.2;
        filter:grayscale(0) drop-shadow(0 0 0 transparent);
    }
}

.switch-texto{
    white-space:nowrap;
    font-weight:700;
    transition:color .25s ease;
    z-index:2;
}

.switch-disponible.activo .switch-texto{
    color:#4ade80;
}

/*==================================================
SWITCH DISPONIBLE HOY (MÓVIL) - EFECTOS
==================================================*/

.switch-disponible-movil{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;

    padding:14px 16px;

    background:#1a1a1a;
    color:#ffffff;

    border:1px solid #27272a;
    border-radius:14px;

    font-size:14px;
    font-weight:600;

    cursor:pointer;

    user-select:none;
    -webkit-user-select:none;
    -webkit-tap-highlight-color:transparent;

    transition:all .25s ease;

    margin:0;

    flex-shrink:0;

    box-sizing:border-box;

    position:relative;
    overflow:hidden;

    animation:switchDisponibleBrillo 2.4s ease-in-out infinite;
}

.switch-disponible-movil::before{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:60%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.18),
        transparent
    );
    transform:skewX(-20deg);
    animation:switchDisponibleBarrido 3s ease-in-out infinite;
    pointer-events:none;
    clip-path:inset(0 round 14px);
    -webkit-clip-path:inset(0 round 14px);
}

.switch-disponible-movil:hover{
    background:#27272a;
    animation:none;
    border-color:#3f3f46;
    box-shadow:none;
}

.switch-disponible-movil.activo{
    background:#1a1a1a;
    color:#4ade80;
    border-color:rgba(34,197,94,.35);
    animation:none;
    box-shadow:none;
}

.switch-disponible-movil.activo::before{
    display:none;
}

.switch-disponible-movil-slider{
    width:28px;
    height:28px;

    background:#3f3f46;
    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    transition:background .3s ease;

    flex-shrink:0;
    z-index:2;
}

.switch-disponible-movil.activo .switch-disponible-movil-slider{
    background:rgba(34,197,94,.15);
}

.switch-disponible-movil-icono{
    font-size:13px;
    opacity:.35;
    filter:grayscale(1);
    transition:all .3s ease;
}

.switch-disponible-movil.activo .switch-disponible-movil-icono{
    opacity:1;
    filter:grayscale(0);
    animation:switchLedParpadeo 1.2s ease-in-out infinite;
}

.switch-disponible-movil.activo .switch-disponible-movil-texto{
    color:#4ade80;
}

/*==================================================
HEADER MÓVIL (iconos)
==================================================*/

.header-movil{
    display:none;
    align-items:center;
    gap:8px;
    margin-left:auto;
}

.header-movil-btn{
    position:relative;

    width:38px;
    height:38px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    background:#1a1a1a;
    border:1px solid #27272a;
    border-radius:50%;

    color:#ffffff;
    font-size:17px;
    line-height:1;

    text-decoration:none;
    cursor:pointer;

    padding:0;

    transition:all .2s cubic-bezier(.4,0,.2,1);

    flex-shrink:0;

    -webkit-tap-highlight-color:transparent;
}

.header-movil-btn:hover,
.header-movil-btn:active{
    background:#27272a;
    border-color:#3f3f46;
    transform:scale(1.05);
}

.header-movil-badge{
    position:absolute;
    top:-4px;
    right:-4px;

    min-width:17px;
    height:17px;
    padding:0 5px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    background:linear-gradient(135deg, #dc2626, #b91c1c);
    color:#ffffff;

    font-size:10px;
    font-weight:800;
    line-height:1;

    border-radius:10px;
    border:2px solid #0a0a0a;

    box-shadow:0 2px 8px rgba(220,38,38,.6);

    z-index:10;

    pointer-events:none;
}

/* ============================================================
   BOTÓN DE CHAT GRUPAL EN MÓVIL — CON EFECTO LLAMATIVO
   ============================================================ */

.header-movil .header-movil-btn[aria-label="Chat grupal"]{
    border:2px solid rgba(168,85,247,.65);
    color:#e9d5ff;

    background:linear-gradient(
        120deg,
        rgba(168,85,247,.28) 0%,
        rgba(168,85,247,.28) 40%,
        rgba(216,180,254,.7) 50%,
        rgba(168,85,247,.28) 60%,
        rgba(168,85,247,.28) 100%
    );
    background-size:250% 100%;
    background-position:100% 0;

    animation:
        chatGrupalMovilPulso 2s ease-in-out infinite,
        chatGrupalMovilBarridoBg 2.4s ease-in-out infinite;

    overflow:hidden;
}

.header-movil .header-movil-btn[aria-label="Chat grupal"]::before{
    display:none !important;
}

@keyframes chatGrupalMovilPulso{
    0%, 100%{
        box-shadow:
            0 0 0 0 rgba(168,85,247,.7),
            0 0 14px rgba(168,85,247,.5);
        border-color:rgba(168,85,247,.65);
    }
    50%{
        box-shadow:
            0 0 0 6px rgba(168,85,247,0),
            0 0 22px rgba(168,85,247,1);
        border-color:rgba(168,85,247,1);
    }
}

@keyframes chatGrupalMovilBarridoBg{
    0%{
        background-position:100% 0;
    }
    100%{
        background-position:-100% 0;
    }
}

.header-movil .header-movil-btn[aria-label="Chat grupal"]:hover,
.header-movil .header-movil-btn[aria-label="Chat grupal"]:active{
    background:linear-gradient(135deg, #a855f7, #8b5cf6);
    border-color:#ffffff;
    color:#ffffff;
    transform:scale(1.1);
    box-shadow:
        0 0 0 6px rgba(168,85,247,.25),
        0 0 24px rgba(168,85,247,1);
}

/* ============================================================
   Fin botón chat grupal móvil
   ============================================================ */

/*==================================================
PUNTITO EN ☰ SI HAY FILTRO ACTIVO
==================================================*/

.btn-hamburguesa.con-filtro{
    position:relative;
}

.btn-hamburguesa.con-filtro::after{
    content:'';
    position:absolute;

    top:2px;
    right:2px;

    width:8px;
    height:8px;

    background:#dc2626;
    border-radius:50%;

    border:2px solid #0a0a0a;

    animation:pulsoFiltro 1.6s ease-in-out infinite;
}

@keyframes pulsoFiltro{
    0%,100%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(220,38,38,.6);
    }
    50%{
        transform:scale(1.15);
        box-shadow:0 0 0 4px rgba(220,38,38,0);
    }
}

/*==================================================
MODAL DE BÚSQUEDA (móvil)
==================================================*/

.modal-busqueda-overlay{
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.7);

    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);

    z-index:1090;

    opacity:0;
    visibility:hidden;

    transition:opacity .25s ease, visibility .25s ease;
}

.modal-busqueda-overlay.activo{
    opacity:1;
    visibility:visible;
}

.modal-busqueda{
    position:fixed;

    top:0;
    left:0;
    right:0;

    background:#0a0a0a;

    border-bottom-left-radius:20px;
    border-bottom-right-radius:20px;

    border-bottom:1px solid #27272a;

    z-index:1100;

    transform:translateY(-100%);

    transition:transform .3s cubic-bezier(.4,0,.2,1);

    max-height:85vh;

    display:flex;
    flex-direction:column;

    box-shadow:0 10px 40px rgba(0,0,0,.6);
}

.modal-busqueda.activo{
    transform:translateY(0);
}

.modal-busqueda-header{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:16px 18px 12px;

    flex-shrink:0;
}

.modal-busqueda-titulo{
    margin:0;

    font-size:16px;
    font-weight:800;
    color:#ffffff;

    letter-spacing:-.2px;
}

.modal-busqueda-cerrar{
    width:34px;
    height:34px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    background:#1a1a1a;
    border:1px solid #27272a;
    border-radius:10px;

    color:#ffffff;
    font-size:15px;

    cursor:pointer;

    padding:0;

    transition:.2s;
}

.modal-busqueda-cerrar:hover{
    background:#dc2626;
    border-color:#dc2626;
}

.modal-busqueda-body{
    padding:0 18px 20px;

    display:flex;
    flex-direction:column;
    gap:16px;

    overflow-y:auto;
}

.modal-busqueda-input-wrapper{
    position:relative;

    display:flex;
    align-items:center;

    background:#1a1a1a;
    border:1px solid #27272a;
    border-radius:14px;
}

.modal-busqueda-input-wrapper:focus-within{
    border-color:#dc2626;
}

.modal-busqueda-input-icono{
    padding-left:14px;

    font-size:15px;

    flex-shrink:0;
}

.modal-busqueda-input{
    flex:1;

    background:transparent;
    border:none;
    outline:none;

    padding:14px 14px 14px 8px;

    color:#ffffff;

    font-size:15px;
    font-family:inherit;

    width:100%;

    box-shadow:none;
}

.modal-busqueda-input:focus,
.modal-busqueda-input:focus-visible{
    outline:none;
    box-shadow:none;
}

.modal-busqueda-input::placeholder{
    color:#71717a;
}

.modal-busqueda-sugerencias{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.modal-busqueda-sugerencias-titulo{
    font-size:12px;
    font-weight:700;
    color:#71717a;

    text-transform:uppercase;
    letter-spacing:.6px;
}

.modal-busqueda-sugerencias-lista{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.modal-busqueda-chip{
    display:inline-flex;
    align-items:center;
    gap:5px;

    padding:8px 14px;

    background:#1a1a1a;
    border:1px solid #27272a;
    border-radius:20px;

    color:#ffffff;

    font-size:13px;
    font-weight:600;

    cursor:pointer;

    transition:.2s;

    font-family:inherit;
}

.modal-busqueda-chip:hover{
    background:#27272a;
    border-color:#3f3f46;
}

/*==================================================
RESPONSIVE EXTRA HEADER MÓVIL
==================================================*/

@media(max-width:480px){

    .top-bar .header-movil{
        gap:6px;
    }

    .header-movil-btn{
        width:34px;
        height:34px;
        font-size:15px;
    }

    .header-movil-badge{
        min-width:15px;
        height:15px;
        font-size:9px;
    }

}

/*==================================================
REDISEÑO MENÚ LATERAL MÓVIL
==================================================*/

@media(max-width:1100px){

    .menu-lateral{
        gap:14px;
        padding-bottom:60px;
    }

    .menu-lateral-filtros{
        padding-bottom:14px !important;
        border-bottom:none !important;
        margin-bottom:20px !important;
    }

    .menu-lateral-acciones{
        border-bottom:none !important;
        padding-bottom:0 !important;
    }

    .menu-lateral-filtros .menu-lateral-filtro:last-child{
        margin-bottom:8px;
    }

}