/*SFTI*/
/*Esquema de colores para SFTI Pro*/
@import url('https://fonts.googleapis.com/css?family=Nunito:300,400,600,700,800');

:root {
    --color-one: #010b02;
    --color-two: #59185E;
    --color-three: #c133cd;
    --color-table-caption: #4e0b5b;
    --color-table-th: #aa1ac7;
    --color-table-border: #010b02;
}

body {
    font-family: 'Nunito', sans-serif;
    font-size: clamp(12px, 1.5vw, 14px) !important;
    font-weight: 400 !important;
    background-color: #ecf0f1 !important;
    overflow-x: hidden;
}

body > header {
    height: 48px !important;
    background-image: linear-gradient(90deg, var(--color-one), var(--color-one), var(--color-two), var(--color-three));
}

body > header nav a,
body > header nav a:not(.button):hover,
body > header nav a:not(.button):active {
    color: #ffffff;
}

body > section > article {
    transition: all 300ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
}

body > section > article {
    padding-left: 80px;
}

#id_menu_mobile_toggle {
    font-size: 1.5em;
    height: 48px;
    width: 48px;
    text-align: center;
    line-height: 48px;
}

#id_menu {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    width: 80px;
    height: 100dvh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    color: white;
    overflow: hidden;
    background-image: linear-gradient(180deg, var(--color-one), var(--color-one), var(--color-two), var(--color-three));
    box-shadow: 3px 0 6px rgba(0, 0, 0, .6);
    transition: all 300ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
}

#id_menu header {
    width: 100%;
    height: auto !important;
    padding: 10px 5px;
}

#id_menu article {
    overflow-y: scroll;
}

#id_menu footer {
    display: none;
    width: 100%;
    min-height: 10vh;
    height: auto;
    box-shadow: 0 -3px 12px 0 rgba(0, 0, 0, 0.3);
}

#id_menu header .menu_logo {
    width: 70px;
    height: 70px;
    object-fit: cover;
    object-position: left;
}

#id_menu article::-webkit-scrollbar {
    display: none;
}

#id_menu article .menu-items {
    list-style: none;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 5px;
    align-items: start;
    padding-left: 10px;
}

#id_menu article .menu-items li {
    width: 230px;
    transition: .25s all;
    box-shadow: none;
    padding: 0;
}

#id_menu article .menu-items li:last-child {
    border-bottom: none;
}

#id_menu article .menu-items li label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 5px;
    padding: 10px;
    font-size: 1em;
    line-height: 1em;
}

#id_menu article .menu-items > li label .menu_icono {
    height: 32px;
}

#id_menu article .menu-items > li label span {
    opacity: 0;
}

#id_menu article .menu-items > li:hover {
    background-color: rgba(255, 255, 255, .5);
    border-radius: 5px;
    color: #1a1a1a;
}

#id_menu article .menu-items > li:has(input:checked) {
    background-color: rgba(255, 255, 255, .5);
    border-radius: 5px 5px 0 0;
    color: #1a1a1a;
    padding-bottom: 0;
}

#id_menu article .menu-items li ul {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: start;
    padding-left: 10px;
}

#id_menu article .menu-items > li ul li {
    width: 220px;
}

#id_menu article .menu-items > li ul li:has(a) {
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

#id_menu article .menu-items > li ul li ul li {
    width: 210px;
}

#id_menu article .menu-items > li ul li ul li:has(a) {
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

#id_menu article .menu-items a {
    padding: 10px 5px;
    border-left: 8px solid rgba(255, 255, 255, 0);
}

#id_menu article .menu-items a:hover {
    box-shadow: none;
    border-left: 8px solid rgba(255, 255, 255, .5);
}

#id_menu footer .menu_empresa {
    max-width: 100%;
    flex: auto;
    align-content: center;
    text-align: center;
    font-size: .9em;
}

#id_menu footer > ul {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    margin: 10px 0;
    list-style: none;
}

#id_menu footer > ul li a {
    color: white;
}

#id_menu footer > ul li a .fa-inverse {
    color: #010B02;
}

#id_menu.menu-open {
    width: 250px;
}

#id_menu.menu-open header .menu_logo {
    width: inherit;
}

#id_menu.menu-open article .menu-items > li label span {
    opacity: 1;
}

#id_menu.menu-open footer {
    width: 250px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

#id_menu footer .fa-stack-2x {
    font-size: 1em !important;
}

.bck.color-one {
    background-color: var(--color-one);
}

.bck.color-two {
    background-color: var(--color-two);
}

.bck.color-four {
    background-color: var(--color-table-caption);
}

.bck.color-three {
    background-color: var(--color-three);
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
    accent-color: var(--color-three)
}

.button:not(.transparent):not(:disabled).error {
    background-color: #ff6100;
}

.button:not(.transparent):not(:disabled).warning {
    background-color: #ff1493;
}

.button:not(.transparent):not(:disabled).success {
    background-color: #1e90ff;
}

.button:not(.transparent):not(:disabled).info {
    background-color: #c133cd;
}

table {
    border: 1px solid var(--color-one);
}

table caption,
table th {
    color: white;
}

table caption {
    background-color: var(--color-table-caption);
    border-left: 1px solid var(--color-table-border);
    border-top: 1px solid var(--color-table-border);
    border-right: 1px solid var(--color-table-border);
}

table th {
    background-color: var(--color-table-th);
    border-right: 1px solid var(--color-table-border);
}

table td {
    border-right: 1px solid var(--color-table-border);
}

table tr {
    border-bottom: 1px solid var(--color-table-border);
}

[data-tuktuk="lock"] {
    z-index: 9;
}

[data-tuktuk="lock"].active:not([data-active=true]) {
    background-color: rgba(255, 255, 255, 1);
}

[data-tuktuk="lock"] > .loading {
    background-image: url('https://insodev-estaticos.s3.amazonaws.com/logos/sfti/isotipo-negro.svg');
    width: 96px;
    height: 96px;
    margin-left: -48px;
    margin-top: -48px;
    background-color: transparent;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 0;
    animation: loading-animation 2s infinite linear;
}

#id_menu_usuario {
    position: absolute;
    bottom: 50px;
    left: 8px;
    z-index: 2;
}

#id_menu_usuario > div.menu-usuario-arrow {
    width: 0;
    height: 0;
    border-top: 5px solid #0097da;
    border-right: 10px solid #0097da;
    border-left: 10px solid transparent;
    border-bottom: 5px solid transparent;
    position: absolute;
    bottom: -7px;
    right: 0;
}

#id_menu_usuario ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#id_menu_usuario ul li {
    padding: 5px 10px;
    margin: 0;
}

#id_menu_usuario ul li:hover {
    background-color: rgba(255, 255, 255, .5);
    border-radius: 15px;
    color: #1a1a1a;
}

#id_menu_usuario ul li a {
    width: 100%;
    display: inline-block;
}

#id_modal_preview {
    width: 95% !important;
    margin-left: 0 !important;
    left: 2.5% !important;
    height: 80% !important;
    z-index: 10;
}

.proceso_firma {
    width: 100%;
    list-style: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-evenly;
}

ul.horizontal.filtro label {
    font-weight: bold !important;
    display: block;
}

.django-file-field-wrapper {
    padding: 0.5em;
    width: 100%;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    color: #555555;
    border-radius: 0.2rem;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

fieldset p .django-file-field-wrapper {
    width: 75%;
}

.django-file-field-wrapper label {
    width: 100% !important;
    text-align: left;
}

.django-file-field-wrapper strong {
    display: inline-block;
    width: 20%;
    text-align: right;
    margin-right: 5px;
    flex: none;
}

.django-file-field-wrapper .helptext {
    margin-left: calc(20% + 8px) !important;
    width: calc(80% - 8px) !important;
}

@-moz-keyframes loading-animation {
    0% {
        -moz-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -moz-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-webkit-keyframes loading-animation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-o-keyframes loading-animation {
    0% {
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -o-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@-ms-keyframes loading-animation {
    0% {
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -ms-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

@keyframes loading-animation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

/*--------------------*/

/*TinyUpload*/
.tiny-upload {
    border-color: #cccccc !important;
}

.tiny-upload .tiny-upload-text {
    background-color: #0097da !important;
    color: #ffffff !important;
}

/*--------------------*/

/*FontAwesome*/
.fa-xl {
    font-size: 2em !important;
}

.fa-2xl {
    font-size: 4em !important;
}

/*--------------------*/

/*Awesome Notifications*/
#awn-toast-container .awn-toast-wrapper .awn-toast-content {
    margin-top: 5px !important;
}

#awn-toast-container .awn-toast-wrapper .awn-toast-icon .fa-fw {
    font-size: 2.5em !important;
}

#awn-popup-wrapper .awn-popup-body .fa-fw {
    font-size: 4em !important;
    color: #f7941d !important;
}

#awn-popup-wrapper .awn-popup-body {
    background: rgba(255, 255, 255, 0.9);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    backdrop-filter: blur(18px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.125);
    border-radius: 8px;
}

#awn-popup-wrapper .awn-popup-body .awn-popup-title {
    font-size: 1.5em !important;
}

#awn-popup-wrapper .awn-popup-body .awn-popup-content {
    padding: 1em !important;
    font-size: 1.2em !important;
}

#awn-popup-wrapper .awn-popup-body.awn-popup-confirm .awn-buttons .awn-btn {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    -webkit-box-shadow: inset 0 .1em 0 rgba(255, 255, 255, 0.1), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    -moz-box-shadow: inset 0 .1em 0 rgba(255, 255, 255, 0.1), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    -o-box-shadow: inset 0 .1em 0 rgba(255, 255, 255, 0.1), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 .1em 0 rgba(255, 255, 255, 0.1), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    -webkit-font-smoothing: antialiased;
}

#awn-popup-wrapper .awn-popup-body.awn-popup-confirm .awn-buttons .awn-btn:hover {
    -webkit-box-shadow: inset 0 0 5em rgba(0, 0, 0, 0.15), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    -moz-box-shadow: inset 0 0 5em rgba(0, 0, 0, 0.15), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    -o-box-shadow: inset 0 0 5em rgba(0, 0, 0, 0.15), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 0 5em rgba(0, 0, 0, 0.15), inset 0 -.15em 0 rgba(0, 0, 0, 0.2), 0 .15em 0 rgba(0, 0, 0, 0.075)
}

#awn-popup-wrapper .awn-popup-body.awn-popup-confirm .awn-buttons .awn-btn.awn-btn-success {
    background-color: #8dc63f !important;
    color: #ffffff !important;
}

#awn-popup-wrapper .awn-popup-body.awn-popup-confirm .awn-buttons .awn-btn.awn-btn-cancel {
    background-color: #cc4141 !important;
    color: #ffffff !important;
}

/*--------------------*/

/*Select2*/
form .select2 {
    width: 100% !important;
    max-width: 100% !important;
}

.hideSearch .select2-search,
.hideSearch .select2-results,
.hideSearch .select2-dropdown {
    display: none;
}

.select2-hidden-accessible {
    flex: 0;
    left: calc(25% + 1em);
    top: calc(1lh + 1em);
}

.select2-selection {
    max-width: 100%;
    font-size: 1em !important;
    min-height: 2.5em !important;
}

.select2-selection__rendered {
    padding-top: 3px !important;
}

.select2-container--bootstrap .select2-dropdown {
    margin-top: 10px !important;
}

.select2-container--bootstrap .select2-results__group {
    font-size: 1.2em;
    color: #333333;
    background-color: #f4f4f4;
    padding: 6px 6px;
}

.select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field {
    -webkit-box-shadow: none;
    box-shadow: none;
}

form fieldset .select2 {
    width: calc(75% - 0.5em) !important;
    max-width: calc(75% - 0.5em) !important;
}

table tr td .select2 {
    width: 100% !important;
}

/*--------------------*/

/*Highcharts*/
.highcharts-container {
    display: inline-block;
}

.highcharts-credits {
    display: none;
}

.chart {
    width: 95%;
    background-color: #ffffff;
    margin: 0 auto;
    min-height: 400px;
}

/*--------------------*/

/*DrawFlow*/
.drawflow-container {
    display: block;
    position: relative;
    width: 100%;
    height: 600px;
    min-height: 500px;
    background-color: #ffffff;
    outline: 1px solid #cccccc;
    overflow: hidden;
    resize: vertical;
}

.drawflow-panel {
    position: sticky;
    top: 5px;
    left: 5px;
    width: 50px;
    padding: 5px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    background-color: #ecf0f1;
    z-index: 1;
    border: 1px solid #9a9a9a;
    box-shadow: 1px 1px 3px #d3d3d3;
    -webkit-box-shadow: 1px 1px 3px #d3d3d3;
}

.drawflow {
    position: absolute;
    cursor: move;
}

.drawflow .drawflow-node {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    background-color: #ffffff;
    color: #3c3c3c;
    border: 1px solid #9a9a9a;
    border-radius: 0;
    width: 100px;
    height: 100px;
    padding-top: 15px;
    padding-bottom: 15px;
}

.drawflow .drawflow-node:hover {
    background: #6a6a6a;
    color: #3c3c3c;
    border: 1px solid #6a6a6a;
    -webkit-box-shadow: 1px 1px 3px 2px #d3d3d3;
    box-shadow: 1px 1px 3px 2px #d3d3d3;
}

.drawflow .drawflow-node.selected {
    background: #6a6a6a;
    color: #3c3c3c;
    border: 1px solid #6a6a6a;
    -webkit-box-shadow: 1px 1px 3px 2px #d3d3d3;
    box-shadow: 1px 1px 3px 2px #d3d3d3;
}

.drawflow .drawflow-node .input,
.drawflow .drawflow-node .output {
    border: 1px solid #9a9a9a;
    height: 15px;
    width: 15px;
}

.drawflow .drawflow-node .input {
    left: 75px;
    background: #0097dadd;
    border-color: #0097da;
}

.drawflow .drawflow-node .output {
    right: 90px;
    background: #8dc63fdd;
    border-color: #8dc63f;
}

.drawflow .connection .main-path {
    stroke-width: 3px;
    stroke: #9a9a9a;
}

.drawflow .connection .main-path:hover {
    stroke: #6a6a6a;
}

.drawflow .connection .main-path.selected {
    stroke: #6a6a6a;
}

.drawflow .connection .point {
    stroke: #9a9a9a;
    stroke-width: 1px;
    fill: #ffffff;
}

.drawflow .drawflow-delete {
    display: block;
    color: #6c6c6c;
    background: #d3d3d3;
    border: 1px solid #9a9a9a;
    border-radius: 50%;
}

.drawflow .drawflow-delete:hover {
    color: #cc4141;
    border: 1px solid #cc4141;
}

.drawflow .drawflow-node.circle_start,
.drawflow .drawflow-node.circle,
.drawflow .drawflow-node.circle_end {
    border-radius: 50%;
}

.drawflow .drawflow-node.circle_start {
    background-color: #cdf2ca;
}

.drawflow .drawflow-node.circle {
    background-color: #a1cae2;
}

.drawflow .drawflow-node.circle_end {
    background-color: #f5c0c0;
}

.drawflow .drawflow-node.square {
    background-color: #a1cae2;
}

.drawflow .drawflow-node .drawflow-content {
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    gap: 5px;
}

.drawflow .drawflow-node .drawflow-content-index {
    font-size: 1.3rem;
    font-weight: bold;
}

.drawflow .drawflow-node .drawflow-content-type {
    width: 100%;
    font-size: .6rem;
    font-style: italic;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/*--------------------*/

/*DataTable*/
.dataTables_filter input,
.dataTables_length select {
    width: auto !important;
    margin-bottom: 5px;
}

.dataTables_length select {
    display: inline !important;
}

/*Nueva versión de DataTable*/
.dt-length label,
.dt-search {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dt-length label,
.dt-search label {
    font-weight: normal;
}

.dt-length select,
.dt-search input {
    width: auto !important;
}

.dt-processing {
    display: none !important;
}

/*--------------------*/

/* Responsive Tabs */
.resp-tab-active {
    background-color: #59185ecc !important;
    color: #ffffff !important;
    border: 1px solid var(--color-two) !important;
    border-top: 1px solid var(--color-two) !important;
}

.resp-vtabs .resp-tab-active {
    background-color: #59185ecc !important;
    border: 1px solid var(--color-two) !important;
}

/*--------------------*/

/*Noty*/
#noty_layout__center {
    width: auto !important;
}

#noty_layout__topRight {
    top: 65px;
}

/*--------------------*/

.redactor_box {
    max-width: 100% !important;
    float: none;
}

.redactor_toolbar {
    z-index: 1 !important;
}

.button .fa {
    line-height: inherit !important;
}

.flotante {
    position: fixed;
    bottom: 0;
    left: 0;
    padding: .5em .8em;
    background-color: rgba(0, 0, 0, .5);
    color: #fff;
    z-index: 8;
}

.button-file-group {
    display: inline-block;
}

.button-file {
    position: relative;
    cursor: pointer;
    margin-top: .2em;
}

.button-file input[type=file] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: alpha(opacity=0);
    opacity: 0;
}


/*--------------------*/

/*Media Queries*/
@media only screen and (width <= 1200px) {
    body > header {
        display: flex !important;
        position: sticky;
        top: 0;
        z-index: 1;
    }

    body > section > article {
        padding-left: 0;
    }

    #id_menu {
        width: 0;
    }
}

@media only screen and (width <= 960px) {

}

/*Tablet*/
@media only screen and (width <= 768px) {
    #noty_layout__center {
        width: 90% !important;
    }
}

/*Smartphone*/
@media only screen and (width <= 480px) {
    form fieldset .select2 {
        width: 100% !important;
        max-width: calc(100dvw - 2.5em) !important;
    }
}

/*--------------------*/