.radio {
position: relative;
display: inline-flex;
align-items: center;
cursor: pointer;
}
.radio-input {
appearance: none;
width: 1rem;
height: 1rem;
border: 1px solid var(--border);
border-radius: 50%;
background-color: var(--background);
cursor: pointer;
position: relative;
transition: all 0.2s ease;
}
.radio-input:checked {
border-color: var(--foreground);
background-color: var(--foreground);
}
.radio-input:checked::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0.375rem;
height: 0.375rem;
background-color: var(--background);
border-radius: 50%;
transform: translate(-50%, -50%);
}
.radio-input:checked[data-style="primary"] {
border-color: var(--primary);
background-color: var(--primary);
}
.radio-input:checked[data-style="secondary"] {
border-color: var(--secondary);
background-color: var(--secondary);
}
.radio-input:checked[data-style="success"] {
border-color: var(--success);
background-color: var(--success);
}
.radio-input:checked[data-style="destructive"] {
border-color: var(--destructive);
background-color: var(--destructive);
}
.radio-input:focus {
outline: none;
border-color: var(--ring);
box-shadow: 0 0 0 2px hsl(var(--ring) / 0.2);
}
.radio-input:disabled {
cursor: not-allowed;
opacity: 0.5;
}
.radio-label {
margin-left: 0.5rem;
font-size: 0.875rem;
color: var(--foreground);
cursor: pointer;
}
.radio-description {
margin-left: 1.5rem;
font-size: 0.8125rem;
color: var(--muted-foreground);
}