@font-face {
    font-family: "Dosis";
    src: url("../font/Dosis-Regular.ttf");
    font-weight: normal;
}

@font-face {
    font-family: "Dosis";
    src: url("../font/Dosis-Bold.ttf");
    font-weight: bold;
}

:root {
    /* Main colors */
    --primary: #2EB9E8;
    --secondary: #2B83DD;
    --terciary: #0E5FB0;
    /* Text colors */
    --primary-text: #002DAB;
    --secondary-text: #132045;
    --terciary-text: #98CFFF;
    /* Alert colors */
    --success: #0B610B;
    --success-text: #29D829;
    --warning: #766920;
    --warning-text: #CAC419;
    --danger: #5C1111;
    --danger-text: #FF8989;
    --info: #000754;
    --info-text: #979ff9;
    --disabled: #8F8F8F;
    --disabled-text: #CACACA;
    /* Others */
    --icon: #CDCDCD;
    --cards: rgba(230, 230, 230, 0.7);
    --accordion-title: #DFDFDF;
    --accordion-content: #C2C2C2;
    --form: rgba(240, 240, 240, 0.8);
    --goal: #BCE8FF;
    --modal: #D0D4FF;
    --table: rgba(201, 201, 201, 0.5);
    --table-header: #EAEAEA;
    --table-data-1: #B3CFE1;
    --table-data-2: #A1BDCF;
    --table-tooltip: #25CCF9;
    --progressbar-success: #1CB836;
    --progressbar-warning: #c5ba23;
    --progressbar-danger: #BF3434;
    --progressbar-background: #EAF1F3;
    --progressbar-color: var(--progressbar-success);
    --version: #778FDF;
    --version-text: #3E0D66;
    --select: #032777;
    --select-text: #76B4FA;
    --data: #9BDAFF;
    --data-completed: #168316;
    --data-uncompleted: #852020;
}

/* ***Main styles*** */
.page {
    min-height: 100dvh;
    background-image: linear-gradient(135deg, var(--primary), var(--secondary));
    display: grid;
    grid-template-rows: auto 1fr;
    color: var(--primary-text);
    font-family: "Dosis";
}

.page--unscrollable {
    overflow: hidden;
    height: 100%;
}

.overlay {
    position: fixed;
    z-index: 10;
    background-color: rgba(0, 0, 0, 0.35);
    inset: 0;
    transition: all 0.4s;
    animation: alert-show 0.4s;
}

.overlay--hidden {
    opacity: 0;
    visibility: hidden;
}

.header {
    grid-row: 1/2;
    width: 100%;
    min-height: 3.5rem;
    position: sticky;
    top: 0;
    z-index: 9;
    background-color: var(--terciary);
}

.header__section {
    box-sizing: border-box;
    margin: 0 auto;
    padding: 1rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    background-color: var(--secondary);
}

.header__section--nav {
    width: 60%;
    max-width: 20rem;
    height: 100dvh;
    padding-top: 2.5rem;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 11;
    flex-direction: column;
    justify-content: start;
    align-items: start;
    gap: 2rem;
    font-size: 2rem;
    transition: all 0.25s;
}

.header__section--hidden {
    visibility: hidden;
    right: -100%;
}

.header__title {
    box-sizing: border-box;
    margin: 0;
    margin-left: 1rem;
    position: relative;
    font-size: 1em;
    transition: scale 0.25s;
}

.header__version {
    padding: 0.3em 0.4em;
    border-radius: 50%;
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    translate: 90% -20%;
    background-color: var(--version);
    font-size: 0.35em;
    color: var(--version-text);
    animation: pulse 2.5s ease-in-out 0s infinite;
}

.header__title:hover {
    scale: 1.08;
}

.header__link {
    text-decoration: none;
    color: var(--secondary-text);
}

.header__menu {
    width: 2.5rem;
    height: 2.5rem;
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
    background-color: var(--icon);
    mask: url("../img/icons/menu.svg") no-repeat center center;
    mask-size: cover;
    cursor: pointer;
}

.header__close {
    width: 2rem;
    height: 2rem;
    position: absolute;
    top: 0.3rem;
    right: 0.5rem;
    background-color: var(--icon);
    mask: url("../img/icons/close.svg") no-repeat center center;
    mask-size: cover;
    cursor: pointer;
}

.header__nav {
    box-sizing: border-box;
    margin-left: 1rem;
    display: flex;
    flex-flow: column nowrap;
    align-items: start;
    gap: 2rem;
    font-size: 0.75em;
}

.nav__element {
    color: var(--primary-text);
    text-decoration: none;
    transition: scale 0.25s;
}

.nav__element:hover {
    scale: 1.08;
}

.main {
    grid-row: 2/3;
    margin: 2.5rem 0;
}

.main__title {
    margin: 0;
    margin-bottom: 2rem;
    font-size: 2.5rem;
    text-align: center;
}


/* ***Buttons styles*** */
.button {
    width: fit-content;
    display: block;
    padding: 0.5rem 1rem;
    border-style: none;
    border-radius: 5px;
    background-color: var(--secondary);
    color: var(--secondary-text);
    transition: scale 225ms;
    text-decoration: none;
}

.button--success {
    background-color: var(--success);
    color: var(--success-text);
}

.button--warning {
    background-color: var(--warning);
    color: var(--warning-text);
}

.button--danger {
    background-color: var(--danger);
    color: var(--danger-text);
}

.button--disabled {
    background-color: var(--disabled);
    color: var(--disabled-text);
}

.button--hidden {
    display: none;
}

.button--center {
    margin: 0 auto;
}

.button--icon {
    width: 1rem;
    height: 1rem;
    padding: 0;
    border-radius: 100%;
    position: relative;
    z-index: 4;
    background-color: var(--icon);
}

.button:hover {
    cursor: pointer;
    scale: 1.18;
}

/* ***Forms styles*** */
.form {
    min-width: 20rem;
    width: 90%;
    max-width: 30rem;
    margin: 0 auto;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 2rem;
}

.form--white {
    padding: 1.5rem 0;
    border-radius: 10px;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
    background-color: var(--form);
}

.form__title {
    margin: 0;
    font-size: 1.8rem;
}

.form__title--modal {
    font-size: 1rem;
}

.form__input {
    position: relative;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    gap: 0.5rem;
}

.form__date {
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

.form__radios {
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
}

.form__options {
    display: flex;
    gap: 1rem;
}

.form__inline {
    display: flex;
    flex-flow: row nowrap;
    gap: 1.5rem;
}

.input__label {
    position: relative;
    font-size: 1.25rem;
    text-align: center;
    color: var(--primary-text);
    transition: none;
}

.input__label--inside {
    padding: 0 0.5rem;
    position: absolute;
    left: 2rem;
    font-size: 1rem;
    user-select: none;
    cursor: text;
    transition: translate 0.3s;
}

.input__section {
    position: relative;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
}

.input__icon {
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    left: 5%;
    background-color: var(--primary-text);
}

.input__icon--key {
    mask: url("../img/icons/key.svg") no-repeat center center;
    mask-size: cover;
}

.input__icon--user {
    mask: url("../img/icons/user.svg") no-repeat center center;
    mask-size: cover;
}

.input__icon--userdouble {
    width: 1.35rem;
    height: 1.35rem;
    mask: url("../img/icons/userdouble.svg") no-repeat center center;
    mask-size: cover;
}

.input__data {
    box-sizing: border-box;
    width: 15rem;
    height: 3rem;
    padding-left: 2.5rem;
    border: 2px solid var(--secondary);
    border-radius: 10px;
    background-color: var(--primary);
    color: var(--primary-text);
    letter-spacing: 0.05rem;
}

.input__data--uppper {
    text-transform: uppercase;
}

.input__data--modal {
    padding-left: 0.75rem;
    text-transform: uppercase;
}

.input__data--textarea {
    width: 20rem;
    height: 10rem;
    resize: none;
    padding: 0.5rem;
    transition: scale 0.25s;
}

.input__data--textarea:focus {
    scale: 1.05;
}

.input__data--number {
    padding-left: 2.2rem;
    width: 7.5rem;
    appearance: textfield;
}

.input__data--number::-webkit-outer-spin-button,
.input__data--number::-webkit-inner-spin-button {
    appearance: none;
}

.input__data:focus {
    border: 2.5px solid var(--secondary-text);
    outline: none;
    color: var(--secondary-text);
}

.input__data:focus~.input__icon {
    background-color: var(--secondary-text);
}

.input__data:focus~.input__label {
    color: var(--secondary-text);
}

.input__data:focus~.input__label,
.input__data:valid~.input__label {
    translate: -1.8rem -200%;
}

.input__error {
    margin: 0;
    color: var(--danger);
    text-align: center;
    transition: all 0.25s;
}

.input__error--hidden {
    opacity: 0;
    display: none;
}

.date__label {
    font-size: 1.25rem;
}

.date__input {
    width: 10rem;
    height: 3rem;
    padding-inline: 0.5rem;
    border: 2px solid var(--secondary);
    border-radius: 5px;
    background-color: var(--primary);
    color: var(--primary-text);
    font-variant: small-caps;
    font-size: 1.2rem;
    transition: scale 0.25s;
}

.date__input:focus {
    border: 2.5px solid var(--secondary-text);
    outline: none;
    color: var(--secondary-text);
    scale: 1.05;
}

.radios__title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: normal;
}

.radios__inputs {
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.inputs__radio {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.radio__input {
    appearance: none;
    width: 1.35rem;
    height: 1.35rem;
    position: relative;
    background-color: var(--secondary-text);
    mask: url("../img/icons/radio.svg") no-repeat center center;
    mask-size: cover;
    cursor: pointer;
}

.radio__input:checked {
    background-color: var(--success);
    mask-image: url("../img/icons/radio-checked.svg");
}

.radio__label {
    font-size: 1.075rem;
    cursor: pointer;
}

.select {
    position: relative;
}

.select__input {
    padding: 0.35rem 0.5rem;
    appearance: none;
    background-color: var(--select);
    color: var(--select-text);
    border-style: none;
    border-radius: 5px;
}

.select__input:focus {
    border-style: none;
    outline: none;
}

.select__icon {
    display: block;
    width: 1rem;
    height: 1rem;
    position: absolute;
    top: 50%;
    right: 10%;
    translate: 0 -50%;
}

.select__icon--transfer-accept {
    background-color: var(--success-text);
    mask: url("../img/icons/transfer-accept.svg") no-repeat center center;
    mask-size: cover;
}

.select__icon--transfer-refused {
    background-color: var(--danger-text);
    mask: url("../img/icons/transfer-refused.svg") no-repeat center center;
    mask-size: cover;
}

/* ***Alert styles*** */

.alert {
    width: 15rem;
    padding: 1rem 1.5rem;
    border: 1px solid black;
    border-radius: 10px;
    position: fixed;
    top: 20%;
    left: 50%;
    translate: -50% 0;
    z-index: 15;
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
    transition: all 0.5s;
    animation: alert-show 0.5s;
}

.alert--hidden {
    opacity: 0;
    visibility: hidden;
}

.alert__header {
    margin: 0;
    font-size: 1.3rem;
}

.alert__main {
    font-size: 1.1rem;
    text-align: justify;
}

.alert__icon {
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    top: 0.3rem;
    right: 0.2rem;
    background-color: var(--icon);
    mask: url("../img/icons/close.svg") no-repeat center center;
    mask-size: cover;
    cursor: pointer;
}

.alert--success {
    background-color: var(--success);
    color: var(--success-text);
}

.alert--warning {
    background-color: var(--warning);
    color: var(--warning-text);
}

.alert--danger {
    background-color: var(--danger);
    color: var(--danger-text);
}

/* ***Accordion*** */
.accordion {
    width: 90%;
    max-width: 35rem;
    margin: 0 auto;
    display: flex;
    flex-flow: column nowrap;
    gap: 2rem;
}

.accordion__header {
    margin: 0;
    font-size: 2.2rem;
    text-align: center;
}

.accordion__main {
    width: 100%;
    display: flex;
    flex-flow: column nowrap;
    gap: 0;
}

.accordion__element {
    display: flex;
    flex-flow: column nowrap;
    position: relative;
}

.accordion__icon {
    appearance: none;
    width: 1rem;
    height: 1rem;
    border: 2px solid black;
    border-top: none;
    border-right: none;
    position: absolute;
    top: 0;
    right: 5%;
    transform: translateY(130%) rotate(-45deg);
    transition: transform 0.5s;
}

.accordion__icon:checked {
    transform: translateY(175%) rotate(135deg);
}

.accordion__title {
    margin: 0;
    padding: 1rem;
    border: 2px solid var(--terciary);
    border-radius: 10px;
    background-color: var(--accordion-title);
    font-size: 1.5rem;
    font-weight: bold;
}

.accordion__content {
    box-sizing: border-box;
    margin: 0;
    max-height: 0;
    padding: 0;
    overflow: hidden;
    visibility: hidden;
    border-radius: 10px;
    border: 2px solid var(--terciary);
    background-color: var(--accordion-content);
    font-size: 1.2rem;
    transition: all 0.5s;
}

.accordion__icon:checked + .accordion__content {
    max-height: 30rem;
    padding: 1rem;
    visibility: visible;
}


/* ***Cards*** */
.cards {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 3rem;
}

.cards__card {
    box-sizing: border-box;
    width: 25rem;
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-flow: column nowrap;
    gap: 1.5rem;
    background-color: var(--cards);
    text-decoration: none;
    transition: scale 0.25s;
}

.cards__card:hover {
    scale: 1.05;
    cursor: pointer;
}

.cards__card:active,
.cards__card:link,
.cards__card:visited {
    color: var(--primary-text);
}

.card__header {
    margin: 0;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--primary);
    font-size: 1.8rem;
    text-align: center;
    color: var(--secondary-text);
}

.card__main {
    font-size: 1.2rem;
    margin: 0 auto;
    width: 80%;
    text-align: justify;
}

/* ***Goals*** */
.goals {
    width: 85%;
    max-width: 35rem;
    margin: 0 auto;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 3rem;
}

.goals__header {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 1rem;
}

.goals__title {
    margin: 0;
    margin-bottom: 0.8rem;
    font-size: 2.8rem;
}

.goals__subtitle {
    margin: 0;
    font-size: 1.5rem;
}

.goals__options {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem 1rem;
}

.goals__goal {
    width: 100%;
    padding: 1.5rem 0.75rem 1rem;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    position: relative;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    background-color: var(--goal);
    color: var(--primary-text);
}

.goals__goal--info {
    background-color: var(--info);
    color: var(--info-text)
}

.goals__goal--danger {
    background-color: var(--danger);
    color: var(--danger-text)
}

.goal__header {
    width: 100%;
    margin: 0;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--terciary);
    font-size: 1.5rem;
    text-align: center;
}

.goal__number {
    position: absolute;
    top: -0.5rem;
    right: 3%;
}

.goal__main {
    width: 100%;
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
    font-size: 1.13rem;
    text-align: center;
    overflow: hidden;
}

.goal__options {
    margin-bottom: 0.5rem;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 1rem;
}

/* ***Dashboard*** */
.dashboard {
    width: 100%;
    max-width: 35rem;
    margin-top: 0.5rem;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-around;
    text-align: center;
}

.dashboard__section {
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
}

.dashboard__title {
    margin: 0;
    position: relative;
    text-transform: uppercase;
}

.dashboard__title--record {
    padding-left: 1rem;
}

.dashboard__title--transfer {
    padding-left: 1.5rem;
}

.dashboard__data {
    margin: 0;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    font-size: 2.25rem;
}

.dashboard__word {
    font-size: 1rem;
}

.dashboard__tooltip {
    position: relative;
}

.dashboard__info {
    width: max(20rem, 50dvw);
    max-width: 30rem;
    padding: 1rem;
    border: 2px solid var(--terciary);
    border-radius: 10px;
    position: absolute;
    z-index: 8;
    top: 210%;
    right: 0;
    translate: 10% 0;
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
    background-color: var(--primary);
    transition: all 0.25s;
}

.info__connection {
    width: 1rem;
    height: 1rem;
    border: 2px solid var(--terciary);
    border-bottom: none;
    border-right: none;
    position: absolute;
    z-index: 8;
    top: 155%;
    right: -10%;
    transform: rotate(45deg);
    background-color: var(--primary);
    transition: all 0.25s;
}

.info__hidden {
    visibility: hidden;
    opacity: 0;
}

.info__header {
    margin: 0;
    font-size: 1.5rem;
}

.info__main {
    max-width: 90dvw;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

.info__status {
    box-sizing: border-box;
    width: 9rem;
    min-height: 7.5rem;
    padding: 0 2.5rem 0 0.5rem;
    border: 1px solid var(--terciary);
    border-radius: 10px;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.2rem;
    font-size: 1.25rem;
}

.dashboard__bar {
    width: 90%;
    height: 0.8rem;
    border-radius: 10px;
    background-color: var(--progressbar-background);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}

.dashboard__bar--vertical {
    position: absolute;
    top: 40%;
    left: 50%;
    min-width: 0;
    width: 5.5rem;
    transform: rotate(-90deg);
}

.dashboard__bar::-webkit-progress-bar {
    background-color: var(--progressbar-background);
    border: 1px solid white;
    border-radius: 15px;
    min-width: 9.5rem;
}

.dashboard__bar--vertical::-webkit-progress-bar {
    min-width: 0;
    width: 5.5rem;
}

.dashboard__bar::-webkit-progress-value {
    background-color: var(--progressbar-color);
    border-radius: 15px;
}

.dashboard__bar::-moz-progress-bar {
    background-color: var(--progressbar-color);
    border-radius: 15px;
}


/* ***Modals*** */
.modal {
    box-sizing: border-box;
    width: 25rem;
    min-height: 13rem;
    padding: 1.5rem 1rem;
    border-radius: 10px;
    background-color: var(--modal);
    position: fixed;
    top: 20%;
    left: 50%;
    z-index: 20;
    transform: translateX(-50%);
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 1rem;
    transition: all 0.25s;
}

.modal--hidden {
    scale: 0;
    visibility: hidden;
}

.modal__header {
    width: 100%;
    margin: 0;
    font-size: 1.6rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--secondary);
    text-align: center;
}

.modal__main {
    min-height: 6rem;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    text-align: center;
}

.modal__form {
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    gap: 0.5rem;
    transition: all 0.25s;
}

.modal__form--hidden {
    opacity: 0;
    display: none;
}

.modal__options {
    display: flex;
    gap: 1rem;
}

/* ***Records*** */
.records {
    padding: 0;
    width: 90%;
    max-width: min(90%, 50rem);
    margin: 0 auto;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 1.5rem;
}

.records__title {
    margin: 0;
    font-size: 2.5rem;
}

.records__options {
    margin-bottom: 1rem;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 1.5rem;
}

.records__filters {
    margin-top: 0.5rem;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 1rem;
}

.filters__header {
    margin: 0;
    font-size: 1.35rem;
    text-align: center;
}

.filters__main {
    display: flex;
    gap: 1rem;
}

.records__table {
    width: 100%;
    max-width: 90dvw;
    max-height: 30rem;
    border: 2px solid var(--terciary);
    border-radius: 10px;
    background-color: var(--table);
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(97, 97, 97, 0.8) rgba(209, 209, 209, 0.9);
}

.table {
    width: 100%;
    border-collapse: collapse;
    position: relative;
}

.table__head {
    position: sticky;
    z-index: 7;
    top: 0;
}

.table__header {
    height: 3rem;
    padding: 0.5rem;
    background-color: var(--table-header);
    font-size: 1.4rem;
}

.table__body {
    margin: 0;
}

.table__row {
    position: relative;
    background-color: var(--table-data-1);
    transition: scale 0.25s;
}

.table__row > .table__data--number {
    position: sticky;
    left: 0;
    background-color: var(--table-data-1);
    opacity: 0.9;
}

.table__row:nth-child(even) {
    background-color: var(--table-data-2);
}

.table__row:nth-child(even) > .table__data--number {
    background-color: var(--table-data-2);
}

.table__row:hover {
    z-index: 1;
    cursor: pointer;
    scale: 0.985;
}

.table__row:hover .table__tooltip {
    opacity: 1;
    visibility: visible;
}

.table__data {
    height: 2rem;
    padding: 0.5rem;
    font-size: 1.15rem;
    text-align: center;
}

.table__header--options,
.table__data--options {
    min-width: 10rem;
}

.table__options {
    height: 100%;
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.table__tooltip {
    box-sizing: border-box;
    padding: 0.5rem 0.75rem;
    border-radius: 10px;
    position: absolute;
    top: -65%;
    left: 2.5%;
    background-color: var(--table-tooltip);
    color: var(--secondary-text);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.table__tooltip--hidden {
    display: none;
}

.table__tooltip::after {
    content: "";
    width: 1rem;
    height: 1rem;
    position: absolute;
    z-index: -1;
    bottom: -0.3rem;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    background-color: var(--table-tooltip);
}

.table__tooltip--first {
    top: 10%;
    left: 18%;
}

.table__tooltip--first::after {
    top: 50%;
    left: 0.15rem;
    translate: 0 -50%;
}

/* ***Normal icons*** */
.icon {
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    top: 0;
    left: 10%;
    background-color: var(--primary-text);
}

.icon--key {
    mask: url("../img/icons/key.svg") no-repeat center center;
    mask-size: cover;
}

.icon--user {
    mask: url("../img/icons/user.svg") no-repeat center center;
    mask-size: cover;
}

.icon--userdouble {
    mask: url("../img/icons/userdouble.svg") no-repeat center center;
    mask-size: cover;
}

.icon--info {
    z-index: 5;
    top: -20%;
    left: -20%;
    mask: url("../img/icons/info.svg") no-repeat center center;
    mask-size: cover;
}

/* ***Data*** */
.data {
    width: min(90%, 75rem);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, auto);
    gap: 0.5rem;
}

.data__1, .data__2, .data__3, .data__4 {
    grid-column: 1/2;
    padding: 1rem;
    border: 2px solid var(--terciary);
    border-radius: 10px;
    display: flex;
    flex-flow: column nowrap;
    gap: 1rem;
    background-color: var(--data);
}

.data__1 {
    grid-row: 1/2;
}

.data__2 {
    grid-row: 2/3;
}

.data__3 {
    grid-row: 3/4;
}

.data__4 {
    grid-row: 4/5;
}

.data__header {
    margin: 0;
    font-size: 1.5rem;
}

.data__main {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 1rem;
    border: 1px solid var(--terciary);
    border-radius: 10px;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-around;
    gap: 1rem;
}

.data__main--noborder {
    border-style: none;
}

.data__missing {
    display: flex;
    align-items: center;
    font-size: 1.3rem;
    text-align: center;
}

.data__total {
    height: 10rem;
    width: 90%;
    padding: 1rem;
    border: 1px solid var(--terciary);
    border-radius: 10px;
    position: relative;
    display: flex;
    flex-flow: column nowrap;
    gap: 0 1rem;
    overflow: hidden;
}

.data__subtitle {
    margin: 0;
    font-size: 1.2rem;
}

.total {
    box-sizing: border-box;
    width: min(80%, 15rem);
    border: 2px solid black;
    border-radius: 50%;
    position: absolute;
    bottom: 0;
    left: 50%;
    translate: -50% 50%;
    background-color: var(--data-uncompleted);
    aspect-ratio: 1/1;
    overflow: hidden;
}

.total__inside {
    box-sizing: border-box;
    width: 75%;
    height: 75%;
    border: 2px solid black;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    background-color: var(--data);
}

.total__percentage {
    width: 100%;
    height: 50%;
    position: absolute;
    top: 10%;
    left: 50%;
    translate: -50% 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    font-size: 150%;
}

.total__bottom {
    width: 100%;
    height: 50%;
    border-top: 2px solid black;
    background-color: var(--data);
    position: absolute;
    top: 50%;
    left: 0;
}

.total__svg {
    width: 100%;
    height: 100%;
    position: absolute;
}

.total__progress {
    fill: none;
    stroke: var(--data-completed);
    stroke-width: 30rem;
    stroke-dasharray: calc(30rem * 3.1416 / 2);
}

.average {
    width: 100%;
    max-width: 100%;
    min-height: 17.5rem;
}

/* ***Others*** */
.uppercase {
    text-transform: uppercase
}

.p404 {
    margin: 5rem auto;
    width: 80%;
    max-width: 35rem;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 3rem;
    text-align: center;
}

.p404__header {
    margin: 0;
    font-size: 5rem;
}

.p404__main {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 1rem;
    font-size: 1.5rem;
}

.p404__option {
    width: fit-content;
    border-style: none;
    border-radius: 5px;
    padding: 0.5rem 1rem;
    display: block;
    background-color: var(--success);
    color: var(--success-text);
    text-decoration: none;
    transition: scale 0.25s;
}

.p404__option:hover {
    scale: 1.2;
}

.word__delete {
    text-transform: uppercase;
    color: var(--danger);
}

@keyframes alert-show {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes pulse {
    0%, 100% {
        scale: 0.95;
    }

    50% {
        scale: 1.15;
    }
}

@media(min-width: 34.5rem) {
    .data__total {
        width: 40%;
    }

    .data__missing {
        font-size: 1.5rem;
    }
}

@media(min-width: 46.5rem) {
    .header {
        background-color: var(--secondary);
    }

    .header__section--nav {
        visibility: visible;
        width: auto;
        max-width: 75rem;
        padding: 1rem 0.5rem;
        height: auto;
        position: relative;
        top: 0;
        left: 0;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        transition: all 0s;
    }

    .header__menu {
        visibility: hidden;
    }

    .header__title {
        font-size: 1.2em;
    }

    .header__close {
        visibility: hidden;
    }

    .header__nav {
        flex-direction: row;
        font-size: 0.8em;
    }

    .data {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(4, auto);
        gap: 0.5rem;
    }

    .data__1 {
        grid-column: 2/4;
        grid-row: 1/2;
    }

    .data__2 {
        grid-column: 2/4;
        grid-row: 2/3;
    }

    .data__3 {
        grid-column: 1/2;
        grid-row: 1/3;
        justify-content: space-between;
    }

    .data__4 {
        grid-column: 1/4;
        grid-row: 3/5;
    }

    .data__total {
        height: 8rem;
        width: max(10rem, 80%);
    }
}

@media(min-width: 72.5rem) {
    .data {
        grid-template-columns: repeat(6, 1fr);
        grid-template-rows: repeat(2, auto);
        gap: 0.5rem;
    }

    .data__1 {
        grid-column: 1/4;
        grid-row: 1/2;
    }

    .data__2 {
        grid-column: 4/7;
        grid-row: 1/2;
    }

    .data__3 {
        grid-column: 1/3;
        grid-row: 2/3;
    }

    .data__4 {
        grid-column: 3/7;
        grid-row: 2/3;
    }
}