/* Otoolia — Générateur de QCM (styles limités à .qc / .qc-*) */
.qc-head h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); margin-bottom: .2em; }
.qc-two { display: grid; gap: var(--ot-space); grid-template-columns: minmax(0, 1fr); margin-top: 14px; }
@media (min-width: 1050px) { .qc-two { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; } }
.qc-two > * { min-width: 0; }
.qc-h2 { font-size: 1.05rem; margin: 0 0 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.qc-text { width: 100%; min-height: 360px; font-family: var(--ot-mono, ui-monospace, Menlo, Consolas, monospace); font-size: .86rem; line-height: 1.55; tab-size: 2; }
.qc-help { font-size: .82rem; color: var(--ot-text-soft); margin: 8px 0 0; }
.qc-help code { background: var(--ot-surface-2); padding: 0 4px; border-radius: 4px; font-size: .78rem; }
.qc-status { font-size: .85rem; margin: 8px 0 0; padding: 8px 10px; border-radius: var(--ot-radius-s); }
.qc-ok { background: color-mix(in srgb, #15803d 12%, transparent); }
.qc-warn { background: color-mix(in srgb, #b45309 14%, transparent); }
.qc-goto { border: 0; background: none; padding: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; font-weight: 600; }
.qc-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.qc-sm { min-height: 34px; padding: 5px 14px; font-size: .88rem; }
.qc-opts { margin-top: var(--ot-space); }
.qc-opts summary { font-weight: 700; cursor: pointer; }
.qc-fields { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); margin-top: 10px; }
.qc-f { display: flex; flex-direction: column; gap: 4px; font-size: .82rem; font-weight: 600; min-width: 0; }
.qc-wide { grid-column: 1 / -1; }
.qc .ot-input, .qc .ot-select { padding: 6px 9px; min-height: 36px; font-size: .9rem; width: 100%; }
.qc .ot-textarea.qc-instr-in { min-height: 60px; font-size: .9rem; padding: 6px 9px; }
.qc-checks { display: grid; gap: 4px 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); margin-top: 10px; }
.qc-check { display: flex; align-items: flex-start; gap: 7px; font-size: .88rem; font-weight: 400; }
.qc-check input { margin-top: 3px; }
.qc-seedbox { display: flex; align-items: center; gap: 8px; font-size: .85rem; }
.qc-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.qc-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.qc-toast { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); background: var(--ot-text); color: var(--ot-bg); padding: 8px 16px; border-radius: 10px; font-size: .88rem; z-index: 50; }

/* ---------- Feuilles (aperçu et impression) ---------- */
.qc-viewer { background: var(--ot-surface-2); border-radius: var(--ot-radius); padding: 12px; max-height: 1100px; overflow: auto; }
.qc-paper { color: #111; font-family: "Latin Modern Roman", "Cambria", "Georgia", serif; }
.qc-paper .qc-sheet { background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.15); padding: 14mm 13mm; margin: 0 auto 14px; max-width: 210mm; position: relative; font-size: 11pt; line-height: 1.35; }
.qc-size-s .qc-sheet { font-size: 10pt; } .qc-size-l .qc-sheet { font-size: 12.5pt; }
.qc-h { border-bottom: 1.5px solid #111; padding-bottom: 6px; margin-bottom: 10px; }
.qc-h__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.qc-title { font-size: 1.45em; margin: 0; line-height: 1.2; color: #111; }
.qc-sub { margin: 2px 0 0; font-size: .95em; }
.qc-badge { border: 1.5px solid #111; border-radius: 6px; padding: 2px 10px; font-weight: 700; white-space: nowrap; font-size: 1.05em; }
.qc-badge--key { background: #111; color: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.qc-ident { display: flex; gap: 14px; margin: 10px 0 4px; }
.qc-ident span { flex: 1; border-bottom: 1px dotted #555; padding-bottom: 14px; font-size: .95em; }
.qc-ident span:last-child { flex: .6; }
.qc-instr { margin: 6px 0 0; font-size: .95em; }
.qc-muted { color: #444; }
.qc-code { position: absolute; right: 8mm; bottom: 6mm; font-size: 8pt; color: #666; }
.qc-qs { list-style: none; margin: 0; padding: 0; }
.qc-2col { column-count: 2; column-gap: 9mm; }
.qc-q { break-inside: avoid; page-break-inside: avoid; margin: 0 0 9px; }
.qc-part { font-weight: 700; font-size: 1.08em; margin: 12px 0 6px; border-bottom: .5px solid #999; break-after: avoid; }
.qc-part:first-child { margin-top: 0; }
.qc-stem { display: flex; gap: 6px; }
.qc-n { font-weight: 700; min-width: 1.6em; }
.qc-pts { font-size: .85em; color: #444; white-space: nowrap; }
.qc-multi { font-size: .95em; }
.qc-orig { font-size: .8em; color: #666; }
.qc-ans { list-style: none; margin: 3px 0 0 1.9em; padding: 0; }
.qc-ans li { display: flex; align-items: baseline; gap: 5px; margin: 2px 0; }
.qc-inline { display: flex; flex-wrap: wrap; gap: 2px 22px; }
.qc-l { font-weight: 600; }
.qc-box { display: inline-block; width: .85em; height: .85em; border: 1.2px solid #111; border-radius: 2px; flex: none; position: relative; top: .1em; }
.qc-box--on { background: #111; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.qc-good { font-weight: 700; }
.qc-foot { font-size: .85em; color: #444; margin: 8px 0 0; }
.qc-paper .katex { font-size: 1.05em; }
.qc-paper code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .9em; }
.qc-gridwrap { display: flex; gap: 12mm; justify-content: center; align-items: flex-start; }
.qc-gt { border-collapse: collapse; }
.qc-gt th, .qc-gt td { padding: 3px 7px; text-align: center; }
.qc-gt tbody th { text-align: right; padding-right: 10px; }
.qc-gt tbody tr:nth-child(5n) td, .qc-gt tbody tr:nth-child(5n) th { border-bottom: .5px solid #bbb; }
.qc-gt .qc-box { width: 1em; height: 1em; }
.qc-st { border-collapse: collapse; width: 100%; margin: 0 0 10px; font-size: .95em; }
.qc-st th, .qc-st td { border: .6px solid #888; padding: 4px 5px; text-align: center; }
.qc-st td small { display: block; font-size: .7em; color: #666; }
.qc-print { display: none; }

@media print {
  body.qc-printing #ot-header, body.qc-printing #ot-footer, body.qc-printing .ot-skip, body.qc-printing .ot-consent,
  body.qc-printing .qc > :not(#qc-print), body.qc-printing .ot-prose { display: none !important; }
  body.qc-printing main { padding: 0 !important; margin: 0 !important; max-width: none !important; }
  body.qc-printing { background: #fff !important; }
  .qc-print { display: block !important; }
  .qc-print .qc-sheet { box-shadow: none; margin: 0; padding: 0; max-width: none; break-after: page; page-break-after: always; min-height: 0; }
  .qc-print .qc-sheet:last-child { break-after: auto; page-break-after: auto; }
  .qc-print .qc-code { position: absolute; right: 0; top: -4mm; }
}
@page { size: A4 portrait; margin: 13mm 12mm; }
.qc-exp { font-size: .85rem; color: var(--ot-text-soft); align-self: center; }
.qc-exports { margin-top: -4px; }
