.wm-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:2px solid #18745b; margin-bottom:24px; }
.wm-heading h1 { font-size:30px; margin:8px 0; }
.wm-heading img { object-fit:contain; flex:none; }
.wm-workspace { display:grid; grid-template-columns:290px minmax(0,1fr); gap:28px; align-items:start; }
.wm-controls label { display:flex; flex-direction:column; gap:6px; font-weight:650; margin-bottom:14px; }
.wm-controls input,.wm-controls select,.wm-controls textarea { width:100%; min-width:0; padding:10px; border:1px solid #717c86; border-radius:4px; color:#172b34; background:#fff; font:inherit; }
.wm-controls textarea { resize:vertical; font-size:14px; }
.wm-controls fieldset { border:0; border-top:1px solid #9aabb1; margin:20px 0; padding:12px 0 0; min-width:0; }
.wm-controls legend { padding-right:10px; font-weight:700; }
.wm-pair { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.wm-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:16px; }
.wm-actions label { margin:0; }
.wm-actions button { display:inline-flex; align-items:center; gap:7px; min-height:44px; }
.wm-note { font-size:13px; line-height:1.5; color:#3a4d58; }
#wm-load { margin-bottom:16px; }
#wm-next { display:inline-flex; align-items:center; gap:6px; margin-bottom:14px; }
.wm-controls button { padding:10px 14px; min-height:44px; border:1px solid #627680; border-radius:4px; background:#fff; color:#172b34; font:inherit; cursor:pointer; }
.wm-controls button.primary-action { background:#176b56; color:#fff; border-color:#176b56; }
.wm-controls button:disabled { opacity:.55; cursor:default; }
.wm-controls button:focus-visible { outline:3px solid #995900; outline-offset:3px; }
#wm-status { min-height:48px; line-height:1.5; }
.wm-preview { min-width:0; }
.wm-sheet { background:white; color:#111; border:1px solid #acb7bd; padding:26px; margin:0 0 24px; max-width:800px; font-family:Arial,sans-serif; overflow-wrap:anywhere; }
.wm-sheet h2 { font-size:24px; line-height:1.2; margin:6px 0 10px; }
.wm-sheet h3 { font-size:17px; margin:18px 0 8px; }
.wm-brand { font-size:11px; font-weight:bold; letter-spacing:0; margin:0; }
.wm-subtitle,.wm-name { font-size:13px; line-height:1.5; margin:8px 0; }
.wm-name { margin:16px 0 22px; }
.wm-sheet footer { margin-top:20px; padding-top:8px; border-top:1px solid #777; font-size:10px; }
.wm-grid-wrap { max-width:100%; overflow:auto; }
.wm-grid { border-collapse:collapse; table-layout:fixed; max-width:100%; margin:18px auto; }
.wm-grid td { padding:0; border:1px solid #888; text-align:center; color:#111; font-weight:bold; vertical-align:middle; }
.wm-cell { position:relative; aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:14px; line-height:1; }
.wm-crossword .wm-cell { font-size:13px; }
.wm-crossword .wm-cell span { padding-top:7px; }
.wm-cell small { position:absolute; left:1px; top:1px; font-size:8px; line-height:1; font-weight:normal; }
.wm-grid td.wm-block { background:#e9ecee; border-color:transparent; }
.wm-found { background:#d2eadf; box-shadow:inset 0 0 0 1px #111; }
.wm-word-bank { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; padding:0; list-style:none; font-size:14px; font-weight:bold; }
.wm-clues p { font-size:14px; line-height:1.5; margin:0 0 14px; }
.wm-writing-line { height:26px; border-bottom:1px solid #555; }
.wm-prompt { font-size:13px; margin:20px 0 8px; }
.wm-fact { font-size:12px; line-height:1.5; margin:18px 0 0; }
.wm-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; border-block:1px solid #777; padding:8px 0; font-size:15px; }
.wm-choices p { margin:7px 0; }
.wm-matching { padding-left:28px; }
.wm-matching li { padding:16px 0 16px 10px; font-size:15px; line-height:1.6; }
.wm-matching strong { margin-right:16px; }
.wm-copy-row { margin:12px 0; break-inside:avoid; }
.wm-copy-model { font-size:24px; margin:0 0 4px; }
.wm-copy-lines { height:44px; border-block:1px solid #555; position:relative; }
.wm-copy-lines:after { content:''; position:absolute; left:0; right:0; top:50%; border-top:1px dashed #666; }
.wm-math { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:34px; padding-left:28px; }
.wm-math li { padding:16px 0 16px 10px; font-size:18px; }
.wm-example { font-size:14px; line-height:1.6; border-left:3px solid #444; padding-left:12px; }
.wm-explain { min-height:65px; border-bottom:1px solid #777; }
#wm-pages[data-mode="student"] .wm-answers,#wm-pages[data-mode="answers"] .wm-student { display:none; }
[hidden] { display:none!important; }
@media (max-width:1000px) { .wm-workspace { grid-template-columns:240px minmax(0,1fr); gap:16px; } .wm-sheet { padding:16px; } }
@media (max-width:760px) { .wm-workspace { grid-template-columns:minmax(0,1fr); } .wm-heading img { width:100px; height:80px; } .wm-sheet h2 { font-size:22px; } .wm-grid-wrap { overflow:auto; } .wm-grid { min-width:calc(var(--columns) * 23px); } .wm-math { column-gap:22px; } .wm-math li { font-size:15px; padding-left:6px; } }
@page { margin:12mm; }
@media print {
    html,body { background:#fff!important; color:#111!important; margin:0!important; padding:0!important; }
    .app-header,.app-footer,.wm-controls,body>footer { display:none!important; }
    .app-shell { padding:0!important; margin:0!important; max-width:none!important; width:100%!important; }
    .wm-workspace { display:block; }
    .wm-sheet { width:100%; max-width:none; min-height:0; margin:0; border:0; padding:0; break-after:page; box-sizing:border-box; }
    .wm-sheet:last-child { break-after:auto; }
    .wm-sheet h2 { font-size:20pt; }
    .wm-sheet header { break-inside:avoid; }
    .wm-body { break-inside:avoid; }
    .wm-grid-wrap { overflow:visible; }
    .wm-grid { max-width:145mm; min-width:0; margin:6mm auto; }
    .wm-cell { font-size:12pt; }
    .wm-crossword .wm-cell { font-size:10pt; }
    .wm-cell small { font-size:6pt; }
    .wm-grid td { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
    .wm-word-bank { font-size:11pt; gap:2mm 5mm; }
    .wm-subtitle,.wm-name,.wm-clues p { font-size:10pt; }
    .wm-clues p { margin-bottom:4mm; }
    .wm-math li { font-size:14pt; padding:3.5mm 0 3.5mm 3mm; }
    .wm-matching li { padding-block:5mm; font-size:11pt; }
    .wm-copy-row { margin:4mm 0; }
    .wm-copy-lines { height:12mm; }
    .wm-copy-model { font-size:20pt; }
    .wm-sheet footer { margin-top:5mm; }
    .wm-sheet a:after { content:none!important; }
}
