/* Comparer deux textes (diff) */
.o-comparer-textes { --ct-plus-fond: #e3f6ec; --ct-plus-fort: #a6e3bf; --ct-plus-texte: #0d5c36; --ct-moins-fond: #fde8e8; --ct-moins-fort: #f6b3b3; --ct-moins-texte: #9b1c1c; --ct-actif: var(--marque); }
:root[data-theme="dark"] .o-comparer-textes { --ct-plus-fond: #12382a; --ct-plus-fort: #1f6a48; --ct-plus-texte: #9fe3c0; --ct-moins-fond: #46181c; --ct-moins-fort: #87303a; --ct-moins-texte: #ffb4b4; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .o-comparer-textes { --ct-plus-fond: #12382a; --ct-plus-fort: #1f6a48; --ct-plus-texte: #9fe3c0; --ct-moins-fond: #46181c; --ct-moins-fort: #87303a; --ct-moins-texte: #ffb4b4; }
}
.o-comparer-textes-zones { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.o-comparer-textes-zone { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.o-comparer-textes-entete { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.o-comparer-textes-entete > label:first-child { font-weight: 600; font-size: .95rem; color: var(--texte); }
.o-comparer-textes-fichier { position: relative; cursor: pointer; }
.o-comparer-textes-fichier input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.o-comparer-textes-fichier:focus-within { outline: 3px solid var(--marque); outline-offset: 2px; }
.o-comparer-textes textarea { min-height: 220px; font-family: var(--mono); font-size: .92rem; line-height: 1.5; white-space: pre; overflow: auto; tab-size: 4; resize: vertical; }
.o-comparer-textes textarea.survol { outline: 3px dashed var(--marque); outline-offset: 0; }
.o-comparer-textes textarea:focus-visible, .o-comparer-textes select:focus-visible { outline: 3px solid var(--marque); outline-offset: 0; }
.o-comparer-textes-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 8px; }
.o-comparer-textes-actions .btn { min-height: 42px; }
.o-comparer-textes .tirage-message { margin: 0 0 10px; font-size: .95rem; color: var(--texte); }
.o-comparer-textes .reglages label.case { align-self: start; min-height: 0; line-height: 1.3; }
.o-comparer-textes .reglages label.case input { flex: none; }
.o-comparer-textes-stats { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; }
.o-comparer-textes-stats span { flex: 1 1 140px; padding: 8px 12px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: var(--surface-2); color: var(--texte-2); font-size: .9rem; }
.o-comparer-textes-stats strong { display: block; color: var(--texte); font-size: 1.35rem; line-height: 1.2; font-variant-numeric: tabular-nums; }
.o-comparer-textes-stats .plus { border-left: 4px solid var(--ct-plus-fort); }
.o-comparer-textes-stats .moins { border-left: 4px solid var(--ct-moins-fort); }
.o-comparer-textes-stats .modif { border-left: 4px solid var(--marque); }
.o-comparer-textes-barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 14px 0 8px; }
.o-comparer-textes-groupe { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.atelier .o-comparer-textes-groupe .btn[aria-pressed="true"] { background: var(--marque); border-color: var(--marque); color: var(--sur-marque); }
.o-comparer-textes-position { font-size: .9rem; color: var(--texte-2); font-variant-numeric: tabular-nums; min-width: 9ch; }
.o-comparer-textes-resultat { max-height: 70vh; overflow: auto; border: 1px solid var(--bord); border-radius: var(--rayon-petit); background: var(--surface); }
.o-comparer-textes-resultat:empty { display: none; }
.o-comparer-textes-resultat:focus-visible { outline: 3px solid var(--marque); }
.o-comparer-textes-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-family: var(--mono); font-size: .86rem; line-height: 1.45; }
.o-comparer-textes-table thead th { position: sticky; top: 0; z-index: 1; background: var(--surface-2); color: var(--texte-2); font-family: var(--police); font-size: .82rem; font-weight: 600; text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--bord); }
.o-comparer-textes-table td { padding: 0 6px; vertical-align: top; border: 0; }
.o-comparer-textes-table td.num { text-align: right; color: var(--texte-2); user-select: none; font-variant-numeric: tabular-nums; background: var(--surface-2); }
.o-comparer-textes-table td.signe { text-align: center; font-weight: 700; user-select: none; }
.o-comparer-textes-table td.texte { white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 4; color: var(--texte); }
.o-comparer-textes-table.cote td.texte { border-right: 1px solid var(--bord); }
.o-comparer-textes-table.cote th.titre-a { border-right: 1px solid var(--bord); }
.o-comparer-textes-table col.num { width: 3.6em; }
.o-comparer-textes-table col.signe { width: 1.6em; }
.o-comparer-textes-table tr.moins td.texte, .o-comparer-textes-table tr.moins td.signe { background: var(--ct-moins-fond); color: var(--ct-moins-texte); }
.o-comparer-textes-table tr.plus td.texte, .o-comparer-textes-table tr.plus td.signe { background: var(--ct-plus-fond); color: var(--ct-plus-texte); }
.o-comparer-textes-table.cote tr.moins td:nth-child(3), .o-comparer-textes-table.cote tr.moins td:nth-child(2),
.o-comparer-textes-table.cote tr.modif td:nth-child(3), .o-comparer-textes-table.cote tr.modif td:nth-child(2) { background: var(--ct-moins-fond); color: var(--ct-moins-texte); }
.o-comparer-textes-table.cote tr.plus td:nth-child(6), .o-comparer-textes-table.cote tr.plus td:nth-child(5),
.o-comparer-textes-table.cote tr.modif td:nth-child(6), .o-comparer-textes-table.cote tr.modif td:nth-child(5) { background: var(--ct-plus-fond); color: var(--ct-plus-texte); }
.o-comparer-textes-table.cote tr.plus td:nth-child(3), .o-comparer-textes-table.cote tr.plus td:nth-child(2),
.o-comparer-textes-table.cote tr.moins td:nth-child(6), .o-comparer-textes-table.cote tr.moins td:nth-child(5) { background: transparent; }
.o-comparer-textes-table td.vide { background: repeating-linear-gradient(135deg, transparent 0 6px, var(--surface-2) 6px 8px) !important; }
.o-comparer-textes-table tr.ignore td.texte, .o-comparer-textes-table tr.ignore td.signe { color: var(--texte-2); background: var(--surface-2); }
.o-comparer-textes-table del, .o-comparer-textes-table ins { text-decoration: none; border-radius: 3px; padding: 0 1px; }
.o-comparer-textes-table del { background: var(--ct-moins-fort); color: var(--texte); text-decoration: line-through; text-decoration-thickness: 1px; }
.o-comparer-textes-table ins { background: var(--ct-plus-fort); color: var(--texte); text-decoration: underline; text-decoration-thickness: 1px; }
.o-comparer-textes-table tr.actif td.num { box-shadow: inset 4px 0 0 var(--ct-actif); color: var(--texte); font-weight: 700; }
.o-comparer-textes-table tr:focus { outline: 2px solid var(--ct-actif); outline-offset: -2px; }
.o-comparer-textes-table tr.repli td { padding: 4px 8px; background: var(--surface-2); border-top: 1px solid var(--bord); border-bottom: 1px solid var(--bord); text-align: center; font-family: var(--police); }
.o-comparer-textes-table tr.repli .btn { min-height: 32px; font-size: .85rem; }
.o-comparer-textes-legende { margin: 8px 0 4px; font-size: .88rem; color: var(--texte-2); }
.o-comparer-textes-legende span { display: inline-block; min-width: 1.4em; text-align: center; font-weight: 700; border-radius: 4px; font-family: var(--mono); }
.o-comparer-textes-legende .moins { background: var(--ct-moins-fond); color: var(--ct-moins-texte); }
.o-comparer-textes-legende .plus { background: var(--ct-plus-fond); color: var(--ct-plus-texte); margin-left: 10px; }
.o-comparer-textes-note { margin-top: 8px; }
@media (hover: none) { .o-comparer-textes .o-comparer-textes-note { display: block; } }
@media (max-width: 760px) {
  .o-comparer-textes-zones { grid-template-columns: 1fr; }
  .o-comparer-textes textarea { min-height: 150px; height: 170px; }
  .o-comparer-textes-stats span { flex-basis: 40%; padding: 6px 10px; }
  .o-comparer-textes-table { font-size: .8rem; }
  .o-comparer-textes-table col.num { width: 2.9em; }
  .o-comparer-textes-table col.signe { width: 1.3em; }
  .o-comparer-textes-table td { padding: 0 3px; }
}
@media (prefers-reduced-motion: reduce) { .o-comparer-textes-resultat { scroll-behavior: auto; } }
