/* ========== 基础状态 ========== */
body {
    cursor: url('../cursor/pointer.cur'), default;
}

/* ========== 文本编辑 ========== */
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
textarea:focus,
[contenteditable="true"]:focus,
code:hover {
    cursor: url('../cursor/beam.cur'), text;
}

/* ========== 链接与交互 ========== */
a:hover, 
button:hover,
[role="button"]:hover,
.cursor-pointer:hover,
.clickable:hover {
    cursor: url('../cursor/link.cur'), pointer;
}

/* ========== 帮助与提示 ========== */
.help-icon:hover,
[title]:hover,
.tooltip-trigger:hover,
abbr:hover {
    cursor: url('../cursor/help.cur'), help;
}

/* ========== 禁用状态 ========== */
button:disabled,
input:disabled,
.disabled,
.unavailable,
[aria-disabled="true"] {
    cursor: url('../cursor/unavailable.cur'), not-allowed;
}

/* ========== 移动与拖拽 ========== */
.draggable:hover,
.sortable-item:hover,
[draggable="true"]:hover {
    cursor: url('../cursor/move.cur'), move;
}

/* ========== 精确选择（十字线） ========== */
canvas:hover,
.image-editor:hover,
.color-picker:hover,
.precision-area:hover {
    cursor: url('../cursor/precision.cur'), crosshair;
}

/* ========== 调整大小 - 水平 ========== */
.resize-h:hover,
.col-resize:hover,
[resize="horizontal"]:hover {
    cursor: url('../cursor/horz.cur'), ew-resize;
}

/* ========== 调整大小 - 垂直 ========== */
.resize-v:hover,
.row-resize:hover,
[resize="vertical"]:hover {
    cursor: url('../cursor/vert.cur'), ns-resize;
}

/* ========== 调整大小 - 对角线（左上-右下） ========== */
.resize-dgn1:hover,
.resizable-se:hover,
.resizable-nw:hover {
    cursor: url('../cursor/dgn1.cur'), nwse-resize;
}

/* ========== 调整大小 - 对角线（右上-左下） ========== */
.resize-dgn2:hover,
.resizable-sw:hover,
.resizable-ne:hover {
    cursor: url('../cursor/dgn2.cur'), nesw-resize;
}

/* ========== 手写/绘图区域 ========== */
.signature-pad:hover,
.drawing-canvas:hover,
.handwriting-area:hover {
    cursor: url('../cursor/handwriting.cur'), text;
}

/* ========== 用户/个人中心 ========== */
.avatar:hover,
.user-profile:hover,
.author-card:hover {
    cursor: url('../cursor/person.cur'), pointer;
}

/* ========== 固定/置顶操作 ========== */
.pin-btn:hover,
.sticky-toggle:hover,
.fixed-marker:hover {
    cursor: url('../cursor/pin.cur'), pointer;
}

/* ========== 后台处理/等待（可配合JS类名使用） ========== */
body.loading,
body.processing,
.waiting:hover {
    cursor: url('../cursor/alternate.cur'), progress;
}

/* ========== 备用选择器（通用类名） ========== */
.cursor-default { cursor: url('../cursor/pointer.cur'), default; }
.cursor-text { cursor: url('../cursor/beam.cur'), text; }
.cursor-link { cursor: url('../cursor/link.cur'), pointer; }
.cursor-help { cursor: url('../cursor/help.cur'), help; }
.cursor-move { cursor: url('../cursor/move.cur'), move; }
.cursor-precision { cursor: url('../cursor/precision.cur'), crosshair; }
.cursor-unavailable { cursor: url('../cursor/unavailable.cur'), not-allowed; }
.cursor-horz { cursor: url('../cursor/horz.cur'), ew-resize; }
.cursor-vert { cursor: url('../cursor/vert.cur'), ns-resize; }
.cursor-dgn1 { cursor: url('../cursor/dgn1.cur'), nwse-resize; }
.cursor-dgn2 { cursor: url('../cursor/dgn2.cur'), nesw-resize; }
.cursor-handwriting { cursor: url('../cursor/handwriting.cur'), text; }
.cursor-person { cursor: url('../cursor/person.cur'), pointer; }
.cursor-pin { cursor: url('../cursor/pin.cur'), pointer; }
.cursor-alternate { cursor: url('../cursor/alternate.cur'), progress; }

/* ========== 移动端回退 ========== */
@media (pointer: coarse) {
    * { cursor: auto !important; }
}