@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

@media (prefers-color-scheme: light) {

    :root,
    ::backdrop {
        --m3-scheme-primary: rgb(101, 85, 143);
        --m3-scheme-on-primary: rgb(255, 255, 255);
        --m3-scheme-primary-container: rgb(233, 221, 255);
        --m3-scheme-on-primary-container: rgb(32, 16, 71);
        --m3-scheme-inverse-primary: rgb(207, 189, 254);
        --m3-scheme-secondary: rgb(98, 91, 113);
        --m3-scheme-on-secondary: rgb(255, 255, 255);
        --m3-scheme-secondary-container: rgb(232, 222, 248);
        --m3-scheme-on-secondary-container: rgb(30, 25, 43);
        --m3-scheme-tertiary: rgb(126, 82, 96);
        --m3-scheme-on-tertiary: rgb(255, 255, 255);
        --m3-scheme-tertiary-container: rgb(255, 217, 227);
        --m3-scheme-on-tertiary-container: rgb(49, 16, 29);
        --m3-scheme-error: rgb(186, 26, 26);
        --m3-scheme-on-error: rgb(255, 255, 255);
        --m3-scheme-error-container: rgb(255, 218, 214);
        --m3-scheme-on-error-container: rgb(65, 0, 2);
        --m3-scheme-background: rgb(253, 247, 255);
        --m3-scheme-on-background: rgb(29, 27, 32);
        --m3-scheme-surface: rgb(253, 247, 255);
        --m3-scheme-on-surface: rgb(29, 27, 32);
        --m3-scheme-surface-variant: rgb(231, 224, 235);
        --m3-scheme-on-surface-variant: rgb(73, 69, 78);
        --m3-scheme-inverse-surface: rgb(50, 47, 53);
        --m3-scheme-inverse-on-surface: rgb(245, 239, 247);
        --m3-scheme-outline: rgb(122, 117, 127);
        --m3-scheme-outline-variant: rgb(202, 196, 207);
        --m3-scheme-shadow: rgb(0, 0, 0);
        --m3-scheme-scrim: rgb(0, 0, 0);
        --m3-scheme-surface-dim: rgb(222, 216, 224);
        --m3-scheme-surface-bright: rgb(253, 247, 255);
        --m3-scheme-surface-container-lowest: rgb(255, 255, 255);
        --m3-scheme-surface-container-low: rgb(248, 242, 250);
        --m3-scheme-surface-container: rgb(242, 236, 244);
        --m3-scheme-surface-container-high: rgb(236, 230, 238);
        --m3-scheme-surface-container-highest: rgb(230, 224, 233);
        --m3-scheme-surface-tint: rgb(101, 85, 143);
    }
}

:root {
    --m3-util-elevation-0: none;
    --m3-util-elevation-1: 0px 3px 1px -2px rgb(from var(--m3-scheme-shadow) r g b / 20%), 0px 2px 2px 0px rgb(from var(--m3-scheme-shadow) r g b / 14%), 0px 1px 5px 0px rgb(from var(--m3-scheme-shadow) r g b / 12%);
    --m3-util-elevation-2: 0px 2px 4px -1px rgb(from var(--m3-scheme-shadow) r g b / 20%), 0px 4px 5px 0px rgb(from var(--m3-scheme-shadow) r g b / 14%), 0px 1px 10px 0px rgb(from var(--m3-scheme-shadow) r g b / 12%);
    --m3-util-elevation-3: 0px 5px 5px -3px rgb(from var(--m3-scheme-shadow) r g b / 20%), 0px 8px 10px 1px rgb(from var(--m3-scheme-shadow) r g b / 14%), 0px 3px 14px 2px rgb(from var(--m3-scheme-shadow) r g b / 12%);
    --m3-util-elevation-4: 0px 5px 5px -3px rgb(from var(--m3-scheme-shadow) r g b / 20%), 0px 8px 10px 1px rgb(from var(--m3-scheme-shadow) r g b / 14%), 0px 3px 14px 2px rgb(from var(--m3-scheme-shadow) r g b / 12%);
    --m3-util-elevation-5: 0px 8px 10px -6px rgb(from var(--m3-scheme-shadow) r g b / 20%), 0px 16px 24px 2px rgb(from var(--m3-scheme-shadow) r g b / 14%), 0px 6px 30px 5px rgb(from var(--m3-scheme-shadow) r g b / 12%);
    --m3-util-bottom-offset: 0;
    --m3-util-rounding-none: 0;
    --m3-util-rounding-extra-small: .25rem;
    --m3-util-rounding-small: .5rem;
    --m3-util-rounding-medium: .75rem;
    --m3-util-rounding-large: 1rem;
    --m3-util-rounding-extra-large: 1.75rem;
    --m3-util-rounding-full: 100rem;
    --m3-font: Roboto, system-ui, sans-serif;
}

:root {
    --m3-snackbar-shape: var(--m3-util-rounding-extra-small);
    --m3-segmented-button-shape: var(--m3-util-rounding-full);
    --m3-button-shape: var(--m3-util-rounding-full);
    --m3-chip-shape: var(--m3-util-rounding-small);
    --m3-textfield-outlined-shape: var(--m3-util-rounding-extra-small);
    --m3-textfield-filled-shape: var(--m3-util-rounding-extra-small);
    --m3-datefield-shape: var(--m3-util-rounding-extra-small);
    --m3-date-picker-shape: var(--m3-util-rounding-large);
    --m3-slider-track-out-shape: .5rem;
    --m3-slider-track-in-shape: .125rem;
    --m3-slider-thumb-shape: var(--m3-util-rounding-full);
    --m3-menu-shape: var(--m3-util-rounding-extra-small);
    --m3-linear-progress-shape: var(--m3-util-rounding-full);
    --m3-bottom-sheet-shape: var(--m3-util-rounding-extra-large);
    --m3-card-shape: var(--m3-util-rounding-medium);
    --m3-fab-small-shape: var(--m3-util-rounding-small);
    --m3-fab-normal-shape: var(--m3-util-rounding-large);
    --m3-fab-large-shape: var(--m3-util-rounding-extra-large);
    --m3-dialog-shape: var(--m3-util-rounding-extra-large);
    --m3-checkbox-shape: .175rem;
    --m3-radio-shape: var(--m3-util-rounding-full);
    --m3-switch-track-shape: var(--m3-util-rounding-full);
    --m3-switch-handle-shape: var(--m3-util-rounding-full);
}

* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    max-width: 100%;
}

[disabled],
.segmented input:disabled+label {
    color: rgb(from var(--m3-scheme-on-surface) r g b / 38%);
    pointer-events: none;
}

a {
    color: inherit;
    text-decoration: none;
}

pre {
    overflow-x: auto;
}

i {
    line-height: 0;
}

iconify-icon:not(aside iconify-icon, iconify-icon[width][height]) {
    display: inline-block;
    width: 1em;
    height: 1em;
}

.primary {
    background: var(--m3-scheme-primary) !important;
    color: var(--m3-scheme-on-primary) !important;
}

.primary-container {
    background: var(--m3-scheme-primary-container) !important;
    color: var(--m3-scheme-on-primary-container) !important;
}

.secondary {
    background: var(--m3-scheme-secondary) !important;
    color: var(--m3-scheme-on-secondary) !important;
}

.secondary-container {
    background: var(--m3-scheme-secondary-container) !important;
    color: var(--m3-scheme-on-secondary-container) !important;
}

.tertiary {
    background: var(--m3-scheme-tertiary) !important;
    color: var(--m3-scheme-on-tertiary) !important;
}

.tertiary-container {
    background: var(--m3-scheme-tertiary-container) !important;
    color: var(--m3-scheme-on-tertiary-container) !important;
}

.background {
    background: var(--m3-scheme-background) !important;
    color: var(--m3-scheme-on-background) !important;
}

.surface {
    background: var(--m3-scheme-surface) !important;
    color: var(--m3-scheme-on-surface) !important;
}

.inverse-surface {
    background: var(--m3-scheme-inverse-surface) !important;
    color: var(--m3-scheme-inverse-on-surface) !important;
}

.surface-variant {
    background: var(--m3-scheme-surface-variant) !important;
    color: var(--m3-scheme-on-surface-variant) !important;
}

.error {
    background: var(--m3-scheme-error) !important;
    color: var(--m3-scheme-on-error) !important;
}

.error-container {
    background: var(--m3-scheme-error-container) !important;
    color: var(--m3-scheme-on-error-container) !important;
}

.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1rem;
}

.grid>* {
    margin: 0;
    grid-column: span var(--num);
}

.grid>.s1,
.grid.all-s1>* {
    --num: 1;
}

.grid>.s2,
.grid.all-s2>* {
    --num: 2;
}

.grid>.s3,
.grid.all-s3>* {
    --num: 3;
}

.grid>.s4,
.grid.all-s4>* {
    --num: 4;
}

.grid>.s5,
.grid.all-s5>* {
    --num: 5;
}

.grid>.s6,
.grid.all-s6>* {
    --num: 6;
}

.grid>.s7,
.grid.all-s7>* {
    --num: 7;
}

.grid>.s8,
.grid.all-s8>* {
    --num: 8;
}

.grid>.s9,
.grid.all-s9>* {
    --num: 9;
}

.grid>.s10,
.grid.all-s10>* {
    --num: 10;
}

.grid>.s11,
.grid.all-s11>* {
    --num: 11;
}

.grid>.s12,
.grid.all-s12>* {
    --num: 12;
}

@media screen and (min-width: 48em) {

    .grid>.m1,
    .grid.all-m1>* {
        --num: 1;
    }

    .grid>.m2,
    .grid.all-m2>* {
        --num: 2;
    }

    .grid>.m3,
    .grid.all-m3>* {
        --num: 3;
    }

    .grid>.m4,
    .grid.all-m4>* {
        --num: 4;
    }

    .grid>.m5,
    .grid.all-m5>* {
        --num: 5;
    }

    .grid>.m6,
    .grid.all-m6>* {
        --num: 6;
    }

    .grid>.m7,
    .grid.all-m7>* {
        --num: 7;
    }

    .grid>.m8,
    .grid.all-m8>* {
        --num: 8;
    }

    .grid>.m9,
    .grid.all-m9>* {
        --num: 9;
    }

    .grid>.m10,
    .grid.all-m10>* {
        --num: 10;
    }

    .grid>.m11,
    .grid.all-m11>* {
        --num: 11;
    }

    .grid>.m12,
    .grid.all-m12>* {
        --num: 12;
    }
}

@media screen and (min-width: 64em) {

    .grid>.l1,
    .grid.all-l1>* {
        --num: 1;
    }

    .grid>.l2,
    .grid.all-l2>* {
        --num: 2;
    }

    .grid>.l3,
    .grid.all-l3>* {
        --num: 3;
    }

    .grid>.l4,
    .grid.all-l4>* {
        --num: 4;
    }

    .grid>.l5,
    .grid.all-l5>* {
        --num: 5;
    }

    .grid>.l6,
    .grid.all-l6>* {
        --num: 6;
    }

    .grid>.l7,
    .grid.all-l7>* {
        --num: 7;
    }

    .grid>.l8,
    .grid.all-l8>* {
        --num: 8;
    }

    .grid>.l9,
    .grid.all-l9>* {
        --num: 9;
    }

    .grid>.l10,
    .grid.all-l10>* {
        --num: 10;
    }

    .grid>.l11,
    .grid.all-l11>* {
        --num: 11;
    }

    .grid>.l12,
    .grid.all-l12>* {
        --num: 12;
    }
}

.elevate-none {
    box-shadow: var(--m3-util-elevation-0) !important;
}

.elevate-sm {
    box-shadow: var(--m3-util-elevation-1) !important;
}

.elevate-md {
    box-shadow: var(--m3-util-elevation-2) !important;
}

.elevate-l {
    box-shadow: var(--m3-util-elevation-3) !important;
}

.elevate-xl {
    box-shadow: var(--m3-util-elevation-4) !important;
}

.elevate-xxl {
    box-shadow: var(--m3-util-elevation-5) !important;
}

.margin-none {
    margin: 0 !important;
}

.left-margin {
    margin-left: 1rem;
}

.right-margin {
    margin-right: 1rem;
}

.padding-none {
    padding: 0 !important;
}

.padding-md {
    padding: 1rem !important;
}

.padding-lg {
    padding: 1.75rem !important;
}

.padding-xl {
    padding: 2.5rem !important;
}

.round-tiny {
    border-radius: var(--m3-util-rounding-extra-small) !important;
}

.round-sm {
    border-radius: var(--m3-util-rounding-small) !important;
}

.round-md {
    border-radius: var(--m3-util-rounding-medium) !important;
}

.round-lg {
    border-radius: var(--m3-util-rounding-large) !important;
}

.round-xl {
    border-radius: var(--m3-util-rounding-extra-large) !important;
}

.round-full {
    border-radius: var(--m3-util-rounding-full) !important;
}

.gap-none {
    gap: 0 !important;
}

.gap-sm {
    gap: .25rem !important;
}

.gap-md {
    gap: .85rem !important;
}

.gap-lg {
    gap: 2rem !important;
}

.full {
    width: 100%;
}

.flex {
    display: flex !important;
}

.flex-row {
    flex-direction: row;
}

.flex-col {
    flex-direction: column;
}

.flex-max,
.all-max * {
    display: flex;
    flex: 1;
    flex-grow: 1;
}

.align-start {
    align-items: start !important;
}

.justify-left {
    justify-content: left;
    justify-items: left;
}

.justify-center {
    justify-content: center;
    justify-items: center;
}

.justify-right {
    justify-content: right;
    justify-items: right;
}

.text-left {
    text-align: left;
}

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

.text-right {
    text-align: left;
}

.space-around {
    justify-content: space-around;
}

.overflow-hidden {
    overflow: hidden;
}

summary {
    cursor: pointer;
}

.text-sm {
    font-size: .875rem;
    line-height: 1.25rem;
    letter-spacing: .015625rem;
}

.accent-gradient {
    background-image: linear-gradient(to bottom, var(--m3-scheme-primary-container), var(--m3-scheme-tertiary-container));
    color: var(--m3-scheme-on-primary-container);
}

html,
body {
    margin: 0;
}

body {
    font-family: var(--m3-font);
    font-size: 1rem;
    letter-spacing: .03125rem;
    line-height: 1.5rem;
    background: var(--m3-scheme-background);
    color: var(--m3-scheme-on-background);
    min-height: 100vh;
}

main {
    display: flex;
    min-height: 100vh;
}

main>aside {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    padding: 0 .75rem;
}

main>aside>:is(menu, .row) {
    display: flex;
    height: 100%;
    justify-content: center;
    flex-direction: column;
    padding: 0;
    margin: 0;
}

main>article {
    width: 93.5%;
    margin: 0 0 0 auto;
    padding: 0 1.5rem;
}

@media screen and (max-width: 64em) {
    main>aside {
        background: var(--m3-scheme-surface);
        top: auto;
        bottom: 0;
        padding: .25rem 0;
        width: 100%;
        z-index: 100;
        height: min-content;
    }

    main>aside>:is(menu, .row) {
        justify-content: space-around;
        flex-direction: row;
    }

    main {
        padding: 0 1rem;
        margin: 0 auto 2rem;
    }

    main>article {
        width: 100%;
        padding: 0 0 !important;
        margin-bottom: 2.25rem;
    }

    dialog {
        min-width: 100% !important;
        width: 100%;
    }
}

:is(nav, .row),
.list-box>*,
.menu>*,
label.checkbox *,
label.radio *,
.field:has(i) {
    display: flex;
    align-items: center;
    align-self: normal;
    text-align: start;
    overflow-y: hidden;
    overflow-x: auto;
}

:is(nav, .row) *:not(main>aside *, :is(h1, h2, h3, h4, h5, h6)) {
    margin-bottom: 0;
    margin-top: 0;
}

main>aside li,
main>aside li:has(*>i)>* {
    width: 3.5rem;
    margin: .35rem 0;
    cursor: pointer;
    display: flex;
    text-align: center;
    list-style-type: none;
    align-self: center;
    flex-direction: column;
    justify-content: center;
}

main>aside li span {
    font-size: .75rem;
    font-weight: 500;
}

main>aside li i {
    width: 100%;
    display: flex;
    align-self: center;
    flex-direction: column;
    justify-content: center;
    padding: .25rem;
    border-radius: var(--m3-util-rounding-full);
    transition: .1s;
}

main>aside li.active i {
    background: var(--m3-scheme-secondary-container);
}

main>aside li i * {
    font-size: 1.5rem;
}

main>article>section {
    margin: 3.5rem 0;
}

main>aside * {
    align-self: center;
}

.card {
    padding: 1rem;
    background: var(--m3-scheme-surface-container-low);
    color: var(--m3-scheme-on-surface);
    box-shadow: var(--m3-util-elevation-1);
    border-radius: var(--m3-card-shape);
}

.container:not(:has(>header, >footer)),
.container>header,
.container>footer {
    padding: 1rem;
    border-radius: var(--m3-util-rounding-extra-large);
    background: var(--m3-scheme-surface-container);
    color: var(--m3-scheme-on-surface);
}

.container:has(>header, >footer) {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.container>header {
    border-radius: var(--m3-util-rounding-extra-large) var(--m3-util-rounding-extra-large) var(--m3-util-rounding-small) var(--m3-util-rounding-small);
    flex-grow: 1;
}

.container>footer {
    border-radius: var(--m3-util-rounding-small) var(--m3-util-rounding-small) var(--m3-util-rounding-extra-large) var(--m3-util-rounding-extra-large);
}

:is(h1, h2, h3, h4, h5, h6) {
    display: inline-block;
    font-weight: 400;
    margin: .75rem 0;
    line-height: normal;
}

h1 {
    font-size: 3.5625rem
}

h2 {
    font-size: 2.8125rem
}

h3 {
    font-size: 2.25rem
}

h4 {
    font-size: 2rem
}

h5 {
    font-size: 1.75rem
}

h6 {
    font-size: 1.5rem
}

h1.small {
    font-size: 3.0625rem
}

h2.small {
    font-size: 2.3125rem
}

h3.small {
    font-size: 1.75rem
}

h4.small {
    font-size: 1.5rem
}

h5.small {
    font-size: 1.25rem
}

h6.small {
    font-size: 1rem
}

h1.display,
.display-xxxl {
    font-size: 4.25rem;
}

h2.display,
.display-xxl {
    font-size: 3.75rem;
}

h3.display,
.display-xl {
    font-size: 3rem;
}

h4.display,
.display-lg {
    font-size: 2.125rem;
}

h5.display,
.display-md {
    font-size: 1.25rem;
}

h6.display,
.display-sm {
    font-size: 1rem;
}

img.btn {
    object-fit: cover;
    object-position: center;
    border: none;
}

:where(button, .btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--m3-scheme-primary);
    border: 1px solid transparent;
    border-radius: var(--m3-button-shape);
    color: var(--m3-scheme-on-primary);
    font-family: inherit;
    font-size: .875rem;
    font-weight: 500;
    line-height: normal;
    letter-spacing: normal;
    padding: .65rem 1.5rem;
    cursor: pointer;
    overflow: hidden;
    text-align: center;
    text-decoration: none;
    transition: .1s;
}

:where(button, .btn):has(i) {
    padding: .65rem 1rem;
}

:where(button, .btn):hover {
    background: rgb(from var(--m3-scheme-primary) r g b / 90%);
    box-shadow: var(--m3-util-elevation-1);
}

:where(button, .btn) i {
    max-width: none;
}

:where(button, .btn) i * {
    font-size: 1.125rem;
    margin: 0 .5rem 0 0;
}

:where(button, .btn).tonal {
    background: var(--m3-scheme-secondary-container);
    color: var(--m3-scheme-on-secondary-container);
}

:where(button, .btn).tonal:hover,
.segmented input:checked+.btn:hover,
.chip:has(input:checked):hover {
    background: rgb(from var(--m3-scheme-primary) r g b / 20%);
}

:where(button, .btn).text,
:where(button, .btn).outline,
.segmented :where(button, .btn) {
    box-shadow: none;
    background: transparent;
    color: var(--m3-scheme-primary);
}

:where(button, .btn).text:hover,
:where(button, .btn).outline:hover,
.segmented :where(button, .btn):hover,
.tabs>label:has(input:checked):hover {
    box-shadow: none;
    background: rgb(from var(--m3-scheme-primary) r g b / 10%);
}

:where(button, .btn).outline,
.segmented {
    border: .0625rem solid var(--m3-scheme-outline);
}

:where(button, .btn).text {
    padding: .8rem .8rem;
}

:where(button, .btn).elevated {
    background: var(--m3-scheme-surface-container-low);
    color: var(--m3-scheme-primary);
    box-shadow: var(--m3-util-elevation-1);
}

:where(button, .btn).elevated:hover {
    background: rgb(from var(--m3-scheme-primary) r g b / 5%);
    box-shadow: var(--m3-util-elevation-2);
}

.segmented {
    display: inline-flex;
    border-radius: var(--m3-segmented-button-shape);
}

.segmented>* {
    border-radius: 0;
}

.segmented>*:not(:last-child) {
    border-right: .0625rem solid var(--m3-scheme-outline);
}

.segmented input:checked+label {
    background: var(--m3-scheme-secondary-container);
}

.segmented input:checked+label:hover {
    background: var(--m3-scheme-secondary-container);
}

.segmented input:checked+label i:not(.checked) {
    display: none;
}

.segmented input:not(:checked)+label i.checked {
    display: none;
}

.segmented input {
    display: none;
}

.segmented label.btn {
    color: var(--m3-scheme-on-secondary-container);
}

.segmented label.btn:hover,
main>aside li:not(.active):hover i,
.menu>*:hover,
.chip:hover,
.tabs>*:hover {
    background: var(--m3-scheme-surface-container-highest);
}

:where(button, .btn).icon,
:where(button, .btn).fab:not(.extended) {
    aspect-ratio: 1/1;
}

:where(button, .btn).icon,
:where(button, .btn).fab.small {
    width: 2.65rem;
}

:where(button, .btn).icon i *,
:where(button, .btn).fab i * {
    font-size: 1.5rem;
    margin-right: 0;
}

:where(button, .btn).fab.small {
    border-radius: var(--m3-fab-small-shape);
}

:where(button, .btn).fab {
    box-shadow: var(--m3-util-elevation-2);
    width: 3.5rem;
    border-radius: var(--m3-fab-normal-shape);
}

:where(button, .btn).fab.large {
    width: 5.5rem;
    border-radius: var(--m3-fab-large-shape);
}

:where(button, .btn).fab.large i * {
    font-size: 2.5rem;
}

:where(button, .btn).fab.extended {
    width: auto;
}

:where(button, .btn).fab.extended i * {
    margin-right: .5rem;
}

dialog {
    position: fixed;
    background: var(--m3-scheme-surface-container-high);
    border: none;
    border-radius: var(--m3-dialog-shape);
    min-width: 35rem;
    max-width: 35rem;
    text-align: center;
    padding: 1.45rem 1.5rem;
}

dialog:not(.bottom-sheet)[open] {
    animation: dialog-in .5s cubic-bezier(.05, .7, .1, 1), dialog-opacity .5s cubic-bezier(.05, .7, .1, 1);
}

@keyframes dialog-in {
    0% {
        transform: translateY(-3rem) scaleY(.9);
        clip-path: inset(0 0 100% 0 round var(--m3-util-rounding-extra-large));
    }

    100% {
        transform: translateY(0) scaleY(1);
        clip-path: inset(0 0 0 0 round var(--m3-util-rounding-extra-large));
    }
}

@keyframes dialog-opacity {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

dialog.bottom-sheet {
    margin-bottom: 0;
    overflow: hidden;
    background: var(--m3-scheme-surface-container-low);
    color: var(--m3-scheme-on-surface);
    border-radius: var(--m3-bottom-sheet-shape) var(--m3-bottom-sheet-shape) 0 0;
    padding: 1rem 1rem;
    border: none;
}

dialog[open].bottom-sheet {
    animation: dialog-bottom .5s cubic-bezier(.05, .7, .1, 1);
}

@keyframes dialog-bottom {
    0% {
        transform: translateY(100%);
    }

    100% {
        transform: translateY(0);
    }
}

dialog::backdrop {
    background: rgb(from var(--m3-scheme-scrim) r g b / 30%);
}

dialog form {
    text-align: right;
}

details .menu {
    position: absolute;
    z-index: 2;
}

.list-box,
.menu {
    background: var(--m3-scheme-surface-container-high);
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.list-box>* {
    padding: 1.15rem 1rem .75rem;
}

.list-box>*>article * {
    margin: 0;
}

.list-box>* i *,
.menu>* i * {
    font-size: 1.5rem;
    margin-right: 1rem;
}

.list-box>*+* {
    border-top: 1px solid var(--m3-scheme-outline-variant);
}

.menu {
    background: var(--m3-scheme-surface-container);
    box-shadow: var(--m3-util-elevation-2);
    font-size: .875rem;
    font-weight: 500;
    border-radius: var(--m3-menu-shape);
    padding: .5rem 0;
    min-width: 7rem;
    max-width: 17.5rem;
}

.menu>* {
    padding: .75rem;
    cursor: pointer;
    transition: .1s;
}

progress:not(.circle, [value]):after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 50%;
    background: var(--m3-scheme-primary);
    animation: 1.2s to-linear linear infinite;
}

@keyframes to-linear {
    0% {
        left: -100%;
    }

    100% {
        left: 100%;
    }
}

progress {
    appearance: none;
}

progress:not(.circle) {
    position: relative;
    height: .25rem;
    border-radius: var(--m3-linear-progress-shape);
    overflow: hidden;
}

::-webkit-progress-value {
    background: var(--m3-scheme-primary);
}

::-webkit-progress-bar {
    background: var(--m3-scheme-primary-container);
}

progress.circle::-webkit-progress-value {
    background: transparent;
}

progress.circle::-webkit-progress-bar {
    background: transparent;
}

progress.circle {
    display: inline-block;
    position: relative;
    width: 3rem;
    height: 3rem;
    background: conic-gradient(var(--m3-scheme-primary) calc(var(--value) * 1%), transparent 0);
    border-radius: 50%;
}

progress.circle::after {
    content: "";
    position: absolute;
    inset: 10%;
    background: var(--m3-scheme-surface-container);
    border-radius: 50%;
}

progress.circle.spin {
    animation: spin 1s infinite linear;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

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

.checkbox,
.radio {
    display: inline-block;
    position: relative;
}

.checkbox:not(:last-child),
.radio:not(:last-child) {
    margin-right: .75rem;
}

.switch input,
.chip input,
.tabs input {
    padding: 0;
    height: initial;
    width: initial;
    margin-bottom: 0;
    display: none;
    cursor: pointer;
}

.checkbox input,
.radio input {
    appearance: none;
    width: 2.25rem;
    height: 2.25rem;
    position: absolute;
    margin: -.35rem -.45rem;
    border-radius: var(--m3-util-rounding-full);
    background: transparent;
    transition: .1s;
}

.radio input {
    margin: -.375rem -.5rem;
}

.checkbox:hover input,
.radio:hover input {
    background: rgb(from var(--m3-scheme-primary) r g b / 10%);
}

.checkbox span,
.radio span {
    position: relative;
    cursor: pointer;
    padding: 0 .115rem;
}

.checkbox span:before,
.radio span::before {
    content: '';
    appearance: none;
    background: transparent;
    border: .15rem solid currentColor;
    border-radius: var(--m3-checkbox-shape);
    padding: .45rem;
    display: inline-block;
    position: relative;
    vertical-align: middle;
    cursor: pointer;
    margin-right: .5rem;
}

.checkbox input:checked+span:before,
.radio input:checked+span:before {
    background: var(--m3-scheme-primary);
    border-color: var(--m3-scheme-primary);
}

.checkbox input:checked+span:after {
    content: '';
    display: block;
    position: absolute;
    top: .3rem;
    left: .5rem;
    width: 4.75px;
    height: .7rem;
    border: solid #ffffff;
    border-width: 0 .1em .1em 0;
    transform: rotate(45deg);
}

.radio span::before {
    border-radius: var(--m3-radio-shape);
    padding: .3rem;
    border: 4px solid transparent;
    outline: .15rem solid currentColor;
}

.radio input:checked+span:before {
    border-color: var(--m3-scheme-surface-container);
    outline-color: var(--m3-scheme-primary);
}

.switch {
    position: relative;
    display: inline-block;
    width: 3.25rem;
    height: 2rem;
}

.switch>span {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--m3-scheme-surface-container-highest);
    border: solid .125rem var(--m3-scheme-outline);
    transition: .2s;
    border-radius: 2rem;
}

.switch>span:before {
    position: absolute;
    content: "";
    width: 1rem;
    height: 1rem;
    left: .4rem;
    bottom: .4rem;
    background: var(--m3-scheme-outline);
    transition: .2s;
    border-radius: var(--m3-switch-handle-shape);
}

.switch>input:not(:checked):active+span::before {
    width: 1.7rem;
    height: 1.7rem;
    bottom: 1px;
    left: 1px;
}

.switch>input:hover+span {
    border-color: var(--m3-scheme-on-surface-variant);
}

.switch>input:hover+span:before {
    background: var(--m3-scheme-on-surface-variant);
    box-shadow: 0 0 0 .95rem rgb(from var(--m3-scheme-outline) r g b / 20%);
}

.switch>input:checked+span {
    background: var(--m3-scheme-primary);
    border-color: var(--m3-scheme-primary);
}

.switch>input:checked+span:before {
    width: 1.55rem;
    height: 1.55rem;
    background: #ffffff;
    transform: translateX(1rem);
    bottom: 1.5px;
}

.switch>input:checked:hover+span:before {
    background: var(--m3-scheme-secondary-container);
    box-shadow: 0 0 0 .75rem rgb(from var(--m3-scheme-outline) r g b / 20%);
}

.switch>input:checked:active+span::before {
    width: 1.8rem;
    height: 1.8rem;
    bottom: 0px;
    left: 4px;
}

.switch>input:checked+span::after {
    content: '';
    display: block;
    position: absolute;
    top: .45rem;
    right: .65rem;
    width: .3rem;
    height: 11px;
    border: solid var(--m3-scheme-primary);
    border-width: 0 .15em .15em 0;
    transform: rotate(45deg);
}

.slider {
    display: block;
    position: relative;
    height: 2.75rem;
    min-width: 10rem;
}

.slider input {
    position: absolute;
    left: -.5rem;
    right: -.5rem;
    width: calc(100% + 1rem);
    height: 100%;
    opacity: 0;
    appearance: none;
    margin: 0;
    cursor: pointer;
}

.slider input:active~.thumb {
    width: .125rem;
}

.slider .track::before {
    position: absolute;
    content: " ";
    left: 0;
    top: 50%;
    translate: 0 -50%;
    width: calc(var(--percent) - .375rem);
    height: 1rem;
    pointer-events: none;
    background: var(--m3-scheme-primary);
    border-start-start-radius: var(--m3-slider-track-out-shape);
    border-end-start-radius: var(--m3-slider-track-out-shape);
    border-start-end-radius: var(--m3-slider-track-in-shape);
    border-end-end-radius: var(--m3-slider-track-in-shape);
}

.slider .track::after {
    position: absolute;
    content: " ";
    right: 0;
    top: 50%;
    translate: 0 -50%;
    width: calc(100% - var(--percent) - .375rem);
    height: 1rem;
    pointer-events: none;
    background: var(--m3-scheme-primary-container);
    border-start-start-radius: var(--m3-slider-track-in-shape);
    border-end-start-radius: var(--m3-slider-track-in-shape);
    border-start-end-radius: var(--m3-slider-track-out-shape);
    border-end-end-radius: var(--m3-slider-track-out-shape);
}

.slider .thumb {
    position: absolute;
    left: var(--percent);
    translate: -50% 0;
    width: .25rem;
    height: 2.75rem;
    border-radius: 1.25rem;
    background: var(--m3-scheme-primary);
    pointer-events: none;
    transition: width .2s;
}

.slider .tooltip {
    position: absolute;
    background: var(--m3-scheme-inverse-surface);
    color: var(--m3-scheme-inverse-on-surface);
    width: 3rem;
    text-align: center;
    padding: .65rem 0;
    font-weight: 500;
    font-size: .875rem;
    border-radius: var(--m3-slider-thumb-shape);
    left: var(--percent);
    top: -3rem;
    translate: -50% 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

.slider:hover .tooltip {
    opacity: 1;
}

.field {
    position: relative;
}

.field:not(:last-child, :is(nav, .row) .field, .grid>.field) {
    margin-bottom: 1rem;
}

.field :is(input, textarea) {
    display: block;
    border: none;
    outline: none;
    min-width: 15.5rem;
    border-bottom: 1px solid var(--m3-scheme-outline);
    background: var(--m3-scheme-surface-container-highest);
    border-radius: var(--m3-textfield-filled-shape) var(--m3-textfield-filled-shape) 0 0;
    box-sizing: border-box;
    font: inherit;
    padding: 1.5rem 1rem .5rem;
    transition: all 0.15s ease-out;
}

.field :is(input, textarea):hover {
    background: rgb(from var(--m3-scheme-on-surface) r g b / 15%);
}

.field label {
    position: absolute;
    top: 1rem;
    bottom: 0;
    left: 1rem;
    display: flex;
    align-items: self-start;
    pointer-events: none;
}

.field label span {
    transition: all 0.15s ease-out;
}

.field :is(input, textarea):focus {
    outline: none;
    border-bottom: 2px solid var(--m3-scheme-primary);
}

.field :is(input, textarea):focus+label span,
.field :not(:is(input, textarea):placeholder-shown)+label span {
    font-size: .75rem;
    transform: translate(0, -50%);
}

.field :is(input, textarea):focus+label span {
    color: var(--m3-scheme-primary);
}

.field:has(i) :is(input, textarea) {
    padding: 1.5rem 1rem .5rem 2.85rem;
}

.field:has(i) label {
    left: 2.85rem;
}

.field i {
    position: absolute;
    pointer-events: none;
    left: .65rem;
}

.field i * {
    font-size: 1.5rem;
}

.chip {
    display: inline-flex;
    padding: .35rem 1rem;
    border-radius: var(--m3-chip-shape);
    background: var(--m3-scheme-surface);
    color: var(--m3-scheme-on-surface-variant);
    border: solid .0625rem var(--m3-scheme-outline);
}

.chip i * {
    margin-left: -.25rem;
}

.chip i:last-child {
    margin-left: .65rem;
    margin-right: -.75rem;
}

.chip:has(input:not(:checked)):hover {
    box-shadow: none;
}

.chip:has(input:checked) {
    border-color: transparent;
    background: var(--m3-scheme-secondary-container);
    color: var(--m3-scheme-on-secondary-container);
}

.tabs {
    display: flex;
    background: var(--m3-scheme-surface);
    border-bottom: 1px solid var(--m3-scheme-outline-variant);
}

.tabs.variable {
    padding: 0 1rem;
}

.tabs.variable>* {
    width: max-content;
    padding: .65rem 1rem;
}

.tabs>* {
    position: relative;
    font-size: .875rem;
    font-weight: 500;
    padding: .65rem 0;
    cursor: pointer;
    width: 100%;
    text-align: center;
    transition: .1s;
}

.tabs i {
    display: block;
}

.tabs i * {
    font-size: 1.5rem;
}

.tabs>label:has(input:checked) {
    color: var(--m3-scheme-primary);
}

.tabs>label:has(input:checked):after {
    content: "";
    position: absolute;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    height: .15rem;
    width: 3rem;
    margin: 0 auto;
    background: var(--m3-scheme-primary);
}