:root{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#24463e;background:#f0f4ef;--green:#276451;--border:#d9e4da}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);border-radius:9px;background:#fff;min-height:44px;padding:9px 13px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}.primary,.selected{background:var(--green);color:#fff}.link{background:transparent;border:0}.link.danger{color:#b34636}.phone{max-width:580px;margin:auto;background:#fafcf9;min-height:100dvh;padding:0 16px 110px}.haspad{padding-bottom:calc(var(--pad-real) + 32px)}.bar{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.bar b{font-size:20px}.heading{display:flex;justify-content:space-between;align-items:center;margin:12px 0}h1{font-size:22px;line-height:1.4}h2{font-size:18px}.small,.source{font-size:12px;color:#758d7d;line-height:1.8}.stem{font-size:18px;line-height:1.6;margin:12px 0;white-space:pre-wrap}.paper{background:#fff;padding:12px;border:1px solid var(--border);border-radius:12px;margin:10px 0;font-size:18px;line-height:2}.sentence{line-height:2.2}.editor{display:inline-flex;position:relative;align-items:center;justify-content:center;min-width:3.1em;max-width:100%;height:2em;line-height:1.15;padding:0 .22em;border:1px solid #b8cdbb;border-radius:4px;background:#f8fcf6;font-size:inherit;vertical-align:middle;cursor:pointer;white-space:nowrap}.editor:before{position:absolute;content:'';left:0;right:0;height:40px;top:calc(50% - 20px)}.editor.active{border-color:#28947b;box-shadow:0 0 0 3px #c3e5da}.token{position:relative;line-height:1;min-height:0;display:inline-flex;align-items:center}.token.picked{background:#d6e9c7}.placeholder{font-size:.8em;color:#9bb1a3;display:inline-flex;align-items:center;line-height:1}.locked{background:#edf2eb;color:#72917c}.wide{width:100%;justify-content:flex-start}.step{display:flex;align-items:center;gap:9px;min-height:44px;border-bottom:1px solid #edf2ec}.step .editor{flex:1;min-width:0}.step small{font-size:12px;color:#8ba18e}.tools,.row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tools button{font-size:12px}.options{display:grid;gap:7px}.option{font-size:16px;line-height:1.55;text-align:left}.oralgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.oralcard{background:white;border:1px solid var(--border);border-radius:12px;min-height:82px;padding:8px}.oralformula{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:17px;font-weight:bold;min-height:50px;line-height:1.8}.oralformula .editor{font-size:18px;min-width:2.6em}.questionfigure{display:block;max-width:100%;height:auto;margin:12px 0}
.figscroller{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:12px 0 0}
.figscroller .questionfigure{margin:0}
.figact{display:flex;align-items:center;gap:10px;margin:2px 0 8px}
.figact .small{color:#8ba18e}
.bigfig{max-height:68dvh;overflow:auto;border:1px solid var(--border);border-radius:10px;background:#fff}
.bigfig img{display:block;max-width:none;width:max(100%,620px);height:auto}.seqoptions{display:flex;gap:8px;flex-wrap:wrap}.seqoptions button{font-size:22px;min-width:48px}table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:14px;background:white;margin:18px 0}th,td{border:1px solid var(--border);padding:8px 4px;text-align:center}td .editor{font-size:17px;min-width:2.3em}td select{width:100%;font-size:10px;padding:6px 0;border:0;margin-top:10px}.pad{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,580px);height:var(--pad-height);min-height:260px;display:flex;flex-direction:column;background:#f0f5ecf7;padding:6px 10px max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:10;box-shadow:0 -4px 18px #3555450a}.padhead{display:flex;justify-content:space-between;align-items:center;font-size:11px;line-height:1.3;margin-bottom:3px}.chips{display:none}.chips button{display:none}.keys{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;flex:1;grid-auto-rows:1fr;min-height:0}.keys button{font-size:20px;min-height:0;height:100%;padding:2px}.nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;margin-top:6px}.extra{display:none}.extra button{display:none}.notice{padding:13px 15px;background:#eaf2e3;border-radius:10px;font-size:13px;line-height:1.8;margin:15px 0}.warn{background:#fff2da;color:#916722}.good{color:#287d57}.bad{color:#b34636}.scoregrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.score{padding:18px;background:white;border:1px solid var(--border);border-radius:12px}.score b{display:block;font-size:25px;margin-top:10px}input,select,textarea{border:1px solid var(--border);border-radius:7px;padding:12px;max-width:100%;background:white}textarea{width:100%;min-height:100px;line-height:1.8}label{display:block;font-size:14px;line-height:1.7;margin:12px 0}label input{display:block;width:100%;margin-top:5px}form .primary{width:100%;margin:15px 0}.login{padding:20px 10px}.full{width:100%}.drawing{width:100%;background:white;border:1px solid var(--border);border-radius:10px;touch-action:manipulation}.drawtask{margin:16px 0}.drawask{font-size:16px;line-height:1.7;margin:6px 0 8px}.drawask b{color:#276451;margin-right:6px}.drawwrap{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.drawstage{display:block;width:100%;height:auto;touch-action:manipulation}.drawstage.static{touch-action:auto}.drawbuttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.drawbuttons .selected{background:#276451;color:white}dialog{border:1px solid var(--border);border-radius:14px;max-width:94vw;width:520px;padding:24px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#16372a66}.map{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#toast{display:none;position:fixed;top:18px;left:50%;transform:translateX(-50%);background:#244a3c;color:white;max-width:90%;padding:12px 18px;border-radius:8px;z-index:100;font-size:14px;line-height:1.8}.desk{max-width:min(1560px,96vw);margin:auto;padding:16px 24px 96px}.desk .bar{position:sticky;top:0;background:#f0f4ef;z-index:5}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.bankgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.card{background:white;border:1px solid var(--border);padding:14px 16px;border-radius:12px;min-width:0;display:flex;flex-direction:column}.card .stem{font-size:18px}.cardhead{display:flex;justify-content:space-between;gap:12px}.cardhead input{width:24px;height:24px}.selection{position:sticky;top:52px;margin:0 0 14px;padding:10px 16px;background:#244a3c;color:white;z-index:9;display:flex;justify-content:center;align-items:center;gap:16px;border-radius:10px;box-shadow:0 2px 10px #244a3c22}.selection button{color:#244a3c}.detail{font-size:13px;line-height:1.8;background:#f2f6ee;padding:12px;margin-top:12px;white-space:pre-wrap}.report{margin:16px 0}.resultitem{border-bottom:1px solid var(--border);padding:16px 0;line-height:1.9}
.resultitem>.stem{font-size:16px;margin:4px 0 8px}
.qhead{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.qhead b{font-size:17px}
.qreadonly{margin:4px 0 10px;padding:10px 12px;background:#fafcf8;border:1px solid var(--border);border-radius:10px}
.qreadonly .tools,.qreadonly .notice,.qreadonly .drawbuttons{display:none}
.qreadonly .editor{cursor:default}
.qreadonly .option{cursor:default;pointer-events:none}
.qreadonly .paper{margin:6px 0}
.qreadonly .questionfigure{margin:6px 0}
.qreadonly svg{max-width:460px;height:auto;display:block}
.qreadonly .oralgrid{grid-template-columns:minmax(0,380px);margin:0}
.qreadonly:has(.oralgrid){max-width:420px}
.qreadonly .oralcard{min-height:78px}
.partlist{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}
.partlist>div{margin:6px 0}.recordtext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.reviewform{background:#fff2da;padding:12px;border-radius:8px}.viewtab{display:flex;gap:5px}.muted{color:#7a907f}@media(max-width:650px){.bankgrid{grid-template-columns:1fr}.desk{padding:10px 14px 32px}.desk .bar{flex-wrap:wrap}.viewtab{flex-wrap:wrap}.viewtab button{font-size:12px}.selection{padding:10px;gap:10px}.oralformula{font-size:14px}.oralformula .editor{font-size:17px}.phone{padding-left:12px;padding-right:12px}}@media(max-width:350px){.oralformula{font-size:13px}.oralformula .editor{font-size:15px}.keys button{min-height:0;padding:2px}}
:root{--pad-height:33dvh;--pad-real:var(--pad-height);scroll-padding-bottom:calc(var(--pad-real) + 24px)}.haspad{padding-bottom:calc(var(--pad-real) + 32px)}.editor{scroll-margin-top:28px;scroll-margin-bottom:calc(var(--pad-real) + 24px)}.padhead .link{min-height:24px;padding:2px 6px}.extra{margin:5px 0}.extra button{min-height:30px;padding:4px}.pad .chips{margin:5px 0}.pad{padding-top:7px}.pad.compact{height:auto;min-height:0;padding-bottom:max(8px,env(safe-area-inset-bottom))}.pad .nav button{min-height:40px;font-size:13px;padding:4px 2px}
.bankgrid{align-items:start}
.cardacts{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.cardacts .link{min-height:32px;padding:4px 8px;font-size:12px;color:#276451;text-decoration:underline;white-space:nowrap}
.cardacts input{width:24px;height:24px;margin:0;flex:0 0 auto}
.bankans{margin-top:10px;font-size:14px;line-height:1.7;background:#eef5e7;border:1px solid #d9e4da;border-radius:8px;padding:8px 10px;overflow-wrap:anywhere}
.bankans b{display:inline-block;font-size:12px;color:#276451;margin-right:8px;vertical-align:1px}
.bankexp{margin-top:8px;font-size:13px;line-height:1.7}
.bankexp summary{cursor:pointer;color:#6b8474}
.bankexp .detail{margin-top:8px}
dialog.qdialog{width:min(920px,94vw);padding:20px 24px}
.qhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.qhead h2{font-size:18px;margin:0;line-height:1.5}
.qdialog .qreadonly .editor{cursor:default;pointer-events:none}
.qdialog .bankexp{font-size:14px}
@media(max-width:650px){dialog.qdialog{padding:14px 12px}.cardacts .link{font-size:11px;padding:2px 4px}}
.qdialog td select{width:auto;min-width:5.5em;margin-top:6px}
.bankgrid{grid-template-columns:repeat(auto-fill,minmax(460px,1fr))}
/* 题库卡片：字号、行距、内边距一律沿用学生端纸面，只压缩外边距 */
.card .qreadonly{padding:9px 11px;margin:6px 0}
.card .qreadonly .paper{margin:6px 0}
.card .qreadonly table{margin:8px 0}
.card .qreadonly svg{max-width:100%}

/* === 题库：单元 → 分部 → 题型三级分组 === */
#bankbody .bankunit{margin:0 0 22px}
#bankbody .unithead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 4px;padding:9px 12px;background:#e4eee0;border-left:4px solid #2f6b52;border-radius:8px;scroll-margin-top:96px}
#bankbody .unithead h2{font-size:18px;margin:0;display:flex;align-items:center;gap:8px}
#bankbody .unithead .link{min-height:30px;font-size:13px;white-space:nowrap;background:transparent}
.unitpick{font-size:12px;font-weight:400;color:#276451;background:#cfe6d6;border-radius:999px;padding:2px 9px}
#bankbody .banksec{margin:0 0 6px}
#bankbody .sechead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px;padding:5px 2px;border-bottom:1px solid var(--border)}
#bankbody .sechead h3{font-size:16px;margin:0;display:flex;align-items:center;gap:8px}
#bankbody .sechead .link{min-height:30px;font-size:13px;white-space:nowrap}
.sectag{font-size:12px;font-weight:400;color:#5d7568;background:#e8efe3;border-radius:999px;padding:2px 9px}
.secpick{font-size:12px;font-weight:400;color:#276451;background:#d6ebdc;border-radius:999px;padding:2px 9px}
#bankbody .banksub+.banksub{margin-top:10px}
#bankbody .subhead{display:flex;align-items:baseline;gap:8px;margin:8px 2px 4px;scroll-margin-top:96px}
#bankbody .subhead h4{font-size:14px;margin:0;color:#3d5b49;font-weight:600}

#bankbody .bankgrid{display:grid;gap:12px;align-items:start;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,max(var(--bank-min,330px),calc((100% - (var(--bank-cols,2) - 1) * 12px) / var(--bank-cols,2)))),1fr))}

/* === 卡片头：选择框在左上角 === */
.cardhead{display:flex;align-items:center;gap:8px;margin:0 0 4px;min-height:24px}
.cardhead .pick{width:22px;height:22px;margin:0;flex:0 0 auto;accent-color:#2f6b52;cursor:pointer}
.cardno{font-size:13px;font-weight:600;color:#3d5b49;white-space:nowrap}
.cardpts{font-size:12px;color:#7b8f83;white-space:nowrap}
.cardhead .cardacts{margin-left:auto}
.cardhead .cardacts .link{min-height:26px;padding:2px 6px;font-size:12px}
.card:has(.pick:checked){border-color:#2f6b52;box-shadow:inset 0 0 0 1px #2f6b52}

/* 窄卡（口算等 5 列以上）：只留左上角选择框 */
.card.is-compact{padding:9px 10px 8px}
.card.is-compact .cardacts{display:none}
.card.is-compact .qreadonly{padding:0;margin:0;border:0;background:none}
.card.is-compact .qreadonly .oralgrid{grid-template-columns:1fr;gap:0;margin:0}
.card.is-compact .qreadonly .oralcard{min-height:0;padding:2px 2px;border:0;background:none;border-radius:0}
.card.is-compact .qreadonly .oralformula{min-height:34px;font-size:16px;gap:3px}
.card.is-compact .qreadonly .stem{font-size:15px;margin:0 0 2px}

/* 折叠区里的答案行 */
.bankexp .ansline{margin:0 0 8px;background:#eef5e7;border:1px solid #d9e4da;border-radius:8px;padding:6px 9px;line-height:1.75;overflow-wrap:anywhere}
.bankexp .ansline b{font-size:12px;color:#276451;margin-right:8px}

/* 窄屏回落：不按固定列数，按最小宽度自适应 */
@media(max-width:1180px){
  #bankbody .bankgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--bank-min,460px)),1fr))}
}
#bankbody .sechead{scroll-margin-top:96px}
#bankbody .subhead{scroll-margin-top:96px}
.card.is-compact .qreadonly .oralformula{font-size:15px;gap:2px}
.card.is-compact .qreadonly .oralformula .editor{font-size:15px;min-width:1.5em}
.card.is-compact .qreadonly .oralformula .small{display:none}

/* === 题干行内作答：括号换成可点空格 === */
.paper.sentence{white-space:pre-wrap}
.editor.ib{min-width:3.4em;height:1.55em;border:0;border-bottom:1.6px solid #8aa79a;border-radius:3px 3px 0 0;background:#f3f8f1;padding:0 .3em}
.editor.ib:empty{min-height:1.1em}
.editor.ib.filled{min-width:2.2em}
.editor.ib.wideblank{min-width:7em}
.editor.ib.active{border-bottom-color:#28947b;background:#e9f6ee;box-shadow:0 3px 0 -1px #b9dfd1}
.editor.ib.locked{background:transparent;border-bottom-color:#c9d8cc}
.editor.ib .placeholder{display:none}
/* 题干里的选择题括号：显示所选字母 */
.ibox{display:inline-flex;align-items:center;justify-content:center;min-width:1.7em;height:1.5em;margin:0 .12em;border-bottom:1.6px solid #8aa79a;background:#f3f8f1;vertical-align:-.22em;font-weight:700;color:#276451}
.ibox.has{background:#e9f6ee;border-bottom-color:#28947b}
.qreadonly .ibox{background:#eff5ea;border-bottom-color:#c9d8cc}

/* === 选择题选项三档排版：很短一行、中等两列、很长的单独一行 === */
.options.tier-tight{display:flex;flex-wrap:wrap;gap:8px 14px}
.options.tier-tight .option{padding:7px 12px}
.options.tier-mid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.options.tier-mid .option{font-size:15px;line-height:1.45;padding:8px 10px}
.options.tier-long{display:grid;grid-template-columns:1fr;gap:8px}
@media(max-width:400px){.options.tier-mid .option{font-size:14px;padding:7px 8px}}

/* === 一个括号里填多个数：符号与空格横排成一行 === */
.fieldrow{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 14px;vertical-align:middle;margin:0 2px}
.fieldcell{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}
/* 三格连排时收紧一点，符号与空格成对更清楚 */
.fieldrow{gap:4px 10px}
.fieldcell{gap:4px}
.fieldcell .editor.ib{min-width:2.7em}
.fieldcell .editor.ib.filled{min-width:2.2em}

/* === 题库选题视图：多列窄卡里的排版压缩 ===
   只作用于 #bankbody 内的卡片列表，「看原题与答案」弹窗（dialog.qdialog）保持学生端原版式。 */
#bankbody .card:not(.is-compact){padding:11px 12px 9px}
#bankbody .card:not(.is-compact) .stem{font-size:15.5px;line-height:1.6;margin:8px 0 6px}
#bankbody .card:not(.is-compact) .qreadonly{padding:8px 10px;margin:4px 0 8px;border-radius:8px}
#bankbody .card:not(.is-compact) .qreadonly .paper{font-size:15px;line-height:1.8;padding:8px 10px;margin:4px 0;border-radius:8px}
#bankbody .card:not(.is-compact) .qreadonly .sentence{line-height:1.95}
#bankbody .card:not(.is-compact) .qreadonly .stem{font-size:15px;line-height:1.7;margin:6px 0}
#bankbody .card:not(.is-compact) .qreadonly .option{font-size:14.5px;line-height:1.5}
#bankbody .card:not(.is-compact) .qreadonly .options{gap:4px}
#bankbody .card:not(.is-compact) .qreadonly .options.tier-mid .option,
#bankbody .card:not(.is-compact) .qreadonly .options.tier-long .option{padding:6px 9px}
#bankbody .card:not(.is-compact) .qreadonly .step{min-height:34px;gap:7px}
#bankbody .card:not(.is-compact) .qreadonly .editor.ib{height:1.5em;min-width:2.8em;padding:0 .25em}
#bankbody .card:not(.is-compact) .qreadonly table{font-size:12.5px;margin:6px 0}
#bankbody .card:not(.is-compact) .qreadonly th,
#bankbody .card:not(.is-compact) .qreadonly td{padding:5px 3px}
#bankbody .card:not(.is-compact) .qreadonly .questionfigure{max-height:240px;margin:6px 0}
#bankbody .card:not(.is-compact) .qreadonly .oralformula{font-size:15px;min-height:34px;gap:4px}
#bankbody .card:not(.is-compact) .qreadonly .ibox{height:1.35em;min-width:1.5em}
#bankbody .card:not(.is-compact) .bankexp summary{font-size:12.5px;padding:3px 0;min-height:0}
#bankbody .card:not(.is-compact) .bankexp[open] .detail{margin-top:8px;padding:9px 10px}
/* 应用题作答：单位跟在最后一步得数后面，纯文字、无括号无底色，点一下选单位 */
.appunit{flex:none;width:auto;min-width:2.4em;max-width:5.2em;height:1.9em;min-height:0;padding:0 1px;font-size:15px;line-height:1;border:0;border-bottom:1px dotted #bfd3c3;border-radius:0;background:transparent;color:#276451;text-align:center;text-align-last:center;-webkit-appearance:none;appearance:none;cursor:pointer}
.appunit.empty{color:#a6bcac;border-bottom-color:#d6e3d9}
.appunit:disabled{color:#276451;opacity:1;cursor:default;border-bottom-color:transparent}
.appunit:focus-visible{outline:2px solid #28947b;outline-offset:1px;border-radius:3px}
.answerline{line-height:2.3}
.answerline .ansbody{white-space:nowrap}
.answerline .editor{min-width:3.4em;margin:0 1px}
.answerline .editor.ansblank{height:1.55em;border:0;border-bottom:2px solid #7fa88b;border-radius:0;background:transparent;padding:0 .3em;vertical-align:-.28em}
.answerline .editor.ansblank.active{border-bottom-color:#28947b;box-shadow:none}
.answerline .editor.ansblank .placeholder{font-size:.72em;color:#a6bcac}

/* 多空格共用一个选项组：每格一个小空，点一下轮换答案（u2-fill-1 / u2-fill-2 这类图形分组题） */
.glegend{font-size:12px;color:#758d7d;line-height:1.7;margin:2px 0 8px}
.gchoices{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:7px}
.gcell{display:flex;align-items:center;justify-content:space-between;gap:6px;background:#fbfdf9;border:1px solid var(--border);border-radius:9px;padding:5px 8px;min-height:44px;min-width:0}
.glab{font-size:12px;color:#6f8a78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gblank{flex:none;min-width:40px;min-height:32px;height:32px;padding:0 6px;font-size:16px;line-height:1;border:1px dashed #b8cdbb;border-radius:7px;background:#fff;color:#9bb1a3}
.gblank.filled{background:#e9f4e4;border:1px solid #28947b;color:#1f5c46;font-weight:600}
.qreadonly .gblank{opacity:1}
#bankbody .card:not(.is-compact) .gchoices{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:5px}
#bankbody .card:not(.is-compact) .gcell{min-height:34px;padding:3px 6px}
#bankbody .card:not(.is-compact) .glab{font-size:11px}
#bankbody .card:not(.is-compact) .gblank{min-width:32px;min-height:26px;height:26px;font-size:14px}

/* 运算树（「根据运算顺序在方框里填数」这类）：按数据坐标等比铺满，方框就是答题点 */
.qtreewrap{container-type:inline-size;width:100%;max-width:235px;margin:.2em auto .1em}
.qtree{position:relative;width:100%;margin:0 auto;font-size:clamp(13px,6.8cqi,18px);line-height:1}
.qtree .tlines{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.qtree .tl{stroke:#262626;stroke-width:1.3;vector-effect:non-scaling-stroke}
.qtree .ta{fill:#262626}
.qtree .tnode{position:absolute;transform:translate(-50%,-50%)}
.qtree .tbox{display:flex;justify-content:center;white-space:nowrap}
.qtree .ttxt{white-space:nowrap;color:#1b2a24;letter-spacing:0}
.qtree .tbox .editor{width:auto;min-width:100%;height:1.76em;padding:0 .1em;border:1.3px solid #2b2b2b;border-radius:1px;background:#fff;line-height:1;font-size:.95em;letter-spacing:-.01em}
.qtree .tbox .editor .placeholder{font-size:.62em;color:#a8bcae}
.qtree .tbox .editor.active{border-color:#28947b;box-shadow:0 0 0 2px #c3e5da}
.qtree .tbox .editor.locked{background:#f3f3f3;color:#5f7d6b;border-color:#9a9a9a}
.exprline{display:flex;align-items:center;gap:.2em;margin:.5em .2em .1em;font-size:15px;line-height:1;white-space:nowrap}
.exprline .editor{flex:1;min-width:0;height:1.9em;padding:0 .2em;border:0;border-bottom:1.5px solid #8aa79a;border-radius:0;background:transparent;justify-content:flex-start}
.exprline .editor.wideblank{min-width:0}
.exprline .editor.active{border-bottom-color:#28947b;background:#f2faf5;box-shadow:none}
.exprline .editor.locked{border-bottom-color:#c9d8cc;background:transparent}
/* 原题图上直接作答：slots 把图片里的（　）变成答题格，坐标按图片百分比定位 */
.figwrap{position:relative;width:100%;container-type:inline-size;margin:12px 0 2px;line-height:0}
.figwrap .figimg{display:block;width:100%;height:auto}
.fslot{position:absolute;display:flex;align-items:center;justify-content:center;min-height:0;padding:0;border:0;border-radius:6px;background:transparent;font-size:4.1cqi;line-height:1;color:#1b2a24;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fslot .v{font-size:1.3em}
.fslot .plain{font-size:.74em;letter-spacing:-.03em}
.fslot.filled{background:transparent}
.fslot:active,.fslot:focus-visible{background:#cdeadd99;outline:none}
.fslot.locked{color:#276451}
.numslot{position:absolute;display:block;font-size:4cqi;line-height:1}
.numslot .editor{width:100%;height:100%;min-width:0;min-height:0;padding:0;border-radius:.35em;vertical-align:baseline}
.fighint{margin:2px 0 8px}
.qreadonly .fslot{pointer-events:none;cursor:default}

/* 多小问：每个小问一段，题干只写一次公共条件 */
.subq{margin:6px 0 0}
.subq+.subq{margin-top:16px}
.subask{font-size:15px;font-weight:700;line-height:1.6;margin:14px 0 6px;color:#24463e}
.subq .paper{margin:6px 0}
.qreadonly .subask{font-size:14px}

/* 应用题只列综合算式：一行写完，得数后直接选单位 */
.exprrow{display:block;margin:2px 0 10px}
.exprhead{display:block;font-size:12px;line-height:1.5;color:#5c7f6c;margin-bottom:3px}
.exprbody{display:flex;align-items:center;gap:5px}
.exprbody .editor{flex:0 1 auto;width:auto;min-width:8em;justify-content:flex-start;flex-wrap:wrap;height:auto;min-height:2.15em;padding:2px 4px;white-space:normal;overflow-wrap:anywhere}
.exprbody.tight{flex-wrap:wrap;row-gap:5px}
.exprbody.tight .editor{flex:1 1 100%}
.appunitslot{flex:none;display:inline-flex;align-items:center;gap:2px}
.exprbody.tight .appunitslot{margin-left:auto}

/* 应用题：综合算式 + 逐行脱式（第一行是原式，后面每行以等号开头） */
.tracebox{display:block;margin:2px 0 10px}
.tracehead{display:block;font-size:12px;line-height:1.5;color:#5c7f6c;margin-bottom:3px}
.tline{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:3px 0}
.tline .tmark{flex:none;width:1.6em;text-align:center;font-size:17px;font-weight:600;color:#2e6b57;line-height:1}
.tline .editor{flex:1 1 4em;min-width:0;justify-content:flex-start;flex-wrap:wrap;height:auto;min-height:2.15em;padding:2px 4px;white-space:normal;overflow-wrap:anywhere}
/* 带单位的那一行：输入框按内容收窄、数字靠右，单位紧贴在得数后面，像教材的「＝24 元」 */
.tline.unitline .editor{flex:0 1 auto;width:auto;min-width:3.1em;justify-content:flex-start}
.tracebox .tools{margin-top:8px}
.tracebox.tight .tline .editor{font-size:.84em}
.tracebox.tiny .tline .editor{font-size:.74em}

/* 页脚备案号（工信部要求可见、可点击到 beian.miit.gov.cn） */
.foot{margin:22px 0 8px;text-align:center;font-size:12px;line-height:1.9;color:#8ba18e}
.foot a{color:inherit;text-decoration:none}
.foot a:hover{text-decoration:underline}
