@layer kora.components {
    .kora-switch {
        display: inline-flex;
        align-items: center;
        gap: var(--kora-space-2);
        cursor: pointer;
        font-family: var(--kora-font-sans);
        color: var(--kora-color-text);
    }

    .kora-switch__track {
        position: relative;
        width: 2.25rem;
        height: 1.25rem;
        flex: none;
        border-radius: var(--kora-radius-pill);
        background: var(--kora-surface-2);
        transition: background-color var(--kora-duration-base) var(--kora-ease);
    }

    .kora-switch__thumb {
        position: absolute;
        top: 2px;
        left: 2px;
        width: calc(1.25rem - 4px);
        height: calc(1.25rem - 4px);
        border-radius: 50%;
        background: var(--kora-white);
        transition: transform var(--kora-duration-base) var(--kora-ease);
    }

    .kora-switch__input:checked + .kora-switch__track {
        background: var(--kora-color-accent);
    }
    .kora-switch__input:checked + .kora-switch__track .kora-switch__thumb {
        transform: translateX(1rem);
    }
    .kora-switch__input:focus-visible + .kora-switch__track {
        outline: 2px solid var(--kora-color-accent);
        outline-offset: 2px;
    }
    .kora-switch__input:disabled ~ * {
        opacity: 0.5;
    }

    .kora-switch__label {
        font-size: var(--kora-text-md);
    }
}
