.gd-rehearsal { margin: .8rem 0; text-align: center; }
.gd-rehearsal button { min-width:44px; min-height:44px; padding:.6rem .7rem; border:1px solid #8b5cf6; border-radius:8px; background:#fff; color:#6d28d9; font:700 .85rem/1.25 'Plus Jakarta Sans',system-ui,sans-serif; cursor:pointer; touch-action:manipulation; }
.gd-rehearsal button:disabled { opacity:.45; cursor:default; }
.gd-rehearsal button:focus-visible { outline:3px solid #eab308; outline-offset:2px; }
.gd-rehearsal-note { font-size:.75rem; line-height:1.5; color:#64748b; margin:.5rem 0; }
.gd-rehearsal dialog { width:min(360px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:1rem; overflow-y:auto; border:2px solid #8b5cf6; border-radius:12px; color:#1e293b; background:#f8fafc; }
.gd-rehearsal dialog::backdrop { background:rgba(15,23,42,.75); }
.gd-rehearsal h2 { font-size:1.2rem; margin-bottom:.5rem; }
.gd-rehearsal-level,.gd-rehearsal-legend,.gd-rehearsal-route { margin:.5rem 0; font-size:.78rem; line-height:1.5; overflow-wrap:anywhere; }
.gd-rehearsal-board { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); aspect-ratio:1; border:1px solid #6d28d9; background:#1e1b4b; border-radius:8px; overflow:hidden; }
.gd-rehearsal-cell { display:flex; align-items:center; justify-content:center; border:1px solid #8b5cf61f; color:#fde68a; font-size:clamp(.65rem,3vw,1rem); line-height:1; }
.gd-rehearsal-cell.wall { background:#6366f1; color:#c7d2fe; }
.gd-rehearsal-cell.orb { color:#fca5a5; }
.gd-rehearsal-cell.trace { box-shadow:inset 0 0 0 2px #22c55e; }
.gd-rehearsal-result { margin:.6rem 0; font-weight:700; font-size:.85rem; line-height:1.5; min-height:2.5em; }
.gd-rehearsal-pad { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.gd-rehearsal-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-top:.6rem; }
.gd-rehearsal-actions button { flex:1 1 110px; }
.gd-tools .gd-tool { min-height:44px; }
