.catalog-bar { display:grid; grid-template-columns:1fr 1fr 1.15fr 1.65fr auto; gap:15px; align-items:end; padding:18px 20px; margin:22px 0 24px; border:1px solid var(--line); border-radius:9px; background:#fffdf8; }
.catalog-field { min-width:0; display:flex; flex-direction:column; gap:8px; font-size:12px; color:var(--muted); }
.catalog-field select { width:100%; min-width:0; min-height:44px; border:0; border-bottom:1px solid #bccdce; border-radius:0; background:transparent; font-size:14px; padding:8px 20px 8px 0; color:var(--ink); }
.catalog-edit { color:var(--teal); font-size:12px; min-height:44px; white-space:nowrap; }
.unit-empty { border:1px dashed var(--line); border-radius:10px; padding:55px 24px; }
.unit-empty p { max-width:560px; margin:18px auto; }
.unit-empty .action-row { justify-content:center; }
.study-hero { width:100%; min-height:290px; aspect-ratio:3.9/1; }
.study-hero .hero-content { max-width:60%; }
.hero-resume { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 0 0; color:#f1ddbb; font-size:13px; }
.hero-resume:hover { color:white!important; }
.study-bottom { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr); gap:35px; margin:34px 0 10px; }
.practice-setup { padding-right:32px; border-right:1px solid var(--line); min-width:0; }
.setup-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:8px; }
.setup-heading h2 { font-size:25px; }
.setup-heading .text-button { font-size:12px; flex-shrink:0; }
.practice-fields { display:grid; grid-template-columns:1.65fr 1.1fr .65fr 1.1fr; gap:12px; align-items:end; margin:24px 0 18px; }
.range-fields { border:0; padding:0; margin:0; display:flex; gap:7px; align-items:end; min-width:0; }
.range-fields legend { font-size:12px; color:var(--muted); margin-bottom:9px; }
.range-fields label { font-size:10px; color:var(--muted); flex:1; min-width:0; }
.range-fields>span { padding-bottom:12px; color:var(--muted); }
.range-fields input,.setup-field input,.setup-field select { width:100%; min-height:45px; padding:9px; border:1px solid #b8cdce; border-radius:5px; background:var(--white); font-size:14px; margin-top:5px; }
.setup-field { display:flex; flex-direction:column; min-width:0; font-size:12px; color:var(--muted); gap:4px; }
.setup-field input:disabled { background:#edf0e9; color:#839294; }
.selection-summary { font-size:12px; color:var(--teal-dark); background:#e9efea; padding:11px 14px; border-radius:6px; min-height:44px; }
.weekly-invitation { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.weekly-invitation h2 { font-size:24px; margin:11px 0; }
.weekly-invitation p { font-size:13px; color:var(--muted); margin-bottom:18px; }
.weekly-invitation .eyebrow { font-size:9px; letter-spacing:2px; }
.mini-crossword { display:grid; grid-template-columns:repeat(4,25px); gap:2px; margin:3px 0 15px; }
.mini-crossword span { width:25px; height:25px; background:var(--teal-light); border:1px solid #becfcc; text-align:center; font:18px/25px var(--serif); }
.mini-crossword span:empty { background:var(--navy); border-color:var(--navy); }
.source-number { display:inline-block; font-size:11px; color:var(--muted); margin-left:10px; }
.lesson-banner .action-row { margin:0; justify-content:flex-end; flex-shrink:0; }
.puzzle-page .utility { margin-bottom:12px; }
.puzzle-page .page-header { margin-bottom:16px; }
.puzzle-page h1 { font-size:34px; }
.puzzle-page .subtitle { font-size:14px; margin-top:8px; }
.puzzle-page .catalog-bar { margin:16px 0 10px; padding:10px 16px; }
.puzzle-page .catalog-field { gap:3px; }
.puzzle-page .tabs { margin:14px 0; }
.word-row .word { overflow-wrap:anywhere; }
.weekly-masthead { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:2px solid var(--ink); padding:16px 0; }
.weekly-masthead h2 { font-size:24px; margin:0 0 5px; }
.weekly-masthead p { font-size:13px; color:var(--muted); }
.weekly-masthead p span { margin-left:20px; }
.weekly-edition { display:flex; flex-direction:column; gap:8px; font-size:12px; color:var(--muted); }
.weekly-edition select { background:var(--paper); }
.weekly-meta { display:flex; gap:20px; justify-content:space-between; padding:13px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:16px; font-size:12px; }
.weekly-meta strong { color:var(--teal-dark); font-size:15px; }
.weekly-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(270px,1fr); gap:28px; align-items:start; }
.weekly-board-section { min-width:0; }
.current-clue { min-height:95px; display:flex; align-items:center; gap:18px; padding:16px 18px; background:var(--teal-light); margin-bottom:14px; border-radius:7px; }
.weekly-clue-number { font:32px var(--serif); color:var(--teal-dark); min-width:37px; text-align:center; }
.weekly-clue-number small { display:block; font:10px var(--sans); letter-spacing:1px; margin-top:4px; }
.current-clue p { font:19px/1.5 var(--serif); }
.current-clue div>small { color:var(--muted); font-size:10px; margin-top:5px; display:block; }
.board-scroll { overflow:auto; max-height:710px; max-width:100%; overscroll-behavior:contain; border:2px solid var(--navy); border-radius:2px; background:var(--navy); }
.weekly-grid { display:grid; grid-template-columns:repeat(var(--columns),minmax(24px,1fr)); gap:1px; background:var(--navy); width:100%; min-width:calc(var(--columns) * 25px - 1px); }
.board-scroll.zoomed .weekly-grid { grid-template-columns:repeat(var(--columns),44px); width:max-content; }
.weekly-cell { min-width:0; position:relative; background:var(--white); aspect-ratio:1; display:block; }
.weekly-cell.block { background:var(--navy); }
.weekly-cell.selected { background:#dfedeb; }
.weekly-cell.current { background:#f1cf8f; }
.weekly-cell.incorrect { box-shadow:inset 0 -3px 0 #a55e43; }
.weekly-cell input { display:block; width:100%; height:100%; background:none; border:0; padding:6px 0 0; text-transform:uppercase; text-align:center; font:17px var(--sans); line-height:1; border-radius:0; color:var(--ink); }
.weekly-cell input:focus-visible { outline:2px solid var(--teal-dark); outline-offset:-2px; }
.weekly-cell .cell-number { font-size:7px; line-height:1; top:2px; left:2px; }
.board-scroll.zoomed .weekly-cell input { font-size:24px; }
.board-scroll.zoomed .cell-number { font-size:10px; top:3px; left:3px; }
.weekly-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:15px 0 0; }
.weekly-tools .button { min-height:44px; padding:9px 12px; font-size:12px; }
.weekly-tools .text-button { font-size:12px; gap:5px; }
.weekly-tools .icon { width:18px; }
.weekly-clues { display:grid; grid-template-columns:1fr; gap:24px; }
.weekly-clues h3 { font-size:16px; font-family:var(--serif); padding-bottom:11px; border-bottom:1px solid var(--line); }
.clue-list { max-height:345px; overflow:auto; overscroll-behavior:contain; padding:6px 4px 0 0; }
.weekly-clue { display:grid; grid-template-columns:23px 1fr; align-items:start; gap:7px; text-align:left; width:100%; padding:11px 9px; border-radius:4px; min-height:44px; }
.weekly-clue b { font:15px/1.5 var(--sans); }
.weekly-clue span { font:16px/1.5 var(--serif); }
.weekly-clue em { white-space:nowrap; color:var(--muted); font-style:normal; }
.weekly-clue.selected { background:var(--teal-light); color:var(--teal-dark); }
.weekly-clue:hover { background:#edf1e9; }
.weekly-bottom { border-top:1px solid var(--line); margin-top:26px; padding-top:4px; }
.weekly-bottom .text-button { font-size:13px; }
.weekly-bottom .action-row { margin-top:18px; }
.omitted-words { margin-top:20px; border:1px solid var(--line); padding:15px; font-size:13px; }
.omitted-words summary { cursor:pointer; min-height:36px; }
#catalog-form { margin-top:22px; }
#catalog-form select { display:block; width:100%; margin-top:8px; }
.practice-hints { margin-top:24px; padding:18px; border:1px solid var(--line); border-radius:8px; background:#fffdf8; }
.hint-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:5px 12px; margin-bottom:13px; }
.hint-heading h3 { font-size:15px; font-weight:500; }
.hint-heading>span { font-size:12px; color:var(--muted); }
.hint-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.hint-option { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:75px; padding:11px 6px; border:1px solid #b8cdce; border-radius:6px; background:var(--white); }
.hint-option>span { display:flex; align-items:center; justify-content:center; gap:6px; font-size:14px; }
.hint-option .icon { width:17px; height:17px; }
.hint-option small { color:var(--muted); font-size:11px; }
.hint-option:hover,.hint-option.used { background:var(--teal-light); border-color:var(--teal); color:var(--teal-dark); }
.hint-reveal { margin-top:14px; padding:13px 15px; border-radius:5px; background:var(--gold-light); }
.hint-reveal>span,.hint-reveal>small { font-size:11px; color:var(--muted); }
.hint-reveal p { margin-top:4px; font-size:16px; }
.hint-reveal .partial-spelling { display:flex; flex-wrap:wrap; gap:9px 24px; font-family:monospace; font-size:22px; letter-spacing:.2em; line-height:1.7; }
.partial-spelling span { white-space:nowrap; }
.hint-usage,.hint-audio-status { margin-top:12px; font-size:12px; color:var(--muted); }
.hint-audio-status { color:var(--teal-dark); }
.hint-breakdown { display:flex; flex-wrap:wrap; gap:10px 18px; margin:0 0 16px; font-size:13px; color:var(--muted); }
.hint-breakdown strong { color:var(--teal-dark); }
@media(max-width:650px) {
  .practice-hints { padding:13px; }
  .hint-options { gap:6px; }
  .hint-option>span { font-size:12px; gap:4px; }
  .hint-option .icon { width:14px; height:14px; }
  .hint-option small { font-size:10px; }
  .hint-reveal .partial-spelling { font-size:19px; letter-spacing:.14em; }
}
@media(max-width:1200px) {
  .study-bottom { grid-template-columns:1.6fr 1fr; gap:24px; }
  .practice-setup { padding-right:24px; }
  .practice-fields { grid-template-columns:1.4fr 1fr 1fr; }
  .practice-fields>.setup-field:last-child { grid-column:1/4; }
  .practice-fields>.setup-field:last-child select { max-width:240px; }
  .setup-heading { align-items:flex-start; flex-direction:column; gap:2px; }
  .setup-heading h2 { font-size:23px; }
  .catalog-bar { padding:15px; gap:10px; }
  .catalog-field select { font-size:12px; }
  .weekly-layout { grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr); gap:20px; }
  .current-clue { padding:12px; gap:12px; }
  .current-clue p { font-size:17px; }
}
@media(max-width:1050px) {
  .weekly-layout { grid-template-columns:1fr; }
  .weekly-board-section { max-width:720px; width:100%; margin:0 auto; }
  .weekly-clues { grid-template-columns:1fr 1fr; gap:25px; }
  .clue-list { max-height:340px; }
  .weekly-meta { flex-wrap:wrap; gap:8px 20px; }
  .catalog-bar { grid-template-columns:1fr 1fr; }
  .catalog-edit { grid-column:1/3; justify-self:end; min-height:30px; }
  .study-hero { min-height:300px; }
  .study-bottom { grid-template-columns:1fr; }
  .practice-setup { border:0; padding-right:0; }
  .practice-fields { grid-template-columns:1.6fr 1.1fr .7fr 1.1fr; }
  .practice-fields>.setup-field:last-child { grid-column:auto; }
  .practice-fields>.setup-field:last-child select { max-width:none; }
  .setup-heading { flex-direction:row; align-items:center; }
  .weekly-invitation { padding-top:26px; border-top:1px solid var(--line); }
}
@media(max-width:650px) {
  .catalog-bar { padding:13px; gap:10px 15px; margin:20px 0; }
  .catalog-field { font-size:11px; gap:3px; }
  .catalog-field select { font-size:13px; }
  .catalog-edit { min-height:30px; padding:3px; font-size:11px; }
  .study-hero { min-height:380px; aspect-ratio:auto; }
  .study-hero .hero-content { max-width:100%; }
  .study-hero small { max-width:255px; }
  .study-bottom { margin-top:25px; }
  .setup-heading { flex-wrap:wrap; gap:4px; }
  .setup-heading h2 { font-size:23px; }
  .practice-fields { grid-template-columns:1.6fr 1fr; gap:16px; }
  .range-fields { grid-column:1/3; }
  .practice-fields>.setup-field:last-child { grid-column:1/3; }
  .weekly-masthead { align-items:flex-start; flex-direction:column; gap:14px; padding-top:20px; }
  .weekly-masthead h2 { font-size:26px; }
  .weekly-edition { flex-direction:row; align-items:center; }
  .weekly-edition select { font-size:12px; min-height:44px; }
  .weekly-meta { font-size:11px; }
  .weekly-meta>span:last-child { flex-basis:100%; }
  .weekly-grid { grid-template-columns:repeat(var(--columns),32px); width:max-content; }
  .weekly-cell input { font-size:20px; }
  .weekly-cell .cell-number { font-size:8px; }
  .board-scroll { max-height:450px; }
  .current-clue { min-height:95px; }
  .current-clue p { font-size:17px; }
  .weekly-clues { gap:18px; }
  .weekly-clue { grid-template-columns:20px 1fr; padding:10px 4px; gap:4px; }
  .weekly-clue span { font-size:14px; }
  .weekly-clues h3 { font-size:15px; }
  .weekly-tools { gap:8px; }
  .weekly-tools .button { padding:9px; }
  .keyboard-hint { display:none; }
  .lesson-banner .action-row { justify-content:flex-start; flex-wrap:wrap; flex-shrink:1; }
  .source-number { margin-left:0; display:block; }
  .nav-link>span { font-size:9px; }
}
