:root {
    --palette-accent: #0095da;
    --palette-accent-light: #10a5ea;
    --palette-accent-dark: #10a5ea;
    --palette-primary-light: var(--palette-accent-light);
    --palette-primary-main: var(--palette-accent);
    --palette-primary-dark: #34495e;
    --palette-secondary-light: #4a6785;
    --palette-secondary-main: #34495e;
    --palette-secondary-dark: #273544;
    --palette-error-light: #e57373;
    --palette-error-main: #f44336;
    --palette-error-dark: #d32f2f;
    --palette-warning-light: #ffb74d;
    --palette-warning-main: #ff9800;
    --palette-warning-dark: #f57c00;
    --palette-info-light: #64b5f6;
    --palette-info-main: #2196f3;
    --palette-info-dark: #1976d2;
    --palette-success-light: #81c784;
    --palette-success-main: #4caf50;
    --palette-success-dark: #388e3c;
    --palette-pink-light: #f6a5c0;
    --palette-pink-main: #f48fb1;
    --palette-pink-dark: #aa647b;
}

body {
    margin: 0;
    background: #1f1f1f;
    font-family: Roboto, sans-serif;
    color: white;
    font-size: 14px;
    font-weight: 400;
}

.egzotech-logo {
    background-image: url(../images/icon.png);
    width: 40px;
    height: 40px;
    background-size: contain;
}

.top-bar {
    background: #2f2f2f;
    display: flex;
    align-items: center;
    height: 50px;
    border-bottom: 1px solid #2f2f2f;
    box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.4);
}

/* a */
a {
    color: var(--palette-accent);
    text-decoration: none;
}

a:hover {
    color: var(--palette-accent-light);
}

/* button / .button */
button,
.button {
    --primary-color: var(--palette-accent);
    --highlight-color: var(--palette-accent-light);
    --inactive-color: #5f5f5f;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-family: Roboto, sans-serif;
    font-weight: 500;
    padding: 0px 10px;
    height: 26px;
    border: none;
    outline: none;
    cursor: pointer;
    font-size: 13px;
    /* background-color: #2a3eb1; */
    background-color: var(--primary-color);
    color: white;
    box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.4);
    user-select: none;
    box-sizing: border-box;
    white-space: nowrap;
}

button:active,
.button:active {
    background-color: var(--highlight-color);
}

button.flat,
.button.flat {
    /* background-color: #2a3eb1; */
    background-color: transparent;
    color: white;
    box-shadow: none;
    border-bottom: 2px solid var(--primary-color);
    transition: background-color 0.25s;
}

button.icon:not(.flat),
.button.icon:not(.flat) {
    border-radius: 100%;
    width: 34px;
    height: 34px;
    font-family: 'Material Icons';
    font-size: 24px;
}

button.icon.flat,
.button.icon.flat {
    background-color: transparent;
    color: white;
    box-shadow: none;
    border-bottom: 2px solid var(--primary-color);

    width: 34px;
    height: 34px;
    font-family: 'Material Icons';
    font-size: 24px;
    transition: background-color 0.25s;
    padding: 0;
}

button.flat.borderless,
.button.flat.borderless {
    border-bottom: none;
    text-transform: uppercase;
}

button.icon.flat.borderless,
.button.icon.flat.borderless {
    border-radius: 100%;
    text-transform: none;
}

button.flat:hover,
.button.flat:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

button.flat:active,
.button.flat:active {
    transition: none;
    border-bottom-color: var(--highlight-color);
    background-color: rgba(255, 255, 255, 0.2);
}

button.flat.borderless:active,
.button.flat.borderless:active {
    transition: none;
    background-color: rgba(255, 255, 255, 0.2);
}

button.disabled,
.button.disabled {
    background-color: #5f5f5f;
    pointer-events: none;
    cursor: default;
}

button.icon.r34,
.button.icon.r34 {
    width: 34px;
    height: 34px;
}

button.icon.r38,
.button.icon.r38 {
    width: 38px;
    height: 38px;
}

button.icon.r42,
.button.icon.r42 {
    width: 42px;
    height: 42px;
}

button.icon.r46,
.button.icon.r46 {
    width: 46px;
    height: 46px;
}

button.icon.r50,
.button.icon.r50 {
    width: 50px;
    height: 50px;
}

.tooltip[data-tooltip] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.tooltip[data-tooltip],
.button[data-tooltip],
button[data-tooltip] {
    position: relative;
    --tooltip-color: rgba(97, 97, 97);
}

.tooltip-accent[data-tooltip] {
    --tooltip-color: var(--primary-color);
}

.tooltip-highlight[data-tooltip] {
    --tooltip-color: var(--highlight-color);
}

.tooltip-info[data-tooltip] {
    --tooltip-color: var(--palette-info-main);
}

.tooltip-warning[data-tooltip] {
    --tooltip-color: var(--palette-warning-main);
}

.tooltip-error[data-tooltip] {
    --tooltip-color: var(--palette-error-main);
}

.tooltip-success[data-tooltip] {
    --tooltip-color: var(--palette-success-main);
}

.tooltip-primary[data-tooltip] {
    --tooltip-color: var(--palette-primary-main);
}

.tooltip-secondary[data-tooltip] {
    --tooltip-color: var(--palette-secondary-main);
}

.tooltip[data-tooltip]::after,
.button[data-tooltip]::after,
button[data-tooltip]::after {

    position: absolute;
    top: calc(100% + 5px);

    display: block;
    margin: auto;

    content: attr(data-tooltip);
    opacity: 0;
    z-index: 999;
    pointer-events: none;

    font-family: Roboto, sans-serif;
    font-size: 0.625rem;
    font-weight: 500;
    white-space: nowrap;

    color: white;
    background-color: var(--tooltip-color);

    padding: 4px 8px;
    border-radius: 4px;

    transform: scale(0.9);
    transform-origin: center;
    transition: opacity 0.25s, transform 0.25s;
}

.tooltip[data-tooltip]:hover::after,
.button[data-tooltip]:hover::after,
button[data-tooltip]:hover::after {
    transform: scale(1);
    opacity: 1;
}

.tooltip.tooltip-top[data-tooltip]::after,
.button.tooltip-top[data-tooltip]::after,
button.tooltip-top[data-tooltip]::after {
    top: initial;
    bottom: calc(100% + 5px);
}

.tooltip.tooltip-start[data-tooltip]::after,
.button.tooltip-start[data-tooltip]::after,
button.tooltip-start[data-tooltip]::after,
.tooltip.tooltip-top.tooltip-start[data-tooltip]::after,
.button.tooltip-top.tooltip-start[data-tooltip]::after,
button.tooltip-top.tooltip-start[data-tooltip]::after {
    left: 0;
}

.tooltip.tooltip-end[data-tooltip]::after,
.button.tooltip-end[data-tooltip]::after,
button.tooltip-end[data-tooltip]::after,
.tooltip.tooltip-top.tooltip-end[data-tooltip]::after,
.button.tooltip-top.tooltip-end[data-tooltip]::after,
button.tooltip-top.tooltip-end[data-tooltip]::after {
    right: 0;
}

.tooltip.tooltip-left[data-tooltip]::after,
.button.tooltip-left[data-tooltip]::after,
button.tooltip-left[data-tooltip]::after {
    top: initial;
    right: calc(100% + 5px);
}

.tooltip.tooltip-right[data-tooltip]::after,
.button.tooltip-right[data-tooltip]::after,
button.tooltip-right[data-tooltip]::after {
    top: initial;
    left: calc(100% + 5px);
}

.tooltip.tooltip-left.tooltip-start[data-tooltip]::after,
.button.tooltip-left.tooltip-start[data-tooltip]::after,
button.tooltip-left.tooltip-start[data-tooltip]::after,
.tooltip.tooltip-right.tooltip-start[data-tooltip]::after,
.button.tooltip-right.tooltip-start[data-tooltip]::after,
button.tooltip-right.tooltip-start[data-tooltip]::after {
    top: 0;
}

.tooltip.tooltip-left.tooltip-end[data-tooltip]::after,
.button.tooltip-left.tooltip-end[data-tooltip]::after,
button.tooltip-left.tooltip-end[data-tooltip]::after,
.tooltip.tooltip-right.tooltip-end[data-tooltip]::after,
.button.tooltip-right.tooltip-end[data-tooltip]::after,
button.tooltip-right.tooltip-end[data-tooltip]::after {
    bottom: 0;
}


/* #region Inputs */

/* #region input[type=text] */
input {
    font-family: Roboto, sans-serif;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.07);
    outline: none;
    color: white;
    height: 26px;
    padding: 0px 5px;
    box-sizing: border-box;
    transition: border-color 0.25s;
}

input:not([type="checkbox"]):focus {
    border: 1px solid rgba(255, 255, 255, 0.14);
}

/* #region textarea */
textarea {
    font-family: Roboto, sans-serif;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.07);
    outline: none;
    color: white;
    padding: 3px 5px;
    box-sizing: border-box;
    transition: border-color 0.25s;
}

textarea:focus {
    border: 1px solid rgba(255, 255, 255, 0.14);
}

/* #endregion */

/* #region input[type=checkbox] */
input[type="checkbox"] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    cursor: pointer;
    box-sizing: border-box;

    width: 18px;
    height: 18px;
}

input[type="checkbox"]::before {
    display: flex;
    margin-top: 0px;
    justify-content: center;
    align-items: center;
    font-family: 'Material Icons';
    color: #2f2f2f;
    content: "check";
    font-size: 16px;
    transition: all 0.25s;
    pointer-events: none;
}

input[type="checkbox"]:checked {
    border-color: #4f4f4f;
}

input[type="checkbox"]:checked::before {
    color: white;
}

input[type="checkbox"].popup-visible {
    display: none;
}

/* #endregion */

/* #region input[type=file] */
input[type="file"] {
    padding-top: 1px;
}
/* #endregion */

/* #endregion */


/* .toggle */
div.toggle {
    display: inline-flex;
    position: relative;
}

div.toggle > input[type="checkbox"] {
    background: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    margin: 0px;
    border: none;
}

div.toggle > input[type="checkbox"]:active + button,
div.toggle > input[type="checkbox"]:active + .button {
    --primary-color: var(--highlight-color);
}

div.toggle > input[type="checkbox"]:checked + button,
div.toggle > input[type="checkbox"]:checked + .button  {
    --primary-color: var(--inactive-color);
}

div.toggle > input[type="checkbox"]:hover + button.flat,
div.toggle > input[type="checkbox"]:hover + .button.flat {
    background-color: rgba(255, 255, 255, 0.1);
}

div.toggle > input[type="checkbox"]:active + button.flat,
div.toggle > input[type="checkbox"]:active + .button.flat {
    transition: none;
    background-color: rgba(255, 255, 255, 0.2);
}

div.toggle > input[type="checkbox"]::before {
    content: "";
    display: none;
}

/* select */
select {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.07);
    outline: none;
    color: white;
    min-width: 200px;
    transition: border-color 0.25s;
    cursor: pointer;
    appearance: none;
}

select option {
    background: #2f2f2f;
}

select:not([size]) {
    height: 26px;
    padding: 0px 5px;
    padding-right: 30px;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30' width='25px' fill='none' stroke-width='3px' stroke='rgba(255, 255, 255, 0.3)'%3E%3Cpath d='M 10,10 l 10 10 l 10 -10'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center right;
}

div.select {
    position: relative;
    display: inline;
}

div.select select:not([size]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* div.select::after {
    font-family: 'Material Icons';
    position: absolute;
    pointer-events: none;
    right: 0;
    top: 0;
    width: 50px;
    margin-right: 5px;
    height: 50px;
    content: 'expand_more';
    text-align: right;
    color: #5f5f5f;
    font-size: 24px;
    z-index: 1;
    margin-top: -2px;
} */

select:focus {
    border: 1px solid rgba(255, 255, 255, 0.14);
}

select[size] option {
    display: flex;
    align-items: center;
    height: 26px;
    cursor: pointer;
    outline: none;
    padding: 0px 5px;
    transition: background-color 0.25s;
    background: none;
}

select[size] option:hover {
    background-color: #3f3f3f;
    background-image: linear-gradient(0deg, #3f3f3f 0%, #3f3f3f 100%);
}

select[size] option:checked {
    color: white;
    background-color: #6f6f6f;
    background-image: linear-gradient(0deg, #6f6f6f 0%, #6f6f6f 100%);
}

select[size]:focus option:checked {
    background-color: #10a5ea;
    background-image: linear-gradient(0deg, #10a5ea 0%, #10a5ea 100%);
}

/* .chip */
.chip {
    --primary-color: var(--palette-accent);
    --highlight-color: var(--palette-accent-light);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-family: Roboto, sans-serif;
    font-weight: 500;
    padding: 0px 10px;
    height: 26px;
    border: none;
    outline: none;
    /* background-color: #2a3eb1; */
    background-color: var(--primary-color);
    color: white;
    box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.4);
    font-size: 13px;
    border-radius: 20px;
    vertical-align: top;
    user-select: none;
    white-space: nowrap;
}

.chip > span:not(.action) {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.chip.clickable {
    cursor: pointer;
}

.chip.clickable:hover {
    background-color: var(--highlight-color);
}

.chip.clickable:active {
    background-color: var(--primary-color);
}

.chip.outlined {
    background-color: transparent;
    border: 1px solid var(--highlight-color);
}

.chip[data-icon] {
    padding-left: 4px;
}

.chip.action {
    padding-right: 4px;
}

.chip[data-icon]::before {
    content: attr(data-icon);
    display: inline;
    font-family: 'Material Icons';
    margin-right: 5px;
    font-size: 22px;
    color: white
}

.chip.outlined[data-icon]::before {
    color: var(--highlight-color);
}

.chip span.action {
    cursor: pointer;
    font-family: 'Material Icons';
    font-size: 22px;
    margin-left: 5px;
    color: rgba(255, 255, 255, 0.8);
}

.chip span.action:hover {
    color: rgba(255, 255, 255, 1);
}

.chip.outlined span.action {
    color: var(--primary-color);
}

.chip.outlined span.action:hover {
    color: var(--highlight-color);
}

/* .paper */
div.paper {
    background-color: #2f2f2f;
    box-shadow:
        0px 3px 7px rgba(0, 0, 0, 0.3),
        0px 0px 5px rgba(0, 0, 0, 0.2);
}

div.paper-2 {
    background-color: #3f3f3f;
    box-shadow:
        0px 3px 7px rgba(0, 0, 0, 0.3),
        0px 0px 5px rgba(0, 0, 0, 0.2);
}

div.paper-3 {
    background-color: #4f4f4f;
    box-shadow:
        0px 3px 7px rgba(0, 0, 0, 0.3),
        0px 0px 5px rgba(0, 0, 0, 0.2);
}

/* .icon */
span.icon {
    font-family: 'Material Icons';

    color: var(--text-color);
    font-size: 24px;
}

/* .popup */
.popup {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;

    display: flex;
    justify-content: center;
    align-items: center;

    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: 0.25s opacity, 0.25s visibility, 0.25s transform;
}

.popup.visible,
.popup-visible:checked + .popup {
    visibility: visible;
    opacity: 1;
    pointer-events: all;
}

.popup::before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;;
    background:rgba(0, 0, 0, 0.5);
    content: "";
    pointer-events: none;
    z-index: 0;
}

.popup > .background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    z-index: 0;
    cursor: default;
}


.popup > .content {
    display: flex;
    flex-direction: column;
    margin: auto;
    z-index: 100;
    background: #2f2f2f;
    box-shadow:
        0px 3px 7px rgba(0, 0, 0, 0.3),
        0px 0px 5px rgba(0, 0, 0, 0.2);
}

/* .list */
.list {
    --primary-color: rgba(255, 255, 255, 0.1);
    --highlight-color: rgba(255, 255, 255, 0.15);
}

.list .item {
    cursor: pointer;
}

.list .item:hover {
    background-color: rgba(255, 255, 255, 0.15);
}

.list .item.selected {
    background-color: var(--primary-color);
}

.list .item.selected:hover {
    background-color: var(--highlight-color);
}

/* .accordion */
.accordion {
    --header-height: 30px;
}

.accordion > * {
    position: relative;
    border-bottom: 1px solid #3f3f3f;
}

.accordion > * > input[type="radio"] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;
    height: var(--header-height);
    margin: 0;
    padding: 0;

    background: transparent;
    border: none;

    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

.accordion > * > input[type="radio"]:checked {
    display: none;
}

.accordion .header {
    height: var(--header-height);
    display: flex;
    align-items: center;
    justify-items: stretch;
}

.accordion > * > input[type="radio"]:hover + .header {
    background-color: rgba(255, 255, 255, 0.1);
}

.accordion > * > input[type="radio"]:hover + input + .header {
    background-color: rgba(255, 255, 255, 0.1);
}

.accordion .header::after {
    font-family: 'Material Icons';
    justify-self: flex-end;
    content: "expand_more";
    text-align: right;
    flex: 1 1 0;
    padding-right: 10px;
    font-size: 24px;
}

.accordion > * > input[type="radio"] + input[type="radio"]:checked + .header::after {
    content: "expand_less";
}

.accordion > * > input[type="radio"]:checked + .header::after {
    content: "";
}

.accordion > *:not(.visible) > input[type="radio"] + .header + .content {
    display: none;
}

.accordion > * > input[type="radio"]:checked + .header + .content {
    display: flex;
}

.accordion > .visible > .content {
    display: flex;
}

.accordion > .visible > .header::after {
    content: "expand_less";
}

/* .menu */
.menu {
    position: relative;
}

.menu > .content {
    position: absolute;
    top: 26px;
    left: 0;

    min-width: 150px;
    background-color: #2f2f2f;
    box-shadow: 0px 2px 6px 2px rgba(0, 0, 0, 0.4);
    display: none;
    z-index: 100;
}

.menu.right > .content {
    left: initial;
    right: 0;
}

.menu.center > .content {
    left: initial;
    right: initial;
}

.menu > .background {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;;
    background: transparent;
    z-index: 10;
    display: none;
    cursor: default;
}

input[type="checkbox"].menu-visible {
    display: none;
}

input[type="checkbox"].menu-visible:checked + .menu > .background {
    display: block;
}

.menu > .content > * {
    position: relative;
    height: 30px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 0px 5px;
    cursor: pointer;
    box-sizing: border-box;
    padding-left: 36px;
    user-select: none;
    -webkit-user-select: none;
}

.menu > .content > .separator {
    width: initial;
    cursor: default;
    height: initial;
    margin: 5px 5px;
    border-bottom: 1px solid #6f6f6f;
    box-sizing: border-box;
}

.menu > .content > * > .icon {
    position: absolute;
    margin-left: -26px;
    font-size: 18px;
    color: #dfdfdf;
}

.menu > .content > :not(.separator):hover {
    background-color: rgba(255, 255, 255, 0.2);
}

input[type="checkbox"].menu-visible:checked + .menu > .content {
    display: block;
}

/* .stepper */

.stepper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.stepper .steps {
    --primary-color: var(--palette-info-main);

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.stepper .steps .step {
    cursor: pointer;
    padding: 5px;
    margin: 5px;


    display: flex;
    align-items: center;
    justify-content: center;

    width: auto;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
}

.stepper .steps .step::before {
    background-color: rgba(255, 255, 255, 0.1);

    min-width: 2em;
    min-height: 2em;
    border-radius: 50px;

    margin-right: 10px;

    content: attr(data-index);

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;
}

.stepper .steps .step.current::before {
    background-color: var(--primary-color);
}

.stepper .steps .step.done::before {
    background-color: var(--primary-color);

    content: "check";
    font-family: 'Material Icons';
    color: white;
}

.stepper .steps .step.icon::before {
    content: attr(data-icon);
}

/* .snackbar */

.snackbar {
    --text-color: #000000;
    --primary-color: rgb(250, 250, 250);

    display: flex;
    align-items: center;
    height: 48px;
    min-width: 300px;
    padding: 6px 16px;
    border-radius: 4px;
    background-color: var(--primary-color);
    color: var(--text-color);
    box-sizing: border-box;

    box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2), 0px 6px 10px 0px rgba(0,0,0,0.14), 0px 1px 18px 0px rgba(0,0,0,0.12);

    pointer-events: none;
}

*:not(.snackbar-group) > .snackbar {
    position: fixed;

    bottom: 20px;
    left: 20px;

    transition: opacity 0.25s, transform 0.25s;
    opacity: 0;
    transform: scale(0.8);
    transform-origin: center;
    pointer-events: none;
}

*:not(.snackbar-group) .snackbar.visible {
    opacity: 1;
    transform: scale(1);
    pointer-events: all;
}

.snackbar[data-icon]::before {
    font-family: 'Material Icons';
    content: attr(data-icon);
    font-size: 24px;
    padding-right: 15px;
}

.snackbar > span:first-child {
    flex: 1 1 0;
    font-weight: bold;
    padding-right: 20px;
}

.snackbar.dismissable {
    padding-right: 5px;
}

.snackbar > .action {

}

.snackbar.dismissable > .dismiss {
    font-size: 20px;
}

.snackbar-group {
    position: fixed;

    bottom: 20px;
    left: 20px;

    display: flex;
    flex-direction: column-reverse;
    pointer-events: none;
}

.snackbar-group .snackbar {
    margin-top: 10px;
    transform: translateX(-150%);
    transition: transform 0.25s;
}

.snackbar-group .snackbar.visible {
    transform: translateX(0);
}

.snackbar-group .snackbar.destroy {
    transition: transform 0.25s, height 0.25s 0.25s, margin-top 0.25s 0.25s, padding 0.25s 0.25s;
    transform: translateX(-150%);
    margin-top: 0;
    padding: 0;
    height: 0px;
    overflow: hidden;
}

/* .drawer */

.drawer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;

    display: flex;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden;
    z-index: 10;

    transition: 0.25s visibility;
}

.drawer.visible,
.drawer-visible:checked + .drawer {
    visibility: visible;
    pointer-events: all;
}

.drawer::before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;;
    background: rgba(0, 0, 0, 0.5);
    content: "";
    pointer-events: none;
    z-index: 10;
    opacity: 0;
    transition: 0.25s opacity;
}

.drawer.visible::before,
.drawer-visible:checked + .drawer::before {
    opacity: 1;
}

.drawer > .background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    z-index: 10;
    cursor: default;
}

.drawer > .content {
    display: flex;
    flex-direction: column;
    z-index: 15;
    background: #2f2f2f;
    box-shadow:
        0px 3px 7px rgba(0, 0, 0, 0.3),
        0px 0px 5px rgba(0, 0, 0, 0.2);
    width: 250px;
    transform: translate(-100%, 0);
    transition: 0.25s transform;
}


.drawer.visible > .content,
.drawer-visible:checked + .drawer > .content{
    transform: translate(0, 0);
}

input.drawer-visible {
    display: none;
}

/* .vertical-menu */
.vertical-menu {
    min-width: 150px;
    margin-top: 10px;
}

.vertical-menu.right > .content {
    left: initial;
    right: 0;
}

.vertical-menu.center > .content {
    left: initial;
    right: initial;
}

.vertical-menu > * {
    position: relative;
    height: 30px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 0px 5px;
    cursor: pointer;
    box-sizing: border-box;
    padding-left: 36px;
    user-select: none;
    -webkit-user-select: none;
}

.vertical-menu > .separator {
    width: initial;
    cursor: default;
    height: initial;
    margin: 5px 5px;
    border-bottom: 1px solid #6f6f6f;
    box-sizing: border-box;
}

.vertical-menu > * > .icon {
    position: absolute;
    margin-left: -26px;
    font-size: 18px;
    color: #dfdfdf;
}

.vertical-menu > :not(.separator):hover {
    background-color: rgba(255, 255, 255, 0.2);
}

/* Global styles */

*.info,
button.info {
    --primary-color: var(--palette-info-main);
    --highlight-color: var(--palette-info-light);
    --text-color: #ffffff;
}

*.warning,
button.warning {
    --primary-color: var(--palette-warning-main);
    --highlight-color: var(--palette-warning-light);
    --text-color: #ffffff;
}

*.error,
button.error {
    --primary-color: var(--palette-error-main);
    --highlight-color: var(--palette-error-light);
    --text-color: #ffffff;
}

*.success,
button.success {
    --primary-color: var(--palette-success-main);
    --highlight-color: var(--palette-success-light);
    --text-color: #ffffff;
}

*.primary,
button.primary {
    --primary-color: var(--palette-primary-main);
    --highlight-color: var(--palette-primary-light);
    --text-color: #ffffff;
}

*.secondary,
button.secondary {
    --primary-color: var(--palette-secondary-main);
    --highlight-color: var(--palette-secondary-light);
    --text-color: #ffffff;
}

button.disabled,
.button.disabled {
    --primary-color: #5f5f5f;
}

.circle {
    display: flex;
    justify-content: center;
    align-items: center;
    user-select: none;
    border-radius: 100%;
    background-color: var(--primary-color, none);
}

.r26 {
    width: 26px;
    height: 26px;
}

.r30 {
    width: 30px;
    height: 30px;
}

.r34 {
    width: 34px;
    height: 34px;
}

.r38 {
    width: 38px;
    height: 38px;
}

.r42 {
    width: 42px;
    height: 42px;
}

.r46 {
    width: 46px;
    height: 46px;
}

.r50 {
    width: 50px;
    height: 50px;
}

/* .alert */
.alert {
    --text-color: white;
    --icon-color: var(--primary-color);
    --background-color: rgba(0, 0, 0, 0.1);
    --icon: "";

    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 5px;
    min-height: 26px;
    background-color: var(--background-color);
    color: var(--text-color);
    opacity: 1;
    transition: opacity 0.25s,
        height 0.0s 0.25s,
        min-height 0.0s 0.25s,
        padding-top 0.0s 0.25s,
        padding-bottom 0.0s 0.25s;
}

.alert.dismissable > div {
    display: inline-flex;
    align-items: center;
}

.alert.big {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.alert span {
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: 16px;
    break-after: always;
    margin-bottom: 5px;
}

.alert:not(.big):not(.iconless):not(.dismissable)::before,
.alert:not(.iconless) > span::before,
.alert.dismissable > div::before {
    display: block;
    font-family: 'Material Icons';
    content: var(--icon);
    color: var(--icon-color);
    font-size: 24px;
    padding-bottom: 1px;
    width: 35px;
}

.alert[data-icon]:not(.big)::before,
.alert span[data-icon]::before {
    content: attr(data-icon);
}

input[type="checkbox"].alert-visible:not(:checked) + .alert {
    height: 0;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    overflow: hidden;
}

.alert.error {
    --icon: "error";
    --text-color: rgb(250, 179, 174);
    --background-color: rgb(24, 6, 5);
}

.alert.warning {
    --icon: "warning";
    --text-color: rgb(255, 213, 153);
    --background-color: rgb(25, 15, 0);
}

.alert.info {
    --icon: "info";
    --text-color: rgb(166, 213, 250);
    --background-color: rgb(3, 14, 24);
}

.alert.success {
    --icon: "check_circle";
    --text-color: rgb(183, 223, 185);
    --background-color: rgb(7, 17, 7);
}

.alert.outlined {
    --background-color: none;
    border: 1px solid var(--icon-color);
}

.alert.filled {
    --background-color: var(--primary-color);
    --text-color: white;
    --icon-color: white;
}

.alert button.flat,
.alert .button.flat {
    color: var(--text-color);
}

.alert button.icon,
.alert .button.icon {
    padding: 0;
    width: 26px;
    height: 26px;
}

.alert button.flat.icon,
.alert .button.flat.icon {
    color: var(--text-color);
}

input[type="checkbox"].alert-visible {
    display: none;
}

/* label */
label {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}

label input[type="radio"] {
    cursor: pointer;
}

@keyframes loader-loading {
    0% { width: 0px; transform: translate(-5px, 0); }
    50% { width: 100%; transform: translate(0, 0); }
    100% { width: 0px; transform: translate(150px, 0); }
}

.loader {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 150px;
    height: 25px;
    box-sizing: border-box;
    overflow: hidden;
}

.loader::after {
    content: "";

    display: block;
    border: 2px solid rgba(255, 255, 255, 0.3);
    width: 0px;
    height: 4px;
    overflow: hidden;
    box-sizing: border-box;
    animation: loader-loading 2s ease-in-out infinite;
}

.loader::before {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;

    content: "";
    border: 1px solid rgba(255, 255, 255, 0.2);
    width: 150px;
    height: 2px;
    overflow: hidden;
    display: block;
    box-sizing: border-box;
}