/* Le tableau occupe la hauteur utile ; les commandes gardent leur taille tactile. */
body.tbi-board-open { overflow: hidden; }
.tbi-board.tbi-board {
    position: fixed; inset: 0; z-index: 10001;
    width: 100%; height: 100dvh; max-width: none; margin: 0;
    padding: 10px 16px; box-sizing: border-box;
    background: var(--cb-fullscreen, var(--vf-fullscreen, #fff));
    display: flex; flex-direction: column; justify-content: flex-start; gap: 8px;
    overflow: auto;
}
[data-theme="dark"] .tbi-board.tbi-board { background: #0f172a; }
.tbi-board > [class$="-hero"], .tbi-board > [class$="-hint-line"],
.tbi-board > [class$="-hint"], .tbi-board .tbi-format-badge-wrap { display: none; }
.tbi-board.tbi-board > [class$="-toolbar"] { flex: 0 0 auto; margin: 0; padding: 8px; gap: 6px; }
.tbi-board.tbi-board > [class$="-actions"], .tbi-board.tbi-board > [class$="-nav"] { flex: 0 0 auto; margin: 0; }
.tbi-board button, .tbi-board select { min-height: 44px; }
.tbi-board.tbi-board :is(.ar-stage,.af-stage,.cj-stage,.dn-stage,.dm-stage,.dt-stage,.ep-stage,.em-stage,.in-stage,.lh-stage,.mc-stage,.ml-stage,.nm-stage,.of-stage,.pe-stage,.rn-stage) {
    flex: 1; min-height: 0; container-type: size; padding: 38px 16px 12px; gap: 8px;
}
.tbi-board.tbi-board :is(.ar-question,.dt-question,.nm-prompt.num,.dn-prompt.chiffres) { font-size: clamp(3rem, 30cqh, 10rem); }
.tbi-board.tbi-board :is(.af-word,.cj-verbe,.mc-question,.dm-word) { font-size: clamp(2.5rem, 22cqh, 6rem); overflow-wrap: anywhere; }
.tbi-board.tbi-board :is(.ar-answer,.af-answer,.cj-answer,.mc-answer,.dt-answer,.pe-result) { font-size: clamp(2rem, 19cqh, 5rem); }
.tbi-board.tbi-board :is(.dn-prompt.lettres,.pe-problem,.of-phrase) { font-size: clamp(1.5rem, 10cqh, 3rem); }
.tbi-board.tbi-board :is(.in-item,.ml-word,.rn-num) { font-size: clamp(1.6rem, 13cqh, 3rem); }
.tbi-board.tbi-board :is(.in-raison,.of-expl) { font-size: clamp(1.15rem, 7cqh, 1.6rem); }
.tbi-board.tbi-board .lh-clock { width: min(70cqh, 340px); height: min(70cqh, 340px); min-width: 0; }
.tbi-board.tbi-board .em-field { height: auto; flex: 1; min-height: 0; max-height: none; }
.tbi-board.tbi-board .ep-field { min-height: 0; padding: 0; }
.tbi-board.tbi-board .ep-frames { gap: 8px; }
.tbi-board.tbi-board .ep-cell { width: clamp(22px, 8cqh, 42px); height: clamp(22px, 8cqh, 42px); }
.tbi-board.tbi-board .ep-answer-main { font-size: clamp(2rem, 14cqh, 4rem); }
.tbi-board.tbi-board .ep-const { height: min(55cqh, 300px); min-height: 0; }
.tbi-board.tbi-board .dn-answer.lettres { font-size: clamp(1.5rem, 10cqh, 2.5rem); }
.tbi-board.tbi-board .dn-answer.chiffres { font-size: clamp(2rem, 20cqh, 5rem); }
.tbi-board.tbi-board :is(.nm-prompt.txt,.nm-answer-main.txt) { font-size: clamp(1.4rem, 9cqh, 2.3rem); }
.tbi-board.tbi-board .nm-answer-main.num { font-size: clamp(2rem, 16cqh, 4rem); }
.tbi-board.tbi-board .nm-answer-sub { font-size: clamp(1.1rem, 6cqh, 1.5rem); }
.tbi-board.tbi-board .rn-nums { gap: 8px; }
.tbi-board.tbi-board .rn-num { padding: 6px 10px; font-size: clamp(1.5rem, 9cqh, 2.3rem); }
.tbi-board.tbi-board .rn-ordered .v { font-size: clamp(1.5rem, 9cqh, 2.3rem); }
.tbi-board.tbi-board .rn-ordered .sep { font-size: 1.4rem; }
.tbi-board.tbi-board .ml-word { padding: 6px 10px; font-size: clamp(1.5rem, 10cqh, 2.5rem); }
.tbi-board.tbi-board .ml-ordered .v { font-size: clamp(1.4rem, 8cqh, 2rem); }
.tbi-board.tbi-board :is(.ml-word .len,.ml-ordered .v small) { font-size: 1rem; }

/* Grilles : la hauteur du tableau détermine aussi la largeur des cases carrées. */
.tbi-board.tbi-board .bn-board { width: min(100%, calc(100dvh - 210px)); flex: 1; min-height: 0; margin: 0 auto; }
.tbi-board.tbi-board .bn-status { margin: 0; }
.tbi-board.tbi-board .bn-cell { min-height: 0 !important; min-width: 0 !important; padding: 0; }
.tbi-board.tbi-board .mm-layout { flex: 1; min-height: 0; grid-template-columns: minmax(0, 1fr) 220px; gap: 12px; overflow: auto; overscroll-behavior: contain; }
.tbi-board.tbi-board .mm-grid { width: min(100%, calc(100dvh - 155px)); margin: 0 auto; }
.tbi-board.tbi-board .mm-cell { min-height: 0 !important; min-width: 0 !important; font-size: clamp(1.1rem, 3vh, 1.8rem); padding: 0; }
.tbi-board.tbi-board .mm-words { padding: 10px; }
.tbi-board.tbi-board .mm-words li { font-size: 1.1rem; padding: 3px 0; }
/* Les grilles 10×10 / 13×13 dérogent au minimum global de 44 px : leurs
   cases restent carrées et navigables au clavier, sans couper les dernières lignes. */
body.tbi-board-open .tbi-board.tbi-board :is(.mm-cell,.bn-cell) { min-height: 30px !important; min-width: 30px !important; }
.tbi-board.tbi-board .me-grid { flex: 1; min-height: 0; }
.tbi-board.tbi-board .me-card { min-height: 44px; aspect-ratio: auto; font-size: clamp(1.1rem, 3vh, 1.5rem); }
.tbi-board.tbi-board .pd-gallows svg { width: 180px; height: 190px; }
.tbi-board.tbi-board .pd-letter { width: 44px; height: 50px; font-size: 2rem; }
.tbi-board.tbi-board .pd-key { width: 48px; height: 46px; padding: 0; font-size: 1.3rem; }
.tbi-board.tbi-board .ml-tile { width: 70px; height: 88px; }
.tbi-board.tbi-board .ml-tile .l { font-size: 2.8rem; }

/* Les cartes de contenu restent lisibles en 800 × 600. */
.tbi-board.tbi-board .pb-stage { flex: 1; min-height: 0; grid-template-columns: 220px minmax(0, 1fr); }
.tbi-board.tbi-board .pb-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tbi-board.tbi-board .pb-cat { padding: 12px; font-size: 1.3rem; gap: 8px; }
.tbi-board.tbi-board .pb-cat-emoji { font-size: 1.7rem; }
.tbi-board.tbi-board .pb-letter { font-size: clamp(5rem, 17vh, 9rem); }
.tbi-board.tbi-board .nj-number-box { margin: 0; }
.tbi-board.tbi-board .nj-number { font-size: clamp(3rem, 11vh, 6rem); }
.tbi-board.tbi-board .nj-grid { flex: 1; min-height: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; overflow: auto; overscroll-behavior: contain; align-content: start; grid-auto-rows: max-content; }
.tbi-board.tbi-board .nj-card { min-height: 70px; padding: 10px; }
.tbi-board.tbi-board .nj-card-title { font-size: .95rem; margin-bottom: 4px; }
.tbi-board.tbi-board .nj-card-val { font-size: clamp(1.2rem, 3vh, 1.8rem); }
.tbi-board.tbi-board .vf-card { padding: 16px; margin: 0; }
.tbi-board.tbi-board .vf-q { font-size: clamp(1.6rem, 4.5vh, 2.6rem); }
.tbi-board.tbi-board .qs-card { padding: 16px; margin-bottom: 0; }
.tbi-board.tbi-board .qs-clues li { padding: 7px 0; font-size: clamp(1.1rem, 3vh, 1.4rem); }
.tbi-board.tbi-board .qs-answer { padding: 10px; }
.tbi-board.tbi-board .mp-panel { min-height: 0; padding: 14px; }
.tbi-board.tbi-board .mp-btn { padding: 10px 14px; }
.tbi-board.tbi-board .te-grid { flex: 1; min-height: 0; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); align-content: start; }
.tbi-board.tbi-board .te-team { gap: 6px; padding: 10px; }
.tbi-board.tbi-board .te-score { font-size: clamp(2.5rem, 8vh, 4rem); }

/* La solution du Compte est bon apparaît à côté du tirage. */
.tbi-board.tbi-board.cb-wrap { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto minmax(0, 1fr); align-content: start; }
.tbi-board.cb-wrap .cb-toolbar { grid-column: 1 / -1; }
.tbi-board.cb-wrap .cb-target-box { grid-column: 1; margin: 0; }
.tbi-board.cb-wrap .cb-plaques { grid-column: 1; margin: 0; gap: 8px; }
.tbi-board.cb-wrap .cb-plaque { min-width: 70px; padding: 8px; font-size: 2rem; }
.tbi-board.cb-wrap .cb-controls { grid-column: 1; margin: 0; align-content: start; }
.tbi-board.cb-wrap .cb-solution { grid-column: 2; grid-row: 2 / 5; width: 100%; align-self: start; padding: 12px; }
.tbi-board.tbi-board .cb-sol-steps li { font-size: 1.3rem; }
.tbi-board.tbi-board > [aria-label="Séance en cours"] { position: static !important; transform: none !important; margin: 0 auto; flex: 0 0 auto; order: 99; grid-column: 1 / -1; }
