
:root {
    /* success */
    --color-success: #4a8f4b;
    --color-success-light: #dff0d8;
    --color-success-text: #3c763d;
    /* warning */
    --color-warning: #a07d45;
    --color-warning-light: #fcf8e3;
    --color-warning-text: #8a6d3b;
    /* danger */
    --color-danger: #bf5250;
    --color-danger-light: #f2dede;
    --color-danger-text: #a94442;
    /* info */
    --color-info: #2563eb;
    --color-info-light: #dbeafe;
    --color-info-text: #1e3a8a;
    /* disabled */
    --color-disabled: #9ca3af;
    --color-disabled-light: #f3f4f6;
    --color-disabled-text: #6b7280;
}

.container-fluid {
    display: flex;
    flex-direction: column;
    max-width: 960px;
    min-height: 100%;
}

body {
    background: #000000;
    background-image: url(data:image/png;base64,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);
    background-attachment: fixed;
    color: #202020;
    font-size: 1rem;
    text-rendering: optimizeLegibility;
}

@media screen and (max-width: 450px) {
    body,
    .btn {
        font-size: .875rem;
        -moz-text-size-adjust: auto !important;
        -webkit-text-size-adjust: auto !important;
        text-size-adjust: auto !important;
    }
}

.form-group {
    margin-bottom: 1rem;
}

section {
    margin-bottom: 1rem;
}

/* mathjax */

span.mt-math {
    font-family: math;
}

div.mt-math-block {
    margin: 1rem 0;
}

    div.mt-math-block > mjx-container[display="true"] {
        margin: 0 !important;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0.5rem 0;
    }

/* dropdown button */

.dropdown-toggle::after {
    vertical-align: middle;
}

.dropdown-menu .nav-item.active {
    background: #e9ecef;
}

.dropdown-menu .nav-item .Wt-icon {
    vertical-align: middle;
}

/* collapsible panel */

.mt-collapse.card {   
    margin-bottom: 1rem;
}

    .mt-collapse.card > .card-header {
        cursor: pointer;
        padding: 1rem;
    }

    .mt-collapse.card > .card-body {
        padding: 1rem;
    }

@media screen and (max-width: 450px) {
    .mt-collapse.card > .card-body,
    .mt-collapse.card > .card-header {
        padding: 1rem 0.75rem;
    }
}

.mt-collapse.card > .card-body > :last-child,
.mt-collapse.card > .card-body > :last-child > :last-child,
.mt-collapse.card > .card-body > :last-child > :last-child > :last-child,
.mt-collapse.card > .card-body > :last-child > :last-child > :last-child > :last-child {
    margin-bottom: 0;
}

/* accordion */

.mt-accordion {
    margin-bottom: 1rem;
}

    .mt-accordion > .mt-collapse.card,
    .mt-accordion > .mt-collapse.card > .card-header {
        margin-bottom: 0;
    }

        .mt-accordion > .mt-collapse.card:not(.Wt-collapsed) {
            border: 1pt solid var(--color-info-text);
        }

            .mt-accordion > .mt-collapse.card:not(.Wt-collapsed) > .card-header {
                color: var(--color-info-text);
                background-color: var(--color-info-light);
                border-bottom-left-radius: 0;
                border-bottom-right-radius: 0;
        }

        .mt-accordion > .mt-collapse.card:not(.Wt-collapsed) > .card-body {
                border-top: 1pt solid var(--color-info-text);
        }

        .mt-accordion > .mt-collapse.card:not(:first-child),
        .mt-accordion > .mt-collapse.card:not(:first-child) > .card-header {
            border-top-left-radius: 0;
            border-top-right-radius: 0;
        }

        .mt-accordion > .mt-collapse.card:not(:last-child),
        .mt-accordion > .mt-collapse.card:not(:last-child) > .card-header,
        .mt-accordion > .mt-collapse.card:not(:last-child) > .card-body {
            border-bottom-left-radius: 0;
            border-bottom-right-radius: 0;
}

/* lists */

ol > li:not(:last-child),
ul > li:not(:last-child) {
    margin-bottom: 0.25rem !important;
}

/* table */

div.table-responsive:has(> .table) {
    margin-bottom: 1rem;
}

    .table-responsive > .table {
        margin-bottom: 0;
    }

@media screen and (max-width: 767px) {
    .table-responsive > .table > thead > tr > th, 
    .table-responsive > .table > tbody > tr > th, 
    .table-responsive > .table > tfoot > tr > th, 
    .table-responsive > .table > thead > tr > td, 
    .table-responsive > .table > tbody > tr > td, 
    .table-responsive > .table > tfoot > tr > td {
        white-space: normal !important;
    }
}

.table.mt-stretch-equal-last-1 td:last-child,
.table.mt-stretch-equal-last-1 th:last-child {
    width: 100%;
}

.table.mt-stretch-equal-last-2 td:nth-last-child(-n+2),
.table.mt-stretch-equal-last-2 th:nth-last-child(-n+2) {
    width: 50%;
}

.table.mt-stretch-equal-last-3 td:nth-last-child(-n+3),
.table.mt-stretch-equal-last-3 th:nth-last-child(-n+3) {
    width: 33%;
}

/* steps table */

.table.mt-steps > tbody > tr > th:first-child {
    text-align: center;
    white-space: nowrap;
    width: 1%;
}

.table.mt-steps td > ul:last-child {
    margin-bottom: 0;
    padding-inline-start: 1rem;
}

.table.mt-steps td > ul > li:not(:last-child) {
    margin-bottom: 0.25rem;
}

/* property table */

.table.mt-properties > tbody > tr > th:first-child {
    white-space: nowrap;
    width: 1%;
}

.table.mt-properties > tbody > tr > td > ul:last-child {
    margin-bottom: 0;
    padding-inline-start: 1rem;
}

.table.mt-properties > tbody > tr > td > ul > li:not(:last-child) {
    margin-bottom: 0.25rem;
}

/* definition table - common */

.mt-definition-table {
    display: table;
    margin-bottom: 1rem;
}

    .mt-definition-table > div {
        display: table-row;
    }

        .mt-definition-table > div > div {
            display: table-cell;
        }

            .mt-definition-table > div > div:nth-child(2) {
                width: 100%;
                padding-left: 1rem;
            }

        /* definition table - common - label column */
        .mt-definition-table > div:not(.mt-status) > div:nth-child(1) > div {
            vertical-align: middle;
            text-align: left;
        }

            .mt-definition-table > div:not(.mt-status) > div:nth-child(1) > div > label {
                white-space: nowrap;
            }

                .mt-definition-table > div:not(.mt-status) > div:nth-child(1) > div > label mjx-container {
                    margin: 0;
                }

        /* definition table - common - value column */
        .mt-definition-table > div:not(.mt-status) > div:nth-child(2) > div {
            display: flex;
            align-items: center;
            margin-top: 1rem;
        }

        .mt-definition-table > div:first-child:not(.mt-status) > div:nth-child(2) > div {
            margin-top: 0;
        }

        .mt-definition-table > div:not(.mt-status) > div:nth-child(2) > div > input[type=text] {
            display: inline-block;
        }

    /* definition table - responsive - mobile */

    .mt-definition-table.mt-responsive {
        display: block;
    }

        .mt-definition-table.mt-responsive > div {
            display: block;
        }

            .mt-definition-table.mt-responsive > div > div {
                display: block;
            }

                .mt-definition-table.mt-responsive > div > div:nth-child(2) {
                    padding-left: 0.5rem;
                }

            .mt-definition-table.mt-responsive > div:not(.mt-status) > div:nth-child(1) > div {
                margin-top: 1rem;
                text-align: left;
            }

            .mt-definition-table.mt-responsive > div:first-child > div:nth-child(1) > div {
                margin-top: 0;
            }

            .mt-definition-table.mt-responsive > div:not(.mt-status) > div:nth-child(2) > div {
                margin-top: 0.5rem;
            }

/* definition table - responsive - desktop */

@media screen and (min-width: 576px) {
    .mt-definition-table.mt-responsive {
        display: table;
    }

        .mt-definition-table.mt-responsive > div {
            display: table-row;
        }

            .mt-definition-table.mt-responsive > div > div {
                display: table-cell;
            }

                .mt-definition-table.mt-responsive > div > div:nth-child(2) {
                    padding-left: 1rem;
                }

            .mt-definition-table.mt-responsive > div:not(.mt-status) > div:nth-child(1) > div {
                margin-top: 0;
                text-align: left;
                white-space: nowrap;
            }

            .mt-definition-table.mt-responsive > div:not(.mt-status) > div:nth-child(2) > div {
                margin-top: 1rem;
            }

            .mt-definition-table.mt-responsive > div:first-child:not(.mt-status) > div:nth-child(2) > div {
                margin-top: 0;
            }
}

/* figures */

figure.mt-figure {
    margin-bottom: 2.0rem;
    margin-top: 1.25rem;
}

    figure.mt-figure > :first-child {
        margin-bottom: 0;
        margin-top: 0;
}

    figure.mt-figure > figcaption {
        font-size: 0.875rem;
        color: #606060;
        line-height: 1.5;
        margin-bottom: 0;
        margin-top: 0.5rem;
        text-align: center;
    }

/* breadcrumbs */

.mt-breadcrumb {
    margin-bottom: 0.5rem;
}

    .mt-breadcrumb .breadcrumb-item a,
    .mt-breadcrumb .breadcrumb-item span {
        color: #d3d3d3;
        text-decoration: none;
        transition: 0.3s;
    }

    .mt-breadcrumb .breadcrumb-item a {
        cursor: pointer;
        font-weight: bold;
    }

        .mt-breadcrumb .breadcrumb-item a span:hover {
            color: white;
        }

    .mt-breadcrumb .breadcrumb-item + .breadcrumb-item:before {
        color: #d3d3d3;
        content: '\203A';
    }

/* content container */

.mt-content-container {
    background-color: white;
    border: 1px solid #808080;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    padding-top: 1.25rem;
}

/* content page */

.mt-content {
}

@media screen and (max-width: 450px) {
    .mt-content {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

.mt-content > :last-child {
    margin-bottom: 0;
}

.mt-content h1,
.mt-content .h1 {
    border: 0;
    color: #202020;
    font-size: 1.75rem;
    font-weight: bold;
    margin-bottom: 1rem;
}

.mt-content h2,
.mt-content .h2 {
    border-bottom: 1px solid #202020;
    color: #202020;
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 0.75rem;
}

.mt-content h3,
.mt-content .h3 {
    border: 0;
    color: #202020;
    font-size: 1.17rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.mt-content h4,
.mt-content .h4 {
    border: 0;
    color: #202020;
    font-variant: small-caps;
    font-size: 1rem;
    font-weight: normal;
    margin-bottom: 0.5rem;
}

.mt-content h5,
.mt-content .h5 {
    border: 0;
    color: #202020;
    font-variant: small-caps;
    font-size: 0.83rem;
    font-weight: normal;
    margin-bottom: 0.5rem;
}

.mt-content h6,
.mt-content .h6 {
    border: 0;
    color: #202020;
    font-variant: small-caps;
    font-size: 0.67rem;
    font-weight: normal;
    margin-bottom: 0.5rem;
}

.mt-content .mt-cat-title {
    font-variant: small-caps;
}

.mt-content.mt-reference > div:has(+ footer) > :last-child {
    & > :last-child,
    & > :last-child > :last-child,
    & > :last-child > :last-child > :last-child,
    & > :last-child > :last-child > :last-child > :last-child,
    & > :last-child > :last-child > :last-child > :last-child > :last-child {
        margin-bottom: 0 !important;
    }
}

/* links */

.mt-content a {
    color: #337AB7;
    text-decoration: none;
    transition: 0.3s;
}

    .mt-content a:hover {
        color: #296292;
        text-decoration: underline;
    }

.mt-content .mt-future-link {
    color: #a94442;
    transition: 0.3s;
}

    .mt-content .mt-future-link:hover {
        color: #8b2d2b;
        cursor: pointer;
        text-decoration: underline;
    }

.mt-content p {
    hyphens: auto;
}

.mt-content .mt-toc h2 {
    border-bottom: none;
    font-size: 1rem;
}

/* exercise page */

.mt-content.mt-exercise {
}

.mt-content.mt-exercise h2 {
    margin-bottom: 1rem;
}

    .mt-content.mt-exercise .mt-exercise-refs {
    margin-bottom: 1rem;
}

.mt-embedded-assistant > .card-body {
    padding: 1rem;
}

@media screen and (max-width: 450px) {
    .mt-embedded-assistant > .card-body {
        padding: 1rem 0.75rem;
    }
}

:is(section.mt-exercise-assistant, section.mt-exercise-generator) {
    &:not(.mt-embedded-assistant),
    & > :last-child,
    & > :last-child > :last-child,
    & > :last-child > :last-child > :last-child,
    & > :last-child > :last-child > :last-child > :last-child,
    & > :last-child > :last-child > :last-child > :last-child > :last-child {
        margin-bottom: 0 !important;
    }
}

.mt-no-exercise {
    border: 1pt dashed var(--color-disabled-text);
    border-radius: 0.375rem;
    color: var(--color-disabled-text);
    padding: 3rem 0;
    text-align: center;
}

/* settings page */

.mt-settings {
}

    .mt-settings .nav {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        margin-bottom: 1rem;
    }

@media (min-width: 576px) {
    .mt-settings .nav {
        flex-direction: column;
        overflow-x: unset;
    }
}

.mt-oauth-card.card {
    margin-bottom: 1rem;
}

    .mt-oauth-card.card > .card-body,
    .mt-oauth-card.card > .card-header {
        padding: 1rem;
    }

@media screen and (max-width: 450px) {
    .mt-oauth-card.card > .card-body,
    .mt-oauth-card.card > .card-header {
        padding: 1rem 0.75rem;
    }
}

.mt-oauth-card.card > .card-body > :last-child,
.mt-oauth-card.card > .card-body > :last-child > :last-child,
.mt-oauth-card.card > .card-body > :last-child > :last-child > :last-child,
.mt-oauth-card.card > .card-body > :last-child > :last-child > :last-child > :last-child {
    margin-bottom: 0;
}

/* header */

.mt-header {
    color: #e0e0e0;
    background-color: #202020;
    border: 1px solid #808080;
    margin-bottom: 20px;
}

.mt-header-top {
    align-items: center;
    min-height: 3.5rem;
}

.mt-header .mt-header-login button,
.mt-header .mt-language-selector button {
    background: transparent;
    border-color: transparent;
    color: #d3d3d3;
    font-weight: bold;
    outline: none;
    box-shadow: none;
}

    .mt-header .mt-header-login button.active,
    .mt-header .mt-header-login button:active:hover,
    .mt-header .mt-header-login button.active:focus,
    .mt-header .mt-header-login button.active:hover,
    .mt-header .mt-header-login button.active:active:focus,
    .mt-header .mt-header-login button.active:active:hover,
    .mt-header .mt-header-login button:focus,
    .mt-header .mt-header-login button:hover,
    .mt-header .mt-language-selector button.active,
    .mt-header .mt-language-selector button:active:hover,
    .mt-header .mt-language-selector button.active:focus,
    .mt-header .mt-language-selector button.active:hover,
    .mt-header .mt-language-selector button.active:active:focus,
    .mt-header .mt-language-selector button.active:active:hover,
    .mt-header .mt-language-selector button:focus,
    .mt-header .mt-language-selector button:hover {
        color: white;
        border-color: transparent;
        outline: none;
        box-shadow: none;
    }

.mt-header .mt-header-login {
}

    .mt-header .mt-header-login span,
    .mt-header .mt-header-index span {
        vertical-align: middle;
    }

    .mt-header .mt-header-login a,
    .mt-header .mt-header-index a {
        color: #d3d3d3 !important;
        cursor: pointer;
        font-weight: bold;
        text-decoration: none;
        transition: 0.3s;
    }

        .mt-header .mt-header-login a:hover,
        .mt-header .mt-header-index a:hover {
            color: white !important;
        }

    .mt-header .mt-header-login button img {
        width: 2.5rem;
    }

/* footer */

.mt-footer {
    color: #d3d3d3;
    margin-top: auto;
    text-align: center;
}

    .mt-footer a {
        color: #d3d3d3;
        cursor: pointer;
        font-weight: bold;
        text-decoration: none;
        transition: 0.3s;
    }

        .mt-footer a:hover {
            color: white;
        }

    .mt-footer .mt-future-link {
        color: #a94442;
        font-weight: bold;
        text-decoration: none;
        transition: 0.3s;
    }

        .mt-footer .mt-future-link:hover {
            color: #c96f6c;
            cursor: pointer;
        }

        .mt-footer a[href="javascript:void(0);"],
        .mt-footer a[href="javascript:void(0);"]:hover {
            color: #a94442;
        }

        /* social sharing widget */

.mt-ssw {
    text-align: center;
}

    .mt-ssw > a {
        display: inline-block;
        margin-left: 0.25rem;
    }

        .mt-ssw > a:first-of-type {
            margin-left: 0;
        }

@media screen and (max-width: 450px) {
    .mt-ssw > a {
        margin-left: 0.5em;
    }
}

/* social sharing button */

.mt-btn-share {
    background: transparent no-repeat url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9ImN1cnJlbnRDb2xvciIgdmlld0JveD0iMCAwIDE2IDE2Ij4NCiAgPHBhdGggZD0iTTExIDIuNWEyLjUgMi41IDAgMSAxIC42MDMgMS42MjhsLTYuNzE4IDMuMTJhMi41IDIuNSAwIDAgMSAwIDEuNTA0bDYuNzE4IDMuMTJhMi41IDIuNSAwIDEgMS0uNDg4Ljg3NmwtNi43MTgtMy4xMmEyLjUgMi41IDAgMSAxIDAtMy4yNTZsNi43MTgtMy4xMkEyLjUgMi41IDAgMCAxIDExIDIuNSIvPg0KPC9zdmc+");
    background-position: left center;
    background-size: 1.5rem;
    border: 0;
    border-radius: 0;
    box-sizing: content-box;
    color: #000000;
    min-height: 2rem;
    opacity: 0.5;
    padding: 0;
    padding-left: 2rem;
    transition: 0.3s;
}

    .mt-btn-share.mt-btn-share-icon-only {
        padding: 0;
        min-height: 1.5rem;
        min-width: 1.5rem;
}

.mt-btn-share:hover {
    color: #000000;
    opacity: 0.75;
    text-decoration: none;
}

    .mt-btn-share:focus {
        box-shadow: 0 0;
        opacity: 1;
        outline: 0;
    }

.mt-btn-share:disabled,
.mt-btn-share.disabled {
    opacity: 0.25;
    pointer-events: none;
    user-select: none;
}

/* reload */

@keyframes mt-reload-rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.mt-reload i.fa-rotate {
    color: #337AB7;
    transition: color 0.3s;
}

@media (hover: hover) and (pointer: fine) {
    .mt-reload i.fa-rotate:hover {
        color: #296292;
        animation-duration: 2.0s;
        animation-name: mt-reload-rotate;
        animation-iteration-count: infinite;
        animation-direction: normal;
        animation-timing-function: linear;
    }
}

/* loading */

.mt-loading {
  /*  vertical-align: middle;*/
}

.mt-loading span {
    vertical-align: middle;
}

    .mt-loading span:nth-child(2) {
        padding-left: 10px;
    }

.mt-loading .fa-gear {
    color: #202020;
    font-size: 2rem;
    animation-duration: 2.0s;
    animation-name: mt-reload-rotate;
    animation-iteration-count: infinite;
    animation-direction: normal;
    animation-timing-function: linear;
}

/* validation */

.mt-valid {
    /* empty */
}

.mt-invalid {
    /* empty */
}

.mt-implausible {
    /* empty */
}

/* editable widget */

.mt-ew {
    white-space: nowrap;
    margin-bottom: 1rem;
}

    .mt-ew > .mt-ew-desc {
        display: inline-block;
        padding-right: 0.5rem;
        vertical-align: middle;
        align-self: center;
    }

        .mt-ew > .mt-ew-desc.mt-math-block {
            margin: 0;
        }

    .mt-ew > .mt-ew-content {
        display: inline-block;
        vertical-align: middle;
    }

    .mt-ew > .mt-ew-size {
        display: inline-block;
        padding-left: 1rem;
        vertical-align: top;
    }

        .mt-ew > .mt-ew-size > div {
            display: table
        }

            .mt-ew > .mt-ew-size > div > div {
                display: table-row
            }

                .mt-ew > .mt-ew-size > div > div:not(:first-child) > div {
                    padding-top: 0.5rem;
                }

                .mt-ew > .mt-ew-size > div > div > div:first-child {
                    display: table-cell;
                    font-weight: bold;
                    text-align: right;
                    vertical-align: middle;
                }

                .mt-ew > .mt-ew-size > div > div > div:nth-child(2) {
                    display: table-cell;
                    padding-left: 0.5rem;
                    vertical-align: middle;
                }

/* editable latex widget */
/* editable set widget */
/* editable value widget */

.mt-ew.mt-ew-value > .mt-ew-content {
    background: #F0F8FF;
    border: 1px #001f3f solid;
    padding: 10px;
    text-align: center;
    vertical-align: middle;
}

.mt-ew.mt-ew-value.mt-implausible > .mt-ew-content {
        background: var(--color-warning-light);
        color: var(--color-warning-text);
}

.mt-ew.mt-ew-value.mt-valid > .mt-ew-content {
        background: var(--color-success-light);
        color: var(--color-success-text);
}

.mt-ew.mt-ew-value.mt-invalid > .mt-ew-content {
        background: var(--color-danger-light);
        color: var(--color-danger-text);
}

.mt-ew.mt-ew-value.disabled > .mt-ew-content {
    background: inherit;
    color: inherit;
}

.mt-ew-input {
    min-width: 20px;
}

.mt-ew-latex {
    min-height: 1.2em;
    min-width: 1em;
}

@media screen and (max-width: 450px) {
    .mt-ew.mt-ew-value > .mt-ew-content {
        padding: 15px;
    }
}

/* editable matrix widget */
/* editable vector widget */

.mt-ew.mt-ew-matrix > .mt-ew-content,
.mt-ew.mt-ew-vector > .mt-ew-content {
    border: none;
    border-collapse: collapse;
}

    .mt-ew.mt-ew-matrix > .mt-ew-content td,
    .mt-ew.mt-ew-vector > .mt-ew-content td {
        background: #F0F8FF;
        border: 1px solid #202020;
        padding: 0;
        text-align: center;
        vertical-align: middle;
    }

        .mt-ew.mt-ew-matrix > .mt-ew-content td.disabled,
        .mt-ew.mt-ew-vector > .mt-ew-content td.disabled {
            background: inherit;
            cursor: not-allowed;
        }

        .mt-ew.mt-ew-matrix > .mt-ew-content td.mt-implausible,
        .mt-ew.mt-ew-vector > .mt-ew-content td.mt-implausible {
            background: var(--color-warning-light);
        }

        .mt-ew.mt-ew-matrix > .mt-ew-content td.mt-invalid,
        .mt-ew.mt-ew-vector > .mt-ew-content td.mt-invalid {
            background: var(--color-danger-light);
        }

        .mt-ew.mt-ew-matrix > .mt-ew-content td.mt-valid,
        .mt-ew.mt-ew-vector > .mt-ew-content td.mt-valid {
            background: var(--color-success-light);
        }


.mt-ew.mt-ew-matrix .mt-ew.mt-ew-value,
.mt-ew.mt-ew-vector .mt-ew.mt-ew-value {
    margin-bottom: 0;
    max-width: 100px;
}

    .mt-ew.mt-ew-matrix .mt-ew.mt-ew-value > .mt-ew-content,
    .mt-ew.mt-ew-vector .mt-ew.mt-ew-value > .mt-ew-content {
        border: none;
        display: block;
    }

/* multi editable widget */

.mt-mew {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin-bottom: 1rem;
}

    .mt-mew > .mt-ew,
    .mt-mew > .mt-mew {
        align-self: center;
        display: inline-block;
        margin-bottom: 0;
        vertical-align: middle;
    }

/* auth */

.mt-btn-oauth {
}

    .mt-btn-oauth > img {
        height: 32px;
        width: 32px;
        margin-right: 10px;
        padding: 0;
    }

/* chart 2D */

.mt-chart2d {
    position: relative;
    width: 100%;
    padding-top: 40%;
}

    .mt-chart2d > div {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
    }

        .mt-chart2d > div > div {
            border: 1px solid #202020;
        }

/* chart 3D */

.mt-chart3d {
    position: relative;
    width: 100%;
    padding-top: 100%;
}

    .mt-chart3d > div {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
    }

        .mt-chart3d > div > canvas {
            border: 1px solid #202020;
            height: 100%;
            width: 100%;
        }

/* value type selector */

.mt-vts > .form-check {
    align-items: center !important;
    display: flex !important;

    & > input[type=radio] {
        flex-shrink: 0 !important;
        margin-right: .5rem !important;
        margin-top: 0.125rem !important;
    }
}

/* logdiffpow rules */

.mt-lprs {
}

div ~ .mt-lprs,
span ~ .mt-lprs {
    margin-top: 1rem;
}

.mt-lprs .table-responsive {
    border: none;
}

.mt-lprs .table {
    width: auto !important;
}

    .mt-lprs .table > thead > tr > th,
    .mt-lprs .table > tbody > tr > td:not(:nth-child(-n+2)),
    .mt-lprs .table > tbody > tr > th:not(:nth-child(-n+2)),
    .mt-lprs .table > thead > tr > td:not(:nth-child(-n+2)),
    .mt-lprs .table > thead > tr > th:not(:nth-child(-n+2)) {
        text-align: center;
    }

        .mt-lprs .table > tbody > tr > td:nth-child(2) > label {
            font-weight: normal;
            margin-bottom: 0;
        }

/* language selector */

.mt-language-selector {
}

    .mt-language-selector > img {
        height: 18px;
        width: 24px;
    }

/* row operation selector */

.mt-ros {
}

    .mt-ros .mt-ros-row > div {
        display: inline-block;
    }

    .mt-ros select.disabled {
        border-color: inherit;
        color: inherit;
    }

/* validated - status */

.mt-status.text-center {
    display: block;
    text-align: center;
}

.mt-status.mt-valid {
    color: var(--color-success-text);
}

.mt-status.mt-invalid {
    color: var(--color-danger-text);
}

/* validated - line edit */

input[type=email].disabled,
input[type=password].disabled, 
input[type=text].disabled {
    background-color: inherit;
}

input[type=email].mt-valid,
input[type=password].mt-valid,
input[type=text].mt-valid {
    background-color: var(--color-success-light);
    border-color: var(--color-success);
    color: var(--color-success-text);
}

input[type=email].mt-invalid,
input[type=password].mt-invalid,
input[type=text].mt-invalid {
    background-color: var(--color-danger-light);
    border-color: var(--color-danger);
    color: var(--color-danger-text);
}

/* validated - checkbox */

input[type=checkbox].mt-valid {
    -webkit-box-shadow: 0 0 10px var(--color-success);
    box-shadow: 0 0 10px var(--color-success);
    background-color: var(--color-success-light);
    outline: 2px solid var(--color-success) !important;
}

input[type=checkbox].mt-invalid {
    -webkit-box-shadow: 0 0 10px var(--color-danger);
    box-shadow: 0 0 10px var(--color-danger);
    background-color: var(--color-danger-light);
    outline: 2px solid var(--color-danger) !important;
}

/* validated - combobox */

select.mt-valid {
    background-color: var(--color-success-light);
    border-color: var(--color-success);
    color: var(--color-success-text);
}

select.mt-invalid {
    background-color: var(--color-danger-light);
    border-color: var(--color-danger);
    color: var(--color-danger-text);
}

    select.mt-valid option,
    select.mt-invalid option {
        background: #ffffff;
        color: #202020;
    }

/* input */

.mt-input {
    margin-bottom: 0.5em;
}

/* alert */

.alert.mt-alert-primary {
    /* TODO */
}

.alert.mt-alert-primary-light {
    /* TODO */
}

.alert.mt-alert-secondary {
    /* TODO */
}

.alert.mt-alert-secondary-light {
    /* TODO */
}

/* alert - success */

.alert.mt-alert-success {
    background-color: var(--color-success-light);
    border: 1pt solid;
    border-color: var(--color-success);
    color: var(--color-success-text);
}

.alert.mt-alert-success-light {
    background-color: transparent;
    border: 1pt solid;
    border-color: var(--color-success);
    color: var(--color-success-text);
}

        @media screen and (max-width: 450px) {
            .alert.mt-alert-success,
            .alert.mt-alert-success-light {
                padding: 1rem 0.75rem;
            }
        }

.alert.mt-alert-success a.alert-link,
.alert.mt-alert-success-light a.alert-link {
    color: var(--color-success-text);
}

    .alert.mt-alert-success a.alert-link:hover,
    .alert.mt-alert-success-light a.alert-link:hover {
        color: var(--color-success);
    }

/* alert - danger */

.alert.mt-alert-danger {
    background-color: var(--color-danger-light);
    border: 1pt solid;
    border-color: var(--color-danger);
    color: var(--color-danger-text);
}

.alert.mt-alert-danger-light {
    background-color: transparent;
    border: 1pt solid;
    border-color: var(--color-danger);
    color: var(--color-danger-text);
}

        @media screen and (max-width: 450px) {
            .alert.mt-alert-danger,
            .alert.mt-alert-danger-light {
                padding: 1rem 0.75rem;
            }
        }

.alert.mt-alert-danger a.alert-link,
.alert.mt-alert-danger-light a.alert-link {
    color: var(--color-danger-text);
}

    .alert.mt-alert-danger a.alert-link:hover,
    .alert.mt-alert-danger-light a.alert-link:hover {
        color: var(--color-danger);
    }

/* alert - warning */

.alert.mt-alert-warning {
    background-color: var(--color-warning-light);
    border: 1pt solid;
    border-color: var(--color-warning);
    color: var(--color-warning-text);
}

.alert.mt-alert-warning-light {
    background-color: transparent;
    border: 1pt solid;
    border-color: var(--color-warning);
    color: var(--color-warning-text);
}

        @media screen and (max-width: 450px) {
            .alert.mt-alert-warning,
            .alert.mt-alert-warning-light {
                padding: 1rem 0.75rem;
            }
        }

.alert.mt-alert-warning a.alert-link,
.alert.mt-alert-warning-light a.alert-link {
    color: var(--color-warning-text);
}

    .alert.mt-alert-warning a.alert-link:hover,
    .alert.mt-alert-warning-light a.alert-link:hover {
        color: var(--color-warning);
    }

/* alert - info */

.alert.mt-alert-info {
    background-color: var(--color-info-light);
    border: 1pt solid;
    border-color: var(--color-info);
    color: var(--color-info-text);
}

.alert.mt-alert-info-light {
    background-color: transparent;
    border: 1pt solid;
    border-color: var(--color-info);
    color: var(--color-info-text);
}

        @media screen and (max-width: 450px) {
            .alert.mt-alert-info,
            .alert.mt-alert-info-light {
                padding: 1rem 0.75rem;
            }
        }

.alert.mt-alert-info a.alert-link,
.alert.mt-alert-info-light a.alert-link {
    color: var(--color-info-text);
}

    .alert.mt-alert-info a.alert-link:hover,
    .alert.mt-alert-info-light a.alert-link:hover {
        color: var(--color-info);
    }

/* alert - disabled */

.alert.mt-alert-disabled {
    background-color: var(--color-disabled-light);
    border: 1pt solid;
    border-color: var(--color-disabled);
    color: var(--color-disabled-text);
}

.alert.mt-alert-disabled-light {
    background-color: transparent;
    border: 1pt solid;
    border-color: var(--color-disabled);
    color: var(--color-disabled-text);
}

        @media screen and (max-width: 450px) {
            .alert.mt-alert-disabled,
            .alert.mt-alert-disabled-light {
                padding: 1rem 0.75rem;
            }
        }

.alert.mt-alert-disabled a.alert-link,
.alert.mt-alert-disabled-light a.alert-link {
    color: var(--color-disabled-text);
}

    .alert.mt-alert-disabled a.alert-link:hover,
    .alert.mt-alert-disabled-light a.alert-link:hover {
        color: var(--color-disabled);
    }

/* badge*/

.mt-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.625rem;
    border-radius: 0.5rem;
    white-space: nowrap;
}

.mt-badge-active {
    background: var(--color-success-light);
    color: var(--color-success-text);
}

.mt-badge-cancelled {
    background: var(--color-warning-light);
    color: var(--color-warning-text);
}

.mt-badge-expired {
    background: var(--color-disabled-light);
    color: var(--color-disabled-text);
}

.mt-badge-dot {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}

.mt-proof {
    margin-bottom: 1rem;
}

.mt-proof > button:first-of-type {
    background: transparent;
    border-color: transparent;
    border-width: 0;
    box-shadow: none;
    outline: none;
    font-weight: 500;
    padding: 0;
    vertical-align: middle;
}

    .mt-proof > button:first-of-type:after {
        content: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-square' viewBox='0 0 16 16'%3E%3Cpath d='M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z'/%3E%3C/svg%3E");
        padding-left: 0.5rem;
        vertical-align: middle;
    }

    .mt-proof > button:first-of-type.collapsed:after {
        content: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-plus-square' viewBox='0 0 16 16'%3E%3Cpath d='M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3E%3C/svg%3E");
        padding-left: 0.5rem;
        vertical-align: middle;
    }

/* subscription plans */

.mt-sub {
    margin-bottom: 1rem;
}

    .mt-sub > input {
        visibility: hidden;
        position: absolute;
    }

        .mt-sub > input + label {
            border: 1px solid #202020;
            height: 100%;
            width: 100%;
        }

        .mt-sub > input:checked + label {
            background-color: #dff0d8;
            border: 3px solid #3c763d;
        }

        .mt-sub > input + label > span {
            display: block;
        }

            .mt-sub > input + label > span > .mt-sub-desc {
                align-items: center;
                border-bottom: 1px solid;
                display: inline-flex;
                justify-content: center;
                min-height: 4em;
                text-align: center;
                width: 100%;
            }

            .mt-sub > input + label > span > .mt-sub-price {
                display: block;
                font-size: xx-large;
                margin-top: 1rem;
                text-align: center;
            }

            .mt-sub > input + label > span > .mt-sub-vat {
                display: block;
                font-size: small;
                margin-bottom: 1rem;
                text-align: center;
            }

            .mt-sub > input + label > span > .mt-sub-recurring {
                display: block;
                font-size: small;
                text-align: center;
            }

/* workaround (TODO) */

a.dropdown-item {
    align-items: center;
    display: flex;
}

/* sidebar */

.mt-wrapper {
    height: 100vh;
    height: 100dvh;
    overflow-x: hidden;
    overflow-y: hidden;
}

.mt-sidebar {
    background-color: #333333;
    box-sizing: border-box;
    height: 100vh;
    height: 100dvh;
    left: 0;
    overflow: hidden;
    position: fixed;
    top: 0;
    transform: translateX(-100%);
    transition: all 0.3s;
    width: 300px;
}

.mt-sidebar-open .mt-sidebar {
    transform: translateX(0);
    z-index: 2000;
}

.mt-scroller {
    box-sizing: border-box;
    height: 100%;
    overflow-x: hidden;
    padding: 0.5rem;
    position: relative;
    transform: translateX(0);
    transition: all 0.3s;
    width: 100vw;
    width: 100dvw;
}

.mt-sidebar-open .mt-scroller {
    transform: translateX(300px);
    overflow-y: hidden;
}

.mt-overlay {
    background-color: rgba(0, 0, 0, 0.2);
    display: none !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    z-index: 1000;
}

.mt-sidebar-open .mt-overlay {
    display: block !important;
}

/* sidebar - menu */

.mt-menu-trigger {
    display: inline-block;
    color: #d3d3d3;
    vertical-align: middle;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    line-height: 20px;
    padding: 15px 0;
    transition: color 0.3s;
    white-space: nowrap;

    &:hover {
        color: white;
    }
}

.mt-menu {
    display: flex;
    flex-direction: column;
    height: 100%;

    & > :last-child {
        flex: 1;
        min-height: 0;
        overflow-y: auto !important;
    }
}

    .mt-menu a,
    .mt-menu button {
        border: 0;
        border-radius: 0;
        cursor: pointer;
        text-decoration: none;
        color: #d3d3d3 !important;
        outline: none;
        text-align: left;
        text-wrap: auto;
        transition: all 0.3s;

        &:hover,
        &:focus {
            color: white !important;
        }
    }

.mt-btn-back,
.mt-btn-close {
    background: rgba(0, 0, 0, 0.1);
    border: 0;
    border-radius: 0;
    color: #d3d3d3;
    cursor: pointer;
    font-size: 1.5rem;
    height: 3rem;
    outline: none;
    padding: 0.25rem 0.75rem;
    text-decoration: none;
    transition: all 0.3s;
    vertical-align: middle;
    width: 50%;

    &:active,
    &:hover {
        background: rgba(0, 0, 0, 0.2) !important;
        color: white !important;
    }
}

    .mt-btn-back:before {
        font-family: "Font Awesome 6 Free";
        content: "\f0d9";
        float: left;
    }

    .mt-btn-close:after {
        font-family: "Font Awesome 6 Free";
        content: "\f00d";
        float: right;
    }

.mt-menu .mt-logo {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 80%;
}

.mt-menu ul.mt-menu-items,
.mt-menu ul.mt-menu-levels {
    margin: 0;
    padding: 0;
    list-style: none;
}

    .mt-menu ul.mt-menu-items button {
        box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2);
        display: block;
        font-size: 1rem;
        padding: 0.75rem 2.5rem 0.75rem 2rem;
        width: 100%;

        &:hover {
            background: rgba(0, 0, 0, 0.2);
            box-shadow: inset 0 -1px rgba(0, 0, 0, 0);
        }
    }

    .mt-menu ul.mt-menu-levels li {
        list-style: none;
    }

    .mt-menu ul.mt-menu-levels button {
        background-color: transparent;
        box-sizing: border-box;
        font-size: small;
        padding: 0;
        padding-left: 2rem;
        cursor: pointer;

        &:before {
            font-family: "Font Awesome 6 Free";
            font-size: smaller;
            content: "\f101\0020";
            left: 0;
            position: relative;
        }

        &:hover {
            background-color: transparent;
        }
    }

.mt-menu div.mt-current-level {
    color: white;
    cursor: default;
    font-weight: 300;
    font-size: 1.5rem;
    padding-left: 2rem;
}

.mt-menu ul.mt-menu-items a,
.mt-menu ul.mt-menu-items button {
    background-color: transparent;
    box-sizing: border-box;
    box-shadow: inset 0 -1px rgba(0, 0, 0, 0.2);
    display: block;
    font-size: 1rem;
    padding: 0.75rem 2.5rem 0.75rem 2rem;
    width: 100%;

    &:hover {
        background: rgba(0, 0, 0, 0.2);
        box-shadow: inset 0 -1px rgba(0, 0, 0, 0);
    }
}

    .mt-menu ul.mt-menu-items button:after {
        font-family: "Font Awesome 6 Free";
        content: "\f0da";
        float: right;
        position: relative;
        right: -1.75rem;
        vertical-align: middle;
    }

    /* mt-rule-table */

.mt-rule-table tr > :last-child {
    width: 100%;
}

.mt-rule-table > tbody > tr {

    & th, & td {
        vertical-align: middle;
    }

    & ul {
        margin: 0;
        padding-left: 1.5rem;
    }

    & .mt-math-block {
        display: inline-block;
        margin: 0.5rem 0;
    }
}

@media (max-width: 575.98px) {
    .mt-rule-table {
        display: block;
        width: 100%;

        & thead {
            display: none;
        }

        & tbody {
            display: block;
            width: 100%;
        }

        & tr {
            display: grid;
            grid-template-columns: minmax(4rem, auto) 1fr;
            grid-template-areas:
                "rule01 rule02"
                "rule03 rule03";
            column-gap: .5rem;
            padding: .5rem 0;
            border: none;
            border-top: 1px solid var(--bs-border-color, #dee2e6);
            width: 100%;

            &:last-child {
                border-bottom: 1px solid var(--bs-border-color, #dee2e6);
            }
        }

        & td, & th {
            display: block;
            border: none;
            padding: 0 0.5rem;
        }

            & th:nth-child(1) {
                grid-area: rule01;
                align-self: center;
            }

            & td:nth-child(2) {
                grid-area: rule02;
                align-self: center;
            }

            & td:nth-child(3) {
                grid-area: rule03;
            }
    }

        .mt-rule-table.table-striped > tbody > tr {
            & > * {
                border: none;
            }

            &:nth-of-type(odd) > * {
                --bs-table-bg-type: transparent;
            }
        }
}