.toh-rehearsal { margin: 0.75rem 0; min-width: 0; }
.toh-rehearsal > button { width: 100%; }
.toh-rehearsal-panel { margin-top: 0.5rem; padding: 12px; border: 2px solid #bae6fd; border-radius: 12px; background: #fff; }
.toh-rehearsal-panel[hidden] { display: none; }
.toh-rehearsal h2 { font-size: 1rem; margin-bottom: 6px; }
.toh-rehearsal p { font-size: 0.8rem; line-height: 1.5; margin: 6px 0; overflow-wrap: anywhere; }
.toh-rehearsal .toh-practice-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 12px 0; }
.toh-rehearsal .toh-practice-peg { position: relative; min-width: 44px; min-height: 190px; display: flex; flex-direction: column-reverse; align-items: center; gap: 2px; padding: 30px 2px 8px; border: 2px solid #cbd5e1; border-radius: 8px; background: #f1f5f9; color: #0f172a; cursor: pointer; touch-action: manipulation; }
.toh-rehearsal .toh-practice-peg[aria-pressed="true"] { border: 3px solid #0369a1; background: #e0f2fe; }
.toh-rehearsal .toh-practice-peg[data-legal="true"] { border-style: dashed; border-color: #0369a1; }
.toh-rehearsal .toh-practice-label { position: absolute; top: 6px; font-size: 0.7rem; font-weight: 700; }
.toh-rehearsal .toh-practice-disc { flex: none; display: block; height: 16px; border-radius: 4px; color: #fff; font: 700 12px/16px system-ui, sans-serif; text-align: center; }
.toh-rehearsal .toh-practice-controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 8px; }
.toh-rehearsal .btn { min-height: 44px; min-width: 44px; white-space: normal; }
.toh-rehearsal button:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.toh-rehearsal #toh-rehearsal-count { font-weight: 700; }
