/* ── Spelling ── */
.spelling-table { width:100%; border-collapse:collapse; font-size:.95rem; }
.spelling-table th { text-align:left; font-size:.75rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; padding:.35rem .5rem; border-bottom:2px solid var(--border); }
.spelling-table td { padding:.3rem .5rem; vertical-align:bottom; }
.word-num   { color:var(--muted); font-size:.8rem; width:1.8rem; }
.word-given { font-weight:700; font-size:1rem; width:130px; color:var(--primary); font-family:'Courier New',monospace; }
.word-line  { width:auto; }
.write-line { border-bottom:1.5px solid #94a3b8; height:28px; width:100%; }

/* ── Trace ── */
.trace-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.6rem 2rem; }
.trace-item { display:flex; align-items:center; gap:.5rem; }
.trace-num  { color:var(--muted); font-size:.8rem; min-width:1.4rem; }
.trace-word { font-family:'Courier New',monospace; font-size:1.1rem; color:#c0cde0; min-width:120px; letter-spacing:.05em; }
.trace-own-line { flex:1; border-bottom:1.5px solid #94a3b8; height:1.2em; }

/* ── Scramble ── */
.scramble-list { display:flex; flex-direction:column; gap:.9rem; }
.scramble-item { display:flex; gap:.75rem; align-items:flex-start; }
.scramble-num  { color:var(--muted); font-size:.85rem; min-width:1.4rem; padding-top:.25rem; }
.scramble-body { flex:1; }
.scramble-words { font-family:'Courier New',monospace; font-size:.95rem; color:var(--primary); font-weight:600; margin-bottom:.4rem; }
.scramble-line  { border-bottom:1.5px solid #94a3b8; height:24px; margin-bottom:.3rem; }

/* ── Fill In ── */
.word-bank { background:#f1f5f9; border:1px solid var(--border); border-radius:var(--radius); padding:.5rem .75rem; font-size:.88rem; margin-bottom:1rem; line-height:1.8; }
.fillin-list { display:flex; flex-direction:column; gap:.55rem; }
.fillin-item { display:flex; gap:.5rem; align-items:baseline; font-size:.95rem; }
.fillin-num  { color:var(--muted); font-size:.8rem; min-width:1.6rem; }
.fillin-sentence { line-height:1.7; }
.fillin-blank { display:inline-block; border-bottom:1.5px solid var(--text); min-width:100px; color:transparent; }

/* ── Story Starter ── */
.story-starter-box { background:#eff6ff; border-left:4px solid var(--primary); padding:.65rem 1rem; font-size:1rem; font-style:italic; color:var(--text); border-radius:0 var(--radius) var(--radius) 0; margin-bottom:1rem; line-height:1.6; }
.story-lines { display:flex; flex-direction:column; gap:.15rem; }
.story-line  { border-bottom:1.5px solid #94a3b8; height:36px; }

/* ── Vocab Match ── */
.vocab-instruction { font-size:.85rem; color:var(--muted); margin-bottom:.75rem; }
.vocab-table  { width:100%; border-collapse:collapse; }
.vocab-table tr { border-bottom:1px solid #f1f5f9; }
.vocab-left   { font-weight:700; font-family:'Courier New',monospace; color:var(--primary); padding:.45rem .5rem; width:35%; }
.vocab-mid    { width:30%; border-bottom:1px dashed #cbd5e1; vertical-align:bottom; }
.vocab-right  { padding:.45rem .5rem; font-size:.9rem; color:var(--text); width:35%; }

/* ── Print overrides ── */
@media print {
  .spelling-table th { font-size:.7rem; padding:.2rem .4rem; }
  .spelling-table td { padding:.15rem .4rem; }
  .word-given { font-size:.9rem; }
  .write-line { height:22px; }

  .trace-word { font-size:1rem; }
  .trace-own-line { height:1em; }

  .scramble-line { height:20px; margin-bottom:.2rem; }
  .scramble-words { font-size:.88rem; }

  .story-line  { height:30px; }

  .fillin-item { font-size:.9rem; }
  .word-bank   { font-size:.82rem; padding:.4rem .6rem; }
}
