@use '../../variables' as *;

$b: '.quantity-input';

#{$b} {
    display: flex;

    &_medium {
    }

    &_big {
    }

    &__button {
        align-items: center;
        background-color: $quantity-input-button-bg;
        border: $quantity-input-button-border-width solid $quantity-input-button-border-color;
        color: $quantity-input-button-color;
        cursor: pointer;
        display: flex;
        flex-shrink: 0;
        height: 4px * 10;
        justify-content: center;
        transition-duration: var(--duration-micro-s);
        transition-property: background-color, border-color, color;
        transition-timing-function: var(--easing-standard);
        width: 4px * 6;

        &:disabled {
            background-color: $quantity-input-button-disabled-bg;
            border-color: $quantity-input-button-border-disabled-color;
            cursor: default;
        }

        &:not(:disabled):hover,
        &:not(:disabled):focus-visible {
            border-color: $quantity-input-button-border-active-color;
        }

        &_minus {
            border-bottom-left-radius: $quantity-input-radius;
            border-top-left-radius: $quantity-input-radius;

            #{$b}_medium & {
                @media (--tablet-landscape-up) {
                    border-bottom-left-radius: $quantity-input-medium-radius;
                    border-top-left-radius: $quantity-input-medium-radius;
                }
            }

            #{$b}_big & {
                border-bottom-left-radius: $quantity-input-big-radius;
                border-top-left-radius: $quantity-input-big-radius;
            }
        }

        &_plus {
            border-bottom-right-radius: $quantity-input-radius;
            border-top-right-radius: $quantity-input-radius;

            #{$b}_medium & {
                @media (--tablet-landscape-up) {
                    border-bottom-right-radius: $quantity-input-medium-radius;
                    border-top-right-radius: $quantity-input-medium-radius;
                }
            }

            #{$b}_big & {
                border-bottom-right-radius: $quantity-input-big-radius;
                border-top-right-radius: $quantity-input-big-radius;
            }
        }

        #{$b}_medium & {
            @media (--tablet-landscape-up) {
                height: 4px * 12;
                width: 4px * 10;
            }
        }

        #{$b}_big & {
            height: 4px * 12;
            width: 4px * 16;
        }
    }

    &__icon {
        fill: currentcolor;
        height: 4px * 2;
        width: 4px * 2;

        #{$b}_medium & {
            @media (--tablet-landscape-up) {
                height: 4px * 3;
                width: 4px * 3;
            }
        }

        #{$b}_medium #{$b}__button_minus & {
            @media (--tablet-landscape-up) {
                margin-left: 2px;
            }
        }

        #{$b}_medium #{$b}__button_plus & {
            @media (--tablet-landscape-up) {
                margin-right: 2px;
            }
        }

        #{$b}_big & {
            height: 4px * 3;
            width: 4px * 3;
        }

        #{$b}_big #{$b}__button_minus & {
            margin-left: 4px;
        }

        #{$b}_big #{$b}__button_plus & {
            margin-right: 4px;
        }
    }

    &__input {
        appearance: none;
        background-color: $quantity-input-bg;
        border-bottom: $quantity-input-border-width solid $quantity-input-border-color;
        border-left-style: none;
        border-radius: 0;
        border-right-style: none;
        border-top: $quantity-input-border-width solid $quantity-input-border-color;
        color: $quantity-input-color;
        flex-grow: 1;
        flex-shrink: 1;
        height: 4px * 10;
        text-align: center;
        transition-duration: var(--duration-micro-s);
        transition-property: border-color, color;
        transition-timing-function: var(--easing-standard);
        width: 0%; /* Иначе в Firefox не уменьшается (например, в блоке "Комплектации" на странице товара) */

        @include font($quantity-input-font);

        @media (--tablet-landscape-up) {
            appearance: textfield;
        }

        &::-webkit-inner-spin-button,
        &::-webkit-outer-spin-button {
            @media (--tablet-landscape-up) {
                appearance: none;
            }
        }

        &:disabled {
            border-color: $quantity-input-disabled-border-color;
            color: $quantity-input-disabled-color;
        }

        &:not(:disabled):focus-visible {
            border-color: $quantity-input-disabled-focus-visible-border-color;
        }

        #{$b}_medium & {
            @media (--tablet-landscape-up) {
                height: 4px * 12;

                @include font($quantity-input-medium-font);
            }
        }

        #{$b}_big & {
            height: 4px * 12;

            @include font($quantity-input-big-font);
        }
    }
}
