/* Bingo card generator (tools.d, 2026-10-11). Every rule under #visu-tools.vt-bingo-cards; borders stay 1px hairline.
 * The paper controls, the preview stage and the print surface come from css/_print-kit.css. */
#visu-tools.vt-bingo-cards [hidden] { display: none !important; }
#visu-tools.vt-bingo-cards .vt-bg-wordsbox { display: grid; gap: 6px; margin-top: 16px; }
#visu-tools.vt-bingo-cards .vt-bg-count { font-size: 14px; color: var(--vt-muted); }
#visu-tools.vt-bingo-cards .vt-bg-sizes { margin-top: 10px; }
#visu-tools.vt-bingo-cards .vt-bg-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; align-items: end; margin-top: 16px; }
#visu-tools.vt-bingo-cards .vt-bg-row .vt-check { min-height: 46px; }
#visu-tools.vt-bingo-cards .vt-bg-title { margin-top: 16px; display: grid; }
#visu-tools.vt-bingo-cards .vt-pk-sheet .vt-check { min-height: 46px; }
#visu-tools.vt-bingo-cards .vt-bg-problem { margin-top: 14px !important; }
#visu-tools.vt-bingo-cards .vt-in > .vt-actions { margin-top: 18px; }
#visu-tools.vt-bingo-cards .vt-bg-note { margin-top: 14px !important; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--vt-line); background: var(--vt-bg); font-size: 13.5px; line-height: 1.5; color: var(--vt-text); }
#visu-tools.vt-bingo-cards .vt-bg-note + .vt-hint { margin-top: 10px !important; }
#visu-tools.vt-bingo-cards .vt-bg-stage { min-height: 300px; }
#visu-tools.vt-bingo-cards #vt-bg-out:not([hidden]) { display: grid; gap: 12px; }
#visu-tools.vt-bingo-cards .vt-bg-stepper { display: flex; align-items: center; justify-content: center; gap: 14px; font-size: 15px; font-weight: 600; color: var(--vt-ink); font-variant-numeric: tabular-nums; }
/* !important: the theme styles bare <button> elements (colour, padding, radius). */
#visu-tools.vt-bingo-cards .vt-bg-step { width: 44px !important; height: 44px; min-height: 0 !important; margin: 0 !important; padding: 0 0 3px !important; border-radius: 50% !important; border: 1px solid var(--vt-line-2) !important;
  background: #fff !important; box-shadow: none !important; color: var(--vt-ink) !important; font: 500 24px/1 inherit !important; cursor: pointer; }
#visu-tools.vt-bingo-cards .vt-bg-step:disabled { opacity: .35; cursor: default; }
#visu-tools.vt-bingo-cards .vt-bg-step:not(:disabled):hover { border-color: var(--vt-ink) !important; }
#visu-tools.vt-bingo-cards .vt-bg-check { text-align: center; font-size: 14.5px; color: var(--vt-accent-text); font-weight: 600; }
#visu-tools.vt-bingo-cards .vt-bg-shared { padding: 10px 14px; border-radius: 12px; background: var(--vt-tint); font-size: 14px; }
#visu-tools.vt-bingo-cards .vt-bg-facts { font-size: 14.5px; color: var(--vt-text); min-width: 0; }
#visu-tools.vt-bingo-cards .vt-bg-proof .vt-kv { grid-template-columns: 110px minmax(0, 1fr); }
#visu-tools.vt-bingo-cards .vt-bg-linkbox:not([hidden]) { display: grid; gap: 6px; }
#visu-tools.vt-bingo-cards .vt-bg-linkbox input { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; font-size: 13px !important; color: var(--vt-muted) !important; text-overflow: ellipsis; }
/* caller: full width under the two panels */
#visu-tools.vt-bingo-cards .vt-bg-caller { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 24px; align-items: start; }
#visu-tools.vt-bingo-cards .vt-bg-call-main, #visu-tools.vt-bingo-cards .vt-bg-call-side { display: grid; gap: 12px; min-width: 0; }
#visu-tools.vt-bingo-cards .vt-bg-ball { display: grid; place-items: center; min-height: 150px; padding: 14px; border-radius: 18px; border: 1px solid var(--vt-line); background: var(--vt-bg); text-align: center; font-size: 15px; color: var(--vt-muted); }
#visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has { background: var(--vt-ink); border-color: var(--vt-ink); color: #fff; font-size: 72px; line-height: 1; font-weight: 780; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
#visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has.vt-bg-word { font-size: 34px; line-height: 1.15; letter-spacing: -0.02em; overflow-wrap: anywhere; }
#visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has span { animation: vt-bg-pop .3s ease-out; }
#visu-tools.vt-bingo-cards .vt-bg-call-main .vt-btn { flex: 1 1 100%; min-height: 52px; font-size: 16.5px; }
#visu-tools.vt-bingo-cards .vt-bg-call-proof .vt-kv { grid-template-columns: 110px minmax(0, 1fr); }
#visu-tools.vt-bingo-cards .vt-bg-board { display: grid; gap: 4px; }
#visu-tools.vt-bingo-cards .vt-bg-board-75 { grid-template-columns: repeat(15, minmax(0, 1fr)); }
#visu-tools.vt-bingo-cards .vt-bg-board-90 { grid-template-columns: repeat(10, minmax(0, 1fr)); }
#visu-tools.vt-bingo-cards .vt-bg-board-words { display: flex; flex-wrap: wrap; gap: 6px; min-height: 44px; }
#visu-tools.vt-bingo-cards .vt-bg-cell { display: grid; place-items: center; aspect-ratio: 1; min-width: 0; border-radius: 8px; border: 1px solid var(--vt-line); background: #fff; font-size: 13px; font-weight: 600; color: var(--vt-muted); font-variant-numeric: tabular-nums; }
#visu-tools.vt-bingo-cards .vt-bg-cell.vt-bg-on { background: var(--vt-tint); border-color: transparent; color: var(--vt-accent-text); font-weight: 750; }
#visu-tools.vt-bingo-cards .vt-bg-cell.vt-bg-last, #visu-tools.vt-bingo-cards .vt-bg-chip.vt-bg-last { background: var(--vt-ink); border-color: var(--vt-ink); color: #fff; }
#visu-tools.vt-bingo-cards .vt-bg-chip { padding: 6px 12px; border-radius: 999px; background: var(--vt-tint); font-size: 14px; font-weight: 600; color: var(--vt-accent-text); overflow-wrap: anywhere; }
@keyframes vt-bg-pop { from { transform: scale(.8); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { #visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has span { animation: none; } }
@media (max-width: 860px) {
  #visu-tools.vt-bingo-cards .vt-bg-caller { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  #visu-tools.vt-bingo-cards :is(.vt-bg-kinds, .vt-bg-sizes) .vt-seg-items { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; }
  #visu-tools.vt-bingo-cards .vt-bg-row { grid-template-columns: 110px minmax(0, 1fr); }
  #visu-tools.vt-bingo-cards .vt-bg-board-75 { grid-template-columns: repeat(10, minmax(0, 1fr)); }
  #visu-tools.vt-bingo-cards .vt-bg-cell { font-size: 12px; border-radius: 6px; }
  #visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has { font-size: 60px; }
  #visu-tools.vt-bingo-cards .vt-bg-ball.vt-bg-has.vt-bg-word { font-size: 28px; }
}
/* The result panel is not sticky here: the caller sits under it in the same grid and a sticky panel would slide over it. */
#visu-tools.vt-bingo-cards .vt-out { position: static; }
#visu-tools.vt-bingo-cards .vt-bg-call-proof .vt-kv { grid-template-columns: 140px minmax(0, 1fr); }
