/* ==========================================================================
   Studentum — кастомные курсоры

   Набор «Windows 10 Black-Orange», автор Cursor Mania (rw-designer.com),
   исходники и лицензия: tools/cursor-src/readme.txt

   Картинки: /cursors/*.png (32x32, сконвертированы из .cur, hotspot сохранён).
   Курсоры включаются только на устройствах с мышью — на телефонах и планшетах
   правила не применяются вообще.

   Выключить курсоры на странице: <html lang="ru" data-cursors="off">

   ЭТОТ ФАЙЛ СГЕНЕРИРОВАН: python tools/build_cursors.py
   Руками не править — перезапишется.
   ========================================================================== */

@media (hover: hover) and (pointer: fine) {

  /* 1. Базовая стрелка — на всё */
  * {
    cursor: url("/cursors/arrow.png") 0 0, default !important;
  }

  /* 2. Текст, который можно выделить */
  abbr, b, blockquote, cite, code, dd, dt, em,
  figcaption, h1, h2, h3, h4, h5, h6, i,
  kbd, li, mark, p, pre, q, s, samp,
  small, span, strong, sub, sup, td, th, time,
  u {
    cursor: url("/cursors/text.png") 16 16, text !important;
  }

  /* 3. Поля ввода */
  input, textarea, [contenteditable="true"], [contenteditable=""],
  input[type="text"], input[type="email"], input[type="password"], input[type="search"],
  input[type="tel"], input[type="url"], input[type="number"] {
    cursor: url("/cursors/text.png") 16 16, text !important;
  }

  /* 4. Кликабельное — «рука» */
  .ach-fpill, .ach-fpill *,
  .adm-btn-danger, .adm-btn-danger *,
  .adm-btn-ghost, .adm-btn-ghost *,
  .adm-btn-primary, .adm-btn-primary *,
  .adm-logout, .adm-logout *,
  .adm-modal-close, .adm-modal-close *,
  .adm-nav-i, .adm-nav-i *,
  .adm-row-btn, .adm-row-btn *,
  .adm-switch, .adm-switch *,
  .anna-close, .anna-close *,
  .anna-fab, .anna-fab *,
  .anna-form button, .anna-form button *,
  .anna-quick-btn, .anna-quick-btn *,
  .auth-check, .auth-check *,
  .auth-check input, .auth-check input *,
  .auth-field select, .auth-field select *,
  .auth-link-button, .auth-link-button *,
  .auth-link-sm, .auth-link-sm *,
  .auth-tab, .auth-tab *,
  .az-field select, .az-field select *,
  .az-file-btn, .az-file-btn *,
  .bid-modal-close, .bid-modal-close *,
  .btn, .btn *,
  .burger, .burger *,
  .cab .ach-back, .cab .ach-back *,
  .cab .ach-fpill, .cab .ach-fpill *,
  .cab .anna-quick-btn, .cab .anna-quick-btn *,
  .cab .bid-modal-close, .cab .bid-modal-close *,
  .cab .btn, .cab .btn *,
  .cab .cap-remove, .cab .cap-remove *,
  .cab .cm-back-btn, .cab .cm-back-btn *,
  .cab .cm-icon-btn, .cab .cm-icon-btn *,
  .cab .cm-input-btn, .cab .cm-input-btn *,
  .cab .cm-load-earlier, .cab .cm-load-earlier *,
  .cab .cm-search-close, .cab .cm-search-close *,
  .cab .cm-send-btn, .cab .cm-send-btn *,
  .cab .cm-tpl, .cab .cm-tpl *,
  .cab .cme-emoji, .cab .cme-emoji *,
  .cab .crb-close, .cab .crb-close *,
  .cab .cs-list > a, .cab .cs-list > a *,
  .cab .cs-list > button, .cab .cs-list > button *,
  .cab .cs-list > div[data-id], .cab .cs-list > div[data-id] *,
  .cab .cs-search-close, .cab .cs-search-close *,
  .cab .csi-body, .cab .csi-body *,
  .cab .ct-back, .cab .ct-back *,
  .cab .ct-icon-btn, .cab .ct-icon-btn *,
  .cab .mm-del, .cab .mm-del *,
  .cab .mm-edit, .cab .mm-edit *,
  .cab .mm-emojis > *, .cab .mm-react,
  .cab .mm-react *, .cab .mm-reply,
  .cab .mm-reply *, .cab .msg-menu-btn,
  .cab .msg-menu-btn *, .cab .msg-reactions > *,
  .cab .msg-retry, .cab .msg-retry *,
  .cab .music-toggle, .cab .music-toggle *,
  .cab .of-del, .cab .of-del *,
  .cab .theme-toggle, .cab .theme-toggle *,
  .cab select, .cab select *,
  .cab-btn, .cab-btn *,
  .cap-remove, .cap-remove *,
  .catalog-cta-btn, .catalog-cta-btn *,
  .check, .check *,
  .check input, .check input *,
  .cm-back-btn, .cm-back-btn *,
  .cm-icon-btn, .cm-icon-btn *,
  .cm-input-btn, .cm-input-btn *,
  .cm-load-earlier, .cm-load-earlier *,
  .cm-scrolldown, .cm-scrolldown *,
  .cm-search-close, .cm-search-close *,
  .cm-send-btn, .cm-send-btn *,
  .cm-tpl, .cm-tpl *,
  .cof-file-remove, .cof-file-remove *,
  .cof-files-trigger, .cof-files-trigger *,
  .cof-promo-apply, .cof-promo-apply *,
  .cof-type, .cof-type *,
  .cof-type-card, .cof-type-card *,
  .crb-close, .crb-close *,
  .cs-item, .cs-item *,
  .ct-icon-btn, .ct-icon-btn *,
  .dau-bid-btn, .dau-bid-btn *,
  .dau-card, .dau-card *,
  .db-avatar-btn, .db-avatar-btn *,
  .db-avatar-letter, .db-avatar-letter *,
  .db-chat, .db-chat *,
  .db-icon-btn, .db-icon-btn *,
  .db-link-sm, .db-link-sm *,
  .db-more-item, .db-more-item *,
  .db-msg-btn, .db-msg-btn *,
  .db-notif, .db-notif *,
  .db-pill, .db-pill *,
  .db-profile-edit, .db-profile-edit *,
  .db-quick, .db-quick *,
  .db-reco-chip, .db-reco-chip *,
  .db-role-btn, .db-role-btn *,
  .db-role-opt, .db-role-opt *,
  .db-tabline, .db-tabline *,
  .db-topnav-i, .db-topnav-i *,
  .db-urgent-btn, .db-urgent-btn *,
  .db-user-menu-item, .db-user-menu-item *,
  .db-withdraw, .db-withdraw *,
  .dbn-item, .dbn-item *,
  .dbq-act, .dbq-act *,
  .dbs-card, .dbs-card *,
  .dc-cat, .dc-cat *,
  .def-check-item, .def-check-item *,
  .def-check-item input, .def-check-item input *,
  .def-field select, .def-field select *,
  .def-q-summary, .def-q-summary *,
  .def-sum-item summary, .def-sum-item summary *,
  .def-tab, .def-tab *,
  .dev-btn, .dev-btn *,
  .dh-card, .dh-card *,
  .faq-item summary, .faq-item summary *,
  .faq-q, .faq-q *,
  .file, .file *,
  .filter-btn, .filter-btn *,
  .footer-col a, .footer-col a *,
  .footer-link-btn, .footer-link-btn *,
  .help-cat-pill, .help-cat-pill *,
  .help-list .faq-q, .help-list .faq-q *,
  .indiv-work-btn, .indiv-work-btn *,
  .lead-check-row, .lead-check-row *,
  .lead-check-row input, .lead-check-row input *,
  .lead-check-row input[type="checkbox"], .lead-check-row input[type="checkbox"] *,
  .lead-chip span, .lead-chip span *,
  .lockdown-btn, .lockdown-btn *,
  .lockdown-close, .lockdown-close *,
  .mm-react, .mm-react *,
  .mnp-play-btn, .mnp-play-btn *,
  .msg-edit-actions button, .msg-edit-actions button *,
  .msg-menu button, .msg-menu button *,
  .msg-menu-btn, .msg-menu-btn *,
  .msg-quote, .msg-quote *,
  .msg-reaction, .msg-reaction *,
  .msg-retry, .msg-retry *,
  .music-close, .music-close *,
  .music-toggle, .music-toggle *,
  .music-track, .music-track *,
  .music-volume-slider, .music-volume-slider *,
  .nav-burger, .nav-burger *,
  .nav-dd-simple, .nav-dd-simple *,
  .nav-dd-trigger, .nav-dd-trigger *,
  .nav-group > a, .nav-group > a *,
  .nav-links > a, .nav-links > a *,
  .nc-item, .nc-item *,
  .np-tool, .np-tool *,
  .of-del, .of-del *,
  .ord-row, .ord-row *,
  .order-btn, .order-btn *,
  .order-modal-cancel, .order-modal-cancel *,
  .order-modal-cancel.tgg-ready, .order-modal-cancel.tgg-ready *,
  .order-modal-close, .order-modal-close *,
  .order-modal-cta, .order-modal-cta *,
  .osel-btn, .osel-btn *,
  .osel-item, .osel-item *,
  .pk-btn, .pk-btn *,
  .pk-close, .pk-close *,
  .plan-gate-close, .plan-gate-close *,
  .plan-gate-later, .plan-gate-later *,
  .rc-arrow, .rc-arrow *,
  .rc-dot, .rc-dot *,
  .rc-stage .rev-card, .rc-stage .rev-card *,
  .rd-star, .rd-star *,
  .review-modal-close, .review-modal-close *,
  .rvf-close, .rvf-close *,
  .rvf-consent, .rvf-consent *,
  .rvf-consent input[type="checkbox"], .rvf-consent input[type="checkbox"] *,
  .rvf-star, .rvf-star *,
  .rw-mini-btn, .rw-mini-btn *,
  .rw-option select, .rw-option select *,
  .rwx-btn, .rwx-btn *,
  .rwx-mini-btn, .rwx-mini-btn *,
  .rwx-option select, .rwx-option select *,
  .settings-btn-danger, .settings-btn-danger *,
  .settings-btn-file, .settings-btn-file *,
  .settings-btn-ghost, .settings-btn-ghost *,
  .settings-btn-primary, .settings-btn-primary *,
  .settings-chip, .settings-chip *,
  .settings-close, .settings-close *,
  .settings-inline-check, .settings-inline-check *,
  .settings-tab, .settings-tab *,
  .settings-toggle, .settings-toggle *,
  .soc-btn, .soc-btn *,
  .soon-modal-cancel, .soon-modal-cancel *,
  .soon-modal-close, .soon-modal-close *,
  .soon-modal-cta, .soon-modal-cta *,
  .srv-card, .srv-card *,
  .st-back, .st-back *,
  .st-close-btn, .st-close-btn *,
  .st-item, .st-item *,
  .support-btn, .support-btn *,
  .support-send, .support-send *,
  .sv-ask-send, .sv-ask-send *,
  .sv-chip, .sv-chip *,
  .sv-field select, .sv-field select *,
  .sv-mini-btn, .sv-mini-btn *,
  .sv-quick-btn, .sv-quick-btn *,
  .swatch, .swatch *,
  .theme-opt, .theme-opt *,
  .theme-toggle, .theme-toggle *,
  .va-agent-btn, .va-agent-btn *,
  .va-burger, .va-burger *,
  .va-chat-item, .va-chat-item *,
  .va-chat-menu-btn, .va-chat-menu-btn *,
  .va-ctx-menu button, .va-ctx-menu button *,
  .va-ctx-section button, .va-ctx-section button *,
  .va-example-btn, .va-example-btn *,
  .va-howto-example, .va-howto-example *,
  .va-msg-act, .va-msg-act *,
  .va-new-chat, .va-new-chat *,
  .va-new-project, .va-new-project *,
  .va-project-del, .va-project-del *,
  .va-project-head, .va-project-head *,
  .va-project-know, .va-project-know *,
  .va-send, .va-send *,
  .va-side-close, .va-side-close *,
  .va-skill-chip, .va-skill-chip *,
  .va-skill-menu-item, .va-skill-menu-item *,
  .vw-card, .vw-card *,
  [onclick], [onclick] *,
  [role="button"], [role="button"] *,
  [role="checkbox"], [role="checkbox"] *,
  [role="link"], [role="link"] *,
  [role="menuitem"], [role="menuitem"] *,
  [role="option"], [role="option"] *,
  [role="radio"], [role="radio"] *,
  [role="switch"], [role="switch"] *,
  [role="tab"], [role="tab"] *,
  a[href], a[href] *,
  area[href], area[href] *,
  button, button *,
  input[type="button"], input[type="button"] *,
  input[type="checkbox"], input[type="checkbox"] *,
  input[type="color"], input[type="color"] *,
  input[type="file"], input[type="file"] *,
  input[type="image"], input[type="image"] *,
  input[type="radio"], input[type="radio"] *,
  input[type="reset"], input[type="reset"] *,
  input[type="submit"], input[type="submit"] *,
  label[for], label[for] *,
  option, option *,
  select, select *,
  summary, summary * {
    cursor: url("/cursors/link-select.png") 7 1, pointer !important;
  }

  /* 4. Кликабельное — «рука» (отдельно: псевдоэлемент) */
  .music-volume-slider::-moz-range-thumb {
    cursor: url("/cursors/link-select.png") 7 1, pointer !important;
  }

  /* 4. Кликабельное — «рука» (отдельно: псевдоэлемент) */
  .music-volume-slider::-webkit-slider-thumb {
    cursor: url("/cursors/link-select.png") 7 1, pointer !important;
  }

  /* 5. cursor: default */
  .adm-bar-col, .cab .auc-bid-btn:disabled,
  .cab .auc-take-btn:disabled, .pk-btn-primary:disabled,
  .rc-stage .rev-card.rc-active, .settings-field input[readonly],
  .sv-ask-send:disabled, .va-send:disabled,
  body {
    cursor: url("/cursors/arrow.png") 0 0, default !important;
  }

  /* 6. cursor: help */
  .rw-stat[title] {
    cursor: url("/cursors/help.png") 0 0, help !important;
  }

  /* 7. cursor: wait */
  .cm-send-btn:disabled {
    cursor: url("/cursors/busy.png") 16 16, wait !important;
  }

  /* 8. cursor: progress */
  .lead-submit:disabled, .rvf-submit:disabled {
    cursor: url("/cursors/working.png") 0 0, progress !important;
  }

  /* 9. cursor: grab */
  .rvm-viewport, .rvm-viewport * {
    cursor: url("/cursors/move.png") 16 16, grab !important;
  }

  /* 10. cursor: grabbing */
  .rvm-viewport.is-dragging, .rvm-viewport.is-dragging * {
    cursor: url("/cursors/move.png") 16 16, grabbing !important;
  }

  /* 11. cursor: ew-resize */
  [class*="resizer-x"] {
    cursor: url("/cursors/horizontal.png") 16 16, ew-resize !important;
  }

  /* 12. cursor: ns-resize */
  [class*="resizer-y"] {
    cursor: url("/cursors/vertical.png") 16 16, ns-resize !important;
  }

  /* 13. Недоступное — «запрещено» */
  .adm-btn-ghost:disabled, .adm-btn-ghost:disabled *,
  .adm-nav-i:disabled, .adm-nav-i:disabled *,
  .anna-form button:disabled, .anna-form button:disabled *,
  .az-file-btn:disabled, .az-file-btn:disabled *,
  .chat-send:disabled, .chat-send:disabled *,
  .disabled, .disabled *,
  .field input:disabled, .field input:disabled *,
  .lead-field input:disabled, .lead-field input:disabled *,
  .music-track-soon, .music-track-soon *,
  .order-modal-cancel:disabled, .order-modal-cancel:disabled *,
  .osel-item[aria-disabled="true"], .osel-item[aria-disabled="true"] *,
  .rw-mini-btn:disabled, .rw-mini-btn:disabled *,
  .rwx-mini-btn:disabled, .rwx-mini-btn:disabled *,
  .settings-field input:disabled, .settings-field input:disabled *,
  .va-send:disabled, .va-send:disabled *,
  :disabled, :disabled *,
  [aria-disabled="true"], [aria-disabled="true"] *,
  [disabled], [disabled] * {
    cursor: url("/cursors/unavailable.png") 16 16, not-allowed !important;
  }

  /* 14. style="cursor: all-scroll" (ставится из JS) */
  [style*="cursor:all-scroll"], [style*="cursor: all-scroll"] {
    cursor: url("/cursors/move.png") 16 16, all-scroll !important;
  }

  /* 15. style="cursor: cell" (ставится из JS) */
  [style*="cursor:cell"], [style*="cursor: cell"] {
    cursor: url("/cursors/precision.png") 16 16, cell !important;
  }

  /* 16. style="cursor: col-resize" (ставится из JS) */
  [style*="cursor:col-resize"], [style*="cursor: col-resize"] {
    cursor: url("/cursors/horizontal.png") 16 16, col-resize !important;
  }

  /* 17. style="cursor: crosshair" (ставится из JS) */
  [style*="cursor:crosshair"], [style*="cursor: crosshair"] {
    cursor: url("/cursors/precision.png") 16 16, crosshair !important;
  }

  /* 18. style="cursor: default" (ставится из JS) */
  [style*="cursor:default"], [style*="cursor: default"] {
    cursor: url("/cursors/arrow.png") 0 0, default !important;
  }

  /* 19. style="cursor: e-resize" (ставится из JS) */
  [style*="cursor:e-resize"], [style*="cursor: e-resize"] {
    cursor: url("/cursors/horizontal.png") 16 16, e-resize !important;
  }

  /* 20. style="cursor: ew-resize" (ставится из JS) */
  [style*="cursor:ew-resize"], [style*="cursor: ew-resize"] {
    cursor: url("/cursors/horizontal.png") 16 16, ew-resize !important;
  }

  /* 21. style="cursor: grab" (ставится из JS) */
  [style*="cursor:grab"], [style*="cursor: grab"] {
    cursor: url("/cursors/move.png") 16 16, grab !important;
  }

  /* 22. style="cursor: grabbing" (ставится из JS) */
  [style*="cursor:grabbing"], [style*="cursor: grabbing"] {
    cursor: url("/cursors/move.png") 16 16, grabbing !important;
  }

  /* 23. style="cursor: help" (ставится из JS) */
  [style*="cursor:help"], [style*="cursor: help"] {
    cursor: url("/cursors/help.png") 0 0, help !important;
  }

  /* 24. style="cursor: move" (ставится из JS) */
  [style*="cursor:move"], [style*="cursor: move"] {
    cursor: url("/cursors/move.png") 16 16, move !important;
  }

  /* 25. style="cursor: n-resize" (ставится из JS) */
  [style*="cursor:n-resize"], [style*="cursor: n-resize"] {
    cursor: url("/cursors/vertical.png") 16 16, n-resize !important;
  }

  /* 26. style="cursor: ne-resize" (ставится из JS) */
  [style*="cursor:ne-resize"], [style*="cursor: ne-resize"] {
    cursor: url("/cursors/diagonal_2.png") 16 16, ne-resize !important;
  }

  /* 27. style="cursor: nesw-resize" (ставится из JS) */
  [style*="cursor:nesw-resize"], [style*="cursor: nesw-resize"] {
    cursor: url("/cursors/diagonal_2.png") 16 16, nesw-resize !important;
  }

  /* 28. style="cursor: ns-resize" (ставится из JS) */
  [style*="cursor:ns-resize"], [style*="cursor: ns-resize"] {
    cursor: url("/cursors/vertical.png") 16 16, ns-resize !important;
  }

  /* 29. style="cursor: nw-resize" (ставится из JS) */
  [style*="cursor:nw-resize"], [style*="cursor: nw-resize"] {
    cursor: url("/cursors/diagonal_1.png") 16 16, nw-resize !important;
  }

  /* 30. style="cursor: nwse-resize" (ставится из JS) */
  [style*="cursor:nwse-resize"], [style*="cursor: nwse-resize"] {
    cursor: url("/cursors/diagonal_1.png") 16 16, nwse-resize !important;
  }

  /* 31. style="cursor: pointer" (ставится из JS) */
  [style*="cursor:pointer"], [style*="cursor: pointer"] {
    cursor: url("/cursors/link-select.png") 7 1, pointer !important;
  }

  /* 32. style="cursor: progress" (ставится из JS) */
  [style*="cursor:progress"], [style*="cursor: progress"] {
    cursor: url("/cursors/working.png") 0 0, progress !important;
  }

  /* 33. style="cursor: row-resize" (ставится из JS) */
  [style*="cursor:row-resize"], [style*="cursor: row-resize"] {
    cursor: url("/cursors/vertical.png") 16 16, row-resize !important;
  }

  /* 34. style="cursor: s-resize" (ставится из JS) */
  [style*="cursor:s-resize"], [style*="cursor: s-resize"] {
    cursor: url("/cursors/vertical.png") 16 16, s-resize !important;
  }

  /* 35. style="cursor: se-resize" (ставится из JS) */
  [style*="cursor:se-resize"], [style*="cursor: se-resize"] {
    cursor: url("/cursors/diagonal_1.png") 16 16, se-resize !important;
  }

  /* 36. style="cursor: sw-resize" (ставится из JS) */
  [style*="cursor:sw-resize"], [style*="cursor: sw-resize"] {
    cursor: url("/cursors/diagonal_2.png") 16 16, sw-resize !important;
  }

  /* 37. style="cursor: text" (ставится из JS) */
  [style*="cursor:text"], [style*="cursor: text"] {
    cursor: url("/cursors/text.png") 16 16, text !important;
  }

  /* 38. style="cursor: w-resize" (ставится из JS) */
  [style*="cursor:w-resize"], [style*="cursor: w-resize"] {
    cursor: url("/cursors/horizontal.png") 16 16, w-resize !important;
  }

  /* 39. style="cursor: wait" (ставится из JS) */
  [style*="cursor:wait"], [style*="cursor: wait"] {
    cursor: url("/cursors/busy.png") 16 16, wait !important;
  }

  /* 40. style="cursor: no-drop" (ставится из JS) */
  [style*="cursor:no-drop"], [style*="cursor: no-drop"] {
    cursor: url("/cursors/unavailable.png") 16 16, no-drop !important;
  }

  /* 41. style="cursor: not-allowed" (ставится из JS) */
  [style*="cursor:not-allowed"], [style*="cursor: not-allowed"] {
    cursor: url("/cursors/unavailable.png") 16 16, not-allowed !important;
  }

}

/* Аварийный выключатель: <html data-cursors="off"> возвращает системные
   курсоры. :not(#_) поднимает вес правила выше всех остальных. */
html[data-cursors="off"] *:not(#_),
html[data-cursors="off"] *:not(#_)::before,
html[data-cursors="off"] *:not(#_)::after {
  cursor: auto !important;
}
