/*
 * POINTEURS PERSONNALISÉS — FICHIER GÉNÉRÉ, NE PAS ÉDITER À LA MAIN
 * ═══════════════════════════════════════════════════════════════════════════
 *
 * Source : `app/data/cursors.yml` + `lib/cursors/shapes.rb`
 * Regénérer : `bin/rails cursors:build`
 *
 * Toute modification directe de ce fichier sera écrasée à la prochaine
 * génération. Le registre est la seule vérité — c'est délibéré : le système
 * d'accent voisin entretient quatre listes parallèles, déjà désynchronisées.
 *
 * ── COMMENT ÇA MARCHE ─────────────────────────────────────────────────────
 *
 * Chaque pointeur pose deux variables (`--cur-default`, `--cur-pointer`), et
 * deux règles seulement les consomment : le corps de page, et les éléments
 * cliquables. Les deux valeurs listent le SVG puis le PNG : Safari refuse les
 * SVG en curseur et prend silencieusement le second, les autres navigateurs
 * s'arrêtent au premier.
 *
 * Le `!important` est nécessaire, et pas par confort : `cursor: pointer` est
 * déclaré dans une trentaine de feuilles du projet, y compris via des classes
 * utilitaires Tailwind compilées après celle-ci.
 *
 * ⚠️ Les chemins `url()` sont résolus par Propshaft depuis le chemin LOGIQUE
 * de cette feuille. Depuis `stylesheets/themes/`, les images vivent en
 * `../cursors/`. Un chemin faux échoue SANS ERREUR : le navigateur passe au
 * repli suivant et le pointeur choisi ne s'affiche simplement jamais.
 */


/* ── Déclaration des pointeurs ─────────────────────────────────────────── */

html[data-cursor="fleche_blanche"] {
  --cur-default: url("/assets/cursors/fleche_blanche-ed9c2095.svg") 3 2, url("/assets/cursors/fleche_blanche-b3ff0008.png") 3 2;
  --cur-pointer: url("/assets/cursors/fleche_blanche-p-41a628db.svg") 3 2, url("/assets/cursors/fleche_blanche-p-259e9800.png") 3 2;
}

html[data-cursor="fleche_noire"] {
  --cur-default: url("/assets/cursors/fleche_noire-cb321902.svg") 3 2, url("/assets/cursors/fleche_noire-576eb11a.png") 3 2;
  --cur-pointer: url("/assets/cursors/fleche_noire-p-18e766f6.svg") 3 2, url("/assets/cursors/fleche_noire-p-b3816c2f.png") 3 2;
}

html[data-cursor="contour_epais"] {
  --cur-default: url("/assets/cursors/contour_epais-8cfc4355.svg") 3 2, url("/assets/cursors/contour_epais-fad27525.png") 3 2;
  --cur-pointer: url("/assets/cursors/contour_epais-p-9135ba57.svg") 3 2, url("/assets/cursors/contour_epais-p-0a6a9cee.png") 3 2;
}

html[data-cursor="fleche_grande"] {
  --cur-default: url("/assets/cursors/fleche_grande-e7045179.svg") 4 3, url("/assets/cursors/fleche_grande-dbe6abad.png") 4 3;
  --cur-pointer: url("/assets/cursors/fleche_grande-p-83d0051f.svg") 4 3, url("/assets/cursors/fleche_grande-p-d46232c5.png") 4 3;
}

html[data-cursor="fleche_geante"] {
  --cur-default: url("/assets/cursors/fleche_geante-50263fbc.svg") 5 4, url("/assets/cursors/fleche_geante-60fc4a0a.png") 5 4;
  --cur-pointer: url("/assets/cursors/fleche_geante-p-b27de797.svg") 5 4, url("/assets/cursors/fleche_geante-p-36040238.png") 5 4;
}

html[data-cursor="croix_fine"] {
  --cur-default: url("/assets/cursors/croix_fine-dc82701f.svg") 16 16, url("/assets/cursors/croix_fine-b714af18.png") 16 16;
  --cur-pointer: url("/assets/cursors/croix_fine-p-ef2b8034.svg") 16 16, url("/assets/cursors/croix_fine-p-c92cd242.png") 16 16;
}

html[data-cursor="reticule"] {
  --cur-default: url("/assets/cursors/reticule-157137f7.svg") 16 16, url("/assets/cursors/reticule-d7cf6465.png") 16 16;
  --cur-pointer: url("/assets/cursors/reticule-p-b8ada950.svg") 16 16, url("/assets/cursors/reticule-p-17621980.png") 16 16;
}

html[data-cursor="point_plein"] {
  --cur-default: url("/assets/cursors/point_plein-0d967ed4.svg") 16 16, url("/assets/cursors/point_plein-18e935bf.png") 16 16;
  --cur-pointer: url("/assets/cursors/point_plein-p-36307be8.svg") 16 16, url("/assets/cursors/point_plein-p-55c7a51e.png") 16 16;
}

html[data-cursor="stylo"] {
  --cur-default: url("/assets/cursors/stylo-848522dd.svg") 3 28, url("/assets/cursors/stylo-8cc901e5.png") 3 28;
  --cur-pointer: url("/assets/cursors/stylo-p-f284e580.svg") 3 28, url("/assets/cursors/stylo-p-d818130c.png") 3 28;
}

html[data-cursor="crayon"] {
  --cur-default: url("/assets/cursors/crayon-cf3a3017.svg") 3 28, url("/assets/cursors/crayon-87c26cf7.png") 3 28;
  --cur-pointer: url("/assets/cursors/crayon-p-8ef49b6c.svg") 3 28, url("/assets/cursors/crayon-p-97fe46f5.png") 3 28;
}

html[data-cursor="pinceau"] {
  --cur-default: url("/assets/cursors/pinceau-2c439666.svg") 3 28, url("/assets/cursors/pinceau-a30962d0.png") 3 28;
  --cur-pointer: url("/assets/cursors/pinceau-p-2fd8681e.svg") 3 28, url("/assets/cursors/pinceau-p-91ae367b.png") 3 28;
}

html[data-cursor="loupe"] {
  --cur-default: url("/assets/cursors/loupe-0df6960f.svg") 13 13, url("/assets/cursors/loupe-97b376f9.png") 13 13;
  --cur-pointer: url("/assets/cursors/loupe-p-31060ed2.svg") 13 13, url("/assets/cursors/loupe-p-dd2d8ee6.png") 13 13;
}

html[data-cursor="trombone"] {
  --cur-default: url("/assets/cursors/trombone-c211919c.svg") 8 3, url("/assets/cursors/trombone-16ff94d1.png") 8 3;
  --cur-pointer: url("/assets/cursors/trombone-p-a32e76d5.svg") 8 3, url("/assets/cursors/trombone-p-38c9cd3b.png") 8 3;
}

html[data-cursor="fusee"] {
  --cur-default: url("/assets/cursors/fusee-2856e4f8.svg") 4 2, url("/assets/cursors/fusee-8184290d.png") 4 2;
  --cur-pointer: url("/assets/cursors/fusee-p-c17c26c1.svg") 4 2, url("/assets/cursors/fusee-p-bc05f23d.png") 4 2;
}

html[data-cursor="patte_de_chat"] {
  --cur-default: url("/assets/cursors/patte_de_chat-34ab52f4.svg") 15 6, url("/assets/cursors/patte_de_chat-342a6bf0.png") 15 6;
  --cur-pointer: url("/assets/cursors/patte_de_chat-p-fa811e66.svg") 15 6, url("/assets/cursors/patte_de_chat-p-f6f2296d.png") 15 6;
}

html[data-cursor="baguette_magique"] {
  --cur-default: url("/assets/cursors/baguette_magique-572364ba.svg") 3 3, url("/assets/cursors/baguette_magique-6709f1c5.png") 3 3;
  --cur-pointer: url("/assets/cursors/baguette_magique-p-e43d53c4.svg") 3 3, url("/assets/cursors/baguette_magique-p-5bca0511.png") 3 3;
}

html[data-cursor="eclair"] {
  --cur-default: url("/assets/cursors/eclair-1d6b5775.svg") 10 2, url("/assets/cursors/eclair-165646c3.png") 10 2;
  --cur-pointer: url("/assets/cursors/eclair-p-59f5f8e6.svg") 10 2, url("/assets/cursors/eclair-p-5da0c689.png") 10 2;
}

html[data-cursor="coeur"] {
  --cur-default: url("/assets/cursors/coeur-8daca68b.svg") 16 8, url("/assets/cursors/coeur-37e87021.png") 16 8;
  --cur-pointer: url("/assets/cursors/coeur-p-f649a544.svg") 16 8, url("/assets/cursors/coeur-p-e8e0d33b.png") 16 8;
}

html[data-cursor="fleur"] {
  --cur-default: url("/assets/cursors/fleur-a164fa09.svg") 16 16, url("/assets/cursors/fleur-70c81515.png") 16 16;
  --cur-pointer: url("/assets/cursors/fleur-p-1483c5cb.svg") 16 16, url("/assets/cursors/fleur-p-2c28033b.png") 16 16;
}

html[data-cursor="cafe"] {
  --cur-default: url("/assets/cursors/cafe-32880f29.svg") 14 6, url("/assets/cursors/cafe-d8534afb.png") 14 6;
  --cur-pointer: url("/assets/cursors/cafe-p-2d80bcc2.svg") 14 6, url("/assets/cursors/cafe-p-25050afe.png") 14 6;
}

html[data-cursor="ampoule"] {
  --cur-default: url("/assets/cursors/ampoule-2158d737.svg") 16 4, url("/assets/cursors/ampoule-9488ad39.png") 16 4;
  --cur-pointer: url("/assets/cursors/ampoule-p-2afb474b.svg") 16 4, url("/assets/cursors/ampoule-p-bb39a478.png") 16 4;
}

html[data-cursor="sabre"] {
  --cur-default: url("/assets/cursors/sabre-c2725ae1.svg") 4 3, url("/assets/cursors/sabre-e7e70265.png") 4 3;
  --cur-pointer: url("/assets/cursors/sabre-p-a9f10bd4.svg") 4 3, url("/assets/cursors/sabre-p-88ec031c.png") 4 3;
}

html[data-cursor="pouce_en_lair"] {
  --cur-default: url("/assets/cursors/pouce_en_lair-b8ec05ca.svg") 12 4, url("/assets/cursors/pouce_en_lair-0becf207.png") 12 4;
  --cur-pointer: url("/assets/cursors/pouce_en_lair-p-353da196.svg") 12 4, url("/assets/cursors/pouce_en_lair-p-39b63dfb.png") 12 4;
}

html[data-cursor="fleche_8bit"] {
  --cur-default: url("/assets/cursors/fleche_8bit-b76ef1ef.svg") 2 2, url("/assets/cursors/fleche_8bit-34e0b402.png") 2 2;
  --cur-pointer: url("/assets/cursors/fleche_8bit-p-ac6b8ada.svg") 2 2, url("/assets/cursors/fleche_8bit-p-650912bb.png") 2 2;
}

html[data-cursor="main_pixel"] {
  --cur-default: url("/assets/cursors/main_pixel-fc011084.svg") 11 3, url("/assets/cursors/main_pixel-e932ef60.png") 11 3;
  --cur-pointer: url("/assets/cursors/main_pixel-p-71ad1756.svg") 11 3, url("/assets/cursors/main_pixel-p-06f37fed.png") 11 3;
}

html[data-cursor="sablier"] {
  --cur-default: url("/assets/cursors/sablier-0b11df7a.svg") 16 16, url("/assets/cursors/sablier-37dc49ee.png") 16 16;
  --cur-pointer: url("/assets/cursors/sablier-p-9d6fb3fb.svg") 16 16, url("/assets/cursors/sablier-p-57c66e23.png") 16 16;
}

html[data-cursor="bloc_terminal"] {
  --cur-default: url("/assets/cursors/bloc_terminal-f7cb4361.svg") 4 16, url("/assets/cursors/bloc_terminal-118d00d9.png") 4 16;
  --cur-pointer: url("/assets/cursors/bloc_terminal-p-802e835c.svg") 4 16, url("/assets/cursors/bloc_terminal-p-3517a1f8.png") 4 16;
}

html[data-cursor="fleche_amiga"] {
  --cur-default: url("/assets/cursors/fleche_amiga-84506c66.svg") 2 2, url("/assets/cursors/fleche_amiga-056ad3bd.png") 2 2;
  --cur-pointer: url("/assets/cursors/fleche_amiga-p-c728a43f.svg") 2 2, url("/assets/cursors/fleche_amiga-p-0f0d22dc.png") 2 2;
}


/* ── Application ───────────────────────────────────────────────────────── */

html[data-cursor]:not([data-cursor="systeme"]),
html[data-cursor]:not([data-cursor="systeme"]) body {
  cursor: var(--cur-default), auto !important;
}

html[data-cursor]:not([data-cursor="systeme"]) a,
html[data-cursor]:not([data-cursor="systeme"]) button,
html[data-cursor]:not([data-cursor="systeme"]) [role="button"],
html[data-cursor]:not([data-cursor="systeme"]) .btn,
html[data-cursor]:not([data-cursor="systeme"]) .filter-pill,
html[data-cursor]:not([data-cursor="systeme"]) summary,
html[data-cursor]:not([data-cursor="systeme"]) label[for],
html[data-cursor]:not([data-cursor="systeme"]) select,
html[data-cursor]:not([data-cursor="systeme"]) [data-action*="click"] {
  cursor: var(--cur-pointer), pointer !important;
}


/* ── Zones sanctuarisées ───────────────────────────────────────────────────
   Le pointeur natif y reprend la main : sa forme y est porteuse de sens
   (redimensionner, saisir, glisser), pas décorative. `revert` rend la valeur
   qu'aurait eue la propriété sans cette feuille — donc la règle d'origine du
   composant, et non `auto`. */

html[data-cursor] .canvas-editor,
html[data-cursor] .canvas-editor *,
html[data-cursor] .canvas-stage,
html[data-cursor] .canvas-stage *,
html[data-cursor] .fz-sheet,
html[data-cursor] .fz-sheet *,
html[data-cursor] .spreadsheet,
html[data-cursor] .spreadsheet *,
html[data-cursor] .kanban-board,
html[data-cursor] .kanban-board *,
html[data-cursor] [contenteditable="true"],
html[data-cursor] [contenteditable="true"] *,
html[data-cursor] input,
html[data-cursor] input *,
html[data-cursor] textarea,
html[data-cursor] textarea *,
html[data-cursor] .resize-handle,
html[data-cursor] .resize-handle *,
html[data-cursor] [class*="resize"],
html[data-cursor] [class*="resize"] *,
html[data-cursor] [draggable="true"],
html[data-cursor] [draggable="true"] * {
  cursor: revert !important;
}


/* ── Tactile ───────────────────────────────────────────────────────────────
   Il n'y a pas de pointeur à personnaliser sur un écran tactile : le curseur
   n'existe pas, et les images seraient téléchargées pour rien. */

@media (pointer: coarse) {
  html[data-cursor],
  html[data-cursor] body,
  html[data-cursor] a,
  html[data-cursor] button,
  html[data-cursor] [role="button"],
  html[data-cursor] .btn,
  html[data-cursor] .filter-pill,
  html[data-cursor] summary,
  html[data-cursor] label[for],
  html[data-cursor] select,
  html[data-cursor] [data-action*="click"] {
    cursor: auto !important;
  }
}
