/* OiHub 自定义光标集
 *
 * 来源：Kenney Cursor Pack（CC0-1.0，公有领域，可商用、无署名义务）
 *   上游地址 https://kenney.nl/assets/cursor-pack
 * 改造范围：仅替换上游「带描边」（Outline）变体两层路径的填色，形状未改动
 *   浅色版 本体 #FFFFFF / 描边 #4F46E5（对齐 --app-accent 浅色档 + Surface/Card 浅色档）
 *   深色版 本体 #09090B / 描边 #818CF8（对齐 --app-accent 深色档 + Surface/Card 深色档）
 * 尺寸：32×32（1 倍屏）与 64×64（2 倍屏），热点坐标按倍率同步放大
 * 形态与上游取件：
 *   arrow pointer_b
 *   hand hand_small_point（比 hand_point 小一档）
 *   text line_vertical（等比缩至约 0.8，个头更小）
 *   move resize_a_cross
 *   resize resize_a_horizontal / resize-v resize_a_vertical
 *   resize-d resize_a_diagonal / resize-dm resize_a_diagonal_mirror
 *   block disabled
 *   grab hand_small_open / grabbing hand_small_closed
 *   crosshair line_cross
 * 箭头形态：同族另 17 个箭头变体存于 ./arrows/ 备用，各变体尖端位置不同
 *   （如 pointer_c 为 2,2、pointer_i 为 8,8），换用前须逐图重取热点并同步换算 2 倍稿
 * 已知缺项：上游没有文本 I 形光标，text 沿用同套竖线光标（line_vertical）
 * 热点说明：上游未提供热点表，坐标按几何推导（箭头取尖端、其余取中心），接入时需在真实界面微调
 *
 * 接入提示：图片地址按「站点根」写绝对路径（/cursors/...）。原因有二：
 *   一是自定义属性里的相对 URL 按「文档地址」而非「样式表地址」解析，门户存在
 *     /admin/xxx 这类多段路由，相对写法会被解析到 /admin/cursors/ 下而取不到图；
 *   二是本目录被拷入各应用可直接服务的 public/ 目录，站点根绝对路径对浏览器与
 *     构建产物都成立。
 *   桌面壳例外：它从 file://.../out/renderer/index.html 载入，站点根绝对路径会落到
 *   盘根，故壳不在本文件取值——它在自身样式表里自带一组「文档相对」的光标变量。
 *   本目录下的图片文件三处应用共用，无需改动。
 */

:root {
  --cursor-arrow: url('/cursors/light/arrow.png') 8 6, auto;
  --cursor-hand: url('/cursors/light/hand.png') 10 5, pointer;
  --cursor-text: url('/cursors/light/text.png') 16 16, text;
  --cursor-move: url('/cursors/light/move.png') 16 16, move;
  --cursor-resize: url('/cursors/light/resize.png') 16 16, ew-resize;
  --cursor-resize-v: url('/cursors/light/resize-v.png') 16 16, ns-resize;
  --cursor-resize-d: url('/cursors/light/resize-d.png') 16 16, nwse-resize;
  --cursor-resize-dm: url('/cursors/light/resize-dm.png') 16 16, nesw-resize;
  --cursor-block: url('/cursors/light/block.png') 16 16, not-allowed;
  --cursor-grab: url('/cursors/light/grab.png') 16 16, grab;
  --cursor-grabbing: url('/cursors/light/grabbing.png') 16 16, grabbing;
  --cursor-crosshair: url('/cursors/light/crosshair.png') 16 16, crosshair;
}

.dark {
  --cursor-arrow: url('/cursors/dark/arrow.png') 8 6, auto;
  --cursor-hand: url('/cursors/dark/hand.png') 10 5, pointer;
  --cursor-text: url('/cursors/dark/text.png') 16 16, text;
  --cursor-move: url('/cursors/dark/move.png') 16 16, move;
  --cursor-resize: url('/cursors/dark/resize.png') 16 16, ew-resize;
  --cursor-resize-v: url('/cursors/dark/resize-v.png') 16 16, ns-resize;
  --cursor-resize-d: url('/cursors/dark/resize-d.png') 16 16, nwse-resize;
  --cursor-resize-dm: url('/cursors/dark/resize-dm.png') 16 16, nesw-resize;
  --cursor-block: url('/cursors/dark/block.png') 16 16, not-allowed;
  --cursor-grab: url('/cursors/dark/grab.png') 16 16, grab;
  --cursor-grabbing: url('/cursors/dark/grabbing.png') 16 16, grabbing;
  --cursor-crosshair: url('/cursors/dark/crosshair.png') 16 16, crosshair;
}

/* 2 倍屏换用 64×64 图，热点同步翻倍；必须排在 :root / .dark 之后以覆盖同特异度声明 */
@media (min-resolution: 2dppx) {
  :root {
    --cursor-arrow: url('/cursors/light/arrow@2x.png') 16 12, auto;
    --cursor-hand: url('/cursors/light/hand@2x.png') 20 10, pointer;
    --cursor-text: url('/cursors/light/text@2x.png') 32 32, text;
    --cursor-move: url('/cursors/light/move@2x.png') 32 32, move;
    --cursor-resize: url('/cursors/light/resize@2x.png') 32 32, ew-resize;
    --cursor-resize-v: url('/cursors/light/resize-v@2x.png') 32 32, ns-resize;
    --cursor-resize-d: url('/cursors/light/resize-d@2x.png') 32 32, nwse-resize;
    --cursor-resize-dm: url('/cursors/light/resize-dm@2x.png') 32 32, nesw-resize;
    --cursor-block: url('/cursors/light/block@2x.png') 32 32, not-allowed;
    --cursor-grab: url('/cursors/light/grab@2x.png') 32 32, grab;
    --cursor-grabbing: url('/cursors/light/grabbing@2x.png') 32 32, grabbing;
    --cursor-crosshair: url('/cursors/light/crosshair@2x.png') 32 32, crosshair;
  }

  .dark {
    --cursor-arrow: url('/cursors/dark/arrow@2x.png') 16 12, auto;
    --cursor-hand: url('/cursors/dark/hand@2x.png') 20 10, pointer;
    --cursor-text: url('/cursors/dark/text@2x.png') 32 32, text;
    --cursor-move: url('/cursors/dark/move@2x.png') 32 32, move;
    --cursor-resize: url('/cursors/dark/resize@2x.png') 32 32, ew-resize;
    --cursor-resize-v: url('/cursors/dark/resize-v@2x.png') 32 32, ns-resize;
    --cursor-resize-d: url('/cursors/dark/resize-d@2x.png') 32 32, nwse-resize;
    --cursor-resize-dm: url('/cursors/dark/resize-dm@2x.png') 32 32, nesw-resize;
    --cursor-block: url('/cursors/dark/block@2x.png') 32 32, not-allowed;
    --cursor-grab: url('/cursors/dark/grab@2x.png') 32 32, grab;
    --cursor-grabbing: url('/cursors/dark/grabbing@2x.png') 32 32, grabbing;
    --cursor-crosshair: url('/cursors/dark/crosshair@2x.png') 32 32, crosshair;
  }
}

.cursor-arrow {
  cursor: var(--cursor-arrow);
}

.cursor-hand {
  cursor: var(--cursor-hand);
}

.cursor-text {
  cursor: var(--cursor-text);
}

.cursor-move {
  cursor: var(--cursor-move);
}

.cursor-resize {
  cursor: var(--cursor-resize);
}

.cursor-resize-v {
  cursor: var(--cursor-resize-v);
}

.cursor-resize-d {
  cursor: var(--cursor-resize-d);
}

.cursor-resize-dm {
  cursor: var(--cursor-resize-dm);
}

.cursor-block {
  cursor: var(--cursor-block);
}

.cursor-grab {
  cursor: var(--cursor-grab);
}

.cursor-grabbing {
  cursor: var(--cursor-grabbing);
}

.cursor-crosshair {
  cursor: var(--cursor-crosshair);
}
