.nullable-bool-widget {
    --na-nullable-neutral-bg: color-mix(in srgb, var(--cui-body-bg, #fff) 88%, black);
    --na-nullable-neutral-border: var(--cui-border-color, #d8dee6);
    --na-nullable-neutral-text: var(--bs-secondary-color, #4b5563);

    --na-nullable-null-bg: color-mix(in srgb, var(--cui-body-bg, #fff) 82%, black);
    --na-nullable-null-border: color-mix(in srgb, var(--cui-border-color, #d8dee6) 78%, var(--bs-secondary-color, #6c757d));
    --na-nullable-null-text: var(--cui-body-color, #334155);

    --na-nullable-true-color: var(--cui-success, var(--bs-success, #198754));
    --na-nullable-true-bg: color-mix(in srgb, var(--na-nullable-true-color) 15%, white);
    --na-nullable-true-border: color-mix(in srgb, var(--na-nullable-true-color) 35%, white);

    --na-nullable-false-color: var(--cui-danger, var(--bs-danger, #dc3545));
    --na-nullable-false-bg: color-mix(in srgb, var(--na-nullable-false-color) 15%, white);
    --na-nullable-false-border: color-mix(in srgb, var(--na-nullable-false-color) 30%, white);

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 4px;
}

.nullable-bool-widget__option.active {
    transform: scale(1.02);
}

.nullable-bool-widget__group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nullable-bool-widget__option {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--na-nullable-neutral-border);
    border-radius: 999px;
    background: var(--na-nullable-neutral-bg);
    color: var(--na-nullable-neutral-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.nullable-bool-widget__option:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--brand-primary, var(--cui-primary, #0d6efd)) 18%, var(--na-nullable-neutral-border));
    box-shadow: inset 0 0 0 .1rem color-mix(in srgb, var(--brand-primary, var(--cui-primary, #0d6efd)) 25%, transparent);
}

.nullable-bool-widget__option:focus {
    outline: 0;
    box-shadow: none;
}

.nullable-bool-widget__option:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 .25rem var(--focus-ring-fallback, rgba(51, 153, 255, .25));
    box-shadow: 0 0 0 .25rem var(--focus-ring, rgba(51, 153, 255, .25));
}

.nullable-bool-widget__option--null.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-null-border) 45%, transparent);
}

.nullable-bool-widget__option--true.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-true-color) 24%, transparent);
}

.nullable-bool-widget__option--false.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-false-color) 24%, transparent);
}

.nullable-bool-widget__option:disabled {
    opacity: .65;
    cursor: default;
    transform: none;
}

.nullable-bool-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.nullable-bool-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.nullable-bool-widget__icon svg {
    width: 16px;
    height: 16px;
    display: block;
    color: currentColor;
    fill: currentColor;
}

.nullable-bool-widget__option--null.active {
    background: var(--na-nullable-null-bg);
    border-color: var(--na-nullable-null-border);
    color: var(--na-nullable-null-text);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--na-nullable-null-border) 45%, transparent);
}

.nullable-bool-widget__option--true.active {
    background: var(--na-nullable-true-bg);
    border-color: var(--na-nullable-true-border);
    color: var(--na-nullable-true-color);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--na-nullable-true-color) 18%, transparent);
}

.nullable-bool-widget__option--false.active {
    background: var(--na-nullable-false-bg);
    border-color: var(--na-nullable-false-border);
    color: var(--na-nullable-false-color);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--na-nullable-false-color) 18%, transparent);
}

.nullable-bool-widget__group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.nullable-bool-widget__option {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--na-nullable-neutral-border);
    border-radius: 999px;
    background: var(--na-nullable-neutral-bg);
    color: var(--na-nullable-neutral-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.nullable-bool-widget__option:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--brand-primary, var(--cui-primary, #0d6efd)) 18%, var(--na-nullable-neutral-border));
    box-shadow: inset 0 0 0 .1rem color-mix(in srgb, var(--brand-primary, var(--cui-primary, #0d6efd)) 25%, transparent);
}

.nullable-bool-widget__option:focus {
    outline: 0;
    box-shadow: none;
}

.nullable-bool-widget__option:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 .25rem var(--focus-ring-fallback, rgba(51, 153, 255, .25));
    box-shadow: 0 0 0 .25rem var(--focus-ring, rgba(51, 153, 255, .25));
}

.nullable-bool-widget__option--null.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-null-border) 45%, transparent);
}

.nullable-bool-widget__option--true.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-true-color) 24%, transparent);
}

.nullable-bool-widget__option--false.active:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--na-nullable-false-color) 24%, transparent);
}

.nullable-bool-widget__option:disabled {
    opacity: .65;
    cursor: default;
    transform: none;
}

.nullable-bool-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.nullable-bool-widget__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.nullable-bool-widget__icon svg {
    width: 16px;
    height: 16px;
    display: block;
    color: currentColor;
    fill: currentColor;
}

.nullable-bool-widget__option--null.active {
    background: var(--na-nullable-null-bg);
    border-color: var(--na-nullable-null-border);
    color: var(--na-nullable-null-text);
}

.nullable-bool-widget__option--true.active {
    background: var(--na-nullable-true-bg);
    border-color: var(--na-nullable-true-border);
    color: var(--na-nullable-true-color);
}

.nullable-bool-widget__option--false.active {
    background: var(--na-nullable-false-bg);
    border-color: var(--na-nullable-false-border);
    color: var(--na-nullable-false-color);
}