/*
 * Clickable things show the hand (HARD RULE — Cory 2026-09-29).
 *
 * Browsers draw the ARROW over a <button>, a <select>, a checkbox and most
 * role="button" elements unless a stylesheet says otherwise, so every button
 * whose own CSS forgot `cursor:pointer` looked dead on hover. This one file is
 * linked from EVERY page Alpha+ serves (the platform, the landing, login,
 * sign-up, signing pages, Alpha+ Field, the desktop app, downloads) and gives
 * every clickable element the hand.
 *
 * `:where()` keeps it at zero specificity on purpose: it replaces the browser's
 * default, never a surface's deliberate choice (a drag handle's `grab`, an
 * editor's `text`). A disabled control keeps the arrow — it cannot be clicked.
 *
 * Locked by tests/clickable-cursor.test.mjs (every page links this file, and a
 * button style may not switch the hand back off unless it is disabled).
 */
:where(
  button,
  a[href],
  area[href],
  summary,
  select,
  label[for],
  label:has(> input[type="checkbox"], > input[type="radio"], > input[type="file"]),
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  input[type="image"],
  input[type="checkbox"],
  input[type="radio"],
  input[type="file"],
  input[type="color"],
  input[type="range"],
  [role="button"],
  [role="link"],
  [role="tab"],
  [role="menuitem"],
  [role="menuitemcheckbox"],
  [role="menuitemradio"],
  [role="option"],
  [role="switch"],
  [role="checkbox"],
  [role="radio"],
  [role="treeitem"],
  [onclick],
  [data-act]
):not(:disabled, [aria-disabled="true"]) {
  cursor: pointer;
}

input[type="file"]::file-selector-button {
  cursor: pointer;
}
