@theme {
    --ring-color-*: initial;

    --ring-color-primary: var(--color-primary-200);
    --ring-color-success: var(--color-success-200);
    --ring-color-warning: var(--color-warning-200);
    --ring-color-critical: var(--color-critical-200);
}

@utility focus-ring {
    &:focus,
    &:has(:focus) {
        outline: none;
    }

    &:focus-visible,
    &:has(:focus-visible) {
        @apply ring-3 ring-offset-3;
    }
}

@utility focus-ring-primary {
    @apply focus-ring;

    &:focus-visible,
    &:has(:focus-visible) {
        @apply ring-primary;
    }
}

@utility focus-ring-success {
    @apply focus-ring;

    &:focus-visible,
    &:has(:focus-visible) {
        @apply ring-success;
    }
}

@utility focus-ring-warning {
    @apply focus-ring;

    &:focus-visible,
    &:has(:focus-visible) {
        @apply ring-warning;
    }
}

@utility focus-ring-critical {
    @apply focus-ring;

    &:focus-visible,
    &:has(:focus-visible) {
        @apply ring-critical;
    }
}
