:root {
    --gi-cursor-default: url("/static/cursors/genshin/Default.cur");
    --gi-cursor-pointer: url("/static/cursors/genshin/ConnValid.cur");
    --gi-cursor-text: url("/static/cursors/genshin/Text.cur");
    --gi-cursor-wait: url("/static/cursors/genshin/Jump.cur");
    --gi-cursor-disabled: url("/static/cursors/genshin/ConnInvalid.cur");
    --gi-cursor-resize-h: url("/static/cursors/genshin/Stretch_H.cur");
    --gi-cursor-resize-v: url("/static/cursors/genshin/Stretch_V.cur");
    --gi-cursor-resize-lr: url("/static/cursors/genshin/Stretch_LR.cur");
    --gi-cursor-resize-rl: url("/static/cursors/genshin/Stretch_RL.cur");
    --gi-cursor-move: url("/static/cursors/genshin/Move.cur");
    --gi-cursor-drag: url("/static/cursors/genshin/Drag.cur");
    --gi-cursor-help: url("/static/cursors/genshin/Comment.cur");
    --gi-cursor-text-invalid: url("/static/cursors/genshin/TextInvalid.cur");
}

html,
body,
body *,
.main,
.card,
.modal {
    cursor: var(--gi-cursor-default), auto !important;
}

a,
button,
summary,
[role="button"],
[onclick],
.btn,
.stat-card,
.pagination button,
.per-page-select,
.seq-cat,
.seq-table tbody tr,
.ts-check-field,
.ts-lookup-input,
.ts-lookup-clear,
.ts-lookup-item,
.ts-lookup-dialog-item,
.warehouse-tab,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
select {
    cursor: var(--gi-cursor-pointer), pointer !important;
}

input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
textarea,
[contenteditable="true"] {
    cursor: var(--gi-cursor-text), text !important;
}

input:invalid,
textarea:invalid {
    cursor: var(--gi-cursor-text-invalid), text !important;
}

.loading,
.toast,
[aria-busy="true"],
button[aria-busy="true"],
.btn[aria-busy="true"] {
    cursor: var(--gi-cursor-wait), wait !important;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled,
.btn.disabled,
.pagination button:disabled {
    cursor: var(--gi-cursor-disabled), not-allowed !important;
}

.th-resizer,
[style*="col-resize"] {
    cursor: var(--gi-cursor-resize-h), col-resize !important;
}

[style*="row-resize"],
[style*="ns-resize"] {
    cursor: var(--gi-cursor-resize-v), row-resize !important;
}

[style*="ew-resize"] {
    cursor: var(--gi-cursor-resize-lr), ew-resize !important;
}

[draggable="true"],
.drag-handle,
.sortable-ghost,
[style*="cursor: move"],
[style*="cursor:move"] {
    cursor: var(--gi-cursor-move), move !important;
}

[style*="cursor: grab"],
[style*="cursor:grab"],
[style*="cursor: grabbing"],
[style*="cursor:grabbing"] {
    cursor: var(--gi-cursor-drag), grab !important;
}

.help-btn,
.field-hint,
[style*="cursor: help"],
[style*="cursor:help"] {
    cursor: var(--gi-cursor-help), help !important;
}
