/* Bé Ham Học v3 — Phiếu A4 (xem trước + in). Đơn vị mm để bản in đúng kích thước. */
@font-face{font-family:"BHH Nunito";src:url("fonts/Nunito.woff2") format("woff2");font-weight:200 1000;font-display:swap}

.bhh-sheet{--g:#13a86b;--g2:#078e5b;--ink:#173b32;--muted:#637a72;--line:#dcebe4;--soft:#f3faf6;--red:#e5393f;--sun:#ffc52b;
  font-family:"BHH Nunito",ui-rounded,"Nunito","Segoe UI",system-ui,sans-serif;color:var(--ink);font-size:3.6mm;line-height:1.35}
.bhh-sheet *{box-sizing:border-box}

/* ---------- trang ---------- */
.ws-page{width:210mm;height:297mm;background:#fff;position:relative;overflow:hidden;padding:10mm 11mm 15mm}
.ws-page-inner{height:100%;display:flex;flex-direction:column;gap:3.2mm}
.ws-page-inner.tight{gap:1.2mm}
.ws-foot{position:absolute;left:11mm;right:11mm;bottom:6mm;display:flex;justify-content:space-between;align-items:center;font-size:2.6mm;color:var(--muted);border-top:.25mm solid var(--line);padding-top:1.6mm}
.ws-foot b{color:var(--ink);letter-spacing:.2mm}
.ws-foot .wf-brand{display:flex;align-items:center;gap:1.5mm}
.ws-foot .wf-brand i{width:2.2mm;height:2.2mm;border-radius:50%;background:var(--g);display:inline-block}

/* ---------- đầu phiếu ---------- */
.ws-head{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"logo title" "fields fields";gap:2mm 4mm;align-items:center;padding-bottom:2.6mm;border-bottom:.6mm solid var(--g);position:relative}
.ws-logo{grid-area:logo;height:13mm;width:auto;object-fit:contain}
.ws-title{grid-area:title}
.ws-title small{display:inline-block;font-weight:800;font-size:2.7mm;color:var(--g2);background:var(--soft);border:.25mm solid var(--line);border-radius:5mm;padding:.4mm 2.4mm}
.ws-title h1{margin:1mm 0 0;font-size:6.2mm;line-height:1.1;font-weight:900;letter-spacing:-.1mm}
.ws-fields{grid-area:fields;display:flex;gap:6mm;font-size:3.2mm;color:var(--muted);flex-wrap:wrap}
.ws-fields b{color:var(--ink);font-weight:800}
.ws-line{display:inline-block;width:48mm;border-bottom:.3mm dotted #8aa79c;height:3.5mm;vertical-align:-.6mm}
.ws-line.short{width:24mm}
.ws-stars{margin-left:auto;color:var(--sun);font-weight:900;letter-spacing:.6mm}
.ws-stars{color:#b78a00}
.ws-anskey{display:none;position:absolute;right:0;top:0;background:var(--red);color:#fff;font-weight:900;font-size:3mm;padding:1mm 3mm;border-radius:2mm;letter-spacing:.4mm}

/* ---------- phần ---------- */
.ws-sec{display:flex;flex-direction:column;gap:2mm}
.ws-sec-h{display:flex;gap:2.4mm;align-items:flex-start}
.ws-no{flex:none;width:6.6mm;height:6.6mm;border-radius:50%;background:var(--g);color:#fff;font-weight:900;font-size:3.6mm;display:grid;place-items:center;margin-top:.2mm}
.ws-sec-h b{display:block;font-size:3.8mm;font-weight:800;line-height:1.3}
.ws-sec-h small{display:block;font-size:2.5mm;color:var(--muted);font-weight:700;margin-top:.3mm}
.ws-row{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:2.6mm}
.ws-q{border:.3mm solid var(--line);border-radius:3mm;padding:2.4mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2mm;position:relative;min-height:12mm;break-inside:avoid}
.ws-qtext{margin:0;font-weight:800;font-size:3.3mm;text-align:center;align-self:stretch}

/* ---------- phần tử chung ---------- */
.it{display:block;object-fit:contain;flex:none}
.pile{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:1mm;max-width:100%}
.pile.spread{gap:3.6mm 4.5mm}
.pile.rows5{display:grid;grid-template-columns:repeat(var(--pc),auto);justify-content:center;gap:1.2mm 1.6mm}
.pile.sm{gap:.6mm}
.frame{border:.3mm solid var(--line);background:var(--soft);border-radius:2.5mm;padding:2mm;min-height:22mm;width:100%;display:flex;align-items:center;justify-content:center}
.under{display:flex;align-items:center;gap:2mm;font-weight:800;font-size:3.4mm}
.wbox{display:inline-grid;place-items:center;min-width:11mm;height:9mm;padding:0 1.2mm;border:.4mm solid var(--ink);border-radius:1.8mm;background:#fff;font-weight:900;font-size:4.6mm}
.wbox.round{border-radius:50%;width:11mm;min-width:11mm;height:11mm}
.ans{visibility:hidden;color:var(--red);font-weight:900}
.ans-svg{display:none}
.opts{display:flex;flex-wrap:wrap;justify-content:center;gap:2.2mm;align-items:center}
.opt{display:inline-flex;align-items:center;justify-content:center;border-radius:3mm;padding:1mm;position:relative}
.o-num{display:inline-grid;place-items:center;width:9mm;height:9mm;border:.35mm solid #9fbfb3;border-radius:50%;font-weight:900;font-size:4.2mm;background:#fff}
.o-text{display:inline-block;border:.35mm solid #9fbfb3;border-radius:5mm;padding:.8mm 3.2mm;font-weight:800;font-size:3.7mm;background:#fff}
.o-text.en,.s-word.en{font-family:"BHH Nunito",sans-serif;letter-spacing:.15mm}
.o-tone{display:inline-flex;flex-direction:column;align-items:center;border:.35mm solid #9fbfb3;border-radius:2.4mm;padding:.6mm 2mm;background:#fff;min-width:13mm}
.o-tone b{font-size:5.4mm;line-height:1.05;font-weight:800}
.o-tone small{font-size:2.3mm;color:var(--muted);font-weight:700;white-space:nowrap}
.o-letter{font-size:6mm;font-weight:800;display:inline-block;min-width:8mm;text-align:center}
.stem{display:flex;align-items:center;justify-content:center;gap:3mm;flex-wrap:wrap}
.s-word{font-size:5.4mm;font-weight:900;letter-spacing:.2mm;display:inline-flex;align-items:flex-end}
.s-cap{font-size:3.3mm;font-weight:800;color:var(--muted);background:var(--soft);border-radius:2mm;padding:.3mm 2mm}
.blank{display:inline-block;border-bottom:.45mm solid var(--ink);height:6mm;margin:0 .6mm}
.tone-blank{position:relative}
.tone-slot{display:inline-block;width:5mm;height:5mm;border:.3mm dashed #8aa79c;border-radius:1mm;margin-left:1.2mm;align-self:flex-start}
.sil .silimg{filter:brightness(0);opacity:.82}
.choose.many{gap:1.4mm}
.choose.many .o-tone{min-width:11mm;padding:.5mm 1.2mm}

/* ---------- bố cục ---------- */
.lay-pile_write .ws-q{justify-content:space-between}
.colorn{display:flex;align-items:center;gap:3mm;width:100%}
.big-num{flex:none;width:12mm;height:12mm;border-radius:3mm;background:var(--g);color:#fff;font-weight:900;font-size:7mm;display:grid;place-items:center}
.colorn .pile{justify-content:flex-start}
.cn{display:inline-block;border-radius:2mm}
.pair{display:flex;gap:3mm;width:100%}
.pair .group{flex:1;border:.3mm solid var(--line);background:var(--soft);border-radius:2.5mm;min-height:24mm;padding:2mm}
.match{display:flex;justify-content:space-between;width:100%;gap:10mm}
.mcol{display:flex;flex-direction:column;gap:2.6mm;justify-content:space-around}
.mcell{display:flex;align-items:center;gap:2mm;min-height:13mm;position:relative}
.mcol.right .mcell{flex-direction:row}
.mcell .pile{max-width:34mm;justify-content:flex-start}
.mcell .cap{font-size:2.6mm;font-weight:800;color:var(--muted);max-width:18mm;line-height:1.1}
.dot{width:2.6mm;height:2.6mm;border-radius:50%;background:var(--ink);flex:none}
.mtag{position:absolute;right:-6mm;font-size:3.2mm}
.mletter{font-size:2.8mm;margin-left:1mm}
.bond{display:flex;flex-direction:column;align-items:center;width:34mm}
.bnum{display:grid;place-items:center;width:11mm;height:11mm;border-radius:50%;background:var(--soft);border:.4mm solid var(--g);font-weight:900;font-size:4.8mm}
.b-lines{width:24mm;height:6mm;display:block}
.b-lines line{stroke:var(--ink);stroke-width:1.6}
.b-bot{display:flex;gap:6mm}
.sum{display:flex;align-items:center;gap:2mm;width:100%}
.sum .frame{flex:1;min-height:20mm}
.op{font-weight:900;color:var(--muted)}
.epic{display:flex;align-items:center;gap:2mm;justify-content:center}
.epic b{font-size:5mm}
.epic .gone{position:relative;opacity:.45;display:inline-block}
.epic .gone:after{content:"";position:absolute;left:-.6mm;right:-.6mm;top:50%;height:.6mm;background:var(--red);transform:rotate(-35deg)}
.expr{display:flex;align-items:center;gap:1.6mm;font-size:5.2mm;font-weight:900}
.enum{min-width:5mm;text-align:center;font-weight:900}
.eop{color:var(--muted)}
.train{display:flex;align-items:flex-end;gap:1.4mm;flex-wrap:nowrap;justify-content:center;width:100%}
.loco{transform:scaleX(-1);margin-right:.4mm}
.car{position:relative;width:15mm;height:11mm;border-radius:2mm;background:#e9f6ff;border:.35mm solid #7fb8de;display:grid;place-items:center;font-size:4.8mm;margin-bottom:2.6mm}
.car b{font-weight:900}
.car i{position:absolute;bottom:-2.6mm;width:3.4mm;height:3.4mm;border-radius:50%;background:var(--ink)}
.car i:first-of-type{left:2.2mm}.car i:last-of-type{right:2.2mm}
.car:before{content:"";position:absolute;left:-1.6mm;top:55%;width:1.6mm;height:.5mm;background:#7fb8de}
.wbox.incar{min-width:9mm;height:7.5mm;font-size:4.2mm}
.balloons{display:flex;gap:2.4mm;justify-content:center;width:100%;padding-bottom:5mm}
.bal{position:relative;width:12.5mm;height:15mm;border-radius:50% 50% 48% 48%;background:var(--bc);border:.35mm solid rgba(0,0,0,.25);display:grid;place-items:center;font-weight:900;font-size:4.6mm}
.bal:after{content:"";position:absolute;bottom:-5mm;left:50%;width:.3mm;height:5mm;background:#8aa79c}
.bal .ans{font-size:4.6mm}
.cmpsign{display:flex;align-items:center;gap:2mm;font-size:5mm;font-weight:900}
.circ{display:inline-grid;place-items:center;width:9mm;height:9mm;border:.4mm solid var(--ink);border-radius:50%;font-size:5mm;background:#fff}
.sgrid{display:grid;grid-template-columns:repeat(var(--sc),15mm);gap:1.2mm;justify-content:center}
.scell{width:15mm;height:15mm;display:grid;place-items:center;border-radius:2mm}
.clockdraw{display:flex;flex-direction:column;align-items:center;gap:1mm}
.clockdraw b{font-size:4mm}
.pos.vert{flex-direction:column;gap:1mm}
.pos.horiz{gap:1.6mm}
.lgrid-h{font-weight:800;font-size:3.4mm;display:flex;align-items:center;gap:2mm}
.lg-target{display:inline-grid;place-items:center;width:11mm;height:11mm;border-radius:2.5mm;background:var(--g);color:#fff;font-size:7mm;font-weight:900}
.lgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4mm 2.6mm}
.band-l1 .lgrid{grid-template-columns:repeat(4,1fr)}
.lcell{font-size:6mm;font-weight:700;width:9mm;height:9mm;display:grid;place-items:center;border-radius:50%}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:2mm;width:100%;justify-items:center}
.trace{display:flex;align-items:flex-end;gap:1.2mm;width:100%}
.tr{width:15.6mm;height:18.2mm;flex:none}
.tr .gl{stroke:#cfe0d8;stroke-width:.8;stroke-dasharray:2 2}
.tr .gl.base{stroke:#9fbfb3;stroke-dasharray:none}
.tr text{font-family:"BHH Nunito",sans-serif;font-size:46px;font-weight:600}
.tr.model text{fill:var(--ink)}
.tr.guide text{fill:none;stroke:#9aa9a3;stroke-width:1.3;stroke-dasharray:2.4 2.2}
.tr.empty text{visibility:hidden;fill:var(--red)}
.tr-dots{display:grid;grid-template-columns:repeat(3,3mm);gap:.8mm;margin-right:1.6mm;align-self:center}
.tr-dots i{width:3mm;height:3mm;border-radius:50%;background:var(--sun);border:.25mm solid #c99a00}
.pattern{display:flex;flex-wrap:wrap;gap:1.4mm;justify-content:center;align-items:center}
.pcell{width:13mm;height:13mm;display:grid;place-items:center;border-radius:2mm;background:var(--soft)}
.pcell .it{width:10.5mm!important;height:10.5mm!important}
.pcell .shp{width:10mm!important;height:10mm!important}
.blankcell{background:#fff;border:.35mm dashed #8aa79c}
.pat-opts{margin-top:.6mm}
.pat-opts .it{width:11mm!important;height:11mm!important}
.seq-target{display:flex;align-items:center;gap:2mm;background:var(--soft);border-radius:2.5mm;padding:1.4mm 3mm;border:.35mm solid var(--g)}
.seq-target small{font-weight:800;color:var(--g2)}
.seq{display:inline-flex;gap:1mm}
.seq-opts{display:flex;gap:4mm;flex-wrap:wrap;justify-content:center}
.seq-opts .opt{border:.3mm solid var(--line);padding:1.2mm 2mm;gap:1.6mm}
.seq-opts em{font-style:normal;font-weight:900;color:var(--muted);font-size:3mm}
.sizes{align-items:flex-end;gap:3mm}
.mazebox{position:relative;width:100%;padding:6mm 8mm}
.maze{width:100%;max-width:68mm;height:auto;display:block;margin:0 auto}
.maze .walls{fill:none;stroke:var(--ink);stroke-width:1.15;stroke-linecap:square}
.maze .mpath{fill:none;stroke:var(--red);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.m-from{position:absolute;left:0;top:0}
.m-to{position:absolute;right:0;bottom:0}

/* ---------- ghi chú cho ba mẹ (chỉ trang đáp án) ---------- */
.ws-notes-h,.ws-note{display:none}
.show-ans .ws-notes-h,.show-ans .ws-note{display:block}
.ws-notes-h h2{margin:0;font-size:5mm;font-weight:900;color:var(--g2)}
.ws-notes-h p{margin:1mm 0 0;color:var(--muted);font-size:3.1mm}
.ws-note{border-left:.8mm solid var(--g);padding:1mm 0 1mm 3mm}
.ws-note b{font-weight:900}
.ws-note small{color:var(--muted);font-weight:700}
.ws-note p{margin:.6mm 0 0;font-size:3.1mm}
.ws-note .note-ans{color:var(--red);font-weight:800}
.ws-note .note-ans span{margin-right:3mm;display:inline-block}

/* ---------- đáp án ---------- */
.show-ans .ans{visibility:visible}
.show-ans .ans-svg{display:inline}
.show-ans .tr.empty text{visibility:visible}
.show-ans .opt.ok,.show-ans .lcell.ok,.show-ans .scell.ok,.show-ans .cn.ok{box-shadow:0 0 0 .6mm var(--red);border-radius:3mm}
.show-ans .lcell.ok{border-radius:50%}
.show-ans .cn.ok{background:#ffe1e3}
.show-ans .ws-anskey{display:block}
.show-ans .tone-slot{border-color:var(--red)}

/* ---------- in đen trắng ---------- */
.bw{--g:#222;--g2:#222;--soft:#fff;--line:#bbb}
.bw .ws-no,.bw .big-num,.bw .lg-target{background:#fff;color:#111;border:.4mm solid #111}
.bw .car{background:#fff;border-color:#555}
.bw .tr-dots i{background:#fff;border-color:#333}
.bw .ws-title small{background:#fff}

/* ---------- báo lỗi (chỉ màn hình) ---------- */
.ws-flag{position:absolute;top:.8mm;right:.8mm;border:0;background:#fff;color:#9aa9a3;font-size:3mm;border-radius:1.6mm;padding:.3mm 1.2mm;cursor:pointer;opacity:0;transition:.15s;font-family:inherit}
.ws-q:hover .ws-flag{opacity:1}
.ws-flag:hover{color:var(--red);background:#fff1f1}

@media print{
  @page{size:A4;margin:0}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  .ws-page{box-shadow:none!important;margin:0!important;break-after:page;page-break-after:always;transform:none!important}
  .ws-flag,.no-print{display:none!important}
  .bhh-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- v3.2: dạng bài mới ---------- */
.imgcap{display:inline-flex;flex-direction:column;align-items:center;gap:.4mm}
.imgcap small{font-size:2.8mm;font-weight:800;color:var(--muted)}
.seesaw{position:relative;display:flex;justify-content:space-between;align-items:flex-end;width:100%;max-width:70mm;padding:0 2mm 7mm}
.seesaw .plank{position:absolute;left:0;right:0;bottom:5mm;height:1.6mm;border-radius:1mm;background:#b98a5a}
.seesaw .pivot{position:absolute;left:50%;bottom:0;transform:translateX(-50%);border-left:4mm solid transparent;border-right:4mm solid transparent;border-bottom:5mm solid #7a5634}
.balance{position:relative;width:100%;max-width:78mm;padding-bottom:12mm}
.balance .pans{display:flex;justify-content:space-between;gap:4mm}
.balance .pan{display:inline-flex;align-items:center;gap:1mm;font-size:5mm;font-weight:900;border-bottom:.8mm solid var(--ink);border-radius:0 0 8mm 8mm;padding:1.5mm 3mm 2mm;background:var(--soft)}
.balance .beam{position:absolute;left:8mm;right:8mm;bottom:9mm;height:1mm;background:var(--ink)}
.balance .stand{position:absolute;left:50%;bottom:0;width:1mm;height:9mm;background:var(--ink);transform:translateX(-50%)}
.balance .stand:after{content:"";position:absolute;bottom:0;left:-5mm;width:11mm;height:1mm;background:var(--ink)}
.spotdiff{display:flex;gap:8mm;justify-content:center;width:100%}
.sd-grid{display:grid;grid-template-columns:repeat(var(--sdc),14mm);gap:1mm;border:.4mm solid var(--line);border-radius:2.5mm;padding:2mm;background:var(--soft)}
.sd-cell{width:14mm;height:14mm;display:grid;place-items:center;border-radius:2mm;background:#fff}
.show-ans .sd-cell.ok{box-shadow:0 0 0 .6mm var(--red)}
.cg-legend{display:flex;flex-wrap:wrap;gap:2mm 5mm;justify-content:center;font-weight:800;font-size:3.3mm}
.cg-legend span{display:inline-flex;align-items:center;gap:1.2mm}
.cg-legend b{display:inline-grid;place-items:center;width:6mm;height:6mm;border:.35mm solid var(--ink);border-radius:50%;font-size:3.2mm}
.cg-legend i{display:inline-block;width:5mm;height:5mm;border-radius:1mm;border:.25mm solid rgba(0,0,0,.25)}
.cg-grid{display:grid;grid-template-columns:repeat(var(--cgn,5),var(--cgs,24mm));grid-auto-rows:var(--cgs,24mm);border:.5mm solid var(--ink);margin-top:3mm}
.cg-cell{border:.2mm solid #9aa9a3;display:grid;place-items:center;background:#fff}
.cg-cell em{font-style:normal;font-weight:800;font-size:4.6mm;color:#8a9a94}
.show-ans .cg-cell{background:var(--cf)}
.show-ans .cg-cell em{color:rgba(0,0,0,.45)}
/* Dấu Bé Ham Học trên phiếu miễn phí: nhạt, chéo giữa trang, nằm trên nội dung nhưng không cản thao tác. */
.ws-wm{position:absolute;left:50%;top:50%;width:150mm;transform:translate(-50%,-50%) rotate(-28deg);display:flex;flex-direction:column;align-items:center;gap:3mm;opacity:.13;pointer-events:none;z-index:3;mix-blend-mode:multiply}
.ws-wm img{width:100%;height:auto;display:block}
.ws-wm span{font-size:9mm;font-weight:900;color:#000;letter-spacing:.6mm;white-space:nowrap}
.bhh-sheet.wm .ws-foot .wf-brand{color:var(--ink);font-weight:800}
@media print{.ws-wm{opacity:.13;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ---------- v4.1: hình khối, hình thay số, đặt tính, ba số, bảng chữ cái, chép hình ---------- */
.cubes{display:block;overflow:visible}
.cubes-frame{position:relative;min-height:30mm;padding:3mm}
.cubes-pair .group{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2mm}
.cubes-pair .cnt-line{display:block;width:16mm;border-bottom:.3mm dashed var(--muted);height:4mm}
.cview{display:flex;flex-direction:column;gap:2.4mm;width:100%}
.cview .cubes-frame{padding-bottom:7mm}
.cv-arrow{position:absolute;bottom:.6mm;left:50%;transform:translateX(-50%);color:var(--red);font-size:3.4mm;line-height:1;display:flex;flex-direction:column;align-items:center}
.cv-arrow small{font-size:2.5mm;font-weight:800;color:var(--muted)}
.fviews .opt{border:.3mm solid var(--line);padding:1.6mm 2.4mm;border-radius:2mm;background:#fff}
.fview{display:block}
.feqs{display:flex;flex-direction:column;align-items:center;gap:2.2mm;width:100%;padding:1mm 0}
.feq{display:inline-flex;align-items:center;gap:1.4mm;font-size:5mm;font-weight:900}
.feq-ask{display:flex;gap:6mm;justify-content:center;padding-top:1.6mm;border-top:.3mm dashed var(--line);width:100%}
.ccalc{display:flex;flex-direction:column;align-items:center;gap:1.4mm}
.cc-h{font-size:4.4mm;font-weight:900}
.cgrid{display:grid;grid-template-columns:repeat(3,8mm);gap:1mm;justify-content:center;position:relative}
.cc{width:8mm;height:8.5mm;display:grid;place-items:center;font-size:5.4mm;font-weight:900}
.cc.cop{font-size:5mm}
.cc.cbox{border:.3mm solid #b9cbc3;border-radius:1mm;background:#fff}
.ccalc .cgrid .cc:not(.cbox){border:.3mm solid transparent}
.cgrid .cline{grid-column:1/-1;height:0;border-top:.5mm solid var(--ink);margin:.4mm 0}
.wbox.round.sm{width:8mm;min-width:8mm;height:8mm;font-size:4.4mm}
.lseq{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.4mm}
.lcellx{display:inline-grid;place-items:center;min-width:10mm;height:10mm;border:.3mm solid var(--line);border-radius:2mm;background:var(--soft);font-size:5.6mm;font-weight:800}
.lcellx.big{min-width:13mm;height:13mm;font-size:7mm;background:#fff}
.wbox.lbox{min-width:10mm;height:10mm;font-size:5.6mm}
.larrow{font-style:normal;color:var(--muted);font-weight:900}
.lafter{display:flex;align-items:center;justify-content:center;gap:2mm;margin-bottom:2mm;font-size:5mm}
.opts.letters .opt{border:.3mm solid var(--line);border-radius:2mm;min-width:11mm}
.dotcopy{display:flex;align-items:center;justify-content:center;gap:6mm;width:100%}
.dotgrid{width:52mm;height:auto;display:block}
.dotmirror .dotgrid{width:58mm}
.dotgrid circle{fill:var(--ink)}
.dotgrid .shape{fill:none;stroke:var(--g2);stroke-width:2.2;stroke-linecap:round}
.bhh-sheet.bw .dotgrid .shape{stroke:#222}
.dotgrid .shape-ans{fill:none;stroke:var(--red);stroke-width:2.2;stroke-linecap:round;opacity:.85}
.dotgrid .axis{stroke:var(--red);stroke-width:1;stroke-dasharray:3 2}
.dc-arrow{font-size:7mm;color:var(--muted);font-weight:900}
.show-ans .ans-svg.shape-ans{display:inline}

.ws-head{position:relative}
.ws-free{position:absolute;top:-1mm;right:0;font-size:2.6mm;font-weight:900;color:#8a6a00;background:#fff4cc;border-radius:99mm;padding:.6mm 2.4mm;letter-spacing:.1mm}
.show-ans .ws-free{display:none}
/* v4.3: tô nét cơ bản */
.lay-strokes .ws-q{align-items:stretch;padding:2mm 3mm}
.strokes{display:flex;flex-direction:column;gap:1mm;width:100%}
.sk-name{font-weight:800;font-size:3.4mm;color:var(--ink)}
.sk{width:100%;height:21mm;display:block;overflow:visible}
.sk .gl{stroke:#cfe0d8;stroke-width:.5;stroke-dasharray:1.6 1.6}
.sk .gl.base{stroke:#9fbfb3;stroke-dasharray:none}
.sk path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.sk path.model{stroke:var(--ink);stroke-width:1.9}
.sk path.guide{stroke:#8fa29b;stroke-width:1.2;stroke-dasharray:.2 2.2}
.sk path.free{stroke:transparent;stroke-width:1.6}
.sk .start{fill:var(--g)}
.show-ans .sk path.free{stroke:var(--red);stroke-dasharray:1.5 1.5;opacity:.6}
.bw .sk .start{fill:#222}
.opts.words .opt{padding:.4mm}

/* ===== v4.4: đầu phiếu, tiêu đề phần kiểu "Phần 1. Phép cộng (0–10)" ===== */
.ws-line.xs{width:18mm}
.ws-head.slim .ws-fields{display:none}
.ws-sec-h .ws-no{display:none}
.ws-sec-t{margin:0;font-size:4.5mm;font-weight:900;color:var(--g2);line-height:1.25}
.ws-sec-i{margin:.6mm 0 0;font-size:3.5mm;font-weight:600;color:var(--ink)}
.ws-row.bare{gap:3.4mm 6mm}
.ws-row.bare .ws-q{border:0;padding:1.2mm 0;align-items:flex-start;justify-content:center;min-height:0}
.ws-row.bare .expr{font-size:6mm}
.wdots{display:inline-block;min-width:16mm;border-bottom:.5mm dotted var(--ink);height:6mm;position:relative;text-align:center}
.wdots .ans{position:absolute;left:0;right:0;bottom:.4mm}
.lay-column_calc.bare .ws-q{align-items:center}
/* tô màu theo kết quả */
.cpick{width:100%;display:flex;flex-direction:column;gap:2mm}
.cp-key{font-weight:800;font-size:3.6mm}.cp-key b{display:inline-grid;place-items:center;min-width:8mm;height:8mm;border-radius:50%;background:var(--g);color:#fff;font-size:4.6mm;margin-left:1mm}
.cp-row{display:grid;grid-template-columns:repeat(6,1fr);gap:2mm}
.cp-bal{position:relative;display:flex;justify-content:center}
.cp-bal svg{width:24mm;height:32mm}
.cp-bal .bal{fill:#fff;stroke:var(--ink);stroke-width:1.6}.cp-bal .knot{fill:var(--ink)}.cp-bal .str{fill:none;stroke:var(--ink);stroke-width:1}
.cp-bal b{position:absolute;top:8mm;left:0;right:0;text-align:center;font-size:4.2mm;font-weight:900}
.show-ans .cp-bal.ok .bal{fill:#ffb3b5}
/* khoanh đồ vật */
.cobj{display:flex;flex-direction:column;align-items:center;gap:2mm;width:100%}
.cobj-row{display:flex;flex-wrap:wrap;gap:1mm;justify-content:center}
.cobj-row span{border-radius:2mm;padding:.4mm}
.show-ans .cobj-row span.in{box-shadow:0 0 0 .5mm var(--red)}
/* nối tiếp */
.chain{display:flex;align-items:center;flex-wrap:wrap;gap:1.4mm;font-size:5mm;font-weight:900}
.ch-n{display:inline-grid;place-items:center;min-width:11mm;height:11mm;border-radius:50%;background:var(--soft);border:.4mm solid var(--g)}
.ch-arrow{display:inline-flex;flex-direction:column;align-items:center;width:15mm}
.ch-arrow small{font-size:3.6mm;color:var(--g2);font-weight:900}
.ch-arrow svg{width:15mm;height:4mm}.ch-arrow path{fill:none;stroke:var(--ink);stroke-width:1.4}
.wbox.chbox{border-radius:50%;width:11mm;min-width:11mm;height:11mm}
.epic .plus{font-size:3.6mm;color:var(--muted)}
/* hình vui */
.tc{position:relative;width:100%;max-width:40mm;margin:0 auto}
.tc svg{width:100%;height:auto;display:block}
.tc .f1{fill:#fff3c4;stroke:var(--ink);stroke-width:1.6}.tc .f2{fill:#d9efff;stroke:var(--ink);stroke-width:1.6}.tc .f3{fill:#ffd9b0;stroke:var(--ink);stroke-width:1.6}
.tc .wh{fill:#555;stroke:var(--ink);stroke-width:1.6}.tc .ln{fill:none;stroke:var(--ink);stroke-width:1.6}.tc .eye{fill:var(--ink)}
.tc-e{position:absolute;left:0;right:0;text-align:center;font-weight:900;font-size:4.6mm;white-space:nowrap}
.tc-a{position:absolute;left:0;right:0;display:flex;justify-content:center}
.tc-a .wbox{min-width:9mm;height:7.5mm;font-size:4.2mm}
.tc-trung .tc-e{top:27%}.tc-trung .tc-a{top:63%}
.tc-o_to{max-width:46mm}.tc-o_to .tc-e{top:51%;font-size:4.2mm}.tc-o_to .tc-a{top:18%;left:28%;right:auto}
.tc-robot .tc-e{top:51%}.tc-robot .tc-a{top:72%}
.tc-bong_bay{max-width:34mm}.tc-bong_bay .tc-e{top:24%}.tc-bong_bay .tc-a{top:86%}
.tc-ca{max-width:46mm}.tc-ca .tc-e{top:38%;left:14%;right:auto;width:58%}.tc-ca .tc-a{top:38%;left:auto;right:3%;width:auto}
.tc-tau{max-width:46mm}.tc-tau .tc-e{top:30%;left:4%;right:auto;width:62%}.tc-tau .tc-a{top:22%;left:auto;right:7%;width:auto}
.tc-kem{max-width:32mm}.tc-k1,.tc-k2{position:absolute;left:0;right:0;text-align:center;font-weight:900;font-size:4.6mm}.tc-k1{top:13%}.tc-k2{top:39%}.tc-kem .tc-a{top:56%}
.bw .tc .f1,.bw .tc .f2,.bw .tc .f3{fill:#fff}.bw .tc .wh{fill:#fff}
/* con sâu */
.cat{display:flex;align-items:flex-end;gap:0;flex-wrap:nowrap}
.cat-head{position:relative;width:15mm;height:15mm;flex:none}
.cat-head svg{width:100%;height:100%}.cat-seg.first{background:#fff7c2}
.cat .f1{fill:#c8f0a8;stroke:var(--ink);stroke-width:1.6}.cat .eye{fill:var(--ink)}.cat .ln{fill:none;stroke:var(--ink);stroke-width:1.6}
.cat-seg{position:relative;display:inline-grid;place-items:center;width:15mm;height:15mm;margin-left:-1.5mm;border-radius:50%;background:#e4f7d4;border:.4mm solid var(--ink);font-size:4.6mm;font-weight:900}
.cat-seg small{position:absolute;top:-4.4mm;font-size:3mm;color:var(--g2)}
.wbox.catbox{min-width:10mm;height:8mm;font-size:4.2mm;border-radius:2mm}
.bw .cat .f1,.bw .cat-seg{background:#fff;fill:#fff}
/* ô tô ×2 */
.cbond{position:relative;width:100%;max-width:46mm;margin:0 auto}
.cbond svg{width:100%;display:block}.cbond .f1{fill:#d9efff;stroke:var(--ink);stroke-width:1.6}.cbond .wh{fill:#fff;stroke:var(--ink);stroke-width:2}
.cbond span{position:absolute;display:flex;justify-content:center;font-size:4.6mm;font-weight:900}
.cb-top{left:30%;right:22%;top:24%}.cb-w1{left:12%;width:22%;top:66%}.cb-w2{left:66%;width:22%;top:66%}
.cbond{padding-bottom:1mm}
.wbox.cbx{min-width:9mm;height:7.5mm;font-size:4.2mm}
.bw .cbond .f1{fill:#fff}
/* ngôi nhà */
.house{width:100%;max-width:40mm;margin:0 auto}
.h-roof{position:relative;height:14mm}.h-roof svg{width:100%;height:100%;display:block}
.h-roof .f1{fill:#ffd2c2;stroke:var(--ink);stroke-width:1.4}.h-roof b{position:absolute;left:0;right:0;top:5mm;text-align:center;font-size:5mm}
.h-body{border:.4mm solid var(--ink);border-top:0;margin:0 3mm}
.h-floor{display:flex;align-items:center;justify-content:space-around;height:10mm;border-top:.4mm solid var(--ink);font-size:4.6mm}
.h-floor i{width:.4mm;height:100%;background:var(--ink)}
.h-floor b{min-width:9mm;text-align:center}.wbox.hbx{min-width:9mm;height:7.5mm;font-size:4.2mm}
.bw .h-roof .f1{fill:#fff}
/* tháp số */
.pyr{display:flex;flex-direction:column;align-items:center;gap:0}
.pz-r{display:flex}
.pz-c{display:grid;place-items:center;width:13mm;height:10mm;border:.4mm solid var(--ink);margin:-.2mm;background:#fff7e0;font-size:4.6mm}
.pz-c b{font-weight:900}.wbox.pzbox{min-width:9mm;height:7mm;border:0;background:transparent;font-size:4.4mm}
.bw .pz-c{background:#fff}
/* tia số */
.nl{width:100%;display:flex;flex-direction:column;align-items:center;gap:1mm}
.nl svg{width:100%;height:auto}.nl .ax,.nl .tk{stroke:var(--ink);stroke-width:.8;fill:none}.nl text{font-size:5px;font-weight:800;fill:var(--ink)}
.nl .jmp{fill:none;stroke:var(--g);stroke-width:1.1}.nl .st{fill:var(--red)}
/* khung 10 ô */
.tfw{display:flex;flex-direction:column;gap:1.4mm;align-items:center}
.tf{display:grid;grid-template-columns:repeat(5,6.4mm);grid-template-rows:repeat(2,6.4mm);border:.4mm solid var(--ink)}
.tf i{border:.25mm solid var(--ink);position:relative}
.tf i.f:after,.tf i.s:after{content:"";position:absolute;inset:1.1mm;border-radius:50%;background:#3b9cf2}
.tf i.s:after{background:#ff8a3d}
.tf i.x:before{content:"";position:absolute;left:.4mm;right:.4mm;top:50%;height:.5mm;background:var(--red);transform:rotate(-40deg);z-index:1}
.bw .tf i.f:after{background:#333}.bw .tf i.s:after{background:#fff;border:.4mm solid #333}
/* xúc xắc, domino */
.dice{display:flex;align-items:center;gap:2mm;font-size:5mm;font-weight:900}
.die{width:13mm;height:13mm}.die.big{width:18mm;height:18mm}.die .dbg,.domi .dbg{fill:#fff;stroke:var(--ink);stroke-width:4}.die .pip,.domi .pip{fill:var(--ink)}
.domi{display:flex;align-items:center;gap:3mm}.domi svg{width:11mm;height:22mm}.domi .ln{stroke:var(--ink);stroke-width:3}
/* bông hoa */
.flw{position:relative;width:60mm;height:60mm;margin:0 auto}
.flw-c,.flw-p,.flw-b{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;font-weight:900}
.flw-c{left:50%;top:50%;width:13mm;height:13mm;border-radius:50%;background:#ffd43b;border:.4mm solid var(--ink);font-size:4.6mm}
.flw-p{width:11mm;height:11mm;border-radius:50%;background:#ffd6e8;border:.4mm solid var(--ink);font-size:4.4mm}
.wbox.fbx{min-width:9mm;height:7mm;font-size:4.2mm}
.bw .flw-c,.bw .flw-p{background:#fff}
/* đúng sai */
.tf2{display:flex;align-items:center;gap:3mm}
.tfo{display:inline-grid;place-items:center;width:8mm;height:8mm;border-radius:50%;border:.35mm solid #9fbfb3;font-weight:900;font-size:4mm}
.show-ans .tfo.ok{box-shadow:0 0 0 .6mm var(--red)}
/* bảng tính */
.optb{border-collapse:collapse;font-size:4.6mm;font-weight:900;margin:0 auto}
.optb th,.optb td{width:11mm;height:9.5mm;border:.4mm solid var(--ink);text-align:center}
.optb th{background:var(--soft)}.optb th.op{background:var(--g);color:#fff}
.bw .optb th.op{background:#fff;color:#111}
/* que tính */
.stks{display:flex;align-items:center;gap:2.4mm;justify-content:center;flex-wrap:wrap}
.stk{display:inline-flex;gap:1.2mm;align-items:center}
.bun svg{width:6.6mm;height:12mm}.ones{height:12mm}
.stk .s{stroke:#c47f2c;stroke-width:1.4;stroke-linecap:round}.stk .tie{stroke:var(--red);stroke-width:2.4}
.bw .stk .s{stroke:#333}
/* đếm & tô số */
.lay-count_trace .ws-q{padding:0;overflow:hidden}
.ctr{display:grid;grid-template-columns:1.6fr repeat(5,1fr);width:100%;align-items:stretch}
.ctr>*{border-left:.3mm solid #cfe3f7;display:flex;align-items:center;justify-content:center;min-height:21mm}
.ctr-pic{border-left:0!important;padding:1.4mm}
.ctr-big{background:#eef6ff}
.ct-n{width:14mm;height:17mm}.ct-n text{font:600 52px "BHH Nunito",sans-serif}
.ct-n.solid text{fill:#9aa9a3}.ct-n.guide text{fill:none;stroke:#9aa9a3;stroke-width:1.3;stroke-dasharray:2.4 2.2}
.bw .ctr-big{background:#fff}
/* đếm từng loại */
.ctyp{display:flex;gap:2.4mm;align-items:center;width:100%}
.ctyp-area{flex:1;display:flex;flex-wrap:wrap;gap:1mm;justify-content:center;background:var(--soft);border-radius:2mm;padding:1.4mm}
.ctyp-key{display:flex;flex-direction:column;gap:1.2mm}.ctyp-key span{display:flex;align-items:center;gap:1mm}
.wbox.sm{min-width:9mm;height:7.5mm;font-size:4.2mm}
/* dãy số */
.sqb{display:flex;gap:1.6mm}
.sqb-c{display:grid;place-items:center;width:11mm;height:10mm;border:.4mm solid var(--ink);border-radius:1.6mm;font-size:4.6mm;font-weight:900}
.wbox.sqbox{border:0;min-width:9mm;height:8mm;background:transparent}
.stairs{display:flex;align-items:flex-end;gap:0}
.st-step{display:flex;align-items:flex-start;justify-content:center;width:12mm;border:.4mm solid var(--ink);margin-left:-.4mm;background:#fff7e0;padding-top:1.2mm;font-size:4.4mm}
.wbox.stbox{min-width:9mm;height:7mm;font-size:4.2mm}
.sql{width:100%}.sql svg{width:100%;height:5mm;display:block}.sql .ax,.sql .tk{stroke:var(--ink);stroke-width:.9;fill:none}
.sql-n{display:flex;justify-content:space-between;padding:0 1.5% 0 2%;font-size:4.4mm}
.sql-n span{width:11mm;display:flex;justify-content:center}.wbox.sqlbox{min-width:9mm;height:7mm;font-size:4.2mm}
.bw .st-step{background:#fff}
/* ô số chữ thập, ô vuông tổng */
.xgrid{display:grid;grid-template-columns:repeat(5,9mm);grid-template-rows:repeat(5,9mm)}
.xc{display:grid;place-items:center;font-size:4.6mm;font-weight:900;border:.35mm solid var(--ink);margin:-.17mm}
.xc.o{border:0;color:var(--muted)}.xc.e{border:0}.xc.m{background:#fff7e0}
.wbox.xbx{min-width:7mm;height:7mm;border:0;background:transparent}
.ssq{display:grid;grid-template-columns:repeat(3,11mm);grid-template-rows:repeat(3,10mm);gap:0}
.ss-c,.ss-s{display:grid;place-items:center;border:.35mm solid var(--ink);margin:-.17mm;font-size:4.6mm;font-weight:900}
.ss-s{background:var(--soft);color:var(--g2)}.ss-s.e{background:transparent;border:0}
.wbox.ssbx{min-width:8mm;height:7mm;border:0;background:transparent}

/* v4.5 — Cân nặng bắc cầu / chuỗi cân */
.scl{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:16mm;width:100%;max-width:84mm;margin:0 auto;padding-bottom:13mm}
.scl-pan{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:16mm}
.scl-items{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.6mm;max-width:30mm;min-height:9mm}
.scl-items.many{max-width:27mm}
.scl-q{font-size:8mm;font-weight:900;line-height:1;margin-right:.5mm;color:var(--ink)}
.scl-dish{display:block;width:26mm;height:4mm;margin-top:.6mm;background:#f6c945;border:.35mm solid #c9971a;border-top-width:.5mm;border-radius:0 0 13mm 13mm/0 0 4mm 4mm}
.scl-stand{position:absolute;left:0;right:0;bottom:0;width:100%;height:14mm;fill:#2d4a5a}
.bw .scl-dish{background:#fff;border-color:#222}
.bw .scl-stand{fill:none;stroke:#222;stroke-width:.6}
.lay-scale_pick .ws-q,.lay-scale_chain .ws-q{border-radius:4mm}
.sclp{display:grid;grid-template-columns:1fr 1fr;gap:3mm 6mm;width:100%;align-items:end}
.sclp-ask{align-self:stretch;border:.35mm solid var(--line,#d9e2dc);border-radius:3mm;padding:2mm 3mm;display:flex;flex-direction:column;gap:1.4mm;justify-content:center}
.sclp-ask p{margin:0 0 .6mm;font-weight:800;font-size:3.6mm}
.sclp-opt{display:flex;align-items:center;gap:2.5mm;min-height:7.5mm}
.sclp-imgs{display:flex;flex-wrap:wrap;gap:.8mm}
.ckb{display:inline-grid;place-items:center;flex:none;width:6mm;height:6mm;border:.4mm solid var(--ink);border-radius:1.2mm;font-size:4.4mm;color:var(--red)}
.sclc{display:grid;grid-template-columns:86mm 1fr;gap:4mm;width:100%;align-items:center}
.sclc-l{display:flex;flex-direction:column;gap:2.5mm}
.sclc-r{display:flex;flex-direction:column;gap:4.2mm}
.sclc-line{display:flex;align-items:center;gap:2mm;font-weight:800;font-size:3.8mm}
.sclc-line span{white-space:nowrap}
/* v4.7: thước đo, băng giấy, đoạn văn đọc hiểu */
.s-ruler{display:block;margin:0 auto;max-width:100%}
.o-bar{display:block;max-width:100%}
.opts.choose .opt:has(.o-bar){padding:1.5mm 2mm}
.s-para{font-size:4.2mm;line-height:1.55;font-weight:700;text-align:left;margin:0 0 1mm;padding:2mm 3mm;border-radius:2mm;background:var(--soft);max-width:170mm}
.stem:has(.s-para){display:block}
.s-para-t{display:block;text-align:center;font-size:4.6mm;margin-bottom:1mm}

/* v4.13 — Đếm hình trong tranh (TD.DEMHINH) */
.dscene{display:flex;justify-content:center;margin:1mm 0}
.dsc{height:50mm;width:auto;max-width:100%;display:block}
.dsc.sm{width:auto;height:34mm;max-width:100%}
.dsc.fig{height:50mm;width:auto}
.dtab{border-collapse:collapse;margin:1.5mm auto 0}
.dtab td{border:.4mm solid var(--ink);padding:1mm 3mm;text-align:center;min-width:19mm;background:#fff}
.dtab tr:first-child td{height:13mm}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:2mm 4mm;margin-top:1mm}
.dobj{display:flex;flex-direction:column;align-items:center;position:relative;border:.3mm dashed #cfd8d4;border-radius:2mm;padding:1mm 1mm 1.5mm}
.dobj>b{position:absolute;left:2mm;top:1mm;font-size:4.2mm}
.dask{text-align:center;font-weight:800;font-size:3.6mm;margin-top:1mm}
.dfig-ask{display:flex;flex-direction:column;gap:1.5mm;align-items:center;margin-top:1mm;font-weight:800;font-size:4.2mm}
.dfig-ask>div{display:flex;align-items:center;gap:2mm}

/* ===== v5.0 — EagerKiddo (bản tiếng Anh). Chỉ áp dụng khi phiếu có lớp lang-en / paper-letter; behamhoc.vn không đổi. ===== */
@font-face{font-family:"EK Andika";src:url("fonts/andika-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"EK Andika";src:url("fonts/andika-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
.bhh-sheet.lang-en{--g:#0B7CFF;--g2:#0a63cc;--ink:#0B2E6B;--muted:#4f6a8f;--line:#dbe6f5;--soft:#f2f7ff}
.paper-letter .ws-page{width:215.9mm;height:279.4mm}
/* Giấy tập viết 4 dòng kẻ */
.hwrow{display:flex;align-items:flex-end;gap:1.2mm;width:100%;overflow:hidden}
.hw{height:20mm;flex:none}
.hw .hl{stroke:#9db7d9;stroke-width:.7}
.hw .hl.mid{stroke:#b9cbe4;stroke-dasharray:2.2 2}
.hw .hl.desc{stroke:#d5e1f0;stroke-dasharray:1 2}
.hw .hl.base{stroke:#5f86bd}
.hw text{font-family:"EK Andika","Andika",sans-serif;font-size:60px;font-weight:400}
.hw.model text{fill:var(--ink)}
.hw.guide text{fill:none;stroke:#8aa0b8;stroke-width:1.4;stroke-dasharray:2.6 2.4}
.hw.empty text{visibility:hidden;fill:var(--red)}
.show-ans .hw.empty text{visibility:visible}
.hwrow.word .hw{height:20mm}
/* Từ trong lưới (sight words) */
.lgrid.words{grid-template-columns:repeat(4,1fr)}
.lgrid.words .lcell{width:auto;min-width:14mm;padding:0 2mm;border-radius:4mm;font-size:5mm;font-family:"EK Andika","Andika",sans-serif}
.show-ans .lgrid.words .lcell.ok{border-radius:4mm}
.lang-en .s-word,.lang-en .o-text.en,.lang-en .s-para{font-family:"EK Andika","Andika","BHH Nunito",sans-serif}
.lang-en .s-para{font-size:4.4mm;line-height:1.55}
.bw .hw .hl{stroke:#888}.bw .hw .hl.mid,.bw .hw .hl.desc{stroke:#aaa}
