@import "mixins/m3-mixins"

label.m3.m3-radio-label
    @include m3-label-mixin
    & > span.m3.m3-radio-state-layer
        @include m3-state-layer-mixin

input[type="radio"].m3.m3-radio
    appearance: none
    display: flex
    align-items: center
    justify-content: center
    z-index: 10
    width: 20px
    margin: 0
    aspect-ratio: inherit
    border-radius: 50%
    border: 2px solid var(--md-sys-color-on-surface-variant)
    transition: background-color .2s cubic-bezier(0.2, 0, 0, 1)

    &::after
        content: ""
        width: 10px
        aspect-ratio: 1
        border-radius: 50%

    &:disabled
        border: 2px solid color-mix(in srgb, var(--md-sys-color-on-surface) 38%, transparent)

    &:checked
        border: 2px solid var(--md-sys-color-primary)

    &:checked::after
        background-color: var(--md-sys-color-primary)

    &:checked:disabled
        border: 2px solid color-mix(in srgb, var(--md-sys-color-on-surface) 38%, transparent)

    &:checked:disabled::after
        background-color: color-mix(in srgb, var(--md-sys-color-on-surface) 38%, transparent)

    &:not(:disabled)

        &:checked:hover + span.m3.m3-radio-state-layer
            background-color: color-mix(in srgb, var(--md-sys-color-primary) 8%, transparent)

        &:is(:checked:active, :indeterminate:active) + span.m3.m3-radio-state-layer
            background-color: color-mix(in srgb, var(--md-sys-color-primary) 12%, transparent)
            & + span.m3-ripple-domain > .m3.ripple
                background-color: color-mix(in srgb, var(--md-sys-color-on-surface) 20%, transparent)

        &:hover
            & + span.m3.m3-radio-state-layer
                background-color: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent)

        &:active + span.m3.m3-radio-state-layer
            background-color: color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent)
            & + span.m3-ripple-domain > .m3.ripple
                background-color: color-mix(in srgb, var(--md-sys-color-primary) 20%, transparent)
