/* @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@100..900&display=swap'); */
@import url('https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap');

:root {
    --mc-dark-primary: #141b23;
    --mc-dark-secondary: #1b232d;
    --mc-dark-contrast: #cfcde4;
    --mc-placeholder: #cfcde48c;
    --mc-actions: #0697b8;
    --mc-actions-contrast: #18E591;
}
#141b23bf

::placeholder {
    color: var(--mc-placeholder);
    opacity: 1;
}

::-webkit-input-placeholder {
    color: var(--mc-placeholder);
}

:-moz-placeholder {
    color: var(--mc-placeholder);
    opacity: 1;
}

::-moz-placeholder {
    color: var(--mc-placeholder);
    opacity: 1;
}

:-ms-input-placeholder {
    color: var(--mc-placeholder);
}

::-ms-input-placeholder {
    color: var(--mc-placeholder);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    background: var(--mc-dark-primary);
    /* font-family: "Montserrat", sans-serif; */
    font-family: "Poppins", sans-serif;
    font-size: 13px;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
    color: #fff;
}

h2 {
    margin-bottom: 10px;
    font-size: 18px;
}

a {
    color: var(--mc-actions);
}

.material-symbols-rounded {
    font-variation-settings:
        'FILL' 0,
        'wght' 400,
        'GRAD' 0,
        'opsz' 24;
}

.required::after {
    content: "*";
    margin-left: 3px;
    color: red;
}

#calendar-loader {
    position: fixed;
    background: url('../resources/BACKGROUND.jpg');
    background-color: var(--mc-dark-primary);
    background-size: cover;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 100%;
    height: 100%;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
}
#calendar-loader .logos {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
}
#calendar-loader .processes {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
    max-width: 400px;
    font-size: 16px;
    font-weight: 200;
    text-align: center;
}
#calendar-loader .processes .progress-bar-pre {
    display: block;
    width: 100%;
    max-width: 300px;
}
#calendar-loader .processes .progress-bar {
    display: block;
    width: 100%;
    max-width: 300px;
    height: 15px;
    border: 1px solid;
}
#calendar-loader .processes .progress-bar .inner {
    background: var(--mc-actions);
    width: 0%;
    height: 100%;
    transition: .2s;
}
#calendar-loader .processes .progress-info {
    margin-top: 5px;
}
#calendar-loader img {
    width: 100%;
    max-width: 450px;
}
/* #calendar-loader .calendar-loader-footer {
    position: absolute;
    bottom: 0;
    background: url('../resources/legrandsostenibleblanco.svg');
    background-size: contain;
    background-repeat: repeat-x;
    width: 100%;
    height: 80px;
} */

.input-loader {
    position: relative;
    width: 100%;
    height: 4px;
    overflow: hidden;
}
.input-loader.animate::before {
    content: '';
    position: absolute;
    height: 100%;
    background-color: var(--mc-actions);
    animation: loadAnimation 1.5s infinite;
}
@keyframes loadAnimation {
    0% {
        left: 0;
        right: 100%;
    }

    25% {
        left: 0;
        right: 0;
    }

    50% {
        left: 100%;
        right: 0;
    }

    75% {
        left: 0;
        right: 0;
    }

    100% {
        left: 0;
        right: 100%;
    }
}

.calendar-loader.animate {
    width: 50px;
    aspect-ratio: 1;
    display: grid;
    border: 4px solid transparent;
    border-radius: 50%;
    border-color: var(--mc-actions) transparent;
    animation: l16 1s infinite linear;
}

.calendar-loader::before,
.calendar-loader::after {
    content: "";
    grid-area: 1/1;
    margin: 2px;
    border: inherit;
    border-radius: 50%;
}

.calendar-loader::before {
    border-color: var(--mc-actions-contrast) transparent;
    animation: inherit;
    animation-duration: .5s;
    animation-direction: reverse;
}

.calendar-loader::after {
    margin: 8px;
}

@keyframes l16 {
    100% {
        transform: rotate(1turn)
    }
}

.clc-container {
    display: flex;
    flex-direction: row;
    height: 100vh;
}

.config-content {
    display: flex;
    flex-direction: row;
    /* height: 100vh; */
    height: calc(100vh - 110px);
}

.config-footer {
    display: flex;
    flex-direction: row;
    align-items: center;
    background: var(--mc-dark-primary);
    padding: 0 15px;
    height: 50px;
}
.config-footer .c-left, 
.config-footer .c-right {
    display: flex;
    align-items: center;
    width: 50%;
}
.config-footer .c-left {
    justify-content: flex-start;
}
.config-footer .c-right {
    justify-content: flex-end;
}

.config-footer button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: var(--mc-actions);
    padding: 5px 10px;
    border: 1px solid var(--mc-actions);
    border-radius: 4px;
    font-size: 14px;
    color: #fff;
    cursor: pointer;
    transition: .2s;
}

.config-footer button .icon {
    font-size: 16px;
}

.column {
    /* padding: 20px; */
    /* overflow-y: auto; */
    /* Permite el scroll en columnas */
}

.preview-column {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 7;
    background: var(--mc-dark-primary);
}

.config-column {
    position: relative;
    flex: 3;
    background: var(--mc-dark-secondary);
    padding-top: 60px;
    overflow: hidden;
}
.preview-column h2 {
    display: none;
    position: absolute;
    margin: 0;
    padding: 0;
    top: 15px;
    left: 15px;
    z-index: 1;
}
.config-column header {
    position: fixed;
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--mc-dark-primary);
    margin: 0;
    padding: 15px 20px;
    /* margin-left: -20px; */
    width: 100%;
    top: 0;
    z-index: 1;
}
.config-column header img {
    height: 30px;
}
.config-column header span {
    background: var(--mc-actions);
    font-size: 15px;
    font-weight: 600;
    padding: 5px;
    border-radius: 5px;
}

.preview-box {
    /* display: flex;
    align-items: center;
    justify-content: center; */
    width: 95%;
    height: auto;
    /* background-color: #e0e0e0; */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.config-menu {
    display: flex;
    flex-direction: column;
    flex: 1;
    background: var(--mc-dark-primary);
}
.config-menu .menu {
    margin: 0;
    padding: 0;
    list-style: none;
}
.config-menu .menu li {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 15px;
    border-left: 4px solid transparent;
    cursor: pointer;
    transition: .2s;
}
.config-menu .menu .icon {
    font-size: 30px;
}
.config-menu .menu li.active {
    background: var(--mc-dark-secondary);
    border-color: var(--mc-actions);
}

.panels {
    display: flex;
    flex: 9;
    gap: 10px;
    overflow-y: auto;
    /* height: calc(100% - 78px); */
}
.panels .panel {
    display: none;
    padding: 15px;
}
.panels .panel.active {
    display: flex;
}

.config-options,
.config-calendar,
.config-dates {
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.field-inline {
    display: flex;
    align-items: center;
    gap: 15px;
}

input[type="radio"], 
input[type="checkbox"] {
    display: none;
}

.radio-field {
    display: flex !important;
    align-items: center;
}

.clc-radio {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #fff;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
}

.clc-radio::after {
    content: '';
    width: 8px;
    height: 8px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.2s ease-in-out;
}

/* Estado seleccionado */
input[type="radio"]:checked + .clc-radio::after {
    transform: translate(-50%, -50%) scale(1);
}
.radio-label {
    margin-left: 10px;
    cursor: pointer;
}

.check-field {
    display: flex !important;
    align-items: center;
}

.clc-check {
    display: inline-block;
    min-width: 20px;
    max-width: 20px;
    width: 20px;
    min-height: 20px;
    max-height: 20px;
    height: 20px;
    border: 2px solid #fff;
    /* border-radius: 50%; */
    position: relative;
    cursor: pointer;
}

.clc-check::after {
    content: '';
    width: 8px;
    height: 8px;
    background-color: #fff;
    /* border-radius: 50%; */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.2s ease-in-out;
}

/* Estado seleccionado */
input[type="checkbox"]:checked+.clc-check::after {
    transform: translate(-50%, -50%) scale(1);
}

.check-label {
    margin-left: 10px;
    cursor: pointer;
}

.parent {
    width: 100%;
    max-width: 1117px;
    /* height: auto; */
    position: relative;
    background-color: lightgray;
}

.scaled-content {
    background-color: var(--mc-dark-primary);
    position: absolute;
    display: flex;
    top: 0;
    left: 0;
    transform-origin: top left;
    -webkit-box-shadow: 0px 15px 28px -16px rgba(0, 0, 0, 0.49);
    -moz-box-shadow: 0px 15px 28px -16px rgba(0, 0, 0, 0.49);
    box-shadow: 0px 15px 28px -16px rgba(0, 0, 0, 0.49);
}


.config-field {
    margin-bottom: 10px;
}
.config-field label {
    display: block;
    font-weight: 500;
    margin-bottom: 5px;
}
.config-field input[type="text"],
.config-field input[type="number"],
.config-field input[type="date"],
.config-field input[type="search"],
.config-field input[type="email"],
.config-field input[type="tel"],
.config-field select {
    display: block;
    background: transparent;
    border: 1px solid var(--mc-dark-contrast);
    border-radius: 5px;
    padding: 5px 8px;
    width: 100%;
    font-family: "Poppins", sans-serif;
    font-size: 15px;
    color: #fff;
}

.config-field select option {
    color: #333;
}

.config-field select::-ms-expand {
    color: #333;
}

.month-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.month-container li {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--mc-placeholder);
    border-radius: 4px;
    width: 40px;
    height: 40px;
    color: var(--mc-placeholder);
    cursor: pointer;
    transition: .2;
}
.month-container li:hover {
    border-color: #fff;
    color: #fff;
}
.month-container li.active {
    background: #fff;
    border-color: #fff;
    color: var(--mc-dark-secondary);
}

.background-container-pre {
    max-height: 250px;
    overflow-y: auto;
}

.background-container,
.logo-calendar {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.logo-calendar {
    max-height: unset;
}
.background-container li, 
.logo-calendar li {
    border: 3px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    transition: .2s;
}
.logo-calendar li {
    padding: 10px 10px 4px;
}
.background-container li.active, 
.logo-calendar li.active {
    border-color: #fff;
}
.background-container li img {
    object-fit: cover;
    width: 100%;
}
.logo-calendar li img {
    object-fit: scale-down;
    width: 100%;
}

.special-dates-cont {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.special-dates {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
}
.special-dates .date {
    display: flex;
    align-items: center;
    gap: 6px;
}
.special-dates .date select {
    width: 90px;
}
.special-dates .date .removedate {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    border: 1px solid var(--mc-actions);
    border-radius: 3px;
    color: var(--mc-actions);
    cursor: pointer;
    transition: .2s;
}
.special-dates .date .removedate:hover {
    background: var(--mc-actions);
    color: var(--mc-dark-secondary);
}
.special-dates-cont button {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mc-actions);
    padding: 5px;
    border: 1px solid var(--mc-actions);
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    transition: .2s;
}
.special-dates-cont button .icon {
    font-size: 30px;
}


.calendar-content {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    background: #141b23bf;
    width: 25%;
    overflow: hidden;
    height: 100%;
}
.scaled-content.cal-to-left > .calendar-content {
    left: 0;
}
.scaled-content.cal-to-right > .calendar-content {
    right: 0;
}
.scaled-content.cal-to-right > .calendar-container-full-logos, 
.scaled-content.cal-to-left > .full-calendar-content {
    left: 0;
}
.scaled-content.cal-to-left > .calendar-container-full-logos, 
.scaled-content.cal-to-right > .full-calendar-content {
    right: 0;
}

.calendar-content .clc-month .clc-monthname {
    font-family: "Lexend Deca", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-size: 9rem;
    margin: 30px 0;
}
.clc-month,
.clc-dates,
.clc-copyrigth {
    width: 100%;
}

.clc-dates {
    position: relative;
    width: 90%;
    height: 100%;
    font-size: 26px;
    font-weight: 200;
    margin: 20px 0;
    overflow: hidden;
}

.clc-dates .date {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.clc-dates .date:last-of-type {
    margin: 0;
}
.clc-dates .date .day {
    font-family: "Lexend Deca", sans-serif;
    font-weight: 600;
    font-size: 30px;
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    text-align: right;
}

.clc-copyrigth {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 30px;
}
.clc-copyrigth img, 
.clc-copyrigth canvas {
    width: 45%;
}

/* << CALENDAR */
.clc-monthdays {
    display: flex;
    align-items: center;
    justify-content: center;
}


#clc-calendar {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 90%;
    font-family: "Roboto Flex", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    /* color: #fff; */
}

.calendar-week-days,
.calendar-days {
    display: grid;
    /* grid-template-columns: repeat(7, 1fr); */
    grid-template-columns: repeat(7, 50px);
    gap: 5px;
    padding: 10px;
}

.calendar-week-days {
    padding: 10px;
}

.calendar-day-of-week {
    font-size: 20px;
    font-weight: 500;
    text-align: center;
}

.calendar-day {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    /* padding: 5px 0; */
    font-size: 18px;
    font-weight: 200;
    text-align: center;
    /* transition: .2s; */
}

.calendar-day.empty-day {
    border-color: transparent;
    cursor: default;
}

.calendar-day.holiday {
    font-weight: 600;
}

.calendar-day.innova{
    border: 1px solid;
    border-radius: 7px;
}

.calendar-day.week-info {
    font-style: italic;
}
.calendar-day.week-info:after {
    position: absolute;
    content: "";
    border-right: 1px solid;
    width: 1px;
    height: calc(100% + 5px);
    right: 0;
}

/* **************************************************** */

.calendar-container-full-logos {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 15px;
    width: 35%;
    height: 100%;
}
.calendar-container-full-logos img {
    width: 75%;
}

.full-calendar-content {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #141b23bf;
    width: 65%;
    overflow: hidden;
    height: 100%;
}

.calendar-container-full {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
}
.calendar-week-days-full {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
    margin-bottom: 1rem;
}
.calendar-days-full {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 10px;
}

.calendar-week-days-full .calendar-day-of-week {
    position: relative;
    font-size: 15px;
    font-weight: 500;
    text-align: center;
}
.calendar-day-full {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 200;
    text-align: center;
}
.calendar-days-full .calendar-day-full.week-info {
    font-style: italic;
}
.calendar-days-full .calendar-day-full.week-info:after {
    position: absolute;
    content: "";
    border-right: 1px solid;
    width: 1px;
    height: calc(100% + 11px);
    right: -5px;
}
.calendar-day-full.holiday {
    font-weight: 600;
}
.month-name-full {
    font-size: 27px;
    margin-bottom: 10px;
    font-family: "Lexend Deca", sans-serif;
    font-weight: 900;
    text-transform: uppercase;
}

.download-month-button {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    border: 2px solid;
    border-radius: 4px;
    padding: 6px 10px;
    bottom: 20px;
    font-size: 16px;
    cursor: pointer;
    opacity: .5;
    transition: .2s;
    z-index: 1;
}
.download-month-button:hover {
    color: var(--mc-actions);
    border-color: var(--mc-actions);
    opacity: 1;
}

/* **************************************************** */

#userModal {
    color: #fff;
}
#userModal .modal-header, 
#userModal .modal-footer {
    background: var(--mc-dark-primary);
    border-color: var(--mc-dark-primary);
}
#userModal .modal-body {
    background: var(--mc-dark-secondary);
}
#userModal .btn-primary {
    background: var(--mc-actions);
    border-color: var(--mc-actions);
    color: #fff;
}
#userModal .btn-secondary {
    background: transparent;
    border-color: var(--mc-actions);
    color: var(--mc-actions);
}

/* ********************************* */

/* Estilos responsivos */
@media (max-width: 992px) {
    #calendar-loader img {
        width: 90%;
        max-width: 450px;
    }

    .clc-container {
        flex-direction: column;
    }

    .config-content {
        height: auto;
    }

    .preview-column,
    .config-column {
        flex: none;
        width: 100%;
        height: auto;
    }

    .preview-column {
        margin-top: 15px;
    }
    
    .preview-box {
        flex-direction: column;
        margin-top: 15px;
    }

    .config-column {
        order: -1;
        /* Muestra primero la columna de configuración */
    }

    .download-month-button {
        position: unset;
        margin: 15px 0;
    }
}
