/*
 * Copyright (c) 2026, Salesforce, Inc.,
 * All rights reserved.
 * For full license text, see the LICENSE.txt file
 */

@layer theme {
  /* ─────────────── .slds-checkbox_add-button ─────────────── */
  .slds-checkbox_add-button {
    --slds-c-checkboxbutton-add-button-size: var(--slds-g-spacing-6);
    --slds-c-checkboxbutton-add-button-sizing-border: var(--slds-g-sizing-border-1);
    --slds-c-checkboxbutton-add-button-radius-border: var(--slds-s-button-radius-border);

    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-surface-container-1);
    --slds-c-checkboxbutton-add-button-color-border: var(--slds-g-color-border-2);
    --slds-c-checkboxbutton-add-button-color-foreground: var(--slds-s-button-color);

    --slds-c-checkboxbutton-add-button-shadow-hover: var(--slds-s-button-bordered-shadow-hover);
    --slds-c-checkboxbutton-add-button-shadow-active: var(--slds-s-button-shadow-active);
    --slds-c-checkboxbutton-add-button-shadow-checked: var(--slds-s-mark-shadow-checked);
    --slds-c-checkboxbutton-add-button-shadow-focus: var(--slds-g-shadow-insetinverse-focus-1);
    --slds-c-checkboxbutton-add-button-transform-hover: var(--slds-s-button-bordered-transform-hover);
  }

  .slds-checkbox_add-button [type='checkbox']:not([disabled]) ~ .slds-checkbox_faux:hover,
  .slds-checkbox_add-button [type='checkbox']:not([disabled]) + .slds-checkbox_faux:hover,
  .slds-checkbox_add-button [type='checkbox']:not([disabled]) ~ .slds-checkbox_faux:focus,
  .slds-checkbox_add-button [type='checkbox']:not([disabled]) + .slds-checkbox_faux:focus,
  .slds-checkbox_add-button [type='checkbox']:not([disabled]) ~ .slds-checkbox_faux:active,
  .slds-checkbox_add-button [type='checkbox']:not([disabled]) + .slds-checkbox_faux:active {
    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-surface-container-2);
  }

  .slds-checkbox_add-button [type='checkbox']:checked ~ .slds-checkbox_faux,
  .slds-checkbox_add-button [type='checkbox']:checked + .slds-checkbox_faux {
    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-accent-container-1);
    --slds-c-checkboxbutton-add-button-color-border: transparent;
    --slds-c-checkboxbutton-add-button-color-foreground: var(--slds-g-color-on-accent-1);
    --slds-c-checkboxbutton-add-button-transform-hover: var(--slds-s-button-brand-transform-hover);
    --slds-c-checkboxbutton-add-button-shadow-hover: var(--slds-s-button-brand-shadow-hover);
  }

  .slds-checkbox_add-button [type='checkbox']:checked:not([disabled]) ~ .slds-checkbox_faux:hover,
  .slds-checkbox_add-button [type='checkbox']:checked:not([disabled]) + .slds-checkbox_faux:hover,
  .slds-checkbox_add-button [type='checkbox']:checked:not([disabled]):focus-visible ~ .slds-checkbox_faux,
  .slds-checkbox_add-button [type='checkbox']:checked:not([disabled]):focus-visible + .slds-checkbox_faux {
    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-accent-container-2);
    --slds-c-checkboxbutton-add-button-color-foreground: var(--slds-g-color-on-accent-2);
  }

  .slds-checkbox_add-button [type='checkbox'][disabled] ~ .slds-checkbox_faux,
  .slds-checkbox_add-button [type='checkbox'][disabled] + .slds-checkbox_faux {
    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-disabled-container-1);
    --slds-c-checkboxbutton-add-button-color-border: var(--slds-g-color-border-disabled-1);
    --slds-c-checkboxbutton-add-button-color-foreground: var(--slds-g-color-on-disabled-1);
  }

  .slds-checkbox_add-button [type='checkbox'][disabled]:checked ~ .slds-checkbox_faux,
  .slds-checkbox_add-button [type='checkbox'][disabled]:checked + .slds-checkbox_faux {
    --slds-c-checkboxbutton-add-button-color-background: var(--slds-g-color-disabled-container-2);
    --slds-c-checkboxbutton-add-button-color-foreground: var(--slds-g-color-on-disabled-2);
  }

  /* ─────────────── .slds-checkbox-button ─────────────── */
  .slds-checkbox-button {
    --slds-c-checkboxbutton-size: var(--slds-g-sizing-9);
    --slds-c-checkboxbutton-sizing-border: var(--slds-g-sizing-border-1);
    --slds-c-checkboxbutton-radius-border: var(--slds-s-button-radius-border);

    --slds-c-checkboxbutton-color-background: transparent;
    --slds-c-checkboxbutton-color-border: var(--slds-g-color-border-2);
    --slds-c-checkboxbutton-color-foreground: var(--slds-s-button-color);

    --slds-c-checkboxbutton-shadow-checked: var(--slds-s-mark-shadow-checked);
    --slds-c-checkboxbutton-shadow-focus: var(--slds-g-shadow-insetinverse-focus-1);
  }

  .slds-checkbox-button.slds-checkbox-button_is-checked {
    --slds-c-checkboxbutton-color-background: var(--slds-g-color-accent-container-1);
    --slds-c-checkboxbutton-color-border: transparent;
    --slds-c-checkboxbutton-color-foreground: var(--slds-g-color-on-accent-1);
  }

  .slds-checkbox-button.slds-checkbox-button_is-disabled {
    --slds-c-checkboxbutton-color-background: var(--slds-g-color-disabled-container-1);
    --slds-c-checkboxbutton-color-border: var(--slds-g-color-border-disabled-1);
    --slds-c-checkboxbutton-color-foreground: var(--slds-g-color-on-disabled-2);
  }

  .slds-checkbox-button.slds-checkbox-button_is-disabled.slds-checkbox-button_is-checked {
    --slds-c-checkboxbutton-color-background: var(--slds-g-color-disabled-container-2);
    --slds-c-checkboxbutton-color-border: var(--slds-g-color-border-disabled-1);
    --slds-c-checkboxbutton-color-foreground: var(--slds-g-color-on-disabled-2);
  }
}
