.tc-rehearsal { margin: .8rem 0; font-size: .85rem; overflow-wrap: anywhere; }
.tc-rehearsal button { min-height: 44px; min-width: 44px; border: 2px solid #cbd5e1; border-radius: 8px; padding: .5rem .7rem; background: #fff; color: #0f172a; font: inherit; font-weight: 700; cursor: pointer; }
.tc-rehearsal button:focus-visible { outline: 3px solid #0f172a; outline-offset: 3px; }
.tc-rehearsal button:disabled { opacity: .5; cursor: default; }
.tc-rehearsal [data-rehearsal-open] { width: 100%; }
.tc-rehearsal [data-rehearsal-panel] { margin-top: .5rem; padding: .75rem; border: 2px solid #cbd5e1; border-radius: 12px; background: #fff; }
.tc-rehearsal [hidden] { display: none; }
.tc-rehearsal h2 { font-size: 1rem; }
.tc-rehearsal p { margin: .5rem 0; }
.tc-rehearsal [data-rehearsal-rule] { font-weight: 800; color: #0f172a; }
.tc-rehearsal [data-rehearsal-word] { text-align: center; font-size: 2.6rem; font-weight: 800; line-height: 1.2; }
.tc-rehearsal-swatches { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.tc-rehearsal-swatches button { position: relative; padding-top: 1.1rem; }
.tc-rehearsal-swatches button::before { content: ""; position: absolute; inset: 3px 3px auto; height: 10px; border-radius: 3px; background: var(--rehearsal-color); }
.tc-rehearsal [data-rehearsal-feedback] { min-height: 4.5em; }
.tc-rehearsal-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
@media (prefers-reduced-motion: reduce) { .tc-rehearsal *, .tc-rehearsal *::before { animation: none; transition: none; } }
