/* #0856a4 – Azul profundo, serio y profesional

#8db9de – Azul claro suave, amigable y accesible

#048fdc – Azul brillante, tecnológico y moderno

#d5e4f1 – Azul muy claro, casi blanco, para contraste

#4893d0 – Azul intermedio, equilibrado y versátil  */

.off-canvas-sidebar .logo, .sidebar .logo {
    position: relative;
    padding: .5rem .3rem;
    z-index: 4;
}

.logo-normal{
    width: 140px;
    white-space: nowrap!important; /* Prevents text from wrapping */
    overflow: hidden!important;    /* Hides overflowing content */
    text-overflow: ellipsis;
}

@media (min-width: 1130px) {
    .sidebar-mini .sidebar .logo a.logo-normal {
        width: unset;
    }
}


.clear-cookies{
    z-index: 9999;
    position: absolute;
    right: 10px;
    bottom: 10px;
}

.text-purple {
    color: #4b0ec6fc;
}

.btn, .rounded{
    border-radius: 8px!important;
}

.rounded-sm{
    border-radius: 5px!important;
}

.hrc{
    border-top: 1px solid #dee2e6 !important;
    margin-top: .5rem !important;
    padding-top: .5rem !important;
}

.hrcp{
    width: 100%;
    border-top: 1px solid #dee2e6 !important;
    margin-top: .5rem !important;
    padding-top: .5rem !important;
    margin-left: 1rem;
    margin-right: 1rem;
}

.btn-cant-product{
    border-radius: 50% !important;
    width: 20px;
    height: 20px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px!important; 
    padding: 5px 10px!important; 
    color: #fff!important;
    margin: 0px;
    transition: all 0.1s ease-in-out;
}

.btn-cant-product > .now-ui-icons {
    top: 0px!important;
}

.delete-product{
    position: absolute;
    top: auto;
    right: 0;
    font-size: 9px;
    border-radius: 50% !important;
    width: 20px;
    height: 20px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: all 0.2s ease-in-out;
}

.delete-product:hover, .btn-cant-product:hover{
    transform: scale(1.4);
}

.cant-products{
    display: flex;
    flex-wrap: wrap;
    margin: 0 8px;
    align-content: center;
    font-weight: bold;
}

.price-products{
    display: flex;
    align-content: center;
    justify-content: center;
    font-weight: bold;
    align-items: center;
}

.contcant-products{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#registrarMovimiento, .t-white{
    color: white!important;
    font-size: 1rem;
    font-weight: bold;
}

.label-over{
    position: absolute;
    z-index: 900;
    top: -10px;
    left: 25px;
    background-color: white;
    padding: 1px 5px;
}

.card, .modal-content{
    border-radius: 18px;
}

.card-table{
    width: 100%!important;
    max-width: none!important;
    margin: 5px 0 5px 0 !important;
    box-shadow: 1px 0px 5px 0px rgba(39, 39, 39, .1);
    border: 1px solid #e6e6e6 !important;
    padding: 5px 10px 5px 10px !important;
}

.card-adeudo{
    width: 95% !important;
    max-width: none!important;
    margin: 5px 0 5px 0 !important;
    box-shadow: 1px 0px 5px 0px rgba(39, 39, 39, .1);
    padding: 5px 10px 5px 10px !important;
    background-color: #E0FFDC;
    border: 3px solid green !important;
    transition: all 0.2 ease-in-out;
}

.card-adeudo::after {
content: "";
    content: "";
    position: absolute;
    top: -12px; 
    right: 10px;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid green; 
}


.bg-none{
    background-color: #ffffff !important;
}


.modal .modal-header .close {
    font-size: 2rem;
    padding: 0px 10px;
}

.bold-title{
    font-weight: bold;
    margin-bottom: 0px;
}

.bginactive{
    background-color: #fffacf!important;
}

.text-sm{
    font-size: 0.65rem;
}

.breadcrumb{
    border-radius: 8px;
    padding: 7px 13px!important;
}

.alert {
    border-radius: 9px;
    padding-top: 0.4rem;
    padding-bottom: .4rem;
}

.nombre-paciente{
    line-height: 1em;
    margin-bottom: 0px;
}

.card .avatar {
    margin-bottom: 5px;
}

.lista-historia{
    list-style: none;
    margin-bottom: 0px;
}

.navbar .navbar-nav .nav-item.active .nav-link:not(.btn), .navbar .navbar-nav .nav-item .nav-link:not(.btn):active, .navbar .navbar-nav .nav-item .nav-link:not(.btn):focus, .navbar .navbar-nav .nav-item .nav-link:not(.btn):hover {
    border-radius: 8px;
}

/* .sidebar:after, .sidebar:before {
    border-radius: 0 10px 10px 0;
} */

/* DISENO DE LOGIN */

    .img-login{
        width: 150px;
        margin-bottom: 10px;
        position: absolute;
        top: -75px;
    }

    .card-body-login{
        padding-top: 80px!important;
    }

    .full-page>.content {
        padding: 0px;
    }

    .wrapper-full-page{
        align-content: center;
        margin: 0;
        height: 100vh;
        background-color: #f8faff;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
        background-image: url("data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'><path fill='%230856a4' fill-opacity='1' d='M0,96L80,112C160,128,320,160,480,154.7C640,149,800,107,960,96C1120,85,1280,107,1360,117.3L1440,128L1440,0L1360,0C1280,0,1120,0,960,0C800,0,640,0,480,0C320,0,160,0,80,0L0,0Z'></path><path fill='%230489dc' fill-opacity='0.8' d='M0,256L80,245.3C160,235,320,213,480,181.3C640,149,800,107,960,101.3C1120,96,1280,128,1360,144L1440,160L1440,0L1360,0C1280,0,1120,0,960,0C800,0,640,0,480,0C320,0,160,0,80,0L0,0Z'></path></svg>");
    }

    .section-image::after {
        background-color: unset!important;
    }

    .login-page{
            flex-wrap: wrap;
            display: flex;
            justify-content: center;
            align-content: center;
    }

    .card-login{
       border-radius: 20px!important;
       padding: 10px!important;
    }
/* DISENO DE LOGIN */

/* CONTENEDOR DE MEDICOS */
    #contenedor-medicos  {
        opacity: 1;
        transition: opacity 0.5s ease-in-out;
    }

    .sidebar-mini #contenedor-medicos {
        opacity: 0;
    }
/* CONTENEDOR DE MEDICOS */

/* BARRA DE BUSQUEDA */

    .alert-msg{
        width: 100%!important;
        text-align: center;
    }
    
    .navbar.fixed-top {
        width: 100%;
    }
    
    .navbar .navbar-nav .nav-item{
        margin: 0px!important;
    }
    
    .busqueda_container{
        width: 70%;
        display: flex;
        align-items: center;
        justify-content: end;
    }
    
    .busqueda{
        width: 50%;
    }
    
    .navbar-collapse {
        flex-grow: 0;
    }

    .select2-container--krajee-bs3 .select2-selection {
        background-color: hsla(0, 0%, 87%, .3)!important;
        border: medium none!important;
        border-radius: 10px!important;
    }
    
    .select2-selection__placeholder{
        color: rgb(31, 31, 31)!important;
        display: flex!important;
    }
    
    .select2-container--krajee-bs3 .select2-selection--single .select2-selection__arrow b {
        border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
    }
    
    .select2-container--krajee-bs3.select2-container--open .select2-selection--single .select2-selection__arrow b {
        border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
    }
    
    #select2-hola-container > .select2-selection__placeholder{
        color: white!important;
    }
    
    #hola span .select2-container--krajee-bs3 .select2-selection--single .select2-selection__arrow b {
        border-color: white transparent #fff transparent !important;
    }
    
    #hola > .select2-container--krajee-bs3.select2-container--open .select2-selection--single .select2-selection__arrow b {
        border-color: white transparent #fff transparent !important;
    }
    
    .select2-container--krajee-bs3.select2-container--open .select2-selection, .select2-container--krajee-bs3 .select2-selection:focus{
        -webkit-box-shadow: none!important;
        box-shadow: none!important;
        border: medium none!important;
        background-color: hsla(0, 0%, 87%, .5)!important;
    }
    
    .select2-container--krajee-bs3 .select2-dropdown {
        border-radius: 7px!important;
        margin-top: 7px!important;
    }

    .select2-container--krajee-bs3 li.select2-results__option {
        background-color: #e3f3fc!important;
        color: #537dc0!important;
    }
/* BARRA DE BUSQUEDA */


/* DISENO DE CHAT */


    .chatContainer{
        position: relative;
        display: flex;
    }

    .open-button {
        padding: 10px 20px;
        border: none;
        cursor: pointer;
        width: 100%;
        border-radius: 10px;
        margin: 5px;
    }

    .chatContainerfixed{
        z-index: 999;
        position: fixed;
        justify-content: end;
        right: 30px;
        bottom: 30px;
        width: 310px;
        /* box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1) !important; */
    }

    .chatContainerfixed > .open-button{
        border: 2px solid #1eaa2e;
        padding: 10px;
        /* border: none; */
        cursor: pointer;
        width: 60px;
        height: 60px;
        border-radius: 50%;
        box-shadow: 0px 2px 5px rgb(0 0 0 / 56%);
        font-size: 25px;
    }

    .chatContainerfixed > .open-button > span{
        display: none;
    }

    .chatContainerfixed > .chat-popup{
        /* border: 1px solid #ccc; */
        box-shadow: 0px 0px 5px rgb(0 96 154);
        border-radius: 15px;
        background-color: white;
    }
    
    
    
    .chat-popup{
        width: 100%;
        padding: 5px;
    }

    .form-popup {
        display: none;
        position: fixed;
        bottom: 0;
        right: 15px;
        border: 3px solid #f1f1f1;
        z-index: 9;
    }

    .form-container {
        max-width: 300px;
        padding: 5px;
        background-color: white;
        border-radius: 10px;
    }

    .chat-container {
        margin: 0 0 5px 0;
        font-size: 11px;
        display: flex;
        flex-direction: column;
        border-radius: 7px;
        min-height: 300px;
        background-color: #f1f1f1;
        border: none;
        height: 300px;
    }

    .chat-messages {
        flex-grow: 1;
        padding: 5px;
        -ms-overflow-style: thin;
        scrollbar-color: #c4c4c4 #f1f1f1;
        scrollbar-width: thin;
        overflow-y: scroll;
        overflow-x: hidden;
        scroll-behavior: smooth;
    }

    .chat-messages::-webkit-scrollbar {
        display: none;
    }

    .message {
        display: flex;
        margin-bottom: 10px;
        position: relative;
    }

    .message.other {
        justify-content: flex-start;
        align-items: flex-start;
    }

    .message.self {
        justify-content: flex-end;
        align-items: flex-end;
    }

    .message.other::after {
        content: '';
        position: absolute;
        visibility: visible;
        bottom: 0px;
        left: -8px;
        border: 10px solid transparent;
        border-bottom: 10px solid #c3e2f8;
        clear: both;
    }
    
    .message.self::after {
        content: '';
        position: absolute;
        visibility: visible;
        bottom: 0px;
        right: -8px;
        border: 10px solid transparent;
        border-bottom: 10px solid #76c6ff;
        clear: both;
    }

    .message-title{
        font-weight: bold;
        color: #003975;
    }

    .message-content {
        max-width: 90%;
        padding: 5px;
        border-radius: 7px;
        background-color: #c3e2f8;
    }

    .time{
        font-size: 9px;
        font-weight: bold;
        text-align: right;
        color: #003975;
    }

    .self .message-title{
        color: #fff;
    }

    .message.self .message-content{
        background-color: #76c6ff;
    }

    .msgtext{
        border-radius: 7px;
    }

    .form-container .btn {
        background-color: #4CAF50;
        color: white; 
        border: none;
        cursor: pointer;
        width: 100%;
        opacity: 0.8;
        margin: 10px 0 0 0;
        border-radius: 7px;
    }

    .chat-popup .cancel {
        background-color: red;
        margin: 0px;
        border-radius: 50%;
        width: 30px;
        height: 30px;
        padding: 5px;
        position: absolute;
        right: 0px;
        top: -5px;
        z-index: 4;
    }

    .sidebar-mini .open-button{
        width: 85%;
        padding: 10px;
        display: block;
    }

    .sidebar-mini .chatContainerfixed .open-button{
        /* display: ; */
        width: 60px;
    }
    

/* ==========================
   Técnica: ::before = borde
            ::after  = color interno
   ========================== */

/* Usuario 1 - Azul */
.user1 .message-content {
    background-color: #c3e2f8 !important;
    color: #003975 !important;
    border: 1px solid #91c4eb !important;
    position: relative !important;
    z-index: 3 !important;
}
.user1 .message-title,
.user1 .time {
    color: #003975 !important;
}
.user1.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #91c4eb !important; /* borde externo */
    z-index: 1 !important;
}
.user1.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c3e2f8 !important; /* fondo interno */
    z-index: 3 !important;
}
.user1.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #91c4eb !important;
    z-index: 1 !important;
}
.user1.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c3e2f8 !important;
    z-index: 3 !important;
}

/* Usuario 2 - Verde */
.user2 .message-content {
    background-color: #c3f8d4 !important;
    color: #036b29 !important;
    border: 1px solid #93dbaa !important;
    position: relative !important;
    z-index: 3 !important;
}
.user2 .message-title,
.user2 .time { color: #036b29 !important; }
.user2.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #93dbaa !important;
    z-index: 1 !important;
}
.user2.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c3f8d4 !important;
    z-index: 3 !important;
}
.user2.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #93dbaa !important;
    z-index: 1 !important;
}
.user2.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c3f8d4 !important;
    z-index: 3 !important;
}

/* Usuario 3 - Naranja */
.user3 .message-content {
    background-color: #ffe4c2 !important;
    color: #7a3f00 !important;
    border: 1px solid #e1b986 !important;
    position: relative !important;
    z-index: 3 !important;
}
.user3 .message-title,
.user3 .time { color: #7a3f00 !important; }
.user3.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #e1b986 !important;
    z-index: 1 !important;
}
.user3.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #ffe4c2 !important;
    z-index: 3 !important;
}
.user3.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #e1b986 !important;
    z-index: 1 !important;
}
.user3.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #ffe4c2 !important;
    z-index: 3 !important;
}

/* Usuario 4 - Morado */
.user4 .message-content {
    background-color: #e3c3f8 !important;
    color: #4d006b !important;
    border: 1px solid #c49adc !important;
    position: relative !important;
    z-index: 3 !important;
}
.user4 .message-title,
.user4 .time { color: #4d006b !important; }
.user4.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #c49adc !important;
    z-index: 1 !important;
}
.user4.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #e3c3f8 !important;
    z-index: 3 !important;
}
.user4.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #c49adc !important;
    z-index: 1 !important;
}
.user4.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #e3c3f8 !important;
    z-index: 3 !important;
}

/* Usuario 5 - Turquesa */
.user5 .message-content {
    background-color: #c2f8f1 !important;
    color: #00574a !important;
    border: 1px solid #93d7cd !important;
    position: relative !important;
    z-index: 3 !important;
}
.user5 .message-title,
.user5 .time { color: #00574a !important; }
.user5.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #93d7cd !important;
    z-index: 1 !important;
}
.user5.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c2f8f1 !important;
    z-index: 3 !important;
}
.user5.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #93d7cd !important;
    z-index: 1 !important;
}
.user5.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #c2f8f1 !important;
    z-index: 3 !important;
}

/* Usuario 6 - Amarillo */
.user6 .message-content {
    background-color: #fff7c2 !important;
    color: #665b00 !important;
    border: 1px solid #ddd492 !important;
    position: relative !important;
    z-index: 3 !important;
}
.user6 .message-title,
.user6 .time { color: #665b00 !important; }
.user6.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #ddd492 !important;
    z-index: 1 !important;
}
.user6.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #fff7c2 !important;
    z-index: 3 !important;
}
.user6.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #ddd492 !important;
    z-index: 1 !important;
}
.user6.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #fff7c2 !important;
    z-index: 3 !important;
}

/* Usuario 7 - Coral */
.user7 .message-content {
    background-color: #ffd3cc !important;
    color: #7a1e0e !important;
    border: 1px solid #e1a79d !important;
    position: relative !important;
    z-index: 3 !important;
}
.user7 .message-title,
.user7 .time { color: #7a1e0e !important; }
.user7.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #e1a79d !important;
    z-index: 1 !important;
}
.user7.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #ffd3cc !important;
    z-index: 3 !important;
}
.user7.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #e1a79d !important;
    z-index: 1 !important;
}
.user7.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #ffd3cc !important;
    z-index: 3 !important;
}

/* Usuario 8 - Rosa */
.user8 .message-content {
    background-color: #f8c2d7 !important;
    color: #6b0030 !important;
    border: 1px solid #d996ad !important;
    position: relative !important;
    z-index: 3 !important;
}
.user8 .message-title,
.user8 .time { color: #6b0030 !important; }
.user8.message.other::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    left: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #d996ad !important;
    z-index: 1 !important;
}
.user8.message.other::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    left: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #f8c2d7 !important;
    z-index: 3 !important;
}
.user8.message.self::before {
    content: '' !important;
    position: absolute !important;
    bottom: 0px !important;
    right: -11px !important;
    border: 11px solid transparent !important;
    border-bottom-color: #d996ad !important;
    z-index: 1 !important;
}
.user8.message.self::after {
    content: '' !important;
    position: absolute !important;
    bottom: 1px !important;
    right: -8px !important;
    border: 10px solid transparent !important;
    border-bottom-color: #f8c2d7 !important;
    z-index: 3 !important;
}


/* DISENO DE CHAT */




/* DISENO DE ALERT */
    .alert{
        /* width: 250px!important; */
        font-weight: bold;
        font-size: 1rem;
    }
    
    .alert.alert-success {
        background-color: #57c251!important;
    }
    
    .progress {
        height: 3px!important;
    }
    
    .progress-bar {
        background-color: #14990d!important;
    }
/* DISENO DE ALERT */


/* DISENO DE FILEINPUT */

    .input-group .form-control:first-child {
        border-right: 1px solid #e3e3e3!important;
        border-top-right-radius: 10px!important;
        border-bottom-right-radius: 10px!important;
        margin-right: 10px!important;
    }

    .btn-file:hover, .btn-file:active:hover, .btn-file:focus, .btn-file:not(:disabled):not(.disabled).active, .btn-file:not(:disabled):not(.disabled).active:focus, .btn-file:not(:disabled):not(.disabled):active, .btn-file:not(:disabled):not(.disabled):active:focus, .show>.btn-file.dropdown-toggle, .show>.btn-file.dropdown-toggle:focus, .show>.btn-file.dropdown-toggle:hover {
        background-color: #4bb5ff;
        color: #fff;
        box-shadow: none;
    }
    .btn-file{
        border-radius: 10px;
        margin: 0px;
        background-color: #2ca8ff;
        color: #fff;
        margin: 3px!important;
    }

    .fileinput-remove{
        background-color: #ff3636;
        color: #fff;
    }
    
    .fileinput-remove{
        margin: 3px;
    }
    
    .file-preview-thumbnails{
        display: flex;
    }
    
    .noUi-horizontal {
        height: 5px;
    }
    
    .noUi-horizontal .noUi-handle {
        margin-top: -5px;
    }
/* DISENO DE FILEINPUT */

/* DISENO BARRA DE CAJA */
.cashregisterbar{
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 0; 
}

.cashregisterbar a{
    align-items: center;
    transition: transform 0.2s ease-in-out;
}
.cashregisterbar a:hover{
    transform: scale(1.1);
}

.cashregisterbar a > i{
    margin-right: 6px;
}

.cashregisterbar a > span{
    font-weight: bold;
}

.cashregisterbar .btn-sq{
    width: auto!important;
    height: 40px!important;
}


.concept-input, .money-input{
    border: 2px solid #e0e0e0;
    font-family: 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    background-color: #f9f9f9;
    text-align: right;
    height: calc(2.5rem + 2px);
}

.concept-input{
    text-align: left;
}

.money-input{
    font-weight: 700;
    height: calc(2.75rem + 2px);
}

.concept-input:focus, .money-input:focus {
    outline: none;
    border-color: #4CAF50;
    background-color: #f9f9f9;
}

/* DISENO BARRA DE CAJA */

/* DISENO DE MIVIMIENTOS DE CAJA */

.rowGrid{
   display: grid;
    grid-template-columns: 8fr 4fr; 
    gap: 10px;
    width: 100%;
    margin: 0 auto;
    padding: 0 10px;
}

.detalle-mov span{
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 90px;
    margin-right: 10px;
}
.detalle-mov > :first-child {
    width: 100px!important;
}

.npaciente{
    width: 150px!important;
}

.tipo-mov{
    font-weight: bold;
    font-style: italic;
}

.t-apertura{
    color: #4BB65D;
}
.t-entrada{
    color: #31373B;
}
.t-salida{
    color: #DE1807;
}
.bg-tarjeta{
    background-color: #FFF9E2;
    border: 1px solid #d8c060!important;
}
.bg-cancelado{
    background-color: #FCEAE5;
    border: 1px solid #ffa48b!important;
}
.bg-apertura{
    background-color: #ECFAEA;
    border: 1px solid #5dd34c!important;
}

.text-money{
    font-family: 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #333;
}

.end-elements{
    display: flex;
    justify-content: end;
    align-items: center;
}

.center-elements{
    display: flex;
    justify-content: center;
    align-items: center;
}

.amount-elements{
    display: flex;
    justify-content: center;
    align-items: end;
    flex-direction: column;
}

#datatables_movimientos{
    border: none!important;
}

/* DISENO DE MIVIMIENTOS DE CAJA */


/* DISENO DE SALDO DE CAJA */
.card-balance{
    display: flex;
    justify-content: center;
    text-align: center;
    font-size: 18px;
    padding: 15px;
}

.card-balance i{
    margin-bottom: 10px;
    font-size: 36px;
}

.card-balance span{
    margin: -8px;
}

.card-balance div{
    display: flex;
    flex-direction: column;
}

.balance-amount{
    margin-top: 5px!important;
    margin-bottom: 0px!important;
    font-weight: bold;
}

.btn-detail{
    color: #7A7F81;
    background-color: white;
    border: 1px solid #7A7F81;
    border-radius: 30px;
    padding: 6px 24px;
    font-size: 10px;
    margin-bottom: 24px;
}

.balance-detail h6{
    margin: 0px;
}

/* DISENO DE SALDO DE CAJA */

    .w5{
        width: 5%!important;
    }
    
    .w10{
        width: 10%!important;
    }
    
    .w20{
        width: 20%!important;
    }

    @media screen and (max-width: 767px) {
        table.dataTable>tbody>tr>td:first-child {
            padding-left: 5px !important;
        }
    }
    
    @media (min-width: 992px) {
        .busqueda_container{
            width: 85%;
        }
    }

    @media (min-width: 1200px) {   
        .busqueda_container{
            width: 90%;
        }  
    }

    @media (min-width: 1600px) {
        .busqueda_container{
            width: 60%;
        }
    }
    
    @media (width <= 991px) {
        .busqueda{
            width: 90%;
        }
    
        .select2-selection__placeholder{
            color: rgb(31, 31, 31)!important;
        }
        
        .select2-container--krajee-bs3 .select2-selection--single .select2-selection__arrow b {
            border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
        }
        
        .select2-container--krajee-bs3.select2-container--open .select2-selection--single .select2-selection__arrow b {
            border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
        }
    
        #select2-hola-container > .select2-selection__placeholder{
            color: rgb(31, 31, 31)!important;
        }
        
        #select2-hola-container > .select2-container--krajee-bs3 .select2-selection--single .select2-selection__arrow b {
            border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
        }
        
        #select2-hola-container > .select2-container--krajee-bs3.select2-container--open .select2-selection--single .select2-selection__arrow b {
            border-color: rgb(31, 31, 31) transparent rgb(31, 31, 31) transparent !important;
        }
    }

    .btn-with-icon{
        margin-top: 0px;
    }

    .btn-with-icon .btn-text {
        max-width: 0;
        -webkit-transition: max-width 0.7s;
        transition: max-width 0.7s;
        display: inline-block;
        vertical-align: top;
        white-space: nowrap;
        overflow: hidden;
        
    }
    .btn-with-icon:hover .btn-text {
        max-width: 9rem;
        margin-left: .2rem;
    }

    button.btn-with-icon{
        margin-right: 6px;
    }

    .krajee-default .file-footer-caption {
        margin-bottom: 0px!important;
    }

    .krajee-default.file-preview-frame .file-thumbnail-footer {
        height: unset!important;
    }

    .paginate_button{
        cursor: pointer;
        border: none!important;
        box-shadow: none!important;
        transition: transform 0.2s ease-in-out;
    }

    .paginate_button:hover{
        transform: scale(1.2);
    }

.swal2-buttonswrapper{
    display: flex!important;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
}

.swal2-buttonswrapper > button {
    width: 70%;
    align-self: center;
}

/* --- Estilos Generales para Botones SweetAlert2 --- */
.swal2-confirm,
.swal2-cancel {
  /* Propiedades comunes para ambos botones */
  font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; /* Fuente moderna y legible */
  font-size: 1rem !important;
  font-weight: 600 !important; /* Un poco más de peso para la legibilidad */
  padding: 0.75rem 1.75rem !important; /* Más padding para una mejor área de clic */
  border-radius: 0.5rem !important; /* Bordes ligeramente más redondeados */
  border: none !important;
  cursor: pointer;
  transition: all 0.25s ease-in-out !important; /* Transiciones más suaves y rápidas */
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1) !important; /* Sombra más pronunciada pero difuminada */
  outline: none !important; /* Elimina el contorno de enfoque por defecto */
}

.swal2-confirm:active,
.swal2-cancel:active {
  transform: translateY(1px) !important; /* Pequeño "click" al presionar */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; /* Sombra más pequeña al presionar */
}

/* --- Botón de Confirmación: Estilo "Success" --- */
.swal2-confirm {
  background-color: #4CAF50 !important; /* Verde más vibrante y universal */
  color: #ffffff !important; /* Texto blanco puro */
}

.swal2-confirm:hover {
  background-color: #43A047 !important; /* Un tono más oscuro en hover */
  transform: translateY(-2px) !important; /* Ligero levantamiento en hover */
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15) !important; /* Sombra ampliada en hover */
}

/* --- Botón de Cancelación: Estilo "Danger" --- */
.swal2-cancel {
  background-color: #F44336 !important; /* Rojo cálido y claro */
  color: #ffffff !important;
}

.swal2-cancel:hover {
  background-color: #E53935 !important; /* Un tono más oscuro en hover */
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15) !important;
}

/* --- Mejoras Adicionales para el Contenedor de Botones (Opcional) --- */
/* Esto puede ayudar a centrar los botones o darles un mejor espaciado si SweetAlert2 no lo hace por defecto */
.swal2-actions {
    padding-top: 20px !important; /* Más espacio encima de los botones */
}

.swal2-modal{
    border-radius: 20px!important;
}

.swal2-container,
.sweet-alert,
.sweet-overlay,
div[class*="swal2-container"] {
    z-index: 20000 !important;
}

div[data-notify="container"] {
    z-index: 20001 !important;
}

.text-decoration-none{
    text-decoration: none!important;
}


/* fullcalendar */

.fc-scrollgrid{
    border: none!important;
}

@keyframes fcEventElevate {
    0% {
        opacity: 0.7;
        transform: translateY(3px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.fc-event {
    animation: fcEventElevate 0.25s ease-out;
}

.fc-h-event, .fc-v-event {
    border-radius: 10px;
    transition: transform 0.2s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.2s cubic-bezier(0.165, 0.84, 0.44, 1);
    cursor: pointer;
    will-change: transform;
}

.fc-h-event:hover, .fc-v-event:hover {
    transform: translateY(-2.5px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16) !important;
    z-index: 50 !important;
}

.fc-status-corner-icon {
    position: absolute;
    right: 4px;
    bottom: 3px;
    width: 17px;
    height: 17px;
    background-color: #ffffff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9.5px;
    line-height: 1;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    z-index: 2;
    pointer-events: auto;
}

.fc-h-event:hover .fc-status-corner-icon, .fc-v-event:hover .fc-status-corner-icon {
    transform: scale(1.15);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.35);
}

.fc-event-main{
    padding: 3px!important;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 100%!important;
    position: relative!important;
}

.fc .fc-timegrid-slot {
    height: 38px;
}

:root {
    --fc-small-font-size: 1rem;
    --fc-today-bg-color: rgba(40, 165, 255, 0.15);
}

.fc .fc-highlight {
    background-color: rgb(0, 255, 0)!important;
    border: 1px solid #005900!important;
    border-radius: 8px; 
}

.fc .fc-button-group>* {
    float: left;
    margin: 0 0 0 5px!important;
    border-radius: 8px!important;
    border: none!important;
}

.fc button, .fc button.btn-primary {
  background-color: #2ca8ff!important;
  color: #fff;
}
.fc button.btn-primary.disabled, .fc button.btn-primary.disabled.active, .fc button.btn-primary.disabled.focus, .fc button.btn-primary.disabled:active, .fc button.btn-primary.disabled:focus, .fc button.btn-primary.disabled:hover, .fc button.btn-primary:disabled, .fc button.btn-primary:disabled.active, .fc button.btn-primary:disabled.focus, .fc button.btn-primary:disabled:active, .fc button.btn-primary:disabled:focus, .fc button.btn-primary:disabled:hover, .fc button.btn-primary[disabled], .fc button.btn-primary[disabled].active, .fc button.btn-primary[disabled].focus, .fc button.btn-primary[disabled]:active, .fc button.btn-primary[disabled]:focus, .fc button.btn-primary[disabled]:hover, .fc button.disabled, .fc button.disabled.active, .fc button.disabled.focus, .fc button.disabled:active, .fc button.disabled:focus, .fc button.disabled:hover, .fc button:disabled, .fc button:disabled.active, .fc button:disabled.focus, .fc button:disabled:active, .fc button:disabled:focus, .fc button:disabled:hover, .fc button[disabled], .fc button[disabled].active, .fc button[disabled].focus, .fc button[disabled]:active, .fc button[disabled]:focus, .fc button[disabled]:hover, fieldset[disabled] .fc button, fieldset[disabled] .fc button.active, fieldset[disabled] .fc button.btn-primary, fieldset[disabled] .fc button.btn-primary.active, fieldset[disabled] .fc button.btn-primary.focus, fieldset[disabled] .fc button.btn-primary:active, fieldset[disabled] .fc button.btn-primary:focus, fieldset[disabled] .fc button.btn-primary:hover, fieldset[disabled] .fc button.focus, fieldset[disabled] .fc button:active, fieldset[disabled] .fc button:focus, fieldset[disabled] .fc button:hover {
  background-color: #2ca8ff!important;
  border-color: #2ca8ff!important;
}

.fc button.active:hover, .fc button.btn-primary.active:hover, .fc button.btn-primary:active:hover, .fc button.btn-primary:focus, .fc button.btn-primary:hover, .fc button.btn-primary:not(:disabled):not(.disabled).active, .fc button.btn-primary:not(:disabled):not(.disabled).active:focus, .fc button.btn-primary:not(:disabled):not(.disabled):active, .fc button.btn-primary:not(:disabled):not(.disabled):active:focus, .fc button:active:hover, .fc button:focus, .fc button:hover, .fc button:not(:disabled):not(.disabled).active, .fc button:not(:disabled):not(.disabled).active:focus, .fc button:not(:disabled):not(.disabled):active, .fc button:not(:disabled):not(.disabled):active:focus, .show>.fc button.btn-primary.dropdown-toggle, .show>.fc button.btn-primary.dropdown-toggle:focus, .show>.fc button.btn-primary.dropdown-toggle:hover, .show>.fc button.dropdown-toggle, .show>.fc button.dropdown-toggle:focus, .show>.fc button.dropdown-toggle:hover {
  background-color: #2ca8ffa1!important;
  color: #fff;
  box-shadow: none;
}

.fc button {
    border-width: 2px!important;
    font-weight: 400!important;
    font-size: .8571em!important;
    line-height: 1.35em!important;
    margin: 5px 1px!important;
    border: none!important;
    margin: 0px 5px!important;
    border-radius: 8px!important;
    padding: 11px 22px!important;
    cursor: pointer!important;
    transition: all .2s ease-in-out;
    outline: none!important;
}

.fc-direction-ltr .fc-daygrid-more-link {
    float: right!important;
    color: #000;
}

/* fullcalendar */

/* diseno de citas */
    .cita{
        display: flex;
        flex-direction: column;
        font-family: 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
        font-size: 16px;
        font-weight: 600;
        color: #333; 
        border: 2px solid rgba(0, 128, 0, 0.641);
        border-radius: 8px;
        padding: 10px 15px;
    }

    .cita-salida{
        border: 2px solid rgba(128, 0, 0, 0.641);
    }

    .cita > * {
        margin: -8px;
    }
    .cita-label {
        text-align: center;
        font-weight: bold;
        margin-bottom: 5px;
    }
    .cita span{
        font-size: 20px;
    }

    .control-label{
        font-weight: bold;
        margin-bottom: 0px;
        text-transform: capitalize;
    }
/* diseno de citas */


.off-canvas-sidebar[data-color=blue]:after, .sidebar[data-color=blue]:after {
    border-radius: 0px 15px 15px 0px;
    box-shadow: 0 2px 22px 0 rgba(0, 0, 0, .2), 0 2px 30px 0 rgba(0, 0, 0, .35);
}
.off-canvas-sidebar, .sidebar{
    box-shadow: none;
    z-index: 999!important;
}

.main-panel {
    width: calc(100% - 0px);
}

.navbar.fixed-top {
    padding-left: 290px;
    transition: all .5s cubic-bezier(.685,.0473,.346,1);
}
.main-panel>.content {
    padding-left: 290px;
    transition: all .5s cubic-bezier(.685,.0473,.346,1);
}
.panel-header{
    background: linear-gradient(90deg, #0754a0 0, #04407a 60%, #073e74)!important;
}

[color=blue]:after, .sidebar[data-color=blue]:after {
    background: #0856a4!important;
}

.off-canvas-sidebar .nav li>a, .sidebar .nav li>a {
    border-radius: 10px!important;
}

@media (min-width: 1130px) {

    .sidebar-mini .main-panel {
        width: calc(100% - 0px);
    }

    .sidebar-mini .navbar.fixed-top {
        padding-left: 90px;
    }

    .sidebar-mini .main-panel>.content {
        padding-left: 120px;
    }
}

@media screen and (max-width: 1130px) {
    .main-panel {
        width: 100%;
    }

    .navbar.fixed-top {
        padding-left: 30px;
    }
    .main-panel>.content {
        padding-left: 30px;
    }

    .nav-open .main-panel {
        right: 0;
        transform: none;
    }

    .nav-open .main-panel>.content {
        right: 0;
        transform: translate3d(260px, 0px, 0px);
    }

    .nav-open .navbar.fixed-top {
        transform: translate3d(260px, 0px, 0px);
    }

    .nav-open .fixed-top [class*=container-] {
        transform: none;
    }

    .nav-open .sidebar {
        box-shadow: none;
    }
}

/* ==========================================================================
   POPOVER FLOTANTE DE DETALLES DE CITA (ESTILO CONTEXTUAL)
   ========================================================================== */

#citaPopoverCard {
    position: fixed;
    z-index: 9999;
    width: 350px;
    max-width: calc(100vw - 24px);
    display: none;
    overflow: visible;
    animation: popoverScaleIn 0.18s cubic-bezier(0.165, 0.84, 0.44, 1);
    font-family: inherit;
    filter: drop-shadow(0 14px 34px rgba(0, 0, 0, 0.20));
}

.popover-content-wrapper {
    background: #ffffff;
    border-radius: 18px;
    max-height: calc(100vh - 30px);
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.popover-arrow {
    position: absolute;
    width: 14px;
    height: 14px;
    background: #ffffff;
    z-index: 3;
    transform: rotate(45deg);
    border: 1px solid rgba(0, 0, 0, 0.08);
    pointer-events: none;
}

.popover-arrow.arrow-left {
    left: -7px;
    border-right: none;
    border-top: none;
}

.popover-arrow.arrow-right {
    right: -7px;
    border-left: none;
    border-bottom: none;
}

@keyframes popoverScaleIn {
    0% {
        opacity: 0;
        transform: scale(0.96) translateY(5px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.popover-card-inner {
    padding: 14px 16px;
}

/* 1. Barra superior de acciones con iconos (Estilo Imagen 2) */
.popover-top-action-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.popover-action-circles {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-action-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.15s ease;
    border: 1.5px solid transparent;
    background: #f8fafc;
    padding: 0;
}

.circle-atendida {
    border-color: #10b981;
    color: #10b981;
}
.circle-atendida:hover, .circle-atendida.active {
    background: #10b981;
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(16, 185, 129, 0.35);
}

.circle-inasistencia {
    border-color: #ef4444;
    color: #ef4444;
}
.circle-inasistencia:hover, .circle-inasistencia.active {
    background: #ef4444;
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.35);
}

.circle-confirmada {
    border-color: #06b6d4;
    color: #06b6d4;
}
.circle-confirmada:hover, .circle-confirmada.active {
    background: #06b6d4;
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(6, 182, 212, 0.35);
}

.circle-espera {
    border-color: #0d9488;
    color: #0d9488;
}
.circle-espera:hover, .circle-espera.active {
    background: #0d9488;
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(13, 148, 136, 0.35);
}

.circle-close {
    border-color: #e2e8f0;
    color: #94a3b8;
    background: transparent;
}
.circle-close:hover {
    background: #f1f5f9;
    color: #334155;
}

/* 2. Encabezado de Cita (Estilo Imagen 2) */
.popover-patient-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 6px;
}

.popover-patient-info {
    flex: 1;
    padding-right: 8px;
}

.popover-patient-name {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 3px 0;
    line-height: 1.25;
}

.popover-time-text {
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
}

.popover-motivo-text {
    font-size: 0.80rem;
    color: #64748b;
    margin-top: 2px;
}

.btn-header-edit {
    background: transparent;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0d9488;
    cursor: pointer;
    transition: all 0.15s ease;
    padding: 0;
}
.btn-header-edit:hover {
    background: #f0fdfa;
    border-color: #0d9488;
    transform: scale(1.05);
}

.popover-section-divider {
    height: 1px;
    background: #f1f5f9;
    margin: 10px 0;
}

/* 3. Listado de Datos de Cita (Estilo Imagen 1 y requerimientos de usuario) */
.popover-data-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.popover-data-item {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 0.82rem;
}

.popover-data-icon {
    width: 18px;
    text-align: center;
    padding-top: 1px;
    font-size: 0.85rem;
}

.popover-data-content {
    flex: 1;
    min-width: 0;
}

.popover-data-label {
    font-size: 0.67rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: 0.4px;
    display: inline-block;
    margin-right: 4px;
}

.popover-data-value {
    color: #1e293b;
    font-size: 0.82rem;
}

.popover-data-sub {
    font-size: 0.74rem;
    color: #64748b;
    margin-top: 2px;
}

.popover-status-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 700;
}
.badge-status-poratender {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}
.badge-status-atendida {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}
.badge-status-inasistencia {
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a;
}
.badge-status-cancelada {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}

.popover-confirm-badge {
    font-size: 0.74rem;
    font-weight: 600;
    color: #059669;
    background: #ecfdf5;
    padding: 2px 7px;
    border-radius: 10px;
    border: 1px solid #a7f3d0;
}

.popover-wa-pill {
    background: #25d366;
    color: #ffffff !important;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 12px;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    box-shadow: 0 1px 3px rgba(37, 211, 102, 0.35);
    transition: transform 0.15s ease;
}
.popover-wa-pill:hover {
    transform: translateY(-1px);
    color: #ffffff;
}

.popover-note-box {
    background: #fffdf5;
    border: 1px solid #fef3c7;
    border-radius: 8px;
    padding: 6px 9px;
}

.popover-note-edit {
    font-size: 0.75rem;
    color: #2563eb;
    text-decoration: none !important;
}
.popover-note-edit:hover {
    text-decoration: underline !important;
}

.popover-note-text {
    font-size: 0.79rem;
    color: #475569;
    font-style: italic;
    margin-top: 2px;
    max-height: 48px;
    overflow-y: auto;
}

/* 4. Listado de Acciones del Menú (Estilo exacto Imagen 2 con chevrons >) */
.popover-action-menu {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.popover-menu-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 8px;
    border-radius: 8px;
    text-decoration: none !important;
    transition: background-color 0.12s ease;
    cursor: pointer;
    color: inherit;
    border: none;
    background: transparent;
    width: 100%;
    text-align: left;
}

.popover-menu-row:hover {
    background-color: #f8fafc;
    text-decoration: none;
}

.popover-menu-left {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.84rem;
    color: #334155;
    font-weight: 500;
}

.popover-menu-icon {
    width: 18px;
    text-align: center;
    font-size: 0.95rem;
}

.popover-menu-title {
    font-size: 0.83rem;
    color: inherit;
}

.popover-menu-arrow {
    font-size: 0.72rem;
    color: #0d9488;
}

/* ==========================================================================
   POPOVER FLOTANTE DE CREACIÓN DE CITA (ESTILO CONTEXTUAL)
   ========================================================================== */

#crearCitaPopoverCard {
    position: fixed;
    z-index: 9999;
    width: 370px;
    max-width: calc(100vw - 24px);
    display: none;
    overflow: visible;
    animation: popoverScaleIn 0.18s cubic-bezier(0.165, 0.84, 0.44, 1);
    font-family: inherit;
    filter: drop-shadow(0 14px 34px rgba(0, 0, 0, 0.20));
}

.crear-popover-content-wrapper {
    background: #ffffff;
    border-radius: 18px;
    max-height: calc(100vh - 30px);
    overflow: visible;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.crear-popover-card-inner {
    padding: 16px 20px;
}

.crear-popover-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
}

.crear-popover-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.btn-crear-close {
    background: transparent;
    border: none;
    color: #94a3b8;
    font-size: 1.15rem;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    transition: color 0.15s ease;
}

.btn-crear-close:hover {
    color: #334155;
}

.crear-popover-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.crear-popover-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 38px;
    gap: 10px;
}

.crear-popover-label {
    width: 85px;
    flex-shrink: 0;
    font-size: 0.86rem;
    font-weight: 500;
    color: #334155;
    margin-bottom: 0;
}

.crear-popover-field {
    flex: 1;
    min-width: 0;
    position: relative;
}

.crear-popover-input-container {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.crear-popover-input {
    width: 100%;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    padding: 6px 34px 6px 12px;
    font-size: 0.85rem;
    color: #334155;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.crear-popover-input:focus {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15);
}

.crear-input-icon {
    position: absolute;
    right: 11px;
    color: #0891b2;
    font-size: 14px;
    pointer-events: none;
}

.crear-input-icon-caret {
    position: absolute;
    right: 12px;
    color: #0891b2;
    font-size: 11px;
    pointer-events: none;
}

.crear-popover-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #f1f5f9;
}

.btn-crear-cancelar {
    background: #f1f5f9;
    color: #475569;
    border: none;
    border-radius: 12px;
    font-size: 0.84rem;
    font-weight: 500;
    padding: 7px 18px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.btn-crear-cancelar:hover {
    background: #e2e8f0;
    color: #1e293b;
}

.btn-crear-submit {
    background: #0891b2;
    color: #ffffff;
    border: none;
    border-radius: 12px;
    font-size: 0.84rem;
    font-weight: 600;
    padding: 7px 24px;
    cursor: pointer;
    transition: all 0.15s ease;
    box-shadow: 0 2px 6px rgba(8, 145, 178, 0.25);
}

.btn-crear-submit:hover {
    background: #0e7490;
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(8, 145, 178, 0.35);
}

/* Select2 customization dentro del popover de creación */
.crear-popover-field .select2-container--krajee .select2-selection--single {
    height: 36px !important;
    border-radius: 10px !important;
    border: 1px solid #cbd5e1 !important;
    background-color: #ffffff !important;
    padding: 3px 12px !important;
    display: flex !important;
    align-items: center !important;
}

.crear-popover-field .select2-container--krajee .select2-selection--single .select2-selection__rendered {
    color: #334155 !important;
    font-size: 0.85rem !important;
    line-height: normal !important;
    padding-left: 0 !important;
}

.crear-popover-field .select2-container--krajee .select2-selection--single .select2-selection__arrow {
    height: 34px !important;
    right: 8px !important;
}

.crear-popover-field .select2-container--krajee .select2-selection--single .select2-selection__arrow b {
    border-color: #0891b2 transparent transparent transparent !important;
}

.crear-popover-field .select2-container--krajee.select2-container--open .select2-selection--single {
    border-color: #0891b2 !important;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15) !important;
}

#crearCitaPopoverCard .select2-dropdown {
    border-radius: 10px !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12) !important;
    overflow: hidden !important;
    z-index: 10050 !important;
}

/* Ancla visual para el horario seleccionado en FullCalendar */
.fc-active-slot-anchor {
    position: absolute;
    left: 2px;
    right: 2px;
    border: 2px dashed #0891b2;
    background: rgba(8, 145, 178, 0.15);
    border-radius: 6px;
    pointer-events: none;
    z-index: 5;
    transition: all 0.15s ease-out;
}

.fc-selected-slot-highlight {
    background-color: rgba(8, 145, 178, 0.18) !important;
    outline: 2px dashed #0891b2 !important;
    outline-offset: -2px !important;
}

/* ==========================================================================
   HEADER CREAR CITA Y POPUP LATERAL NUEVO PACIENTE
   ========================================================================== */

.crear-cita-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.28);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 10490;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease-in-out;
}

.crear-cita-backdrop.active {
    opacity: 1;
    pointer-events: auto;
}

.header-crear-cita-card {
    position: fixed;
    top: 68px;
    right: 60px;
    width: 400px;
    max-width: 95vw;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.2), 0 2px 10px rgba(0, 0, 0, 0.08);
    z-index: 10500;
    opacity: 0;
    transform: translateY(-22px) scale(0.97);
    pointer-events: none;
    transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.header-crear-cita-card.active {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.select2-container--open {
    z-index: 10600 !important;
}

.select2-container--open .select2-dropdown {
    border-radius: 10px !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12) !important;
    overflow: hidden !important;
    z-index: 10601 !important;
}

.lateral-nuevo-paciente-card {
    position: fixed;
    top: 68px;
    width: 380px;
    max-width: 95vw;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22), 0 2px 10px rgba(0, 0, 0, 0.08);
    z-index: 10502;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.lateral-nuevo-paciente-card.active {
    opacity: 1;
    pointer-events: auto;
}

.btn-nuevo-paciente-btn {
    width: 34px;
    height: 34px;
    padding: 0 !important;
    font-size: 0.88rem;
    font-weight: 600;
    border-radius: 10px !important;
    border: 1px solid #0891b2 !important;
    color: #0891b2 !important;
    background: #f0fdfa !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.btn-nuevo-paciente-btn:hover {
    background: #0891b2 !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(8, 145, 178, 0.25);
}

.lateral-paciente-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lateral-form-group {
    margin-bottom: 2px;
}

.lateral-form-label {
    font-size: 0.76rem;
    font-weight: 600;
    color: #475569;
    margin-bottom: 3px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.lateral-nuevo-paciente-card .crear-popover-input {
    height: 34px;
    padding: 5px 10px;
    font-size: 0.83rem;
}

.lateral-nuevo-paciente-card .crear-popover-input.is-invalid {
    border-color: #ef4444 !important;
    background-color: #fef2f2 !important;
}

.date-part-select {
    cursor: pointer;
    font-size: 0.84rem;
    color: #334155;
    background-color: #ffffff;
    height: 36px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lateral-nuevo-paciente-card .date-part-select {
    height: 34px;
    font-size: 0.82rem;
    padding: 4px 6px;
}

.date-combobox-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.date-part-input {
    width: 100%;
    cursor: text;
    font-size: 0.82rem;
    color: #334155;
    background-color: #ffffff;
    height: 34px;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
    padding: 4px 8px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.date-part-input:focus {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15);
    outline: none;
}

.date-part-select:focus {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15);
    outline: none;
}

.bootstrap-datetimepicker-widget,
.dropdown-menu.bootstrap-datetimepicker-widget.bottom,
.dropdown-menu.bootstrap-datetimepicker-widget.top {
    z-index: 10600 !important;
    border-radius: 12px !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
    background: #ffffff !important;
    padding: 8px 12px !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

.bootstrap-datetimepicker-widget .timepicker-picker table td {
    padding: 2px 4px !important;
}

.bootstrap-datetimepicker-widget .btn {
    padding: 4px 8px !important;
}

.bootstrap-datetimepicker-widget [data-action="togglePeriod"],
.bootstrap-datetimepicker-widget [data-action="togglePeriod"].disabled,
.bootstrap-datetimepicker-widget [data-action="togglePeriod"]:disabled {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    padding: 4px 10px !important;
    margin: 0 !important;
    border-radius: 8px !important;
    background: #0891b2 !important;
    color: #ffffff !important;
    border: none !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    line-height: 1.4 !important;
    box-shadow: 0 1px 3px rgba(8, 145, 178, 0.3) !important;
}

.bootstrap-datetimepicker-widget [data-action="togglePeriod"]:hover {
    background: #0e7490 !important;
    color: #ffffff !important;
}

.bootstrap-datetimepicker-widget table td.disabled,
.bootstrap-datetimepicker-widget table td.disabled:hover,
.bootstrap-datetimepicker-widget table td.hour.disabled,
.bootstrap-datetimepicker-widget table td.hour.disabled:hover,
.bootstrap-datetimepicker-widget table td.minute.disabled,
.bootstrap-datetimepicker-widget table td.minute.disabled:hover {
    opacity: 0.28 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    background: transparent !important;
    color: #94a3b8 !important;
    text-decoration: line-through !important;
}

.btn-time-step {
    width: 32px !important;
    height: 36px !important;
    padding: 0 !important;
    font-size: 0.75rem !important;
    border-radius: 10px !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    background: #f8fafc !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: all 0.15s ease !important;
}

.btn-time-step:hover {
    background: #e2e8f0 !important;
    color: #0891b2 !important;
    border-color: #0891b2 !important;
}

#rowHeaderCrearHora .crear-input-icon {
    pointer-events: auto !important;
    cursor: pointer !important;
}

.bootstrap-datetimepicker-widget.open,
.bootstrap-datetimepicker-widget[style*="display: block"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

@media (max-width: 768px) {
    .header-crear-cita-card {
        top: 60px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
    }

    .lateral-nuevo-paciente-card {
        top: 65px !important;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
    }
}