/**
 * Global base: CSS variables touchpoints, modal backdrops, shared overrides.
 */

/* Overlays (sheet, sidebar, modals): light tint only — never blur. */
[data-modal-backdrop],
[data-htmx-modal] > [data-modal-backdrop],
.up-modal.fixed > [data-modal-backdrop],
.modal.fixed > [data-modal-backdrop],
.up-sheet-backdrop,
.up-app-sidebar__backdrop,
[data-up-modal-backdrop] {
  /* Override Tailwind backdrop-filter utilities on overlay nodes */
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Site-wide: interactive controls use pointer cursor (hover + click). */
:is(
  button:not(:disabled):not([disabled]):not([aria-disabled='true']),
  input[type='button']:not(:disabled):not([disabled]),
  input[type='submit']:not(:disabled):not([disabled]),
  input[type='reset']:not(:disabled):not([disabled]),
  input[type='image']:not(:disabled):not([disabled]),
  input[type='checkbox']:not(:disabled):not([disabled]),
  input[type='radio']:not(:disabled):not([disabled]),
  input[type='file']:not(:disabled):not([disabled]),
  input[type='color']:not(:disabled):not([disabled]),
  input[type='range']:not(:disabled):not([disabled]),
  select:not(:disabled):not([disabled]),
  summary,
  a[href],
  label[for],
  [role='button']:not([aria-disabled='true']),
  [role='menuitem'],
  [role='tab'],
  [role='switch'],
  [role='link'],
  [role='option'],
  .button,
  .up-dropdown-toggle,
  [data-up-navbar-dropdown-toggle],
  [data-theme-toggle],
  [data-up-app-sidebar-trigger],
  [data-up-app-sidebar-link],
  [data-up-app-sidebar-close],
  [data-page-back],
  [data-up-scroll-top],
  [data-up-wallet-topup-link],
  [data-up-tailwind-select-toggle],
  [data-upload-picker-mode],
  [data-duplicate-action],
  .up-app-sidebar__tile,
  #flashToast
) {
  cursor: pointer;
}

/* Modal/sheet backdrops are clickable but should not look like primary actions. */
:is(
  .up-sheet-backdrop,
  .up-app-sidebar__backdrop,
  [data-modal-backdrop],
  [data-up-modal-backdrop]
) {
  cursor: default !important;
}

:where(
  button:disabled,
  input:disabled,
  select:disabled,
  textarea:disabled,
  [disabled],
  [aria-disabled='true']
) {
  cursor: not-allowed;
}

:where(
  input:not([type='button']):not([type='submit']):not([type='reset']):not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']):not([type='image']):not([type='hidden']):not([type='color']),
  textarea
) {
  cursor: text;
}

/* Preserve drag-scroll and grab affordances. */
:where(
  [data-up-drag-scroll],
  [data-up-drag-scroll].is-drag-scrolling,
  .cursor-grab,
  .cursor-grabbing
) {
  cursor: grab;
}

:where(
  [data-up-drag-scroll].is-drag-scrolling,
  .cursor-grabbing
) {
  cursor: grabbing !important;
}
