/* Outil · Caractères spéciaux : seulement ce qui lui est propre (le reste vient de app/kit.css).
   Préfixe des classes : cr-
   Deux colonnes : à gauche la grille des caractères (zone de hauteur fixe, qui défile), une ligne d'info (nom, code),
   les actions des récents ; à droite la recherche, les catégories, Majuscules. Au téléphone : recherche et catégories d'abord. */
.cr .outil-fixe { align-items: stretch; }
.cr-zone { position: relative; height: 340px; overflow-y: auto; overscroll-behavior: contain; padding: 10px; border-radius: 14px;
  background: rgba(242, 240, 235, .025); box-shadow: inset 0 0 0 1px var(--filet-doux); }
@media (min-width: 960px) { .cr-zone { height: 480px; padding: 14px; } }
.cr-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); gap: 6px; }
@media (min-width: 960px) { .cr-grille { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; } }
.cr-case { aspect-ratio: 1; border: 0; border-radius: 10px; padding: 0; cursor: copy; display: grid; place-items: center; background: rgba(242, 240, 235, .04);
  font: 400 22px/1 var(--corps); color: var(--papier); transition: background .2s var(--courbe), box-shadow .2s var(--courbe); }
@media (min-width: 960px) { .cr-case { font-size: 26px; } }
.cr-case:hover { background: rgba(242, 240, 235, .09); }
.cr-case:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.cr-case.copie { animation: cr-copie .6s var(--courbe); }
@keyframes cr-copie { from { background: rgba(255, 90, 31, .35); box-shadow: inset 0 0 0 1.5px var(--orange); } }
.cr-vide { position: absolute; inset: 0; margin: 0; display: grid; place-items: center; padding: 24px; text-align: center; font: var(--valeur); letter-spacing: .06em; color: var(--texte2); }
.cr-vide[hidden] { display: none; }
.cr-info { height: 1lh; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cr-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.cr-actions .pastille { cursor: pointer; }
.cr-actions .pastille:hover { translate: none; }
.cr-actions .pastille:disabled { opacity: .3; cursor: default; }
.cr-categories { display: flex; flex-wrap: wrap; gap: 8px; }
.cr .bascule:disabled { opacity: .3; cursor: default; }
@media (max-width: 959px) {
  .cr-tete { order: -2; }
  .cr-zone, .cr-info, .cr-actions { order: -1; }
}
