/**
 * Global interactive affordances — pointer on clickables, medium hover transitions.
 * Loaded on public site, admin, and owner dashboard.
 */
:root {
  --bharat-interactive-duration: 0.22s;
  --bharat-interactive-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

html {
  overflow-x: clip;
}

/* Pointer on links, buttons, and other click targets */
a[href],
area[href],
button:not(:disabled),
input[type="button"]:not(:disabled),
input[type="submit"]:not(:disabled),
input[type="reset"]:not(:disabled),
input[type="checkbox"],
input[type="radio"],
input[type="file"],
input[type="image"],
select:not(:disabled),
summary,
label[for],
[role="button"]:not([aria-disabled="true"]),
[role="link"],
[role="tab"],
[role="menuitem"],
[role="menuitemradio"],
[role="menuitemcheckbox"],
[role="option"],
[role="switch"],
[onclick],
.cursor-pointer,
[class*="cursor-pointer"],
[tabindex]:not([tabindex="-1"]):where(:not(input):not(textarea):not(select)) {
  cursor: pointer;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
}

/* Medium smooth transitions wherever hover / state changes apply */
a,
button,
input,
select,
textarea,
summary,
label[for],
[role="button"],
[role="link"],
[role="tab"],
[tabindex]:not([tabindex="-1"]),
[class*="hover:"],
[class*="group-hover:"],
.btn,
[class*="btn-"],
[class*="-btn"],
[class*="__btn"],
[class*="nav-link"],
[class*="menu-item"],
[class*="toggle"] {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform, fill, stroke, filter, outline-color;
  transition-duration: var(--bharat-interactive-duration);
  transition-timing-function: var(--bharat-interactive-ease);
}

.transition-none,
.no-transition,
[class*="transition-none"] {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --bharat-interactive-duration: 0.01ms;
  }
}

/* Cards, tiles, and upload zones that define :hover in component CSS */
[class*="__card"],
[class*="-card"],
[class*="listing-card"],
[class*="upload-zone"],
[class*="radio-card"],
[class*="chip"],
[class*="pill"],
[class*="tag"],
[class*="tab-link"],
[class*="nav-item"],
[class*="menu-link"],
[class*="dropdown"],
[class*="accordion"],
[class*="preview"],
[class*="stat"],
[class*="tile"],
[class*="item"]:where(a, button, [role="button"], [tabindex]) {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform, fill, stroke, filter, outline-color;
  transition-duration: var(--bharat-interactive-duration);
  transition-timing-function: var(--bharat-interactive-ease);
}
