﻿/*_________________________________________________________________________________*/
/*  TABLAS  */
/*_________________________________________________________________________________*/
.table {
    font-size: 0.8rem;
}

.table-md th {
    padding: .5rem .6rem !important;
    vertical-align: middle !important;
}

.table-md tr, .table-md td {
    padding: .3rem 0.6rem !important;
    vertical-align: middle !important;
}

.thead-resaltado, .thead-resaltado tr, .table .thead-resaltado > :not(caption) > * > * {
    background: var(--color-primary);
    color: #fff;
}

.thead-resaltado--th-none {
    background: white !important;
    border: none !important;
}

.thead-color-primario {
    color: var(--color-primary);
}

.thead-gris {
    background: var(--color-gray-2);
    color: #454545;
}


.tabla-info {
    font-size: 0.8rem;
    color: #484848;
    background-color: #f9f9f9;
    border-color: #dddddd;
}

    .tabla-info td {
        padding: 3px 10px;
    }

    .tabla-info thead {
        background: #f3f3f3;
    }

.header-detalle-tabla {
    display: flex;
    justify-content: space-between;
    margin-bottom: 18px;
    border-bottom: 1px solid #a9d0e9;
    color: hsl(203 41% 60% / 1);
}

.tabla-movil {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

    .tabla-movil tr {
        display: table-row;
        width: 100%;
    }

    .tabla-movil th, .tabla-movil td {
        width: 100%;
        box-sizing: border-box;
        padding: .7rem 1rem;
    }

    .tabla-movil > tbody > tr > td {
        min-width: 180px;
    }


.tabla-base {
}

    .tabla-base tr {
        width: 100%;
    }

    .tabla-base th {
        padding: .7rem 1rem;
    }


    .tabla-base:first-of-type th {
        border-left: 3px solid #3D8BFD;
    }


    .tabla-base:nth-of-type(2) th {
        border-left: 1px solid #DDDDDD;
        padding-left: 1rem;
    }


    .tabla-base td {
        border-right: none;
        width: inherit;
    }

    .tabla-base th, .table-info td {
        font-size: 12px;
        width: fit-content;
    }

.titulo-tabla {
    background: #F7F7F7;
    border-left: 3px solid #3D8BFD;
    color: #343A40;
    font-size: 14px;
    font-weight: 600;
    line-height: 17px;
    padding: .8rem 1rem;
}


.titulo-tabla--gris {
    background: #F7F7F7;
    border-top: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
}



.separador-tr {
    border-bottom: 3px solid var(--color-bgl-muni);
}

    .separador-tr:last-of-type {
        border-bottom: 3px solid var(--color-bgl-muni);
    }

.separador-div {
    height: 2px;
    background-color: #000;
    margin: 10px 0;
}

@media (max-width: 920px) {
    .table {
        font-size: 14px;
    }
}
/*AJUSTES PANTALLA ESCRITORIO*/
@media screen and (min-width: 641px) {

    .table > :not(:last-child) > :last-child > * {
        border-bottom-color: #dddddd;
    }

    .table {
        font-size: 14px;
        margin-bottom: 0px;
    }
}


/*_________________________________________________________________________________*/
/*  CARGANDO  */
/*_________________________________________________________________________________*/
/*
 * Baseline styles
 */
.loading-body {
    background: #d4eafd;
    text-align: center;
    margin-top: 5%;
    margin-bottom: 5%;
    padding-top: 20%;
    padding-bottom: 20%;
}

    .loading-body h2 {
        color: blue;
        margin: 0;
        font: 1em verdana;
        text-transform: uppercase;
        letter-spacing: .5em;
        height: 100%;
        font-weight: bold;
    }

/*
 * Loading Dots
 * Can we use pseudo elements here instead :after?
 */
.loading span {
    display: inline-block;
    vertical-align: middle;
    width: .6em;
    height: .6em;
    margin: .19em;
    background: #007DB6;
    border-radius: .6em;
    animation: loading 1s infinite alternate;
}

    /*
 * Dots Colors
 * Smarter targeting vs nth-of-type?
 */
    .loading span:nth-of-type(2) {
        background: #008FB2;
        animation-delay: 0.2s;
    }

    .loading span:nth-of-type(3) {
        background: #009B9E;
        animation-delay: 0.4s;
    }

    .loading span:nth-of-type(4) {
        background: #00A77D;
        animation-delay: 0.6s;
    }

    .loading span:nth-of-type(5) {
        background: #00B247;
        animation-delay: 0.8s;
    }

    .loading span:nth-of-type(6) {
        background: #5AB027;
        animation-delay: 1.0s;
    }

    .loading span:nth-of-type(7) {
        background: #A0B61E;
        animation-delay: 1.2s;
    }

/*
 * Animation keyframes
 * Use transition opacity instead of keyframes?
 */
@keyframes loading {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


@keyframes movimiento {
    0% {
        transform: translateX(-25%);
    }

    100% {
        transform: translateX(25%);
    }
}

.cargando-inicial {
    height: 100%;
    width: 100%;
    margin: 0;
    position: fixed;
}

.cargando__slide {
    animation: movimiento 3s ease-in-out infinite alternate;
    background-image: linear-gradient(-60deg,var(--color-primary) 50%,var(--color-primary-l1) 50%);
    bottom: 0;
    left: -50%;
    opacity: .5;
    position: fixed;
    right: -50%;
    top: 0;
    z-index: -1
}

.cargando__slide--reverse {
    animation-direction: alternate-reverse;
    animation-duration: 4s;
}

.cargando__slide--longer {
    animation-duration: 5s;
}

.cargando__contenido {
    left: 50%;
    position: fixed;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
}


.loading-progress {
    position: relative;
    display: block;
    width: 13rem;
    height: 13rem;
    -webkit-filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.4));
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.4));
}

    .loading-progress circle {
        fill: none;
        stroke: rgb(255 255 255 / 30%);
        stroke-width: 0.4rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
        -webkit-clip-path: circle(50% at 50% 50%);
        clip-path: circle(50% at 50% 50%);
    }

        .loading-progress circle:last-child {
            stroke: #ffffff;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    inset: 5.666rem 0 auto 0.2rem;
    font-size: 1.5rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Cargando");
    }

/*_________________________________________________________________________________*/
/*  ACCORDION  */
/*_________________________________________________________________________________*/

/* Quitar imagen de fondo cuando el botón tiene aria-expanded="true" y la clase pagodeshabilitado */
.accordion.pagodeshabilitado .accordion-button[aria-expanded="true"]::after {
    background-image: none !important;
}

/* Cursor por defecto cuando el botón tiene aria-expanded="true" y la clase pagodeshabilitado */
.accordion.pagodeshabilitado .accordion-button[aria-expanded="true"] {
    cursor: default !important;
}

/*ACCORDION PRIMARY*/
.accordion-primary > .accordion-item:first-of-type,
.accordion-primary > .accordion-item:first-of-type > .accordion-header > .accordion-button {
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
}

.accordion-primary > .accordion-item:last-of-type,
.accordion-primary > .accordion-item:last-of-type > .accordion-header > .accordion-button.collapsed {
    border-bottom-right-radius: 20px;
    border-bottom-left-radius: 20px;
}

.accordion-primary > .accordion-item > .accordion-header > .accordion-button:not(.collapsed) {
    border-bottom: 2px solid var(--color-primary);
}

.accordion-primary > .accordion-item > .accordion-collapse > .accordion-body {
    padding: 1rem;
}

/*ACCORDION INTERIOR*/
.accordion-interior + .accordion-interior {
    margin-top: .6rem;
}

.accordion-primary .accordion-interior > .accordion-item {
    border: none;
}

    .accordion-primary .accordion-interior > .accordion-item:first-of-type,
    .accordion-primary .accordion-interior > .accordion-item:first-of-type .accordion-button {
        border-top-left-radius: 10px;
        border-top-right-radius: 10px;
    }

    .accordion-primary .accordion-interior > .accordion-item:last-of-type {
        border-bottom-right-radius: 10px;
        border-bottom-left-radius: 10px;
    }

        .accordion-primary .accordion-interior > .accordion-item:last-of-type .accordion-button.collapsed {
            border-bottom-right-radius: 0px;
            border-bottom-left-radius: 0px;
        }



    .accordion-primary .accordion-interior > .accordion-item > .accordion-collapse > .accordion-body {
        padding: 0rem;
        border: 1px solid #DDDDDD;
    }

    .accordion-primary .accordion-interior > .accordion-item .accordion-button {
        padding: 1rem .5rem !important
    }

    .accordion-primary .accordion-interior > .accordion-item .accordion-header {
        margin-bottom: .2rem;
    }

    .accordion-primary .accordion-interior > .accordion-item .accordion-body {
        border-radius: 5px;
    }


.accordion-interior .accordion-button:not(.collapsed) {
    border: 1px solid #3D8BFD;
}

    .accordion-interior .accordion-button:not(.collapsed)::after {
        filter: invert(50%) sepia(84%) saturate(2834%) hue-rotate(185deg) brightness(95%) contrast(101%);
    }


.table-accordion-colapsado {
    background: #F7F7F7;
    border: 1px solid #ddd;
    border-top: 0;
    padding: 12px 10px;
    border-radius: 0px 0px 5px 5px;
    margin-top: -4px;
}


.accordion-item.disabled {
    opacity: .5;
}

/*ACCORDION CARD PAGO*/

.card-item-pago {
    display: flex;
    flex-direction: column;
    border-radius: 0.75rem;
    border: 1px solid rgb(229, 231, 235);
    width: 100%;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    transition: all 0.2s ease-in-out;
}

    .card-item-pago:hover {
        box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    }


.card-item-pago--success {
    border-left: 4px solid #22c55e;
}

.card-item-pago--error {
    border-left: 4px solid #ba1a1a;
}

.giro-item-card {
    border-top-left-radius: 20px !important;
    border-top-right-radius: 20px !important;
    border-bottom-left-radius: inherit !important;
    border-bottom-right-radius: inherit !important;
    /* Quitar borde y sombra por defecto */
    border: none !important;
    box-shadow: none !important;
    outline: none !important;

}

    .giro-item-card:focus,
    .giro-item-card:focus-visible,
    .giro-item-card:focus-within,
    .giro-item-card:active {
        border: none !important;
        box-shadow: none !important;
        outline: none !important;
    }
.accordion-primary .accordion-interior > .accordion-item .accordion-button.giro-item-card {
    padding-right: 1rem !important;
    padding-bottom: 0rem !important;
}


/*--------------------------------
NAVMENU
--------------------------------*/

.nav-menu-app {
    color: var(--color-gray-7);
    margin-top: 1.1rem;
    margin-bottom: 1.5rem;
}

    .nav-menu-app > .nav-item > a.nav-link {
        color: var(--color-gray-7);
        padding: .8rem 1.5rem;
        margin: .5rem 0;
        border-radius: 0px;
    }

.navbar-toggler {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand {
    font-size: 1.1rem;
}



.nav-item {
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
}

    .nav-item > a.nav-link:hover {
        background: var(--color-primary-l95);
    }

    .nav-item > a.nav-link.active {
        color: white;
        background: var(--color-primary);
    }

    /*|TO-DO|*/
    .nav-item ::deep a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

        .nav-item ::deep a.active {
            color: white;
            background: var(--color-primary);
        }

        .nav-item ::deep a:hover {
            background-color: rgba(255,255,255,0.1);
            color: white;
        }

    .nav-item > a.nav-link {
        padding: .2rem .5rem;
        margin: .5rem;
        border-radius: 3px;
    }




@media (min-width: 641px) {

    .navbar-toggler {
        display: none;
    }

    .collapse {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }
}

/*--------------------------------
BOTONES
--------------------------------*/
.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.btn-link:focus {
    box-shadow: none !important;
}

.btn-info-link {
    background: transparent;
    border: none;
    outline: none;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 17px;
    margin-top: 2px;
    color: #3D8BFD;
}

.btn-eliminar-txt {
    color: #DC3545;
    font-size: 12px;
    font-weight: 600;
    line-height: 15px;
    width: 100%;
    border: none;
    outline: none;
    padding: 1rem;
    background: transparent;
}
/*--------------------------------
RADIO
--------------------------------*/
.custom-radio {
    display: inline-block;
    position: relative;
    padding-left: 26px;
    margin-bottom: 12px;
    cursor: pointer;
    font-size: 16px;
    user-select: none;
}

.custom-radio-input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.custom-radio-label {
    font-weight: 500;
}

    .custom-radio-label:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        height: 22px;
        width: 22px;
        background-color: #fff;
        border: 1px solid #ccc;
        border-radius: 50%;
        transition: all 0.3s ease;
    }

.custom-radio-input:checked + .custom-radio-label:before {
    border-color: #3D8BFD;
    background-color: #fff;
}

.custom-radio-input:checked + .custom-radio-label:after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #3D8BFD;
    transition: all 0.2s ease;
}

.custom-radio-input:hover + .custom-radio-label:before {
    border-color: #3D8BFD;
}


.radio-look {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    border: 2px solid #ccc !important;
    border-radius: 50% !important;
    position: relative !important;
    cursor: pointer !important;
    outline: none !important;
}

    .radio-look:checked {
        border-color: #007bff !important;
    }

        .radio-look:checked::before {
            content: '' !important;
            display: block !important;
            width: 12px !important;
            height: 12px !important;
            background: #007bff !important;
            border-radius: 50% !important;
            position: absolute !important;
            top: 50% !important;
            left: 50% !important;
            transform: translate(-50%, -50%) !important;
        }

    .radio-look:focus {
        box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25) !important;
    }

/*--------------------------------
CHECKBOX
--------------------------------*/

.checkbox-custom {
    -webkit-appearance: none;
    appearance: none;
    background-color: white !important;
    margin: 0;
    font: inherit;
    color: currentColor;
    width: 1.2rem;
    height: 1.2rem;
    border: 0.15em solid currentColor;
    border-radius: 0.15em !important;
    transform: translateY(-0.075em);
    display: grid;
    place-content: center;
    align-items: center;
    align-content: center;
    font-size: 1.1rem;
    margin-top: 1px;
}

    .checkbox-custom::before {
        content: "";
        width: 0.65em;
        height: 0.65em;
        clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
        transform: scale(0);
        transform-origin: bottom left;
        transition: 120ms transform ease-in-out;
        background-color: CanvasText; /* color del sistema para texto en canvas */
        background-color: black; /* valor de respaldo si CanvasText no es soportado */
    }

    .checkbox-custom:checked::before {
        transform: scale(1);
    }

.accordion-t-button{
    padding: 0rem !important;
}

/*--------------------------------
CARD
--------------------------------*/
.card-info-primario {
    background: var(--color-primary-claro);
    border-radius: 10px !important;
    padding: 0.4rem 0.5rem 0rem 0.5rem;
}


    .card-info-primario .card-body {
        margin-top: 0rem;
        padding-top: 0.3rem;
    }

.card.card-linea.card-login.shadow {
    border: 0;
}

.header-card-form {
    font-weight: 600;
    font-size: 14px;
    line-height: 17px;
}

/*--------------------------------
CONTENEDORES
--------------------------------*/

.w-base__header {
    color: #343A40;
    font-size: 14px;
    font-weight: 600;
    line-height: 17px;
    background: #F7F7F7;
    padding: .8rem 1rem;
    border: 1px solid #DDDDDD;
    border-radius: 5px;
    text-align: center;
    margin-bottom: 5px;
}

.w-base__body__item {
    border-right: 1px solid #DDDDDD;
    border-left: 1px solid #DDDDDD;
    border-radius: 5px;
}

    .w-base__body__item table {
        margin-bottom: 5px;
        font-size: 12px;
    }

        .w-base__body__item table th {
            padding-top: .8rem;
            padding-bottom: .8rem;
            padding-left: 1rem;
        }

/*info muni*/
.wrapper-info-muni {
    display: flex !important;
    justify-content: center;
    gap: .5rem;
}


/*detalle*/
.contenedor-detalle {
    border-radius: 5px;
    border: 1px solid #DDDDDD;
}

.contenedor-detalle--resaltado {
    border: 1px solid var(--color-gray-8);
}

.contenedor-detalle__header {
    text-align: center;
    background: #f7f7f7;
    font-size: 14px;
    font-weight: 600;
    line-height: 17px;
    padding: .7rem;
    border-radius: 5px 5px 0px 0px;
    border-bottom: 1px solid #DDDDDD;
}

.contenedor-detalle__body {
}

    .contenedor-detalle__body > div {
        display: flex;
        justify-content: space-between;
        padding: 1rem .5rem;
        align-items: center;
        border-bottom: 1px solid #DDDDDD;
    }

        .contenedor-detalle__body > div:last-of-type {
            border-bottom: none;
        }



.btn-input-derecha {
    float: right;
    margin-top: -34px;
    margin-right: 4px;
    border: 0;
    width: 28px;
    height: 27px;
    border-radius: 50%;
    color: #a1a1a1;
    background: #f1f1f1;
    font-size: 12px;
}

.btn-input-derecha--x {
    background: #ffffff;
}

.input-con-botones {
    padding-right: 36px !important;
}

/*--------------------------------
responsive general
--------------------------------*/
@media (max-width: 641px) {
    .nav-item > a.nav-link {
        padding: 1rem 1.5rem;
        margin: .5rem 0;
        font-size: 14px;
        border-radius: 0;
    }

    .modal-dialog {
        display: flex;
        align-items: center;
        min-height: calc(100% - 15rem);
    }
}

@media screen and (min-width: 641px) {
    .btn-min-width {
        min-width: 11rem;
    }

    .card-info-primario .card-header {
        background: transparent;
    }

    .texto-menor {
        font-size: 14px;
    }

    .btn-eliminar-txt {
        padding: .3rem;
    }
}
