/* ===========================================================================
   InvestVerdict — the cursor
   ---------------------------------------------------------------------------
   A drawn cursor, not a JavaScript one. The fashionable version of this is a
   div that chases the mouse on every frame; it lags on cheap phones, drifts
   behind fast movement, and puts a paint on the main thread for decoration.
   An SVG handed to `cursor:` is drawn by the compositor, arrives with zero
   delay, and cannot ever be out of position.

   THE SVG IS URL-ENCODED, ON ONE LINE, ON PURPOSE
     A first attempt kept the SVG readable across several lines with backslash
     continuations and left < > and spaces raw. CSS accepted the file, computed
     the declaration as invalid, and silently fell back to the system arrow —
     the stylesheet loaded, the media query matched, and nothing happened.
     A cursor either parses or it does not; there is no partial credit.

   WHAT IS DELIBERATELY LEFT ALONE
     · The TEXT cursor. An I-beam is how somebody knows they can type, and a
       site that removes it to look stylish makes its own forms feel broken.
     · disabled, busy, resize. Those carry information the drawn one cannot.
     · Touch devices, which have no cursor to replace.
     · The valuation tool, which has its own meanings — cell for a figure,
       crosshair for the fill handle — and would lose them.

   The hotspot is stated (the numbers after the url) so a click lands exactly
   on the tip. Guessing it makes a cursor feel inaccurate before anyone can say
   why.
   =========================================================================== */

@media (pointer: fine) {

  html, body { cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M4 2 L4 18.5 L8.4 14.6 L11.1 20.6 L14 19.3 L11.3 13.4 L17.2 13 Z' fill='%23c9982a' stroke='%2320272f' stroke-width='1.3' stroke-linejoin='round'/></svg>") 4 2, auto; }

  a, button, summary, label[for], select,
  [role="button"], [role="tab"], [role="link"], .btn, .buy,
  input[type="submit"], input[type="button"], input[type="checkbox"],
  input[type="radio"], input[type="file"], input[type="color"] {
    cursor: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'><path d='M9 3.2a1.6 1.6 0 0 1 3.2 0V11h.9V9.1a1.5 1.5 0 0 1 3 0V11h.9V10a1.5 1.5 0 0 1 3 0v1.3h.8a1.4 1.4 0 0 1 1.4 1.4v3.6c0 3.6-2.6 6.3-6.3 6.3h-2.4c-3 0-4.7-1.7-5.8-4.2L4.4 13a1.5 1.5 0 0 1 2.5-1.6L9 14.2Z' fill='%23c9982a' stroke='%2320272f' stroke-width='1.3' stroke-linejoin='round'/></svg>") 9 3, pointer;
  }

  /* ── the states that must keep their own meaning ─────────────────────── */
  input:not([type]), input[type="text"], input[type="email"], input[type="tel"],
  input[type="password"], input[type="search"], input[type="url"],
  input[type="number"], input[type="date"], textarea,
  [contenteditable="true"], [contenteditable=""] { cursor: text; }

  [disabled], [aria-disabled="true"], button[disabled] { cursor: not-allowed; }
  [aria-busy="true"], .loading, .spin { cursor: progress; }
  abbr[title] { cursor: help; }

  /* The tool draws its own; nothing here may override it. */
  td.edit, td.edit *, .der-v, .drv-val, .fillh { cursor: revert; }
}

/* No pointing device, nothing to replace. */
@media (pointer: coarse), (hover: none) {
  html, body, a, button { cursor: auto; }
}
