/* Framework native-semantic controls. Load tokens.css first.
   The label owns the 44px hit region; the native input owns focus and state. */
.fw-choice{display:inline-flex;align-items:center;gap:12px;min-height:44px;max-width:100%;box-sizing:border-box;font:400 14px/20px Inter,sans-serif;color:var(--color-fw-text,#202020);cursor:pointer}
.fw-choice>.fw-checkbox,.fw-choice>.fw-radio,.fw-choice>.fw-switch{appearance:none;-webkit-appearance:none;display:block;box-sizing:border-box;flex:none;margin:0;padding:0;border:1px solid var(--color-fw-border-control,#888);background-color:var(--color-fw-canvas,#fff);background-repeat:no-repeat;background-position:center;cursor:pointer;touch-action:manipulation}
.fw-choice>.fw-checkbox,.fw-choice>.fw-radio{width:20px;height:20px}
.fw-choice>.fw-checkbox{border-radius:0}
.fw-choice>.fw-checkbox:checked,.fw-choice>.fw-checkbox:indeterminate{border-color:var(--color-fw-action,#202020);background-color:var(--color-fw-action,#202020)}
.fw-choice>.fw-checkbox:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3 3 7-7' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.fw-choice>.fw-checkbox:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M4 9h10' stroke='white' stroke-width='2'/%3E%3C/svg%3E")}
.fw-choice>.fw-radio{border-radius:50%}
.fw-choice>.fw-radio:checked{border-color:var(--color-fw-action,#202020);background-image:radial-gradient(circle at center,var(--color-fw-action,#202020) 0 5px,transparent 5px)}
.fw-choice>.fw-switch{width:40px;height:24px;border-radius:200px;background-color:var(--color-fw-surface,#efefef);background-image:radial-gradient(circle at center,var(--color-fw-body,#4d4d4d) 0 8px,transparent 8px);background-size:16px 16px;background-position:3px center}
.fw-choice>.fw-switch:checked{border-color:var(--color-fw-action,#202020);background-color:var(--color-fw-action,#202020);background-image:radial-gradient(circle at center,var(--color-fw-on-action,#fff) 0 8px,transparent 8px);background-position:right 3px center}
.fw-choice>.fw-checkbox:focus-visible,.fw-choice>.fw-radio:focus-visible,.fw-choice>.fw-switch:focus-visible{outline:2px solid var(--color-fw-focus,#202020);outline-offset:3px}
.fw-choice:has(>input:disabled){opacity:var(--opacity-fw-disabled,.45);cursor:default}
.fw-choice>input:disabled{cursor:default}
/* Set --fw-range-progress to a percentage for the WebKit filled track.
   Firefox uses its native progress pseudo-element. No script is needed for input behavior. */
input[type=range].fw-range{appearance:none;-webkit-appearance:none;display:block;box-sizing:border-box;width:100%;min-width:0;height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--color-fw-action,#202020);cursor:pointer;touch-action:manipulation}
input[type=range].fw-range::-webkit-slider-runnable-track{height:4px;border:0;border-radius:0;background:linear-gradient(to right,var(--color-fw-action,#202020) 0 var(--fw-range-progress,0%),var(--color-fw-border-control,#888) var(--fw-range-progress,0%) 100%)}
input[type=range].fw-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:20px;height:20px;margin-top:-8px;border:1px solid var(--color-fw-action,#202020);border-radius:50%;background:var(--color-fw-canvas,#fff)}
input[type=range].fw-range::-moz-range-track{height:4px;border:0;border-radius:0;background:var(--color-fw-border-control,#888)}
input[type=range].fw-range::-moz-range-progress{height:4px;border:0;border-radius:0;background:var(--color-fw-action,#202020)}
input[type=range].fw-range::-moz-range-thumb{box-sizing:border-box;width:20px;height:20px;border:1px solid var(--color-fw-action,#202020);border-radius:50%;background:var(--color-fw-canvas,#fff)}
input[type=range].fw-range:focus-visible{outline:2px solid var(--color-fw-focus,#202020);outline-offset:3px}
input[type=range].fw-range:disabled{opacity:var(--opacity-fw-disabled,.45);cursor:default}
@media(hover:hover){.fw-choice>.fw-checkbox:hover:not(:checked):not(:indeterminate):not(:disabled),.fw-choice>.fw-radio:hover:not(:checked):not(:disabled){background-color:var(--color-fw-subtle,#f5f5f5)}input[type=range].fw-range:hover:not(:disabled)::-webkit-slider-thumb{background:var(--color-fw-surface,#efefef)}input[type=range].fw-range:hover:not(:disabled)::-moz-range-thumb{background:var(--color-fw-surface,#efefef)}}
/* Let the platform expose high-contrast marks when forced colors are active. */
@media(forced-colors:active){.fw-choice>.fw-checkbox,.fw-choice>.fw-radio,.fw-choice>.fw-switch{appearance:auto;-webkit-appearance:auto;background-image:none;forced-color-adjust:auto}.fw-choice>input:focus-visible,input[type=range].fw-range:focus-visible{outline-color:Highlight}input[type=range].fw-range{appearance:auto;-webkit-appearance:auto;forced-color-adjust:auto}input[type=range].fw-range::-webkit-slider-runnable-track{background:CanvasText}input[type=range].fw-range::-webkit-slider-thumb{border-color:CanvasText;background:Canvas}input[type=range].fw-range::-moz-range-track{background:CanvasText}input[type=range].fw-range::-moz-range-progress{background:Highlight}input[type=range].fw-range::-moz-range-thumb{border-color:CanvasText;background:Canvas}}
