/* Non-interactive text inherits the arrow, not the browser's text-selection cursor. */
html {
  cursor: default;
}

/* Keep component-specific busy, disabled, drag and resize cursors authoritative. */
:where(a[href], button, summary, select, label[for], [role="button"], [role="link"], [role="tab"], [role="option"], input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], input[type="range"], input[type="color"], input[type="file"]) {
  cursor: pointer;
}

:where(input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="password"], input[type="tel"], input[type="url"], input[type="number"], textarea, [contenteditable]:not([contenteditable="false"]), [role="textbox"]) {
  cursor: text;
}

:where(input[readonly], textarea[readonly]) {
  cursor: default;
}

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

/* Keep focus management and existing control states, without extra focus outlines. */
html :is(:focus, :focus-visible, :focus-within),
html :is(:focus, :focus-visible) + *,
html :is(:focus, :focus-visible, :focus-within)::before,
html :is(:focus, :focus-visible, :focus-within)::after {
  outline: none !important;
  outline-offset: 0 !important;
}

html :is(.panel-input, .admin-input, .admin-select, .admin-textarea):focus,
html .search-bar:focus-within {
  box-shadow: none !important;
}

html .setup-search-input-wrap:focus-within {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045) !important;
}

html .copy-command:focus-visible {
  box-shadow: 0 18px 38px rgba(0,0,0,.24) !important;
}
