* {
    margin: 0;
    padding: 0;
    font-size: 0.95vw;
    font-family: "Roboto", sans-serif;
    box-sizing: border-box;
    --header-size: 6.5rem;
    --sidebar-min-width: 15vw;
    --sidebar-width: 21.5rem;
    --color-outline: #358d3077;
    --color-row-hover: #358d3022;
    --color-scrollbar-hover: #358d30cc;
    --color-primary: #358d30;
    --color-primary-hover: #41ac3b;
    --color-primary-hold: #2d752a;
    --color-secondary: #ed7700;
    --color-secondary-hover: #ff9225;
    --color-secondary-hold: #bd6002;
    --color-tertiary: #007eb3;
    --color-tertiary-hover: #2693c2;
    --color-tertiary-hold: #006f9e;
    --color-quaternary: #af1a1f;
    --color-quaternary-hover: #af4043;
    --color-quaternary-hold: #a0181d;
}

body.dark-theme {
    --color-outline: #55ad5077;
    --color-row-hover: #55ad5022;
    --color-scrollbar-hover: #55ad50cc;
    --color-primary: #55ad50;
    --color-primary-hover: #61cc5b;
    --color-primary-hold: #4d954a;
    --color-secondary: #ff9720;
    --color-secondary-hover: #ffb245;
    --color-secondary-hold: #dd8022;
    --color-tertiary: #209ed3;
    --color-tertiary-hover: #46b3e2;
    --color-tertiary-hold: #208fbe;
    --color-quaternary: #cf3a3f;
    --color-quaternary-hover: #cf6063;
    --color-quaternary-hold: #c0383d;
    background-color: black;
}

body {
    --vh: 1vh;
    overflow: hidden;
}

body.modal-open,
body.modal-open .scrollable {
    overflow-y: hidden;
}

a {
    cursor: pointer;
    text-decoration: none;
}

img {
    display: block;
    object-fit: contain;
}

.container {
    width: 100vw;
    min-height: calc(100 * var(--vh));
    max-height: calc(100 * var(--vh));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
}

.container > .header {
    padding: 0;
    padding-right: 1rem;
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    z-index: 3;
    position: relative;
}

.container > .header img:first-child {
    margin: 0.3rem 0;
    flex-basis: max(var(--sidebar-width), var(--sidebar-min-width));
    height: calc(var(--header-size) - 0.6rem);
    flex-shrink: 0;
    /* object-position: left center; */
}

.container > .header p {
    font-size: 15px;
    text-align: left;
    font-weight: normal;
    flex-shrink: 0;
    flex-grow: 1;
}

.container > .header h2 {
    color: var(--color-primary);
    font-size: 15px;
    text-align: right;
}

.container > .header > h2 {
    font-size: inherit;
    text-transform: uppercase;
    margin-right: auto;
    font-weight: normal;
}

.container > .header button {
    appearance: none;
    background: transparent;
    border: none;
    outline: none;
    cursor: pointer;
}

.container > .header :is(button, a) {
    color: var(--color-primary);
    transition: 0.2s;
    margin-right: 1rem;
}

.container > .header :is(button, a):hover {
    color: var(--color-primary-hover);
}

.container > .header :is(button, a):active {
    color: var(--color-primary-hold);
}

.container > .header :is(button, a) i {
    font-size: 2rem;
}

.container > .header img.profile-picture {
    height: calc(var(--header-size) - 1.5rem);
    width: calc(var(--header-size) - 1.5rem);
    background-color: #fafafa;
    border-radius: 100%;
    border: 1px solid #ddd;
}

body.dark-theme .container > .header img.profile-picture {
    background-color: #333;
    border: 1px solid #222;
}

.container > .header > .header-empresa {
    margin-right: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: 0.5rem;
}

.container > .header > .header-empresa h1 {
    flex: 1;
    white-space: pre-wrap;
    text-align: right;
    font-size: 1.3rem;
    text-transform: uppercase;
}

.container > .header > .header-empresa img {
    height: calc(var(--header-size) - 0.6rem);
}

.container > .page {
    flex: 100%;
    display: flex;
    flex-direction: row;
    border-top: 0.6rem solid var(--color-primary-hold);
    overflow: hidden;
}

.sidebar {
    background-color: white;
    --icon-size: calc(var(--header-size) / 2);
    flex-basis: auto;
    flex-grow: 0;
    flex-shrink: 1;
    max-width: max(var(--sidebar-min-width), var(--sidebar-width));
    max-height: calc(calc(100 * var(--vh)) - var(--header-size) - 1rem);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: stretch;
    position: relative;
    transform-origin: 0 74%;
    transform-style: preserve-3d;
    transition:
        transform 0.3s,
        width 0.3s,
        max-width 0.3s,
        flex-basis 0.3s,
        background-color 0.3s;
    border-right: 1px solid #ddd;
    box-shadow: 0rem 0rem 1rem 0rem #7777;
    z-index: 6;
}

body.dark-theme .sidebar {
    background-color: black;
    border-right: 1px solid #333;
    box-shadow: 0rem 0rem 1rem 0rem #0007;
}

.sidebar > ul {
    padding-top: calc(0.6rem - 1px);
    flex: 100%;
    overflow-y: auto;
    overflow-y: overlay;
    overflow-x: hidden;
}

.sidebar li {
    color: var(--color-primary);
    position: relative;
    transition: 0.3s;
}

.sidebar > ul > li {
    width: var(--sidebar-width);
    min-width: var(--sidebar-min-width);
    overflow: hidden;
}

body:not(.hide-sidebar) .sidebar li.active {
    background-color: var(--color-primary);
}

.sidebar li a {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    position: relative;
    text-decoration: none;
    font-size: 1rem;
    width: 100%;
    padding: 0.5rem;
    transition: 0.3s;
    white-space: nowrap;
}

.sidebar .link-text {
    font-size: 1.2rem;
    white-space: nowrap;
}

.sidebar li a:link,
.sidebar li a:visited,
.sidebar li a:hover,
.sidebar li a:active {
    color: var(--color-primary);
}

body:not(.hide-sidebar) .sidebar li.active a:link,
body:not(.hide-sidebar) .sidebar li.active a:visited,
body:not(.hide-sidebar) .sidebar li.active a:hover,
body:not(.hide-sidebar) .sidebar li.active a:active {
    color: white;
}

.sidebar li a:hover {
    background-color: #fff4;
}

.sidebar li a i {
    text-align: center;
    font-size: calc(var(--icon-size) * 0.7);
    width: var(--icon-size);
    min-width: var(--icon-size);
    margin-right: 0.5rem;
}

.sidebar li a.toggle-submenu {
    padding-right: 2rem;
}

.sidebar li a.toggle-submenu::after {
    content: "\f0dd";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    top: calc(50%);
    right: 1rem;
    transform: translateY(-70%);
    transform-origin: 50% 55%;
    transition:
        transform 0.5s,
        color 0.1s 0.2s;
}

body:not(.hide-sidebar) .sidebar li.active > a.toggle-submenu::after {
    transform: translateY(-50%) rotateZ(-180deg);
}

.sidebar .submenu {
    --submenu-height: 0px;
    --submenu-height-limit: var(--submenu-height);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s;
}

.sidebar > ul > li.active .submenu {
    max-height: var(--submenu-height);
}

.sidebar .submenu a {
    padding-left: 2rem;
}

.hide-sidebar .sidebar {
    max-width: calc(var(--icon-size) + 1rem);
    background-color: var(--color-row-hover);
}

.hide-sidebar .sidebar > ul > li {
    width: calc(var(--icon-size) + 1rem);
    min-width: 0px;
    position: relative;
}

.hide-sidebar .sidebar a.toggle-submenu::after {
    transition: color 0.1s;
    color: transparent !important;
}

.hide-sidebar .sidebar > ul > li:hover,
.hide-sidebar .sidebar > ul > li:focus-within {
    width: calc(var(--sidebar-width) + var(--icon-size) + 1rem);
    min-width: calc(var(--icon-size) + 1rem + 260px);
    overflow: visible;
    z-index: 3;
}

.hide-sidebar .sidebar > ul > li:hover > a,
.hide-sidebar .sidebar > ul > li:focus-within > a {
    overflow: visible;
    z-index: 3;
    background-color: var(--color-primary-hover);
    color: white;
}

.hide-sidebar .sidebar > ul > li .submenu {
    margin-left: calc(var(--icon-size) + 1rem);
    width: calc(100% - var(--icon-size) - 1rem);
    transition: max-height 0.3s 0.3s;
    background-color: var(--color-primary);
    position: absolute;
    overflow: overlay;
    overflow: auto;
}

.hide-sidebar .sidebar > ul > li .submenu.top-submenu {
    bottom: 100%;
}

.hide-sidebar .sidebar > ul > li .submenu a {
    color: white;
    padding-left: 1rem;
}

.hide-sidebar .sidebar > ul > li:hover .submenu,
.hide-sidebar .sidebar > ul > li:focus-within .submenu {
    max-height: min(var(--submenu-height), var(--submenu-height-limit));
}

p.toggle-sidebar-row {
    display: flex;
    width: 100%;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    white-space: normal;
    overflow: hidden;
    color: var(--color-primary);
}

a.toggle-sidebar {
    --this-color: var(--color-primary);
    width: var(--icon-size);
    height: var(--icon-size);
    border: 0.2rem solid var(--this-color);
    border-radius: 20%;
    margin: 0.5rem;
    position: relative;
    transition: border 0.3s;
    flex-shrink: 0;
}

a.toggle-sidebar:hover {
    --this-color: var(--color-primary-hover);
}

a.toggle-sidebar:active {
    --this-color: var(--color-primary-hold);
}

a.toggle-sidebar span {
    position: absolute;
    width: 70%;
    height: 0.2rem;
    background-color: var(--this-color);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition:
        background-color 0.3s,
        top 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275),
        opacity 0.6s,
        transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

a.toggle-sidebar span:nth-child(1) {
    top: 25%;
}

a.toggle-sidebar span:nth-child(3) {
    top: 75%;
}

a.toggle-sidebar.active span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
    top: 50%;
}

a.toggle-sidebar.active span:nth-child(2) {
    opacity: 0;
}

a.toggle-sidebar.active span:nth-child(3) {
    transform: translate(-50%, -50%) rotate(-45deg);
    top: 50%;
}

.container > .page > .content {
    flex-shrink: 0;
    flex-grow: 1;
    flex-basis: calc(
        100vw - max(var(--sidebar-width), var(--sidebar-min-width))
    );
    display: flex;
    background: #fafafa;
    padding: 1em;
    position: relative;
    justify-content: flex-start;
    flex-direction: column;
}

body.dark-theme .container > .page > .content {
    background: #222;
}

.content > form,
.modal-content > form,
.tab-page > form {
    display: flex;
    flex-direction: column;
    flex: 100%;
    overflow: hidden;
}

.tab-page > form {
    width: 100%;
}

hr {
    border: 0;
    border-top: 1em solid var(--color-primary);
}

hr.thin {
    border-top: 0.6em solid var(--color-primary);
}

hr.thinner {
    border-top: 0.3em solid var(--color-primary);
}

.content > hr,
.content > form > hr {
    margin-left: -1rem;
    margin-right: -1rem;
}

.unfocus {
    position: absolute;
    z-index: 98;
    opacity: 0;
    background: black;
    width: 100vw;
    height: calc(100 * var(--vh));
    top: 0;
    left: 0;
    transition: opacity 0.5s;
    pointer-events: none;
}

.unfocus.active {
    opacity: 0.8;
    pointer-events: all;
}

.modal {
    position: absolute;
    z-index: 99;
    background: linear-gradient(
        0deg,
        #fff 0px,
        #fff calc(100% - 3.5em),
        var(--color-primary) calc(100% - 3.5em),
        var(--color-primary) 100%
    );
    box-shadow: 0.8em 0.8em 1em 0 rgba(0, 0, 0, 0.5);
    opacity: 0;
    width: 10vw;
    height: calc(80 * var(--vh));
    border-radius: 1em;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.5s;
    pointer-events: none;
    display: flex;
    flex-direction: column;
}

.dark-theme .modal {
    background: linear-gradient(
        0deg,
        #444 0px,
        #444 calc(100% - 3.5em),
        var(--color-primary) calc(100% - 3.5em),
        var(--color-primary) 100%
    );
    color: white;
}

.modal.active {
    opacity: 1;
    width: 80vw;
    pointer-events: all;
}

.modal-header {
    height: 2.7em;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3em;
    color: #eeeeee;
    font-weight: 450;
    pointer-events: none;
    position: relative;
}

.unfocus.active::after {
    cursor: pointer;
}

.modal-header::after {
    content: "+";
    position: absolute;
    right: 1em;
    top: 0.3em;
    transform-origin: center;
    transform: rotate(45deg);
    pointer-events: all;
    cursor: pointer;
    font-size: 1.5em;
}

.modal-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    transition: 0.2s;
    padding: 1rem 0.5rem;
    overflow: hidden;
    border-bottom-left-radius: 1em;
    border-bottom-right-radius: 1em;
}

body:not(.modal-open) .scrollable {
    overflow-y: auto;
}

.flex-table {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: hidden;
    overflow-x: auto;
    border-radius: 0.5rem;
    position: relative;
    margin: 0 0.5rem;
    z-index: 1;
    align-items: flex-start;
    border-bottom: 1rem solid var(--color-primary);
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) transparent;
}

.table-content {
    flex: 1;
    overflow-y: scroll;
    overflow-x: hidden;
    position: relative;
    padding-left: 0.5em;
    scrollbar-color: var(--color-primary) #eee;
    scrollbar-width: thin;
}

.dark-theme .table-content {
    scrollbar-color: var(--color-primary) #333;
    background-color: black;
}

.table-header,
.table-content {
    min-width: 100%;
}

.flex-table::before {
    content: " ";
    position: absolute;
    left: 0;
    top: 1em;
    height: calc(100% - 1em);
    width: calc(0.5em - 2px);
    z-index: -1;
}

.scrollable {
    scrollbar-color: var(--color-primary) #eee;
    scrollbar-width: thin;
}

.dark-theme .scrollable {
    scrollbar-color: var(--color-primary) black;
}

.content.scrollable > form {
    overflow: visible;
}

.sidebar > ul {
    scrollbar-color: var(--color-primary) transparent;
    scrollbar-width: thin;
}

.hide-sidebar .sidebar > ul > li .submenu {
    scrollbar-color: white transparent;
    scrollbar-width: thin;
}

.hide-sidebar .sidebar > ul {
    scrollbar-width: none;
}

.sidebar > ul::-webkit-scrollbar,
.table-content::-webkit-scrollbar,
.scrollable::-webkit-scrollbar {
    margin-top: -1em;
    width: 0.5em;
    border: 0;
}

.sidebar > ul::-webkit-scrollbar,
.hide-sidebar .sidebar > ul > li .submenu::-webkit-scrollbar {
    width: 0.25rem;
}

.hide-sidebar .sidebar > ul::-webkit-scrollbar {
    width: 0;
}

.table-content::-webkit-scrollbar-track,
.flex-table::before {
    background: #eeeeee;
    border: 0;
    border-left: 1px solid #cccccc;
    border-right: 1px solid #cccccc;
}

.dark-theme .table-content::-webkit-scrollbar-track,
.dark-theme .flex-table::before {
    background: #333;
    border-left: 1px solid #555;
    border-right: 1px solid #555;
}

.sidebar > ul::-webkit-scrollbar-track,
.hide-sidebar .sidebar > ul > li .submenu::-webkit-scrollbar-track {
    background: transparent;
    border: 0;
}

.sidebar > ul::-webkit-scrollbar-thumb,
.table-content::-webkit-scrollbar-thumb,
.scrollable::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border: 0;
}

.hide-sidebar .sidebar > ul > li .submenu::-webkit-scrollbar-thumb {
    background: white;
    border: 0;
}

body.dark-theme
    .hide-sidebar
    .sidebar
    > ul
    > li
    .submenu::-webkit-scrollbar-thumb {
    background: black;
}

.sidebar > ul::-webkit-scrollbar-track,
.scrollable::-webkit-scrollbar-track {
    border: 0;
    background: transparent;
}

.hide-sidebar .sidebar > ul > li .submenu::-webkit-scrollbar-thumb,
.sidebar > ul::-webkit-scrollbar-thumb,
.scrollable::-webkit-scrollbar-thumb {
    border-radius: 1em;
}

.sidebar > ul::-webkit-scrollbar-thumb:hover,
.table-content::-webkit-scrollbar-thumb:hover,
.scrollable::-webkit-scrollbar-thumb:hover {
    background: var(--color-scrollbar-hover);
}

.hide-sidebar .sidebar > ul > li .submenu::-webkit-scrollbar-thumb:hover {
    background: #fffa;
}

.table-header,
.table-row,
.flex-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
}

.flex-row {
    padding: 0.2em 0;
    width: 100%;
}

.flex-row.fill,
textarea.fill {
    flex: 100%;
}

.table-header {
    background: var(--color-primary);
    color: white;
    font-weight: 500;
}

.table-header::after,
.table-header::before {
    content: " ";
    min-width: 0.5em;
}

.table-header:first-child {
    border-top-left-radius: 0.5em;
    border-top-right-radius: 0.5em;
}

.table-header:not(:first-child) {
    border-top: 2px solid white;
}

.table-row {
    background: #00000007;
    min-height: 1.25em;
}

.table-row:hover {
    background: var(--color-row-hover);
}

.table-row.clickable {
    cursor: pointer;
}

.table-row.clickable .actions-col {
    cursor: default;
}

.table-column,
.flex-column {
    display: flex;
    position: relative;
    padding: 0 0.5em;
    position: relative;
    flex-direction: column;
}

.table-column {
    border: 1px solid white;
    word-break: break-all;
    padding: 0.2rem 0.5rem;
    min-height: 1.86rem;
}

.dark-theme .table-column {
    border: 1px solid #333;
    color: white;
}

.flex-table .table-header .table-column {
    border-top: 0;
    border-bottom: 0;
    align-items: center;
    justify-content: center;
}

.flex-table .table-row:last-of-type .table-column {
    border-bottom: 0;
}

.flex-table .table-column:first-child {
    border-left: 0;
}

.flex-table .table-column:last-child {
    border-right: 0;
}

.flex-table .table-header .table-column.order-by {
    cursor: pointer;
    flex-direction: row;
}

.flex-table .table-header .table-column.order-by.order-disabled {
    cursor: default;
}

.flex-table .table-header .table-column.order-by.desc::after,
.flex-table .table-header .table-column.order-by.asc::after {
    margin-left: 0.5rem;
    font-size: 70%;
}

.flex-table .table-header .table-column.order-by.desc::after {
    content: "\25BC";
}

.flex-table .table-header .table-column.order-by.asc::after {
    content: "\25B2";
}

.flex-column {
    flex: 100%;
    flex-grow: 1;
}

.flex-column.shrink {
    flex-basis: 0;
}

.table-column.s01,
.flex-column.s01 {
    flex: 01%;
    max-width: 01%;
    flex-grow: 0;
}

.table-column.s02,
.flex-column.s02 {
    flex: 02%;
    max-width: 02%;
    flex-grow: 0;
}

.table-column.s03,
.flex-column.s03 {
    flex: 03%;
    max-width: 03%;
    flex-grow: 0;
}

.table-column.s04,
.flex-column.s04 {
    flex: 04%;
    max-width: 04%;
    flex-grow: 0;
}

.table-column.s05,
.flex-column.s05 {
    flex: 05%;
    max-width: 05%;
    flex-grow: 0;
}

.table-column.s06,
.flex-column.s06 {
    flex: 06%;
    max-width: 06%;
    flex-grow: 0;
}

.table-column.s07,
.flex-column.s07 {
    flex: 07%;
    max-width: 07%;
    flex-grow: 0;
}

.table-column.s08,
.flex-column.s08 {
    flex: 08%;
    max-width: 08%;
    flex-grow: 0;
}

.table-column.s09,
.flex-column.s09 {
    flex: 09%;
    max-width: 09%;
    flex-grow: 0;
}

.table-column.s10,
.flex-column.s10 {
    flex: 10%;
    max-width: 10%;
    flex-grow: 0;
}

.table-column.s11,
.flex-column.s11 {
    flex: 11%;
    max-width: 11%;
    flex-grow: 0;
}

.table-column.s12,
.flex-column.s12 {
    flex: 12%;
    max-width: 12%;
    flex-grow: 0;
}

.table-column.s13,
.flex-column.s13 {
    flex: 13%;
    max-width: 13%;
    flex-grow: 0;
}

.table-column.s14,
.flex-column.s14 {
    flex: 14%;
    max-width: 14%;
    flex-grow: 0;
}

.table-column.s15,
.flex-column.s15 {
    flex: 15%;
    max-width: 15%;
    flex-grow: 0;
}

.table-column.s16,
.flex-column.s16 {
    flex: 16%;
    max-width: 16%;
    flex-grow: 0;
}

.table-column.s17,
.flex-column.s17 {
    flex: 17%;
    max-width: 17%;
    flex-grow: 0;
}

.table-column.s18,
.flex-column.s18 {
    flex: 18%;
    max-width: 18%;
    flex-grow: 0;
}

.table-column.s19,
.flex-column.s19 {
    flex: 19%;
    max-width: 19%;
    flex-grow: 0;
}

.table-column.s20,
.flex-column.s20 {
    flex: 20%;
    max-width: 20%;
    flex-grow: 0;
}

.table-column.s21,
.flex-column.s21 {
    flex: 21%;
    max-width: 21%;
    flex-grow: 0;
}

.table-column.s22,
.flex-column.s22 {
    flex: 22%;
    max-width: 22%;
    flex-grow: 0;
}

.table-column.s23,
.flex-column.s23 {
    flex: 23%;
    max-width: 23%;
    flex-grow: 0;
}

.table-column.s24,
.flex-column.s24 {
    flex: 24%;
    max-width: 24%;
    flex-grow: 0;
}

.table-column.s25,
.flex-column.s25 {
    flex: 25%;
    max-width: 25%;
    flex-grow: 0;
}

.table-column.s26,
.flex-column.s26 {
    flex: 26%;
    max-width: 26%;
    flex-grow: 0;
}

.table-column.s27,
.flex-column.s27 {
    flex: 27%;
    max-width: 27%;
    flex-grow: 0;
}

.table-column.s28,
.flex-column.s28 {
    flex: 28%;
    max-width: 28%;
    flex-grow: 0;
}

.table-column.s29,
.flex-column.s29 {
    flex: 29%;
    max-width: 29%;
    flex-grow: 0;
}

.table-column.s30,
.flex-column.s30 {
    flex: 30%;
    max-width: 30%;
    flex-grow: 0;
}

.table-column.s31,
.flex-column.s31 {
    flex: 31%;
    max-width: 31%;
    flex-grow: 0;
}

.table-column.s32,
.flex-column.s32 {
    flex: 32%;
    max-width: 32%;
    flex-grow: 0;
}

.table-column.s33,
.flex-column.s33 {
    flex: 33%;
    max-width: 33%;
    flex-grow: 0;
}

.table-column.s34,
.flex-column.s34 {
    flex: 34%;
    max-width: 34%;
    flex-grow: 0;
}

.table-column.s35,
.flex-column.s35 {
    flex: 35%;
    max-width: 35%;
    flex-grow: 0;
}

.table-column.s36,
.flex-column.s36 {
    flex: 36%;
    max-width: 36%;
    flex-grow: 0;
}

.table-column.s37,
.flex-column.s37 {
    flex: 37%;
    max-width: 37%;
    flex-grow: 0;
}

.table-column.s38,
.flex-column.s38 {
    flex: 38%;
    max-width: 38%;
    flex-grow: 0;
}

.table-column.s39,
.flex-column.s39 {
    flex: 39%;
    max-width: 39%;
    flex-grow: 0;
}

.table-column.s40,
.flex-column.s40 {
    flex: 40%;
    max-width: 40%;
    flex-grow: 0;
}

.table-column.s41,
.flex-column.s41 {
    flex: 41%;
    max-width: 41%;
    flex-grow: 0;
}

.table-column.s42,
.flex-column.s42 {
    flex: 42%;
    max-width: 42%;
    flex-grow: 0;
}

.table-column.s43,
.flex-column.s43 {
    flex: 43%;
    max-width: 43%;
    flex-grow: 0;
}

.table-column.s44,
.flex-column.s44 {
    flex: 44%;
    max-width: 44%;
    flex-grow: 0;
}

.table-column.s45,
.flex-column.s45 {
    flex: 45%;
    max-width: 45%;
    flex-grow: 0;
}

.table-column.s46,
.flex-column.s46 {
    flex: 46%;
    max-width: 46%;
    flex-grow: 0;
}

.table-column.s47,
.flex-column.s47 {
    flex: 47%;
    max-width: 47%;
    flex-grow: 0;
}

.table-column.s48,
.flex-column.s48 {
    flex: 48%;
    max-width: 48%;
    flex-grow: 0;
}

.table-column.s49,
.flex-column.s49 {
    flex: 49%;
    max-width: 49%;
    flex-grow: 0;
}

.table-column.s50,
.flex-column.s50 {
    flex: 50%;
    max-width: 50%;
    flex-grow: 0;
}

.table-column.s51,
.flex-column.s51 {
    flex: 51%;
    max-width: 51%;
    flex-grow: 0;
}

.table-column.s52,
.flex-column.s52 {
    flex: 52%;
    max-width: 52%;
    flex-grow: 0;
}

.table-column.s53,
.flex-column.s53 {
    flex: 53%;
    max-width: 53%;
    flex-grow: 0;
}

.table-column.s54,
.flex-column.s54 {
    flex: 54%;
    max-width: 54%;
    flex-grow: 0;
}

.table-column.s55,
.flex-column.s55 {
    flex: 55%;
    max-width: 55%;
    flex-grow: 0;
}

.table-column.s56,
.flex-column.s56 {
    flex: 56%;
    max-width: 56%;
    flex-grow: 0;
}

.table-column.s57,
.flex-column.s57 {
    flex: 57%;
    max-width: 57%;
    flex-grow: 0;
}

.table-column.s58,
.flex-column.s58 {
    flex: 58%;
    max-width: 58%;
    flex-grow: 0;
}

.table-column.s59,
.flex-column.s59 {
    flex: 59%;
    max-width: 59%;
    flex-grow: 0;
}

.table-column.s60,
.flex-column.s60 {
    flex: 60%;
    max-width: 60%;
    flex-grow: 0;
}

.table-column.s61,
.flex-column.s61 {
    flex: 61%;
    max-width: 61%;
    flex-grow: 0;
}

.table-column.s62,
.flex-column.s62 {
    flex: 62%;
    max-width: 62%;
    flex-grow: 0;
}

.table-column.s63,
.flex-column.s63 {
    flex: 63%;
    max-width: 63%;
    flex-grow: 0;
}

.table-column.s64,
.flex-column.s64 {
    flex: 64%;
    max-width: 64%;
    flex-grow: 0;
}

.table-column.s65,
.flex-column.s65 {
    flex: 65%;
    max-width: 65%;
    flex-grow: 0;
}

.table-column.s66,
.flex-column.s66 {
    flex: 66%;
    max-width: 66%;
    flex-grow: 0;
}

.table-column.s67,
.flex-column.s67 {
    flex: 67%;
    max-width: 67%;
    flex-grow: 0;
}

.table-column.s68,
.flex-column.s68 {
    flex: 68%;
    max-width: 68%;
    flex-grow: 0;
}

.table-column.s69,
.flex-column.s69 {
    flex: 69%;
    max-width: 69%;
    flex-grow: 0;
}

.table-column.s70,
.flex-column.s70 {
    flex: 70%;
    max-width: 70%;
    flex-grow: 0;
}

.table-column.s71,
.flex-column.s71 {
    flex: 71%;
    max-width: 71%;
    flex-grow: 0;
}

.table-column.s72,
.flex-column.s72 {
    flex: 72%;
    max-width: 72%;
    flex-grow: 0;
}

.table-column.s73,
.flex-column.s73 {
    flex: 73%;
    max-width: 73%;
    flex-grow: 0;
}

.table-column.s74,
.flex-column.s74 {
    flex: 74%;
    max-width: 74%;
    flex-grow: 0;
}

.table-column.s75,
.flex-column.s75 {
    flex: 75%;
    max-width: 75%;
    flex-grow: 0;
}

.table-column.s76,
.flex-column.s76 {
    flex: 76%;
    max-width: 76%;
    flex-grow: 0;
}

.table-column.s77,
.flex-column.s77 {
    flex: 77%;
    max-width: 77%;
    flex-grow: 0;
}

.table-column.s78,
.flex-column.s78 {
    flex: 78%;
    max-width: 78%;
    flex-grow: 0;
}

.table-column.s79,
.flex-column.s79 {
    flex: 79%;
    max-width: 79%;
    flex-grow: 0;
}

.table-column.s80,
.flex-column.s80 {
    flex: 80%;
    max-width: 80%;
    flex-grow: 0;
}

.table-column.s81,
.flex-column.s81 {
    flex: 81%;
    max-width: 81%;
    flex-grow: 0;
}

.table-column.s82,
.flex-column.s82 {
    flex: 82%;
    max-width: 82%;
    flex-grow: 0;
}

.table-column.s83,
.flex-column.s83 {
    flex: 83%;
    max-width: 83%;
    flex-grow: 0;
}

.table-column.s84,
.flex-column.s84 {
    flex: 84%;
    max-width: 84%;
    flex-grow: 0;
}

.table-column.s85,
.flex-column.s85 {
    flex: 85%;
    max-width: 85%;
    flex-grow: 0;
}

.table-column.s86,
.flex-column.s86 {
    flex: 86%;
    max-width: 86%;
    flex-grow: 0;
}

.table-column.s87,
.flex-column.s87 {
    flex: 87%;
    max-width: 87%;
    flex-grow: 0;
}

.table-column.s88,
.flex-column.s88 {
    flex: 88%;
    max-width: 88%;
    flex-grow: 0;
}

.table-column.s89,
.flex-column.s89 {
    flex: 89%;
    max-width: 89%;
    flex-grow: 0;
}

.table-column.s90,
.flex-column.s90 {
    flex: 90%;
    max-width: 90%;
    flex-grow: 0;
}

.table-column.s91,
.flex-column.s91 {
    flex: 91%;
    max-width: 91%;
    flex-grow: 0;
}

.table-column.s92,
.flex-column.s92 {
    flex: 92%;
    max-width: 92%;
    flex-grow: 0;
}

.table-column.s93,
.flex-column.s93 {
    flex: 93%;
    max-width: 93%;
    flex-grow: 0;
}

.table-column.s94,
.flex-column.s94 {
    flex: 94%;
    max-width: 94%;
    flex-grow: 0;
}

.table-column.s95,
.flex-column.s95 {
    flex: 95%;
    max-width: 95%;
    flex-grow: 0;
}

.table-column.s96,
.flex-column.s96 {
    flex: 96%;
    max-width: 96%;
    flex-grow: 0;
}

.table-column.s97,
.flex-column.s97 {
    flex: 97%;
    max-width: 97%;
    flex-grow: 0;
}

.table-column.s98,
.flex-column.s98 {
    flex: 98%;
    max-width: 98%;
    flex-grow: 0;
}

.table-column.s99,
.flex-column.s99 {
    flex: 99%;
    max-width: 99%;
    flex-grow: 0;
}

.table-column.s100,
.flex-column.s100 {
    flex: 100%;
    max-width: 100%;
    flex-grow: 0;
}

.table-column {
    --min-column-width: 0;
}

.table-column.s01 {
    min-width: calc(1 * var(--min-column-width));
}

.table-column.s02 {
    min-width: calc(2 * var(--min-column-width));
}

.table-column.s03 {
    min-width: calc(3 * var(--min-column-width));
}

.table-column.s04 {
    min-width: calc(4 * var(--min-column-width));
}

.table-column.s05 {
    min-width: calc(5 * var(--min-column-width));
}

.table-column.s06 {
    min-width: calc(6 * var(--min-column-width));
}

.table-column.s07 {
    min-width: calc(7 * var(--min-column-width));
}

.table-column.s08 {
    min-width: calc(8 * var(--min-column-width));
}

.table-column.s09 {
    min-width: calc(9 * var(--min-column-width));
}

.table-column.s10 {
    min-width: calc(10 * var(--min-column-width));
}

.table-column.s11 {
    min-width: calc(11 * var(--min-column-width));
}

.table-column.s12 {
    min-width: calc(12 * var(--min-column-width));
}

.table-column.s13 {
    min-width: calc(13 * var(--min-column-width));
}

.table-column.s14 {
    min-width: calc(14 * var(--min-column-width));
}

.table-column.s15 {
    min-width: calc(15 * var(--min-column-width));
}

.table-column.s16 {
    min-width: calc(16 * var(--min-column-width));
}

.table-column.s17 {
    min-width: calc(17 * var(--min-column-width));
}

.table-column.s18 {
    min-width: calc(18 * var(--min-column-width));
}

.table-column.s19 {
    min-width: calc(19 * var(--min-column-width));
}

.table-column.s20 {
    min-width: calc(20 * var(--min-column-width));
}

.table-column.s21 {
    min-width: calc(21 * var(--min-column-width));
}

.table-column.s22 {
    min-width: calc(22 * var(--min-column-width));
}

.table-column.s23 {
    min-width: calc(23 * var(--min-column-width));
}

.table-column.s24 {
    min-width: calc(24 * var(--min-column-width));
}

.table-column.s25 {
    min-width: calc(25 * var(--min-column-width));
}

.table-column.s26 {
    min-width: calc(26 * var(--min-column-width));
}

.table-column.s27 {
    min-width: calc(27 * var(--min-column-width));
}

.table-column.s28 {
    min-width: calc(28 * var(--min-column-width));
}

.table-column.s29 {
    min-width: calc(29 * var(--min-column-width));
}

.table-column.s30 {
    min-width: calc(30 * var(--min-column-width));
}

.table-column.s31 {
    min-width: calc(31 * var(--min-column-width));
}

.table-column.s32 {
    min-width: calc(32 * var(--min-column-width));
}

.table-column.s33 {
    min-width: calc(33 * var(--min-column-width));
}

.table-column.s34 {
    min-width: calc(34 * var(--min-column-width));
}

.table-column.s35 {
    min-width: calc(35 * var(--min-column-width));
}

.table-column.s36 {
    min-width: calc(36 * var(--min-column-width));
}

.table-column.s37 {
    min-width: calc(37 * var(--min-column-width));
}

.table-column.s38 {
    min-width: calc(38 * var(--min-column-width));
}

.table-column.s39 {
    min-width: calc(39 * var(--min-column-width));
}

.table-column.s40 {
    min-width: calc(40 * var(--min-column-width));
}

.table-column.s41 {
    min-width: calc(41 * var(--min-column-width));
}

.table-column.s42 {
    min-width: calc(42 * var(--min-column-width));
}

.table-column.s43 {
    min-width: calc(43 * var(--min-column-width));
}

.table-column.s44 {
    min-width: calc(44 * var(--min-column-width));
}

.table-column.s45 {
    min-width: calc(45 * var(--min-column-width));
}

.table-column.s46 {
    min-width: calc(46 * var(--min-column-width));
}

.table-column.s47 {
    min-width: calc(47 * var(--min-column-width));
}

.table-column.s48 {
    min-width: calc(48 * var(--min-column-width));
}

.table-column.s49 {
    min-width: calc(49 * var(--min-column-width));
}

.table-column.s50 {
    min-width: calc(50 * var(--min-column-width));
}

.table-column.s51 {
    min-width: calc(51 * var(--min-column-width));
}

.table-column.s52 {
    min-width: calc(52 * var(--min-column-width));
}

.table-column.s53 {
    min-width: calc(53 * var(--min-column-width));
}

.table-column.s54 {
    min-width: calc(54 * var(--min-column-width));
}

.table-column.s55 {
    min-width: calc(55 * var(--min-column-width));
}

.table-column.s56 {
    min-width: calc(56 * var(--min-column-width));
}

.table-column.s57 {
    min-width: calc(57 * var(--min-column-width));
}

.table-column.s58 {
    min-width: calc(58 * var(--min-column-width));
}

.table-column.s59 {
    min-width: calc(59 * var(--min-column-width));
}

.table-column.s60 {
    min-width: calc(60 * var(--min-column-width));
}

.table-column.s61 {
    min-width: calc(61 * var(--min-column-width));
}

.table-column.s62 {
    min-width: calc(62 * var(--min-column-width));
}

.table-column.s63 {
    min-width: calc(63 * var(--min-column-width));
}

.table-column.s64 {
    min-width: calc(64 * var(--min-column-width));
}

.table-column.s65 {
    min-width: calc(65 * var(--min-column-width));
}

.table-column.s66 {
    min-width: calc(66 * var(--min-column-width));
}

.table-column.s67 {
    min-width: calc(67 * var(--min-column-width));
}

.table-column.s68 {
    min-width: calc(68 * var(--min-column-width));
}

.table-column.s69 {
    min-width: calc(69 * var(--min-column-width));
}

.table-column.s70 {
    min-width: calc(70 * var(--min-column-width));
}

.table-column.s71 {
    min-width: calc(71 * var(--min-column-width));
}

.table-column.s72 {
    min-width: calc(72 * var(--min-column-width));
}

.table-column.s73 {
    min-width: calc(73 * var(--min-column-width));
}

.table-column.s74 {
    min-width: calc(74 * var(--min-column-width));
}

.table-column.s75 {
    min-width: calc(75 * var(--min-column-width));
}

.table-column.s76 {
    min-width: calc(76 * var(--min-column-width));
}

.table-column.s77 {
    min-width: calc(77 * var(--min-column-width));
}

.table-column.s78 {
    min-width: calc(78 * var(--min-column-width));
}

.table-column.s79 {
    min-width: calc(79 * var(--min-column-width));
}

.table-column.s80 {
    min-width: calc(80 * var(--min-column-width));
}

.table-column.s81 {
    min-width: calc(81 * var(--min-column-width));
}

.table-column.s82 {
    min-width: calc(82 * var(--min-column-width));
}

.table-column.s83 {
    min-width: calc(83 * var(--min-column-width));
}

.table-column.s84 {
    min-width: calc(84 * var(--min-column-width));
}

.table-column.s85 {
    min-width: calc(85 * var(--min-column-width));
}

.table-column.s86 {
    min-width: calc(86 * var(--min-column-width));
}

.table-column.s87 {
    min-width: calc(87 * var(--min-column-width));
}

.table-column.s88 {
    min-width: calc(88 * var(--min-column-width));
}

.table-column.s89 {
    min-width: calc(89 * var(--min-column-width));
}

.table-column.s90 {
    min-width: calc(90 * var(--min-column-width));
}

.table-column.s91 {
    min-width: calc(91 * var(--min-column-width));
}

.table-column.s92 {
    min-width: calc(92 * var(--min-column-width));
}

.table-column.s93 {
    min-width: calc(93 * var(--min-column-width));
}

.table-column.s94 {
    min-width: calc(94 * var(--min-column-width));
}

.table-column.s95 {
    min-width: calc(95 * var(--min-column-width));
}

.table-column.s96 {
    min-width: calc(96 * var(--min-column-width));
}

.table-column.s97 {
    min-width: calc(97 * var(--min-column-width));
}

.table-column.s98 {
    min-width: calc(98 * var(--min-column-width));
}

.table-column.s99 {
    min-width: calc(99 * var(--min-column-width));
}

.table-column.s100 {
    min-width: calc(100 * var(--min-column-width));
}

/* .flex-table::after {
    content: " ";
    width: 100%;
    height: 1em;
    background: var(--color-primary);
    border-bottom-left-radius: 0.5em;
    border-bottom-right-radius: 0.5em;
} */

.flex-row.flex-bottom,
.table-row.flex-bottom {
    align-items: flex-end;
}

.flex-row.flex-top,
.table-row.flex-top {
    align-items: flex-start;
}

.flex-row.flex-left,
.table-row.flex-left,
.flex-left {
    justify-content: flex-start;
}

.btn-group.flex-right,
.flex-row.flex-right,
.table-row.flex-right {
    justify-content: flex-end;
}

.flex-row.flex-wrap {
    flex-wrap: wrap;
}

.flex-center {
    align-items: center;
    justify-content: center;
}

.flex-column.flex-bottom,
.table-column.flex-bottom {
    justify-content: flex-end;
}

.flex-column.flex-top,
.table-column.flex-top {
    justify-content: flex-start;
}

.flex-column.flex-right,
.table-column.flex-right {
    align-items: flex-end;
}

.flex-column.flex-left,
.table-column.flex-left {
    align-items: flex-start;
}

.flex-column.flex-evenly,
.table-column.flex-evenly {
    justify-content: space-evenly;
}

.table-row.table-row-highlight.hl-green {
    background: #00b34754;
}

.table-row.table-row-highlight.hl-green:hover {
    background: #00b34870;
}

.dark-theme .table-row.table-row-highlight.hl-green {
    background: #7bf07120;
}

.dark-theme .table-row.table-row-highlight.hl-green:hover {
    background: #7bf07130;
}

.table-column {
    justify-content: center;
}

.hidden {
    opacity: 0;
}

.not-displayed {
    display: none !important;
}

label {
    color: #444;
}

.dark-theme label {
    color: white;
}

label.required:not(.ignore-required)::after {
    content: "  *";
    color: red;
}

input:not([type="radio"], [type="checkbox"]),
select,
textarea,
.file-input-group label {
    display: block;
    width: 100%;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    color: #383e44;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    transition:
        border-color 0.15s ease-in-out,
        box-shadow 0.15s ease-in-out;
    font-size: 1em;
    padding: 0px 5px;
    overflow: visible;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0px;
    text-shadow: none;
    text-align: start;
    appearance: textfield;
    writing-mode: horizontal-tb;
    -webkit-writing-mode: horizontal-tb;
    text-rendering: auto;
    -webkit-rtl-ordering: logical;
    outline-color: var(--color-outline);
    outline-width: 1px;
}

input:not([type="radio"], [type="checkbox"]),
select,
.file-input-group label,
.file-input-group button {
    height: 1.8em;
    line-height: 1.8em;
}

.dark-theme input:not([type="radio"], [type="checkbox"]),
.dark-theme select,
.dark-theme textarea,
.dark-theme .file-input-group label {
    color: white;
    background-color: #555;
    border: 1px solid #222;
}

input[type="radio"],
input[type="checkbox"] {
    cursor: default;
    height: 0.9em;
    line-height: 0.9em;
    margin-top: 0.45em;
    margin-bottom: 0.45em;
}

label > input[type="radio"],
label > input[type="checkbox"] {
    margin-right: 0.5em;
}

textarea,
input:not([type="radio"], [type="checkbox"]) {
    cursor: text;
}

textarea {
    height: initial;
    line-height: 1.3em;
    resize: vertical;
    padding: 2px 5px;
}

textarea.auto-resize,
textarea.unresizable {
    resize: none;
}

textarea.auto-resize {
    overflow-y: hidden;
}

input[readonly],
select[readonly],
textarea[readonly],
input.readonly,
select.readonly,
textarea.readonly {
    /* pointer-events: none; */
    caret-color: transparent;
}

.dark-theme .file-input-group label.disabled,
.dark-theme input[readonly],
.dark-theme select[readonly],
.dark-theme input:disabled,
.dark-theme textarea:disabled,
.dark-theme select:disabled {
    background-color: #888;
}

input[readonly],
select[readonly],
textarea[readonly],
input:disabled,
select:disabled,
textarea:disabled {
    background-color: #e9e9e9;
}

.file-input-group {
    display: flex;
    width: 100%;
    position: relative;
    height: 1.8em;
}

.file-input-group * {
    position: absolute;
}

.file-input-group label::after,
.file-input-group button {
    cursor: pointer;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    border: 1px solid #ced4da;
    border-radius: 0 0.25rem 0.25rem 0;

    top: 0;
    width: min(7rem, 20%);
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;
}

.file-input-group label {
    pointer-events: none;
    overflow: hidden;
    word-wrap: normal;
    white-space: pre;
}

.file-input-group label::after {
    content: "Selecionar";
    background: #eee;
    border: none;
    border-left: 1px solid rgba(0, 0, 0, 0.075);
    position: absolute;
    right: 0;
    pointer-events: auto;
}

.dark-theme .file-input-group label::after {
    background: #111;
}

.file-input-group label:hover::after {
    background: #fafafa;
}

.dark-theme .file-input-group label:hover::after {
    background: #151515;
}

.file-input-group label:active::after {
    background: #e0e0e0;
}

.dark-theme .file-input-group label:active::after {
    background: #000;
}

.file-input-group button.view {
    right: 0;
    z-index: 1;
}

.file-input-group button.delete.active ~ button.view {
    right: calc(min(7rem, 20%) - 0.5rem);
    padding-right: 0.5rem;
}

.file-input-group button.delete {
    right: 0;
    z-index: 2;
}

.file-input-group button {
    display: none;
    outline: none;
    border: none;
    color: white;
}

.file-input-group button.active {
    display: block;
}

.file-input-group input[type="file"] {
    opacity: 0;
    pointer-events: none;
}

.searchable-container {
    --background-color: #f0f0f0;
    --text-color: black;
    --scroll-track-color: #f0f0f0;
    --scroll-thumb-color: var(--color-primary);
    --li-hover-background-color: #f7f7f7;
    --li-hover-color: #black;

    position: relative;
    z-index: 3;
    width: 100%;
}

.dark-theme .searchable-container {
    --background-color: #555;
    --text-color: white;
    --scroll-track-color: #555;
    --scroll-thumb-color: var(--color-primary);
    --li-hover-background-color: #333;
}

.searchable-container input,
.searchable-container select {
    width: 100%;
}

.searchable-container select {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
}

.searchable-container .searchable-list {
    opacity: 0;
    pointer-events: none;
    padding: 0.2rem 0;
    list-style: none;
    position: absolute;
    left: 0;
    min-width: 100%;
    max-width: 150%;
    background-color: var(--background-color);
    top: calc(100% + 0.1rem);
    max-height: 12rem;
    overflow-x: visible;
    overflow-y: auto;
    scrollbar-width: normal;
    scrollbar-color: var(--scroll-thumb-color) var(--scroll-track-color);
    z-index: 5;
}

.searchable-container:focus-within .searchable-list,
.searchable-container .searchable-list.display {
    opacity: 1;
    pointer-events: all;
}

.searchable-container .searchable-list::-webkit-scrollbar {
    width: 0.5rem;
}

.searchable-container .searchable-list::-webkit-scrollbar-track {
    background-color: var(--scroll-track-color);
}

.searchable-container .searchable-list::-webkit-scrollbar-thumb {
    background-color: var(--scroll-thumb-color);
    border-radius: 0.25rem;
}

.searchable-container .searchable-list li {
    padding: 0.1rem 0.2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--text-color);
}

.searchable-container .searchable-list li.selected,
.searchable-container .searchable-list li:hover {
    background-color: var(--li-hover-background-color);
    color: var(--li-hover-color);
}

.dark-theme .searchable-container .searchable-list li.selected,
.dark-theme .searchable-container .searchable-list li:hover {
    background-color: #fff3;
    color: white;
}

.multiple-select-container {
    --background-color: #f7f7f7;
    --text-color: black;
    --scroll-track-color: #f7f7f7;
    --scroll-thumb-color: var(--color-primary);
    --li-selected-background-color: var(--color-primary);
    --li-hover-background-color: var(--color-primary-hover);
    --li-selected-color: white;
    --li-hover-color: white;

    position: relative;
}

.dark-theme .searchable-container .searchable-list li.selected,
.dark-theme .searchable-container .searchable-list li:hover {
    background-color: #fff3;
    color: white;
}

.multiple-select-container input,
.multiple-select-container select {
    width: 100%;
}

.multiple-select-container::after {
    content: "▼";
    position: absolute;
    top: 0.2rem;
    right: 0.2rem;
    width: 1.8rem;
    height: calc(100% - 0.4rem);
    display: grid;
    place-items: center;
    background: white;
}

.multiple-select-container select {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
}

.multiple-select-container .multiple-select-list {
    opacity: 0;
    pointer-events: none;
    padding: 0.2rem 0;
    list-style: none;
    position: absolute;
    left: 0;
    min-width: 100%;
    max-width: 150%;
    background-color: var(--background-color);
    top: calc(100% + 0.1rem);
    max-height: 12rem;
    overflow-x: visible;
    overflow-y: auto;
    scrollbar-width: normal;
    scrollbar-color: var(--scroll-thumb-color) var(--scroll-track-color);
    z-index: 5;
}

.multiple-select-container:focus-within .multiple-select-list,
.multiple-select-container .multiple-select-list:focus-within,
.multiple-select-container .multiple-select-list.display,
.multiple-select-container .multiple-select-list:focus {
    opacity: 1;
    pointer-events: all;
}

.multiple-select-container .multiple-select-list::-webkit-scrollbar {
    width: 0.5rem;
}

.multiple-select-container .multiple-select-list::-webkit-scrollbar-track {
    background-color: var(--scroll-track-color);
}

.multiple-select-container .multiple-select-list::-webkit-scrollbar-thumb {
    background-color: var(--scroll-thumb-color);
    border-radius: 0.25rem;
}

.multiple-select-container .multiple-select-list li {
    padding: 0.1rem 0.2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--text-color);
    transition: 0.2s;
    cursor: pointer;
}

.multiple-select-container .multiple-select-list li:hover {
    background-color: var(--li-hover-background-color);
    color: var(--li-hover-color);
}

.multiple-select-container .multiple-select-list li.selected {
    background-color: var(--li-selected-background-color);
    color: var(--li-selected-color);
}

.dark-theme .searchable-container .searchable-list li.selected,
.dark-theme .searchable-container .searchable-list li:hover {
    background-color: #fff3;
    color: white;
}

input[type="date"].no-year {
    position: relative;
    color: white;
}

input[type="date"].no-year:before {
    position: absolute;
    content: attr(data-display-date);
    display: inline-block;
    color: #383e44;
}

input[type="date"].no-year::-webkit-datetime-edit,
input[type="date"].no-year::-webkit-inner-spin-button,
input[type="date"].no-year::-webkit-clear-button {
    display: none;
}

input[type="date"].no-year::-webkit-calendar-picker-indicator {
    position: absolute;
    right: 0;
    color: black;
    opacity: 1;
}

[contenteditable]:empty {
    text-align: center;
}

[contenteditable]:empty:before {
    content: attr(data-placeholder);
    opacity: 0.7;
}

.btn-group {
    display: flex;
    padding-top: 1rem;
    gap: 0.5rem;
}

.btn-group:not(.ignore-positioning) {
    margin-top: auto;
}

.btn {
    min-width: 7em;
    padding: 0.39em 1em;
    outline: none;
    border-radius: 0.5em;
    border: none;
    color: white;
    box-shadow:
        inset -1em -1em 3em 0 rgba(255, 255, 255, 0.267),
        inset 0.1em 0.1em 3em 0 rgba(0, 0, 0, 0.171);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn.hidden {
    cursor: default;
    pointer-events: none;
    user-select: none;
}

a.btn {
    text-decoration: none;
}

.btn[disabled] {
    pointer-events: none;
    filter: grayscale(0.6);
    user-select: none;
}

.btn:active,
.file-input-group button:active {
    box-shadow: inset 0 0 5em 0 rgba(0, 0, 0, 0.171);
}

.btn.primary,
.file-input-group button.view {
    background-color: var(--color-primary);
}

.btn.primary:hover,
.file-input-group button.view:hover {
    background-color: var(--color-primary-hover);
}

.btn.primary:active,
.file-input-group button.view:active {
    background-color: var(--color-primary-hold);
}

.btn.secondary,
.file-input-group button.delete {
    background-color: var(--color-secondary);
}

.btn.secondary:hover,
.file-input-group button.delete:hover {
    background-color: var(--color-secondary-hover);
}

.btn.secondary:active,
.file-input-group button.delete:active {
    background-color: var(--color-secondary-hold);
}

.btn.tertiary {
    background-color: var(--color-tertiary);
}

.btn.tertiary:hover {
    background-color: var(--color-tertiary-hover);
}

.btn.tertiary:active {
    background-color: var(--color-tertiary-hold);
}

.btn.quaternary {
    background-color: var(--color-quaternary);
}

.btn.quaternary:hover {
    background-color: var(--color-quaternary-hover);
}

.btn.quaternary:active {
    background-color: var(--color-quaternary-hold);
}

.btn.large {
    padding: 1em;
}

.btn.small {
    min-width: 0;
}

.btn.fill-w {
    width: 100%;
}

.content-box {
    background-color: #fcfcfc;
    display: flex;
    width: 80vw;
    max-height: 300vh;
    box-shadow:
        -0.3em -0.3em 1em 0 rgba(255, 255, 255, 0.7),
        0.5em 0.5em 1em 0 rgba(70, 70, 70, 0.12);
    flex-direction: column;
    padding: 1em;
    border-radius: 1em;
}

body.dark-theme .content-box {
    background-color: #000;
    box-shadow:
        -0.3em -0.3em 1em 0 rgba(0, 0, 0, 0.7),
        0.5em 0.5em 1em 0 rgba(20, 20, 20, 0.12);
}

.fill-height {
    width: 100%;
    flex: 100%;
    flex-grow: 1;
}

h1,
h2,
h3,
h4 {
    margin-top: 0.3em;
    color: var(--color-primary);
}

h1 {
    font-size: 2em;
}

h2 {
    font-size: 1.5em;
}

h3 {
    font-size: 1em;
}

h4 {
    font-size: 0.8em;
}

h1.center,
h2.center,
h3.center,
h4.center {
    text-align: center;
}

.actions-col {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.actions-col .edit,
.actions-col .delete,
.actions-col .sign,
.actions-col .view,
.actions-col .list,
.actions-col .down,
.actions-col .left,
.actions-col .right,
.actions-col .document,
.actions-col .confirm {
    font-family: "Font Awesome 5 Free";
    display: flex;
    position: relative;
    white-space: nowrap;
    width: 1.5em;
    font-size: 0.9em;
    cursor: pointer;
    margin: 0 2px;
}

.actions-col .edit::after {
    content: "\f044";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-primary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .confirm::after {
    content: "\f00c";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-primary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .sign::after {
    content: "\f5b7";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-secondary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .delete::after {
    content: "\f2ed";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-quaternary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .view::after {
    content: "\f06e";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-tertiary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .list::after {
    content: "\f03a";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-tertiary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .down::after {
    content: "\f019";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-tertiary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .left::after {
    content: "\f060";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-tertiary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .right::after {
    content: "\f061";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-tertiary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.actions-col .document::after {
    content: "\f1c1";
    text-decoration: none;
    font-weight: bold;
    color: var(--color-secondary) !important;
    position: absolute;
    user-select: none;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

ul {
    list-style-position: inside;
    list-style: none;
}

.page-navigation-container {
    --navigation-button-size: 2rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: var(--navigation-button-size);
    margin-top: 0.5rem;
}

.page-navigation-container a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--navigation-button-size);
    height: var(--navigation-button-size);
    border-radius: 50%;
    font-size: 1rem;
    background-color: var(--color-primary);
    color: white;
    transition: 0.2s;
    user-select: none;
}

.page-navigation-container a.four-digits {
    font-size: 0.9rem;
}

.page-navigation-container a.five-digits {
    font-size: 0.7rem;
}

.page-navigation-container a:hover {
    background-color: var(--color-primary-hover);
}

.page-navigation-container a:active {
    background-color: var(--color-primary-hold);
}

.page-navigation-container a[disabled] {
    background-color: var(--color-secondary);
    pointer-events: none;
}

.tab-selector {
    display: flex;
    flex-direction: row;
    width: 100%;
    border-bottom: 1px solid #444;
}

.tab-selector li {
    flex: 100%;
    display: inline-flex;
    justify-self: center;
    align-items: center;
}

.tab-selector li a {
    width: 100%;
    height: 100%;
    text-align: center;
    padding: 0.5rem 0.1rem;
    border-top: 1px solid #444;
    border-right: 1px solid #444;
    outline: none;
    text-decoration: none;
    color: #444;
    cursor: pointer;
    transition: 0.3s;
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dark-theme .tab-selector li a {
    color: white !important;
    background-color: black;
}

.tab-selector li a:hover {
    color: #000;
    background-color: #007eb311;
}

.tab-selector li a.active {
    color: white;
    background-color: var(--color-primary);
}

.tab-selector li:first-child a {
    border-left: 1px solid #444;
    border-top-left-radius: 1rem;
}

.tab-selector li:last-child a {
    border-top-right-radius: 1rem;
}

.tab-container {
    position: relative;
    width: 100%;
    min-height: 10rem;
    flex: 100%;
    flex-grow: 1;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    padding: 0.5rem 0;
    border: 1px solid black;
}

.tab-container .tab-page {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    flex-grow: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 0 0.5rem;
}

.mt-1 {
    margin-top: 0.1rem;
}

.mb-1 {
    margin-bottom: 0.1rem;
}

.ml-1 {
    margin-left: 0.1rem;
}

.mr-1 {
    margin-right: 0.1rem;
}

.mt-2 {
    margin-top: 0.2rem;
}

.mb-2 {
    margin-bottom: 0.2rem;
}

.ml-2 {
    margin-left: 0.2rem;
}

.mr-2 {
    margin-right: 0.2rem;
}

.mt-3 {
    margin-top: 0.3rem;
}

.mb-3 {
    margin-bottom: 0.3rem;
}

.ml-3 {
    margin-left: 0.3rem;
}

.mr-3 {
    margin-right: 0.3rem;
}

.mt-4 {
    margin-top: 0.4rem;
}

.mb-4 {
    margin-bottom: 0.4rem;
}

.ml-4 {
    margin-left: 0.4rem;
}

.mr-4 {
    margin-right: 0.4rem;
}

.mt-5 {
    margin-top: 0.5rem;
}

.mb-5 {
    margin-bottom: 0.5rem;
}

.ml-5 {
    margin-left: 0.5rem;
}

.mr-5 {
    margin-right: 0.5rem;
}

.mt-6 {
    margin-top: 0.6rem;
}

.mb-6 {
    margin-bottom: 0.6rem;
}

.ml-6 {
    margin-left: 0.6rem;
}

.mr-6 {
    margin-right: 0.6rem;
}

.mt-7 {
    margin-top: 0.7rem;
}

.mb-7 {
    margin-bottom: 0.7rem;
}

.ml-7 {
    margin-left: 0.7rem;
}

.mr-7 {
    margin-right: 0.7rem;
}

.mt-8 {
    margin-top: 0.8rem;
}

.mb-8 {
    margin-bottom: 0.8rem;
}

.ml-8 {
    margin-left: 0.8rem;
}

.mr-8 {
    margin-right: 0.8rem;
}

.mt-9 {
    margin-top: 0.9rem;
}

.mb-9 {
    margin-bottom: 0.9rem;
}

.ml-9 {
    margin-left: 0.9rem;
}

.mr-9 {
    margin-right: 0.9rem;
}

.mt-10 {
    margin-top: 1rem;
}

.mb-10 {
    margin-bottom: 1rem;
}

.ml-10 {
    margin-left: 1rem;
}

.mr-10 {
    margin-right: 1rem;
}

.no-border {
    border: none !important;
}

.no-padding {
    padding: 0 !important;
}

.bold {
    font-weight: bold;
}

#change-password-form input:not(:last-child) {
    margin-bottom: 0.5rem;
}

.swal2-container input[class^="swal2"],
.swal2-container select[class^="swal2"] {
    width: unset !important;
    height: unset !important;
    line-height: unset !important;
}

.swal2-close {
    outline: none !important;
    box-shadow: none !important;
    transition: 0.2s !important;
}

.swal2-close:active {
    color: #ee4444 !important;
    background-color: #0001 !important;
}

body::before {
    content: " ";
    background-color: #0007;

    position: absolute;
    top: 0;
    left: 0;
    z-index: 998;

    width: 100%;
    height: 100%;

    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s;
}

body::after {
    content: " ";
    border: 0.5rem solid #fff;
    border-left-color: var(--color-primary);
    border-radius: 50%;

    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(0deg);
    z-index: 999;

    width: min(20vw, 5rem);
    height: min(20vw, 5rem);

    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s;

    animation: spinner 1s linear infinite;
}

body.loading * {
    pointer-events: none;
}

body.loading::before {
    pointer-events: all;
    opacity: 1;
}

body.loading::after {
    pointer-events: all;
    opacity: 1;
}

@keyframes spinner {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@media (max-width: 641px) {
    * {
        font-size: 13px;
    }

    .header {
        height: var(--header-size);
    }

    .header > *:not(.dados-entidade) {
        display: none;
    }

    .header .dados-entidade {
        max-width: 100vw;
    }

    .header .dados-entidade h2 {
        font-size: 1.1rem !important;
    }

    .header .dados-entidade p {
        font-size: 0.9rem !important;
    }

    .modal.active {
        width: 95vw !important;
    }

    .sidebar {
        position: absolute;
        height: 100%;
        background-color: white;
    }

    .content {
        margin-left: calc(calc(var(--header-size) / 2) + 1rem);
    }

    .flex-row {
        flex-wrap: wrap;
        flex-direction: column;
        gap: 0.4rem;
    }

    .flex-column {
        flex: 1 !important;
        max-width: unset !important;
        padding: 0;
    }

    .btn {
        padding: 0.39em 0.39em !important;
        min-width: unset !important;
    }

    .btn-group .btn {
        flex-grow: 1;
        flex-shrink: 1;
    }

    .flex-table {
        padding: 0;
    }

    .flex-table::before {
        left: 0;
    }

    .table-column {
        --min-column-width: 0.7rem;
    }

    .page-navigation-container {
        --navigation-button-size: 1.5rem;
        gap: 0.3rem;
    }

    .page-navigation-container a {
        font-size: 0.7rem;
    }

    @-moz-document url-prefix() {
        .flex-table .table-content {
            margin-right: 0.5rem;
        }
    }
}
