
    .ctl{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--ash); border:1px solid var(--line-soft); border-radius:10px; padding:10px 14px; margin-bottom:14px; }
    .ctlpick{ font-weight:700; font-size:.95rem; } .ctlpick select{ font-size:1rem; padding:4px 8px; border-radius:6px; border:1.5px solid var(--line); margin-left:4px; }
    .ctlhint{ font-size:.8rem; color:var(--muted); }
    @media print { .ctl{ display:none !important; } }
    .paper.hidden{ display:none; }
    .hd{ display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:2px solid var(--ink); padding-bottom:4px; margin-bottom:2px; }
    .hd h1{ font-size:1.12em; margin:0; font-weight:800; } .hd .who{ font-size:.9em; color:var(--muted); display:flex; align-items:center; gap:8px; white-space:nowrap; }
    .hd .who b{ color:var(--red); font-size:1.05em; }
    .subhd{ font-size:.82em; color:var(--muted); margin:0 0 6px; display:flex; justify-content:space-between; gap:14px; }
    .subhd .nd{ white-space:nowrap; }
    .markbar{ display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:7px; padding:5px 9px; margin-bottom:8px; background:var(--ash); }
    .mblab{ font-size:.72em; color:var(--muted); font-weight:600; } .mbtot{ font-size:.78em; color:var(--muted); font-weight:700; margin-left:auto; }
    .mbrow{ display:flex; gap:3px; } .mbcell{ width:20px; height:20px; border:1px solid var(--ink); border-radius:3px; display:flex; align-items:center; justify-content:center; }
    .mbn{ font-size:9px; color:var(--muted); }
    /* boxed grid like the fluency sheet: cells in a row stretch to a consistent height, options pinned
       to the bottom of each cell so they line up across the row. */
    .qgrid{ display:grid; gap:9px 14px; align-items:stretch; }
    .mq{ break-inside:avoid; border:1.2px solid var(--line); border-radius:7px; padding:7px 10px 8px; display:flex; flex-direction:column; }
    .mqh{ display:flex; gap:6px; align-items:baseline; } .mqn{ font-weight:800; color:var(--red); } .mqt{ flex:1; }
    .mqfig{ text-align:center; margin:4px 0; flex:0 0 auto; } .mqfig svg{ max-height:82px; max-width:168px; width:auto; height:auto; }
    /* FIGURE QUESTION: full-width row, text left, diagram right and much larger (owner 2026-08-11).
       The .mq is a flex column by default; a figure question becomes a grid so the two top cells sit
       side by side and the options still pin to the bottom (1fr text/fig row, auto options row). */
    .mq.figside{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,42%);
                 grid-template-rows:1fr auto; grid-template-areas:"txt fig" "opt opt"; column-gap:14px; }
    .mq.figside .mqh{ grid-area:txt; } .mq.figside .mopts{ grid-area:opt; }
    .mq.figside .mqfig{ grid-area:fig; margin:0; align-self:start; text-align:center; }
    .mq.figside .mqfig svg{ max-height:140px; max-width:100%; width:auto; height:auto; }
    /* HEAVY OPTIONS: one per row, full cell width, instead of four thin columns (owner 2026-08-11). */
    .mq.optcol .mopts{ grid-template-columns:1fr; gap:2px; }
    .mq.figside.optcol .mopts{ grid-template-columns:repeat(2,1fr); }   /* full width — two fit comfortably */
    /* every option: a tick box, then the letter, then the answer. Single ROW of 4 (owner 2026-07-05:
       "options in a single row to save height") so each question is shorter and the paper fits fewer
       pages; long options wrap within their column and the font fit-gate keeps it on the page. */
    .mopts{ display:grid; grid-template-columns:repeat(4,1fr); gap:3px 12px; margin-top:auto; padding-top:6px; }
    .mopt{ display:flex; align-items:flex-start; gap:5px; } .mopt b{ color:var(--blue); flex:none; } .mopt .otx{ flex:1; min-width:0; }
    .obox{ flex:none; width:13px; height:13px; border:1.3px solid var(--ink); border-radius:3px; margin-top:2px; }
    .ragbox{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; border:1px solid var(--line); border-radius:7px; padding:7px 10px; margin-top:10px; break-inside:avoid; }
    .raglab{ font-size:.82em; font-weight:700; } .ragopt{ font-size:.78em; border:1px solid var(--line); border-radius:20px; padding:3px 11px; }
    .ragR{ background:#fef2f2; border-color:#fecaca; } .ragA{ background:#fffbeb; border-color:#fde68a; } .ragG{ background:#f0fdf4; border-color:#bbf7d0; }