
/* Dark theme (default). */
:root, html:not(.light) { 
  --cur-idle: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%237C6FF0' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%237C6FF0' stroke-width%3D'1.2' fill%3D'none' opacity%3D'0.9'%2F%3E%0A%3Cline x1%3D'16' y1%3D'2' x2%3D'16' y2%3D'5' stroke%3D'%237C6FF0' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'16' y1%3D'27' x2%3D'16' y2%3D'30' stroke%3D'%237C6FF0' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'2' y1%3D'16' x2%3D'5' y2%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'27' y1%3D'16' x2%3D'30' y2%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3.5' fill%3D'%2322D3EE' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2.4' fill%3D'%2322D3EE'%2F%3E%0A%3C%2Fsvg%3E") 16 16, auto;
  --cur-pointer: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'14' stroke%3D'%237C6FF0' stroke-width%3D'3.2' fill%3D'none' opacity%3D'0.18'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' fill%3D'%237C6FF0' opacity%3D'0.1'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%237C6FF0' stroke-width%3D'2' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'0' x2%3D'16' y2%3D'4' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'16' y1%3D'28' x2%3D'16' y2%3D'32' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'0' y1%3D'16' x2%3D'4' y2%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'28' y1%3D'16' x2%3D'32' y2%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'5' fill%3D'%2322D3EE' opacity%3D'0.25'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3.2' fill%3D'%2322D3EE'%2F%3E%0A%3Ccircle cx%3D'15' cy%3D'15' r%3D'1' fill%3D'%23ffffff' opacity%3D'0.7'%2F%3E%0A%3C%2Fsvg%3E") 16 16, pointer;
  --cur-menu: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%23C4B5FD' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'8' stroke%3D'%23C4B5FD' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13 11 L19 16 L13 21' stroke%3D'%23C4B5FD' stroke-width%3D'1.6' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%23C4B5FD' opacity%3D'0.3'%2F%3E%0A%3C%2Fsvg%3E") 16 16, pointer;
  --cur-text: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Cline x1%3D'2' y1%3D'2' x2%3D'2' y2%3D'22' stroke%3D'%2322D3EE' stroke-width%3D'2.2' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'2' y1%3D'2' x2%3D'2' y2%3D'22' stroke%3D'%2322D3EE' stroke-width%3D'3.6' stroke-linecap%3D'round' opacity%3D'0.22'%2F%3E%0A%3Cline x1%3D'-2' y1%3D'2' x2%3D'6' y2%3D'2' stroke%3D'%2322D3EE' stroke-width%3D'1.6' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'-2' y1%3D'22' x2%3D'6' y2%3D'22' stroke%3D'%2322D3EE' stroke-width%3D'1.6' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 1 11, text;
  --cur-grab: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%23FBBF24' stroke-width%3D'2.5' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23FBBF24' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M16 8 L16 12 M16 20 L16 24 M8 16 L12 16 M20 16 L24 16' stroke%3D'%23FBBF24' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M12 11 L16 7 L20 11 M12 21 L16 25 L20 21 M11 12 L7 16 L11 20 M21 12 L25 16 L21 20' stroke%3D'%23FBBF24' stroke-width%3D'1.3' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%23FBBF24'%2F%3E%0A%3C%2Fsvg%3E") 16 16, grab;
  --cur-dragging: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'14' stroke%3D'%2334D399' stroke-width%3D'2.8' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'13' stroke%3D'%2334D399' stroke-width%3D'1.5' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M16 4 L16 28 M4 16 L28 16' stroke%3D'%2334D399' stroke-width%3D'1.5' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3' fill%3D'%2334D399' opacity%3D'0.5'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'1.8' fill%3D'%2334D399'%2F%3E%0A%3C%2Fsvg%3E") 16 16, grabbing;
  --cur-not-allowed: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23F87171' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.16'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' fill%3D'%23F87171' opacity%3D'0.12'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%23F87171' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13.2 14.8 V12.8 a2.8 2.8 0 0 1 5.6 0 V14.8' stroke%3D'%23F87171' stroke-width%3D'1.4' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Crect x%3D'11.6' y%3D'14.5' width%3D'8.8' height%3D'6.4' rx%3D'1.3' fill%3D'%23F87171'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'17.1' r%3D'0.85' fill%3D'%23ffffff'%2F%3E%0A%3Crect x%3D'15.45' y%3D'17.1' width%3D'1.1' height%3D'2.3' rx%3D'0.5' fill%3D'%23ffffff'%2F%3E%0A%3C%2Fsvg%3E") 16 16, not-allowed;
  --cur-help: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23C4B5FD' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%23C4B5FD' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13 13 a3 3 0 1 1 6 0 c0 2-3 2-3 4' stroke%3D'%23C4B5FD' stroke-width%3D'1.6' fill%3D'none' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'21.5' r%3D'1.1' fill%3D'%23C4B5FD'%2F%3E%0A%3C%2Fsvg%3E") 16 16, help;
  --cur-crosshair: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Cline x1%3D'16' y1%3D'1' x2%3D'16' y2%3D'31' stroke%3D'%2322D3EE' stroke-width%3D'1' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'1' y1%3D'16' x2%3D'31' y2%3D'16' stroke%3D'%2322D3EE' stroke-width%3D'1' opacity%3D'0.85'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'6' stroke%3D'%2322D3EE' stroke-width%3D'1' fill%3D'none' opacity%3D'0.5'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%2322D3EE'%2F%3E%0A%3C%2Fsvg%3E") 16 16, crosshair;
  --cur-cell: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Crect x%3D'8' y%3D'8' width%3D'16' height%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.22' rx%3D'2'%2F%3E%0A%3Crect x%3D'8' y%3D'8' width%3D'16' height%3D'16' stroke%3D'%237C6FF0' stroke-width%3D'1.3' fill%3D'none' rx%3D'2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'1.6' fill%3D'%237C6FF0'%2F%3E%0A%3C%2Fsvg%3E") 16 16, cell;
  --cur-wait: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23FBBF24' stroke-width%3D'2.5' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%23FBBF24' stroke-width%3D'1.2' fill%3D'none' opacity%3D'0.3'%2F%3E%0A%3Cpath d%3D'M16 6 a10 10 0 0 1 10 10' stroke%3D'%23FBBF24' stroke-width%3D'2' fill%3D'none' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%23FBBF24'%2F%3E%0A%3C%2Fsvg%3E") 16 16, wait;
  --cur-copy: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%2334D399' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%2334D399' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'10' x2%3D'16' y2%3D'22' stroke%3D'%2334D399' stroke-width%3D'2' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'16' x2%3D'22' y2%3D'16' stroke%3D'%2334D399' stroke-width%3D'2' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, copy;
  --cur-zoom-in: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'8' stroke%3D'%237C6FF0' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'7' stroke%3D'%237C6FF0' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cline x1%3D'19' y1%3D'19' x2%3D'24' y2%3D'24' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'14' y1%3D'10' x2%3D'14' y2%3D'18' stroke%3D'%237C6FF0' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'14' x2%3D'18' y2%3D'14' stroke%3D'%237C6FF0' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 14 14, zoom-in;
  --cur-zoom-out: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'8' stroke%3D'%237C6FF0' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'7' stroke%3D'%237C6FF0' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cline x1%3D'19' y1%3D'19' x2%3D'24' y2%3D'24' stroke%3D'%237C6FF0' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'14' x2%3D'18' y2%3D'14' stroke%3D'%237C6FF0' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 14 14, zoom-out;
  --cur-resize-ns: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%2322D3EE' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%2322D3EE' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'10' x2%3D'16' y2%3D'22' stroke%3D'%2322D3EE' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M13 12.5 L16 9.5 L19 12.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M13 19.5 L16 22.5 L19 19.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, ns-resize;
  --cur-resize-ew: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%2322D3EE' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%2322D3EE' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'10' y1%3D'16' x2%3D'22' y2%3D'16' stroke%3D'%2322D3EE' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M12.5 13 L9.5 16 L12.5 19' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M19.5 13 L22.5 16 L19.5 19' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, ew-resize;
  --cur-resize-nwse: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%2322D3EE' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%2322D3EE' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'11.5' y1%3D'11.5' x2%3D'20.5' y2%3D'20.5' stroke%3D'%2322D3EE' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M14.5 10.5 L10.5 10.5 L10.5 14.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M17.5 21.5 L21.5 21.5 L21.5 17.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, nwse-resize;
  --cur-resize-nesw: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%2322D3EE' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%2322D3EE' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'20.5' y1%3D'11.5' x2%3D'11.5' y2%3D'20.5' stroke%3D'%2322D3EE' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M17.5 10.5 L21.5 10.5 L21.5 14.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M14.5 21.5 L10.5 21.5 L10.5 17.5' stroke%3D'%2322D3EE' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, nesw-resize;
 }

/* Light theme. */
html.light { 
  --cur-idle: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%234F46E5' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%234F46E5' stroke-width%3D'1.2' fill%3D'none' opacity%3D'0.9'%2F%3E%0A%3Cline x1%3D'16' y1%3D'2' x2%3D'16' y2%3D'5' stroke%3D'%234F46E5' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'16' y1%3D'27' x2%3D'16' y2%3D'30' stroke%3D'%234F46E5' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'2' y1%3D'16' x2%3D'5' y2%3D'16' stroke%3D'%234F46E5' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'27' y1%3D'16' x2%3D'30' y2%3D'16' stroke%3D'%234F46E5' stroke-width%3D'1.2' opacity%3D'0.85'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3.5' fill%3D'%230891B2' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2.4' fill%3D'%230891B2'%2F%3E%0A%3C%2Fsvg%3E") 16 16, auto;
  --cur-pointer: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'14' stroke%3D'%234F46E5' stroke-width%3D'3.2' fill%3D'none' opacity%3D'0.18'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' fill%3D'%234F46E5' opacity%3D'0.1'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%234F46E5' stroke-width%3D'2' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'0' x2%3D'16' y2%3D'4' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'16' y1%3D'28' x2%3D'16' y2%3D'32' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'0' y1%3D'16' x2%3D'4' y2%3D'16' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'28' y1%3D'16' x2%3D'32' y2%3D'16' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'5' fill%3D'%230891B2' opacity%3D'0.25'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3.2' fill%3D'%230891B2'%2F%3E%0A%3Ccircle cx%3D'15' cy%3D'15' r%3D'1' fill%3D'%23ffffff' opacity%3D'0.7'%2F%3E%0A%3C%2Fsvg%3E") 16 16, pointer;
  --cur-menu: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%237C3AED' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'8' stroke%3D'%237C3AED' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13 11 L19 16 L13 21' stroke%3D'%237C3AED' stroke-width%3D'1.6' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%237C3AED' opacity%3D'0.3'%2F%3E%0A%3C%2Fsvg%3E") 16 16, pointer;
  --cur-text: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Cline x1%3D'2' y1%3D'2' x2%3D'2' y2%3D'22' stroke%3D'%230891B2' stroke-width%3D'2.2' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'2' y1%3D'2' x2%3D'2' y2%3D'22' stroke%3D'%230891B2' stroke-width%3D'3.6' stroke-linecap%3D'round' opacity%3D'0.22'%2F%3E%0A%3Cline x1%3D'-2' y1%3D'2' x2%3D'6' y2%3D'2' stroke%3D'%230891B2' stroke-width%3D'1.6' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'-2' y1%3D'22' x2%3D'6' y2%3D'22' stroke%3D'%230891B2' stroke-width%3D'1.6' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 1 11, text;
  --cur-grab: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%23D97706' stroke-width%3D'2.5' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23D97706' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M16 8 L16 12 M16 20 L16 24 M8 16 L12 16 M20 16 L24 16' stroke%3D'%23D97706' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M12 11 L16 7 L20 11 M12 21 L16 25 L20 21 M11 12 L7 16 L11 20 M21 12 L25 16 L21 20' stroke%3D'%23D97706' stroke-width%3D'1.3' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%23D97706'%2F%3E%0A%3C%2Fsvg%3E") 16 16, grab;
  --cur-dragging: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'14' stroke%3D'%23059669' stroke-width%3D'2.8' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'13' stroke%3D'%23059669' stroke-width%3D'1.5' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M16 4 L16 28 M4 16 L28 16' stroke%3D'%23059669' stroke-width%3D'1.5' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'3' fill%3D'%23059669' opacity%3D'0.5'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'1.8' fill%3D'%23059669'%2F%3E%0A%3C%2Fsvg%3E") 16 16, grabbing;
  --cur-not-allowed: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23DC2626' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.16'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' fill%3D'%23DC2626' opacity%3D'0.12'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%23DC2626' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13.2 14.8 V12.8 a2.8 2.8 0 0 1 5.6 0 V14.8' stroke%3D'%23DC2626' stroke-width%3D'1.4' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Crect x%3D'11.6' y%3D'14.5' width%3D'8.8' height%3D'6.4' rx%3D'1.3' fill%3D'%23DC2626'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'17.1' r%3D'0.85' fill%3D'%23ffffff'%2F%3E%0A%3Crect x%3D'15.45' y%3D'17.1' width%3D'1.1' height%3D'2.3' rx%3D'0.5' fill%3D'%23ffffff'%2F%3E%0A%3C%2Fsvg%3E") 16 16, not-allowed;
  --cur-help: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%237C3AED' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%237C3AED' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cpath d%3D'M13 13 a3 3 0 1 1 6 0 c0 2-3 2-3 4' stroke%3D'%237C3AED' stroke-width%3D'1.6' fill%3D'none' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'21.5' r%3D'1.1' fill%3D'%237C3AED'%2F%3E%0A%3C%2Fsvg%3E") 16 16, help;
  --cur-crosshair: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Cline x1%3D'16' y1%3D'1' x2%3D'16' y2%3D'31' stroke%3D'%230891B2' stroke-width%3D'1' opacity%3D'0.85'%2F%3E%0A%3Cline x1%3D'1' y1%3D'16' x2%3D'31' y2%3D'16' stroke%3D'%230891B2' stroke-width%3D'1' opacity%3D'0.85'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'6' stroke%3D'%230891B2' stroke-width%3D'1' fill%3D'none' opacity%3D'0.5'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%230891B2'%2F%3E%0A%3C%2Fsvg%3E") 16 16, crosshair;
  --cur-cell: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Crect x%3D'8' y%3D'8' width%3D'16' height%3D'16' stroke%3D'%234F46E5' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.22' rx%3D'2'%2F%3E%0A%3Crect x%3D'8' y%3D'8' width%3D'16' height%3D'16' stroke%3D'%234F46E5' stroke-width%3D'1.3' fill%3D'none' rx%3D'2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'1.6' fill%3D'%234F46E5'%2F%3E%0A%3C%2Fsvg%3E") 16 16, cell;
  --cur-wait: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23D97706' stroke-width%3D'2.5' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%23D97706' stroke-width%3D'1.2' fill%3D'none' opacity%3D'0.3'%2F%3E%0A%3Cpath d%3D'M16 6 a10 10 0 0 1 10 10' stroke%3D'%23D97706' stroke-width%3D'2' fill%3D'none' stroke-linecap%3D'round'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'2' fill%3D'%23D97706'%2F%3E%0A%3C%2Fsvg%3E") 16 16, wait;
  --cur-copy: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'12' stroke%3D'%23059669' stroke-width%3D'2.6' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'11' stroke%3D'%23059669' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'10' x2%3D'16' y2%3D'22' stroke%3D'%23059669' stroke-width%3D'2' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'16' x2%3D'22' y2%3D'16' stroke%3D'%23059669' stroke-width%3D'2' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, copy;
  --cur-zoom-in: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'8' stroke%3D'%234F46E5' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'7' stroke%3D'%234F46E5' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cline x1%3D'19' y1%3D'19' x2%3D'24' y2%3D'24' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'14' y1%3D'10' x2%3D'14' y2%3D'18' stroke%3D'%234F46E5' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'14' x2%3D'18' y2%3D'14' stroke%3D'%234F46E5' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 14 14, zoom-in;
  --cur-zoom-out: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'8' stroke%3D'%234F46E5' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.22'%2F%3E%0A%3Ccircle cx%3D'14' cy%3D'14' r%3D'7' stroke%3D'%234F46E5' stroke-width%3D'1.4' fill%3D'none'%2F%3E%0A%3Cline x1%3D'19' y1%3D'19' x2%3D'24' y2%3D'24' stroke%3D'%234F46E5' stroke-width%3D'1.8' stroke-linecap%3D'round'%2F%3E%0A%3Cline x1%3D'10' y1%3D'14' x2%3D'18' y2%3D'14' stroke%3D'%234F46E5' stroke-width%3D'1.4' stroke-linecap%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 14 14, zoom-out;
  --cur-resize-ns: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%230891B2' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%230891B2' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'16' y1%3D'10' x2%3D'16' y2%3D'22' stroke%3D'%230891B2' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M13 12.5 L16 9.5 L19 12.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M13 19.5 L16 22.5 L19 19.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, ns-resize;
  --cur-resize-ew: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%230891B2' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%230891B2' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'10' y1%3D'16' x2%3D'22' y2%3D'16' stroke%3D'%230891B2' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M12.5 13 L9.5 16 L12.5 19' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M19.5 13 L22.5 16 L19.5 19' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, ew-resize;
  --cur-resize-nwse: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%230891B2' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%230891B2' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'11.5' y1%3D'11.5' x2%3D'20.5' y2%3D'20.5' stroke%3D'%230891B2' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M14.5 10.5 L10.5 10.5 L10.5 14.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M17.5 21.5 L21.5 21.5 L21.5 17.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, nwse-resize;
  --cur-resize-nesw: url("data:image/svg+xml;utf8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' width%3D'32' height%3D'32' viewBox%3D'0 0 32 32'%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'10' stroke%3D'%230891B2' stroke-width%3D'2.4' fill%3D'none' opacity%3D'0.2'%2F%3E%0A%3Ccircle cx%3D'16' cy%3D'16' r%3D'9' stroke%3D'%230891B2' stroke-width%3D'1.3' fill%3D'none'%2F%3E%0A%3Cline x1%3D'20.5' y1%3D'11.5' x2%3D'11.5' y2%3D'20.5' stroke%3D'%230891B2' stroke-width%3D'1.3' stroke-linecap%3D'round'%2F%3E%0A%3Cpath d%3D'M17.5 10.5 L21.5 10.5 L21.5 14.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3Cpath d%3D'M14.5 21.5 L10.5 21.5 L10.5 17.5' stroke%3D'%230891B2' stroke-width%3D'1.5' fill%3D'none' stroke-linecap%3D'round' stroke-linejoin%3D'round'%2F%3E%0A%3C%2Fsvg%3E") 16 16, nesw-resize;
 }

/* ── Base + interactive selectors ──────────────────────────────────────── */
/* Default everywhere → idle ring + cyan dot. Inherits, so descendants with
   no specific cursor rule show this too.

   NOTE on !important: the codebase sets "cursor: pointer" etc. in ~40
   class rules (e.g. ".mel-term-btn { cursor: pointer }"). Class
   specificity (0,1,0) beats our element selectors (0,0,1), so without
   !important the branded cursor gets silently overridden on those
   elements. Using !important on the BASE interactive rules ensures the
   branded cursor wins uniformly. Explicit Tailwind "cursor-*" classes
   override via !important below; explicit inline style="cursor: …" also
   overrides via the attribute-selector section further down. */
html, body { cursor: var(--cur-idle) !important; }

/* Interactive — buttons, links, checkboxes, selects, and every clickable
   ARIA/AntD/Radix role. Broad by intent: a misclassified "pointer" is
   cosmetic (shows the branded pointer on a non-clickable label), while a
   missed clickable feels like a perf bug because the user expects the
   branded cursor on every hover target. */
button, a, [role="button"], [role="link"], [role="tab"],
[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"],
[role="switch"], [role="checkbox"], [role="radio"], [role="option"],
[role="treeitem"], [role="combobox"],
input[type="checkbox"], input[type="radio"], input[type="submit"],
input[type="button"], input[type="reset"], input[type="image"],
input[type="file"], input[type="color"], select, summary, label,
[tabindex]:not([tabindex="-1"]),
[data-clickable], [data-pointer],
/* AntD clickables that don't carry role="button" or .cursor-pointer. */
.ant-btn, .ant-btn-link, .ant-btn-icon, .ant-dropdown-trigger,
.ant-select-selector, .ant-select-selection-item, .ant-select-arrow,
.ant-input-clear-icon, .ant-input-suffix, .ant-switch, .ant-segmented-item,
.ant-radio-wrapper, .ant-checkbox-wrapper, .ant-tag.ant-tag-has-color,
.ant-tag.clickable, .ant-tabs-tab, .ant-tabs-tab-btn, .ant-menu-item,
.ant-menu-submenu-title, .ant-pagination-item, .ant-pagination-prev,
.ant-pagination-next, .ant-pagination-jump-prev, .ant-pagination-jump-next,
.ant-picker, .ant-picker-cell, .ant-table-row-expand-icon,
.ant-table-row-indent, .ant-card-hoverable, .ant-collapse-header,
.ant-dropdown-menu-item, .ant-modal-close, .ant-drawer-close,
/* Radix primitives. */
[data-radix-collection-item], [data-state][role="tab"],
/* Generic project-level. */
.clickable, .btn {
    cursor: var(--cur-pointer) !important;
}

/* Text inputs + contenteditable — I-beam. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="color"]):not([type="file"]),
textarea,
[contenteditable="true"] {
    cursor: var(--cur-text) !important;
}

/* Draggable. */
[draggable="true"] { cursor: var(--cur-grab) !important; }

/* Dropdown / menu popovers. */
.ant-select-dropdown, .ant-dropdown-menu, .ant-select-item,
[role="listbox"], [role="menu"], [role="option"],
[data-radix-popper-content-wrapper] {
    cursor: var(--cur-menu) !important;
}

/* Disabled — highest specificity via attribute selector, wins over the
   generic button/input rules above. */
button[disabled], input[disabled], select[disabled], textarea[disabled],
fieldset[disabled], [aria-disabled="true"] {
    cursor: var(--cur-not-allowed) !important;
}

/* ── Tailwind cursor-* class overrides ─────────────────────────────────── */
/* All !important so explicit cursor intent from the app always wins over
   any element-level or inline defaults. */
.cursor-auto, .cursor-default { cursor: var(--cur-idle) !important; }
.cursor-pointer { cursor: var(--cur-pointer) !important; }
.cursor-text, .cursor-vertical-text { cursor: var(--cur-text) !important; }
.cursor-not-allowed, .cursor-no-drop { cursor: var(--cur-not-allowed) !important; }
.cursor-help, .cursor-context-menu { cursor: var(--cur-help) !important; }
.cursor-wait, .cursor-progress { cursor: var(--cur-wait) !important; }
.cursor-crosshair { cursor: var(--cur-crosshair) !important; }
.cursor-cell { cursor: var(--cur-cell) !important; }
.cursor-copy, .cursor-alias { cursor: var(--cur-copy) !important; }
.cursor-grab, .cursor-move, .cursor-all-scroll { cursor: var(--cur-grab) !important; }
.cursor-grabbing { cursor: var(--cur-dragging) !important; }
.cursor-zoom-in { cursor: var(--cur-zoom-in) !important; }
.cursor-zoom-out { cursor: var(--cur-zoom-out) !important; }
.cursor-ns-resize, .cursor-row-resize, .cursor-n-resize, .cursor-s-resize {
    cursor: var(--cur-resize-ns) !important;
}
.cursor-ew-resize, .cursor-col-resize, .cursor-e-resize, .cursor-w-resize {
    cursor: var(--cur-resize-ew) !important;
}
.cursor-nwse-resize, .cursor-nw-resize, .cursor-se-resize {
    cursor: var(--cur-resize-nwse) !important;
}
.cursor-nesw-resize, .cursor-ne-resize, .cursor-sw-resize {
    cursor: var(--cur-resize-nesw) !important;
}

