/* Klassische Zeigerformen: schwarz mit leuchtend blauer Kontur. */
@media (hover: hover) and (pointer: fine) {
  html, body { cursor: url("assets/cursor-arrow.svg") 4 3, default; }
  :is(p, h1, h2, h3, h4, dt, dd, address, li) { cursor: inherit; }
  a[href], button, summary, select, label[for], [role="button"],
  input:is([type="button"], [type="submit"], [type="reset"], [type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"]) {
    cursor: url("assets/cursor-pointer.svg") 12 3, pointer;
  }
  textarea, input:not([type]),
  input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="search"], [type="password"], [type="number"]),
  [contenteditable]:not([contenteditable="false"]) {
    cursor: url("assets/cursor-text.svg") 16 16, text;
  }
  :is(button, input, select, textarea):disabled, [aria-disabled="true"] {
    cursor: url("assets/cursor-unavailable.svg") 16 16, not-allowed;
  }
  [aria-busy="true"] { cursor: url("assets/cursor-wait.svg") 16 16, wait; }
}

/* Hürde gegen gewöhnliches Kopieren, kein vollständiger Zugriffsschutz. */
body {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
img, svg, a {
  -webkit-user-drag: none;
}
/* Eigene Eingaben bleiben normal bearbeitbar, auch für spätere Formulare. */
input, textarea, [contenteditable]:not([contenteditable="false"]) {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

/* Nutzerdefinierte Systemfarben/Zeiger haben im Kontrastmodus Vorrang. */
@media (forced-colors: active) {
  html, body { cursor: auto; }
  a[href], button, summary, select, label[for], [role="button"] { cursor: pointer; }
  input, textarea, [contenteditable]:not([contenteditable="false"]) { cursor: auto; }
  :is(button, input, select, textarea):disabled, [aria-disabled="true"] { cursor: not-allowed; }
  [aria-busy="true"] { cursor: wait; }
}
