
/* ── Inline style="cursor: …" overrides ───────────────────────────────────
   Chart libraries (lightweight-charts for the price-axis resize, plus the
   Remotion demo scrubber, the ResizeHandle component, AntD Split panes,
   etc.) set cursors via INLINE style rather than a class. Inline styles
   beat our class rules via specificity — we need attribute-substring
   selectors + !important to win. Substring match covers both
   "cursor: x" and "cursor:x" (with or without the space).

   Order matters: put the MOST specific substrings first so "ns-resize"
   is not mis-matched by the shorter "n-resize" selector below. */
[style*="cursor: pointer"], [style*="cursor:pointer"] { cursor: var(--cur-pointer) !important; }
[style*="cursor: text"],    [style*="cursor:text"]    { cursor: var(--cur-text)    !important; }
[style*="cursor: grabbing"],[style*="cursor:grabbing"]{ cursor: var(--cur-dragging)!important; }
[style*="cursor: grab"],    [style*="cursor:grab"]    { cursor: var(--cur-grab)    !important; }
[style*="cursor: move"],    [style*="cursor:move"]    { cursor: var(--cur-grab)    !important; }
[style*="cursor: all-scroll"],[style*="cursor:all-scroll"] { cursor: var(--cur-grab) !important; }
[style*="cursor: not-allowed"],[style*="cursor:not-allowed"] { cursor: var(--cur-not-allowed) !important; }
[style*="cursor: no-drop"], [style*="cursor:no-drop"] { cursor: var(--cur-not-allowed)!important; }
[style*="cursor: help"],    [style*="cursor:help"]    { cursor: var(--cur-help)    !important; }
[style*="cursor: context-menu"],[style*="cursor:context-menu"] { cursor: var(--cur-help) !important; }
[style*="cursor: wait"],    [style*="cursor:wait"]    { cursor: var(--cur-wait)    !important; }
[style*="cursor: progress"],[style*="cursor:progress"]{ cursor: var(--cur-wait)    !important; }
[style*="cursor: crosshair"],[style*="cursor:crosshair"] { cursor: var(--cur-crosshair)!important; }
[style*="cursor: cell"],    [style*="cursor:cell"]    { cursor: var(--cur-cell)    !important; }
[style*="cursor: copy"],    [style*="cursor:copy"]    { cursor: var(--cur-copy)    !important; }
[style*="cursor: alias"],   [style*="cursor:alias"]   { cursor: var(--cur-copy)    !important; }
[style*="cursor: zoom-in"], [style*="cursor:zoom-in"] { cursor: var(--cur-zoom-in) !important; }
[style*="cursor: zoom-out"],[style*="cursor:zoom-out"]{ cursor: var(--cur-zoom-out)!important; }

/* Resize cursors — the chart price-axis uses ns-resize, the time-axis and
   column splitters use ew-resize / col-resize. Inline on the handle div.
   Put compound (ns/ew/nwse/nesw) matches BEFORE the single-direction
   (n/s/e/w) fallbacks so the longer token always wins the substring test. */
[style*="cursor: ns-resize"], [style*="cursor:ns-resize"],
[style*="cursor: row-resize"],[style*="cursor:row-resize"] {
    cursor: var(--cur-resize-ns) !important;
}
[style*="cursor: ew-resize"], [style*="cursor:ew-resize"],
[style*="cursor: col-resize"],[style*="cursor:col-resize"] {
    cursor: var(--cur-resize-ew) !important;
}
[style*="cursor: nwse-resize"],[style*="cursor:nwse-resize"],
[style*="cursor: nw-resize"],  [style*="cursor:nw-resize"],
[style*="cursor: se-resize"],  [style*="cursor:se-resize"] {
    cursor: var(--cur-resize-nwse) !important;
}
[style*="cursor: nesw-resize"],[style*="cursor:nesw-resize"],
[style*="cursor: ne-resize"],  [style*="cursor:ne-resize"],
[style*="cursor: sw-resize"],  [style*="cursor:sw-resize"] {
    cursor: var(--cur-resize-nesw) !important;
}
/* Single-axis fallbacks — must come LAST so they do not pre-empt the
   compound selectors above (e.g. "n-resize" substring-matches inside
   "ns-resize"; the earlier rule already won, this is the safety net). */
[style*="cursor: n-resize"], [style*="cursor:n-resize"],
[style*="cursor: s-resize"], [style*="cursor:s-resize"] {
    cursor: var(--cur-resize-ns) !important;
}
[style*="cursor: e-resize"], [style*="cursor:e-resize"],
[style*="cursor: w-resize"], [style*="cursor:w-resize"] {
    cursor: var(--cur-resize-ew) !important;
}
