/* 配色、字型、按鈕與卡片由 learning-theme.v2.css 提供。 */
.geometry-module .geometry-scope { color: var(--muted); font-size: .92rem; margin-bottom: 12px; }
.geometry-module .geometry-course-status { margin-bottom: 16px; color: var(--muted); }
.geometry-module summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 700; }
.geometry-module #lessonStatus { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 6px; font-size: .9rem; }
.geometry-module .geometry-overview > p, .geometry-module .geometry-unit-overview > p { color: var(--muted); }
.geometry-module .geometry-overview-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 18px; }
.geometry-module .geometry-unit-grid, .geometry-module .geometry-activity-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.geometry-module .geometry-unit-card, .geometry-module .geometry-activity-card { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fffdf8; }
.geometry-module .geometry-unit-card h3, .geometry-module .geometry-activity-card h3 { margin: 0 0 8px; font-size: 1.08rem; }
.geometry-module .geometry-unit-card p, .geometry-module .geometry-activity-card p { margin: 6px 0 12px; color: var(--muted); }
.geometry-module .geometry-unit-mark { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 14px 14px 5px 14px; color: var(--blue-dark); background: var(--sky); font-size: 1.5rem; font-weight: 700; }
.geometry-module .geometry-activity-card button, .geometry-module .geometry-unit-card button { min-height: 44px; }
.geometry-module .geometry-lesson-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.geometry-module .geometry-lesson-nav label { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted); }
.geometry-module .geometry-lesson-nav select { max-width: min(100%, 340px); min-width: 0; }
.geometry-module [hidden] { display: none !important; }
.geometry-module [aria-pressed="true"] { background: var(--blue-dark); border-color: var(--blue-dark); color: white; }
.geometry-module .geometry-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.geometry-module .geometry-heading h2 { margin: 0; }
.geometry-module .geometry-heading label { display: flex; align-items: center; gap: 8px; }
.geometry-module .geometry-stages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-bottom: 12px; }
.geometry-module .geometry-stages button { padding: 8px 3px; }
.geometry-module .instruction { margin-bottom: 12px; }
.geometry-module .geometry-mode, .geometry-module .geometry-assist { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.geometry-module .geometry-board { width: 100%; max-width: 860px; margin: 0 auto; min-width: 0; }
/* touch-action on SVG root establishes the gesture contract before pointerdown.
   One finger draws; pinch zoom remains allowed. The rest of the page scrolls normally. */
.geometry-module #scene { display: block; width: min(100%,640px,calc(55vh * 1.454545)); height: auto; max-height: min(55vh,440px); margin-inline: auto; border: 1px solid var(--line); border-radius: 12px; background: white; overflow: hidden; touch-action: pinch-zoom; user-select: none; -webkit-user-select: none; }
@supports (height: 100svh) { .geometry-module #scene { width: min(100%,640px,calc(55svh * 1.454545)); max-height: min(55svh,440px); } }
.geometry-module #scene text { font-family: inherit; fill: var(--ink); font-size: var(--geometry-label-size,20px); font-weight: 700; pointer-events: none; }
.geometry-module #scene .geometry-label { paint-order: stroke; stroke: white; stroke-width: 6px; stroke-linejoin: round; }
.geometry-module #scene .geometry-small { font-size: var(--geometry-small-size,16px); }
.geometry-module .geometry-drag { cursor: grab; outline: none; }
.geometry-module .geometry-drag:active { cursor: grabbing; }
.geometry-module .geometry-drag:focus-visible .geometry-hit { stroke: var(--blue-dark); stroke-width: 3px; stroke-dasharray: 4 3; }
.geometry-module #scene .geometry-orbit { cursor: grab; outline: none; touch-action: none; }
.geometry-module #scene .geometry-orbit:active { cursor: grabbing; }
.geometry-module #scene .geometry-orbit:focus-visible { filter: drop-shadow(0 0 3px var(--blue-dark)); }
.geometry-module #scene .geometry-surface-target { cursor: grab; touch-action: none; }
.geometry-module #scene .geometry-surface-target:focus-visible { stroke: var(--blue-dark); stroke-width: 8px; stroke-dasharray: 7 4; outline: none; }
.geometry-module .geometry-caption { font-size: .88rem; color: var(--muted); margin: 8px 0; overflow-wrap: anywhere; }
.geometry-module .geometry-assist { position: relative; }
/* A preview must not change layout or move the board under a stationary finger. */
.geometry-module #snapStatus { position: absolute; left: 0; bottom: 100%; max-width: 100%; padding: 6px 8px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; font-size: .9rem; color: var(--muted); pointer-events: none; }
.geometry-module #snapStatus:empty { display: none; }
.geometry-module .game-area { overflow-anchor: none; }
.geometry-module .geometry-reading { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; margin: 8px 0; }
.geometry-module .geometry-reading input { width: 90px; }
.geometry-module .geometry-actions { margin: 10px 0; }
.geometry-module #answerActions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.geometry-module #answerActions button { width: 100%; min-height: 48px; margin: 0; }
@media (max-width: 600px) { .geometry-module #answerActions { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.geometry-module #feedback:empty { display: none; }
.geometry-module .geometry-parent { margin-top: 20px; padding: 16px 0; border-top: 2px solid var(--line); }
.geometry-module .geometry-parent p { margin-top: 10px; }
.geometry-module .geometry-seed { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0; }
.geometry-module .geometry-seed input { width: min(100%,230px); }
.geometry-module .geometry-progress-row { border-bottom: 1px solid var(--line); padding: 10px 0; }
.geometry-module #resetConsent { min-height: 24px; width: 24px; vertical-align: middle; }
.geometry-module .geometry-parent > label { display: flex; align-items: center; gap: 10px; min-height: 48px; }
@media (max-width: 600px) {
    .geometry-module .container { padding: 18px 12px; }
    .geometry-module .header { margin-bottom: 14px; }
    .geometry-module .header h1 { font-size: 1.8rem; }
    .geometry-module .header h1 span { font-size: 1rem; }
    .geometry-module .game-area { padding: 16px 10px; }
    .geometry-module .geometry-unit-grid, .geometry-module .geometry-activity-grid { grid-template-columns: minmax(0,1fr); gap: 8px; }
    .geometry-module .geometry-unit-card, .geometry-module .geometry-activity-card { padding: 14px; }
    .geometry-module .geometry-overview-actions > button { flex: 1 1 140px; }
    .geometry-module .geometry-lesson-nav { align-items: stretch; }
    .geometry-module .geometry-lesson-nav > button, .geometry-module .geometry-lesson-nav label { width: 100%; }
    .geometry-module .geometry-lesson-nav label { align-items: stretch; flex-direction: column; }
    .geometry-module .geometry-lesson-nav select { width: 100%; max-width: none; }
    .geometry-module .geometry-stages button { font-size: .82rem; }
    .geometry-module .geometry-heading h2 { font-size: 1.2rem; }
    .geometry-module .geometry-assist button, .geometry-module .geometry-mode button { font-size: .9rem; padding: 8px 10px; }
    .geometry-module .geometry-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .geometry-module .geometry-actions button { padding: 10px 5px; }
    .geometry-module #answerOptions { gap: 6px; margin: 8px 0; }
    .geometry-module #answerOptions button { flex: 1; padding: 8px; }
}

.geometry-module .geometry-demo { margin: 10px 0; }
.geometry-module .geometry-help { margin-top: 18px; color: var(--muted); }
.geometry-module .geometry-help p { margin: 8px 0; }
.geometry-module #parentStats { font-weight: 700; color: var(--blue-dark); }
.geometry-module .geometry-progress-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; }
.geometry-module .geometry-progress-row p { flex-basis: 100%; }
.geometry-module .geometry-extra-label { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border-radius: 999px; color: var(--blue-dark); background: var(--sky); font-size: .85rem; font-weight: 700; }
.geometry-module #advancedSettings { border-top: 1px solid var(--line); margin-top: 16px; }
.geometry-module #roundSummary { margin-top: 12px; }
.geometry-module .feedback.wrong::before { content: '看看提示　'; }

.geometry-module #answerOptions:empty, .geometry-module #specificControls:empty { display: none; }
.geometry-module .geometry-mode.is-scene-controls { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 14px auto 8px; }

/* Reserve only the short teaching caption, so changing steps does not move the drawing. */
.geometry-module .geometry-teaching #instruction { min-height: calc(3 * 1.65em + 28px); }
