/* Checkbox, Radio, Switch — all native <input>s styled with appearance:none. State comes from :checked / :indeterminate (works uncontrolled) and the [data-state] / [data-disabled] attributes (set when controlled). Thumbs and checkmarks are pseudo-elements on the input itself. */@layercomponents{:where([data-uiify-checkbox]>input,[data-uiify-radio]){appearance:none;inline-size:1.25rem;block-size:1.25rem;margin:0;border:var(--border-width)solidvar(--input);background-color:var(--card);display:inline-grid;place-content:center;cursor:pointer;transition:var(--transition-colors);}[data-uiify-checkbox]{--uiify-checkbox-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.6 8.6l3 3L12.4 4.8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")center/100%100%no-repeat;display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;user-select:none;color:var(--foreground);font-size:var(--text-sm);line-height:var(--leading-normal);}[data-uiify-checkbox]>input{border-radius:var(--radius-xs);corner-shape:squircle;}[data-uiify-radio]{border-radius:var(--radius-full);}/* Checked fill (covers controlled [data-state] and uncontrolled :checked). */[data-uiify-checkbox]>input:checked,[data-uiify-checkbox]>input[data-state="checked"]{border-color:var(--primary);background-color:var(--primary);}/* Radio checked state is a thick accent ring around a white center, not a filled dot — matches the 2a/2b handoff's target/bullseye radio anatomy. */[data-uiify-radio]:checked,[data-uiify-radio][data-state="checked"]{border-width:5px;border-color:var(--primary);background-color:var(--card);}/* Checkmark. */[data-uiify-checkbox]>input::before{content:"";inline-size:1rem;block-size:1rem;transform:scale(0);transition:transformvar(--duration-fast)var(--ease-out);background-color:var(--primary-foreground);mask:var(--uiify-checkbox-mask);}[data-uiify-checkbox]>input:checked::before,[data-uiify-checkbox]>input[data-state="checked"]::before{transform:scale(1);}/* Indeterminate dash. */[data-uiify-checkbox]>input:indeterminate,[data-uiify-checkbox]>input[data-state="indeterminate"]{border-color:var(--primary);background-color:var(--primary);}[data-uiify-checkbox]>input:indeterminate::before,[data-uiify-checkbox]>input[data-state="indeterminate"]::before{transform:scale(1);mask:none;clip-path:inset(42%12%42%12%);}:where([data-uiify-checkbox]>input,[data-uiify-radio]):disabled,:where([data-uiify-checkbox]>input,[data-uiify-radio])[data-disabled]{opacity:0.5;cursor:not-allowed;}[data-uiify-checkbox]:has(>input:disabled){opacity:0.5;cursor:not-allowed;}[data-uiify-radio-group]{display:flex;flex-direction:column;gap:var(--space-md);}/* Switch — a pill track with a sliding thumb pseudo-element. */[data-uiify-switch]{appearance:none;position:relative;inline-size:2.25rem;block-size:1.25rem;margin:0;flex:none;border:none;border-radius:var(--radius-full);background-color:var(--input);cursor:pointer;transition:background-colorvar(--duration-fast)var(--ease-out);}[data-uiify-switch]::before{content:"";position:absolute;inset-block-start:2px;inset-inline-start:2px;inline-size:calc(1.25rem-4px);block-size:calc(1.25rem-4px);border-radius:var(--radius-full);background-color:var(--gray-0);box-shadow:var(--shadow-1);transition:translatevar(--duration-fast)var(--ease-out);}[data-uiify-switch]:checked,[data-uiify-switch][data-state="checked"]{background-color:var(--primary);}[data-uiify-switch]:checked::before,[data-uiify-switch][data-state="checked"]::before{translate:1rem0;}[data-uiify-switch]:disabled,[data-uiify-switch][data-disabled]{opacity:0.5;cursor:not-allowed;}}@layercomponents{label:has([data-uiify-radio]),[data-uiify-radio-group]label{user-select:none;cursor:pointer;}}