[hidden] { display:none !important; }
#spotMistakeGame { display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0; }
.sm-toolbar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:white;padding:10px 18px;border-bottom:1px solid #d8e2ea; }
.sm-toolbar label { display:flex;align-items:center;gap:8px;font-weight:700; }
.sm-toolbar select,.sm-toolbar button,.sm-response button,.sm-response input { min-height:48px;font:inherit;border:2px solid #c8d7e2;border-radius:8px;background:white;color:#102131;padding:8px 12px; }
.sm-toolbar button,.sm-response button { cursor:pointer;font-weight:700; }
.sm-toolbar button:hover,.sm-response button:hover:not(:disabled) { background:#e5f3fb; }
.sm-stats { margin-left:auto;white-space:nowrap;font-size:1rem;color:#526474; }
.sm-workspace { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;padding:16px;min-height:0; }
.sm-board,.sm-response { background:white;border:1px solid #d8e2ea;border-radius:12px;padding:18px;min-height:0; }
.sm-board { position:relative;display:flex;flex-direction:column; }
.sm-board-heading { display:flex;align-items:center;justify-content:space-between;gap:14px; }
.sm-board h2 { margin:0;font-size:clamp(1.8rem,3vw,3rem); }
.sm-canvas { flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px 0; }
.sm-canvas .calculation-error-card,.sm-canvas .question-visual { width:100%;height:100%;margin:0;display:flex;align-items:center;justify-content:center; }
.sm-canvas .question-visual figcaption,.sm-canvas .model-number-sentence { position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden; }
.sm-canvas svg { width:100%;height:100%;max-width:none;max-height:none; }
.sm-canvas.sm-locked .calculation-selectable-part { cursor:default; }
.sm-response { display:flex;flex-direction:column;gap:10px; }
.sm-response h2 { font-size:1.4rem;margin:0; }
.sm-response p { margin:0;line-height:1.4; }
.sm-parts { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.sm-parts button { font-size:.95rem; }
.sm-parts button[aria-pressed="true"] { background:#fff0ce;border-color:#ad6b00;color:#664200; }
.sm-response .sm-primary { color:white;background:#087daa;border-color:#087daa; }
.sm-response .sm-primary:hover:not(:disabled) { background:#066589; }
.sm-support { display:flex;gap:6px;flex-wrap:wrap; }
.sm-support button { flex:1;padding:8px;font-size:.93rem; }
.sm-answer-label { display:block;font-weight:700;margin-bottom:6px; }
.sm-response input { width:100%;font-size:1.45rem; }
.sm-response .sm-answer-note { font-size:.9rem;margin:6px 0; }
#smCheckAnswer { width:100%; }
.sm-response button:disabled { cursor:default;opacity:.65; }
.sm-toolbar :focus-visible,.sm-response :focus-visible { outline:3px solid #08689a;outline-offset:3px; }
.sm-explanation { background:#f1fbf6;border:1px solid #98cdb1;border-radius:8px;padding:12px;font-size:.98rem; }
.sm-explanation h3 { margin:0 0 8px;font-size:1rem; }
.sm-explanation ul { margin:0;padding-left:20px; }
.sm-explanation li { margin:5px 0;line-height:1.35; }
@media (max-width:760px),(max-height:600px) {
  .app { height:auto;min-height:100dvh;overflow:visible; }
  #spotMistakeGame { display:block; }
  .sm-workspace { grid-template-columns:1fr;padding:10px;gap:10px; }
  .sm-toolbar { padding:10px;gap:8px; }
  .sm-toolbar label { flex-wrap:wrap; }
  .sm-toolbar select { max-width:200px; }
  .sm-stats { margin-left:0; }
  .sm-board,.sm-response { padding:14px; }
  .sm-board-heading { flex-wrap:wrap; }
  .sm-canvas { height:300px;flex:none; }
  .sm-explanation { position:static;max-height:none;overflow:visible;margin-top:8px; }
}
@media print {
  @page { size:A4 landscape;margin:12mm; }
  body { background:white; }
  .app { height:auto!important;overflow:visible!important;display:block; }
  .topbar,.sm-toolbar,.sm-response { display:none!important; }
  #spotMistakeGame,.sm-workspace { display:block!important;padding:0; }
  .sm-board { padding:0;border:0;height:158mm;break-inside:avoid; }
  .sm-canvas { height:115mm;flex:none; }
  .sm-board h2 { font-size:24pt; }
  .sm-explanation { position:static;max-height:none;overflow:visible;padding:4px;border:0;font-size:10pt; }
}
