/* Global radio spec: empty circle when unselected, filled dot when selected. */
input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 1.15rem;
    height: 1.15rem;
    border: 2px solid rgba(107, 114, 128, 0.7);
    border-radius: 9999px;
    background-color: transparent;
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

input[type="radio"]:checked {
    border-color: var(--v3-primary-color, #2563eb);
    background-color: var(--v3-primary-color, #2563eb);
}

input[type="radio"]:checked::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.45rem;
    height: 0.45rem;
    transform: translate(-50%, -50%);
    border-radius: 9999px;
    background-color: #ffffff;
}

input[type="radio"]:focus-visible {
    outline: 2px solid rgba(37, 99, 235, 0.45);
    outline-offset: 2px;
}

input[type="radio"]:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
