[hidden]{display:none!important}.solver-main{max-width:1440px}.solver-main h1{font-size:clamp(24px,3vw,36px)}.solver-back{font-size:12px;color:var(--muted)}.solver-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:22px 0}.solver-toolbar label{font-size:12px}.solver-toolbar select,#fullTools select{padding:9px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);margin-left:8px}#solveTimer{font-variant-numeric:tabular-nums;font-size:23px}.solver-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.solver-paper,.solver-answer{border:1px solid var(--line);border-radius:10px;padding:18px;background:var(--surface);min-width:0}.solver-answer{position:sticky;top:20px;max-height:85vh;overflow:auto}.solver-answer h2{font-size:18px;margin:0 0 15px}.solver-answer p{font-size:12px;color:var(--muted);line-height:1.7}.solver-answer .online-primary{width:100%;margin:7px 0}.online-answer-row{padding:12px 0;border-bottom:1px solid var(--line)}.online-answer-row>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px;margin-bottom:10px}.online-choice{display:flex;gap:5px}.online-choice label{flex:1}.online-choice input{position:absolute;opacity:0}.online-choice span{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:5px;height:39px;cursor:pointer}.online-choice input:checked+span{border-color:var(--green);color:var(--green);background:var(--soft)}.online-choice input:focus-visible+span{outline:2px solid var(--green)}.online-short{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:9px;border-radius:5px}.online-star{border:0;background:transparent;color:var(--green);font-size:12px;cursor:pointer}.online-feedback{font-size:12px;margin-top:9px;color:var(--green)}.online-feedback.wrong{color:#ef778f}.question-pdf-frame{overflow:auto;background:white}.question-pdf-frame canvas{display:block}.question-zoom{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.question-zoom button,.question-zoom a{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:6px;background:transparent;color:var(--green)}#unitDocuments section{margin:0 0 22px}#unitDocuments h2{font-size:15px}.ink-tools{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.ink-tools button,.ink-tools select{border:1px solid var(--line);background:transparent;color:var(--ink);font-size:11px;border-radius:4px;padding:7px}.ink-tools [aria-pressed=true]{background:var(--soft);color:var(--green);border-color:var(--green)}.ink-tools label{display:flex;align-items:center;gap:5px;font-size:11px}.ink-tools input{width:28px;height:25px;padding:0;border:0}#inkDescription,#inkStatus{font-size:11px;color:var(--muted)}#paperViewport{overflow:auto;max-height:78vh;background:#ddd;border-radius:5px}#paperStage{position:relative;width:100%;line-height:0;background:white}#paperImage{display:block;width:100%;height:auto}#inkCanvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#fullTools{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:15px;font-size:12px}.solver-storage{border-top:1px solid var(--line);padding-top:12px}#onlineHistory{font-size:12px;line-height:1.8}#onlineHistory p{border-bottom:1px solid var(--line);padding:8px 0}#onlineScore{font-size:26px;color:var(--green)}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;max-width:420px;padding:25px}dialog button{padding:9px 15px;margin:8px;border:1px solid var(--line);background:transparent;color:var(--ink)}@media(max-width:950px){.solver-grid{grid-template-columns:minmax(0,1fr) 260px}}@media(max-width:720px){.solver-grid{grid-template-columns:1fr}.solver-answer{position:static;max-height:none}#paperViewport{max-height:65vh}.solver-paper,.solver-answer{padding:12px}}

#englishAudio{padding:18px;border:1px solid var(--line);border-radius:12px;margin-bottom:20px}#englishAudio audio{display:block;width:100%;margin-top:12px}
/* Keep iPad long press, native drag and text selection out of the writing surface. */
#paperViewport,#paperStage,#paperImage,#inkCanvas,.ink-tools{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
#paperViewport{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;isolation:isolate}
#paperImage{pointer-events:none}#inkCanvas{touch-action:none}.is-inking,.is-inking *{-webkit-user-select:none!important;user-select:none!important}
.ink-tools{align-items:center;gap:8px}.ink-tools button,.ink-tools select{min-height:42px;padding:9px 12px;font-size:12px}.ink-tools input[type=color]{width:32px;height:32px}.ink-tools .finger-writing{padding:8px 6px;min-height:42px;cursor:pointer;gap:7px}.ink-tools input[type=checkbox]{appearance:auto;width:17px;height:17px;accent-color:var(--green)}.ink-help{font-size:12px;color:var(--muted);line-height:1.7;margin:8px 0 14px}#inkFocus{margin-left:auto;border-color:var(--green);color:var(--green)}
.solver-paper.ink-focus{position:fixed;inset:0;z-index:1500;border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}
.solver-paper.ink-focus #paperViewport{flex:1;min-height:0;max-height:none}.solver-paper.ink-focus #inkDescription{display:none}.solver-paper.ink-focus #inkStatus{margin:6px 0 0}.solver-paper.ink-focus .ink-tools{margin:4px 0}.solver-paper.ink-focus #fullTools{margin-bottom:4px}.solver-paper.ink-focus .ink-help{margin:4px 0 8px}
@media(max-width:720px){.ink-tools{gap:6px}.ink-tools button,.ink-tools select{min-height:42px;padding:8px 10px}.ink-tools .finger-writing{font-size:12px}.solver-paper.ink-focus{padding:10px}.ink-help{font-size:11px}}

#paperViewport{overscroll-behavior:contain}#paperStage{touch-action:none}#inkCanvas{touch-action:none}

/* Keep WebKit's native scroll/pinch and scroll anchoring out of manual gestures.
   A fixed viewport prevents short math sheets resizing their own touch surface. */
#paperViewport{height:72vh;max-height:none;min-height:320px;touch-action:none;overflow-anchor:none;-webkit-overflow-scrolling:auto}
@media(max-width:720px){#paperViewport{height:65vh;max-height:none}}
.solver-paper.ink-focus #paperViewport{height:auto;min-height:0}

.pdf-detail-layer{position:absolute;pointer-events:none;z-index:1;display:block}#inkCanvas{z-index:2}
