/* Outilix : flashcards (styles propres, préfixe .ox-flashcards-) */
.ox-flashcards-wrap { display: grid; gap: 22px; }
.ox-flashcards-form, .ox-flashcards-side { min-width: 0; }
@media (min-width: 1000px) {
  .ox-flashcards-wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .ox-flashcards-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; }
}
.ox-flashcards-group { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 0 14px; margin-bottom: 12px; background: var(--surface); }
.ox-flashcards-group > summary { cursor: pointer; font-weight: 800; padding: 12px 0; min-height: 44px; display: flex; align-items: center; }
.ox-flashcards-group[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.ox-flashcards-rows { margin-bottom: 14px; }
.ox-flashcards-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; padding: 10px; border: 1px dashed var(--line); border-radius: var(--r-sm); margin: 8px 0; align-items: end; }
.ox-flashcards-cell { display: flex; flex-direction: column; gap: 4px; }
.ox-flashcards-cell.is-wide { grid-column: 1 / -1; }
.ox-flashcards-bar { margin: 10px 0; }
.ox-flashcards-pay { font-size: 1.02rem; }
.ox-flashcards-info { margin-bottom: 10px; }
.ox-flashcards-pages { display: grid; gap: 16px; }
.ox-flashcards-page { margin: 0; }
.ox-flashcards-page canvas { width: 100%; height: auto; display: block; background: #fff; border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); }
.ox-flashcards-page figcaption { text-align: center; margin-top: 4px; }
@media (prefers-reduced-motion: reduce) { .ox-flashcards-wrap * { transition: none !important; animation: none !important; } }
.ox-flashcards-top { margin-bottom: 18px; }
.ox-flashcards-study { margin: 14px 0; }
.ox-flashcards-face { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 200px; padding: 24px; border: 3px solid var(--accent); border-radius: var(--r); background: var(--surface); color: var(--text); font: 800 clamp(1.2rem, 3.5vw, 1.8rem)/1.35 var(--font-round); text-align: center; cursor: pointer; box-shadow: var(--shadow-lg); transition: transform .25s ease, background-color .25s ease; overflow-wrap: anywhere; }
.ox-flashcards-face:hover { transform: translateY(-2px); }
.ox-flashcards-face.is-back { background: color-mix(in srgb, var(--accent) 10%, var(--surface)); font-weight: 600; }
.ox-flashcards-box { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 0 14px 14px; margin-top: 12px; }
.ox-flashcards-box > summary { cursor: pointer; font-weight: 800; padding: 12px 0; min-height: 44px; display: flex; align-items: center; }
@media (prefers-reduced-motion: reduce) { .ox-flashcards-face { transition: none; } .ox-flashcards-face:hover { transform: none; } }
