/* Shared Selection Controls only. Screen presentation must not alter native state, events, or print output. */

@media screen {
  :is(input[type="checkbox"], input[type="radio"]) {
    box-sizing: border-box;
    flex: 0 0 var(--erp-selection-size);
    width: var(--erp-selection-size);
    height: var(--erp-selection-size);
    min-width: var(--erp-selection-size);
    min-height: var(--erp-selection-size);
    max-width: var(--erp-selection-size);
    max-height: var(--erp-selection-size);
    inline-size: var(--erp-selection-size);
    block-size: var(--erp-selection-size);
    min-inline-size: var(--erp-selection-size);
    min-block-size: var(--erp-selection-size);
    margin: 0;
    padding: 0;
    border: 1px solid var(--erp-selection-border);
    background-color: var(--erp-selection-bg);
    cursor: pointer;
    vertical-align: middle;
    transform: none;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color var(--erp-duration-fast) var(--erp-ease-standard),
      background-color var(--erp-duration-fast) var(--erp-ease-standard),
      box-shadow var(--erp-duration-fast) var(--erp-ease-standard);
  }

  input[type="checkbox"] {
    border-radius: var(--erp-selection-radius);
  }

  input[type="checkbox"]:checked {
    border-color: var(--erp-selection-bg-checked) !important;
    background: var(--erp-selection-bg-checked) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.2 3.1 3.1L13 4.8' fill='none' stroke='%23fff' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat !important;
  }

  input[type="radio"] {
    border-radius: 50%;
  }

  input[type="radio"]:checked {
    border-color: var(--erp-selection-bg-checked) !important;
    background: radial-gradient(circle at center, var(--erp-selection-bg-checked) 0 4px, var(--erp-selection-bg) 4.5px) !important;
  }

  :is(input[type="checkbox"], input[type="radio"]):hover:not(:disabled) {
    border-color: var(--erp-selection-border-hover);
    background-color: var(--erp-surface-selected);
  }

  input[type="checkbox"]:checked:hover:not(:disabled) {
    background-color: var(--erp-primary-hover);
  }

  :is(input[type="checkbox"], input[type="radio"]):focus-visible {
    outline: none;
    box-shadow: var(--erp-shadow-focus);
  }

  :is(input[type="checkbox"], input[type="radio"]):disabled {
    cursor: not-allowed;
    opacity: var(--erp-selection-disabled-opacity);
  }

  :is(input[type="checkbox"], input[type="radio"])[aria-invalid="true"],
  :is(input[type="checkbox"], input[type="radio"]).is-error,
  :is(input[type="checkbox"], input[type="radio"]).error {
    border-color: var(--erp-danger);
  }

  :is(.master-check, .part-picker-select, .part-picker-show-added, .bom-copy-mode label, .print-option-toggle, .payment-block-toggle, .receiving-overage) {
    display: inline-flex;
    align-items: center;
    gap: var(--erp-selection-gap);
  }

  .payment-block-toggle {
    gap: var(--erp-selection-gap) !important;
  }

  :is(.master-check, .part-picker-select, .part-picker-show-added, .bom-copy-mode label, .print-option-toggle, .payment-block-toggle, .receiving-overage) > span,
  .receiving-overage {
    color: var(--erp-text-secondary);
    font-size: var(--erp-font-size-sm);
    font-weight: var(--erp-font-weight-regular);
    line-height: var(--erp-line-height-normal);
  }

  .master-check input,
  .part-picker-select input,
  .part-picker-show-added input,
  .bom-copy-mode input,
  .print-option-toggle input,
  .payment-block-toggle input,
  .receiving-overage input,
  .candidate-row input[type="checkbox"],
  .bom-pick-row input[type="checkbox"],
  .smart-assistant-sheet-check input {
    width: var(--erp-selection-size);
    height: var(--erp-selection-size);
  }

  .master-check:has(> input:disabled),
  .part-picker-select:has(> input:disabled),
  .part-picker-show-added:has(> input:disabled),
  .bom-copy-mode label:has(> input:disabled),
  .print-option-toggle:has(> input:disabled),
  .payment-block-toggle:has(> input:disabled),
  .receiving-overage:has(> input:disabled) {
    color: var(--erp-text-muted);
    cursor: not-allowed;
  }

  .switch-control {
    border-color: var(--erp-border);
    background: var(--erp-surface);
    color: var(--erp-text-secondary);
  }

  .switch-control input {
    appearance: auto;
    -webkit-appearance: auto;
  }

  .switch-control input:focus-visible + .switch-track {
    box-shadow: var(--erp-shadow-focus);
  }

  .switch-control input:disabled + .switch-track {
    cursor: not-allowed;
    opacity: var(--erp-selection-disabled-opacity);
  }

  .switch-control:has(input:disabled) {
    cursor: not-allowed;
    color: var(--erp-text-muted);
  }

  .segmented-button {
    min-height: var(--erp-control-height-md);
    border-radius: var(--erp-radius-sm);
    color: var(--erp-text-secondary);
    font-weight: var(--erp-font-weight-medium);
  }

  .segmented-button.active {
    border-color: var(--erp-primary);
    background: var(--erp-surface-selected);
    color: var(--erp-primary-active);
    font-weight: var(--erp-font-weight-semibold);
  }
}

@media screen and (max-width: 640px) {
  :is(.master-check, .part-picker-select, .part-picker-show-added, .bom-copy-mode label, .print-option-toggle, .payment-block-toggle, .receiving-overage) {
    gap: var(--erp-selection-gap);
  }
}
