/* Shared by both console builds and the public homepage publisher.
   Native values are the accessibility/touch defaults; artwork is desktop-only. */
:root {
  --sai-cursor: auto;
  --sai-cursor-pointer: pointer;
  --sai-cursor-text: text;
  --sai-cursor-disabled: not-allowed;
  --sai-cursor-resize-x: ew-resize;
  --sai-cursor-resize-y: ns-resize;
  --sai-cursor-resize-xy: nwse-resize;
}

@media (pointer: fine) and (forced-colors: none) {
  :root {
    --sai-cursor: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 3 22 14.4l-8.1 1.2L10.2 24 5 3Z' fill='%23f8fbff' stroke='%230b6f73' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M13.9 15.6 20.5 14.7' stroke='%2364d8d0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 5 3, auto;
    --sai-cursor-text: url("data:image/svg+xml,%3Csvg width='24' height='28' viewBox='0 0 24 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 5h8M12 5v18M8 23h8' stroke='%230b6f73' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 12 14, text;
    --sai-cursor-resize-x: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4.5 14 5.4-4.2v8.4L4.5 14Z' fill='%230b6f73'/%3E%3Cpath d='m23.5 14-5.4 4.2V9.8L23.5 14Z' fill='%230b6f73'/%3E%3Cpath d='M10.8 14h6.4' stroke='%2364d8d0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, ew-resize;
    --sai-cursor-resize-y: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m14 4.5 4.2 5.4H9.8L14 4.5Z' fill='%230b6f73'/%3E%3Cpath d='m14 23.5-4.2-5.4h8.4L14 23.5Z' fill='%230b6f73'/%3E%3Cpath d='M14 10.7v6.6' stroke='%2364d8d0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, ns-resize;
    --sai-cursor-resize-xy: url("data:image/svg+xml,%3Csvg width='28' height='28' viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m7 5 7 1.6-5.4 5.4L7 5Z' fill='%230b6f73'/%3E%3Cpath d='m21 23-7-1.6 5.4-5.4L21 23Z' fill='%230b6f73'/%3E%3Cpath d='m10.4 10.4 7.2 7.2' stroke='%2364d8d0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") 14 14, nwse-resize;
    --sai-cursor-disabled: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='15' cy='15' r='9' fill='%23f8fbff' stroke='%2390a4b7' stroke-width='1.6'/%3E%3Cpath d='m9 21 12-12' stroke='%23c4483a' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E") 15 15, not-allowed;
    /* Clicks share the established arrow; keep native pointer outside this query. */
    --sai-cursor-pointer: var(--sai-cursor);
  }
  /* Charts write these two ordinary states inline; drag/wait states stay native. */
  :where([style*="cursor: pointer"], [style*="cursor: default"]) {
    cursor: var(--sai-cursor) !important;
  }
}

html, body, label { cursor: var(--sai-cursor); }
:where(a[href], button, select, summary, input[type="checkbox"], input[type="radio"], input[type="button"], input[type="submit"], input[type="reset"], input[type="range"], input[type="color"], input[type="file"], .checkbox-control, [role="button"], [role="menuitem"], [role="option"]):not(:disabled) {
  cursor: var(--sai-cursor-pointer);
}
:where(input:not([type]), input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="time"], input[type="datetime-local"], textarea, [contenteditable="true"]):not(:disabled) {
  cursor: var(--sai-cursor-text) !important;
}
[data-sai-resize-handle="x"] { cursor: var(--sai-cursor-resize-x) !important; }
[data-sai-resize-handle="y"] { cursor: var(--sai-cursor-resize-y) !important; }
[data-sai-resize-handle="xy"] { cursor: var(--sai-cursor-resize-xy) !important; }
:disabled, [aria-disabled="true"], .checkbox-control:has(input:disabled) {
  cursor: var(--sai-cursor-disabled) !important;
}
html[data-sai-resizing="x"], html[data-sai-resizing="x"] * { cursor: var(--sai-cursor-resize-x) !important; }
html[data-sai-resizing="y"], html[data-sai-resizing="y"] * { cursor: var(--sai-cursor-resize-y) !important; }
html[data-sai-resizing="xy"], html[data-sai-resizing="xy"] * { cursor: var(--sai-cursor-resize-xy) !important; }
