.study-page{background-color:#eef1ee;flex:1;gap:1.5rem;min-height:0;padding:1.5rem;display:flex}.study-map-pane{flex:1;min-width:0;display:flex}.map-surface{background-color:var(--map-water,#eef4f3);border-radius:.875rem;flex:1;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.map-surface svg{width:100%;height:100%;max-height:calc(100vh - 8rem)}.map-missing{color:var(--text-secondary);padding:2rem;font-size:.9375rem}.study-panel{border:1px solid var(--border);background-color:#fff;border-radius:.875rem;flex-direction:column;flex-shrink:0;width:400px;display:flex;overflow:hidden}.study-panel-head{padding:1.25rem 1.5rem 0}.study-back{color:var(--text-secondary);margin-bottom:.75rem;font-size:.8125rem;display:inline-block}.study-back:hover{color:var(--primary)}.study-meta{color:var(--text-muted);font-size:.8125rem;font-weight:700}.study-meta-sep{margin:0 .25rem}.study-panel-body{flex:1;padding:1rem 1.5rem;overflow-y:auto}.study-instruction{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9375rem}.study-prompt{font-size:1.75rem;font-weight:800;line-height:1.2}.study-feedback{border-left:3px solid var(--tone-color,var(--border));background-color:var(--tone-bg,#f3f6f5);color:var(--foreground);border-radius:.625rem;margin-top:1.25rem;padding:.875rem 1rem;font-size:.9375rem}.study-feedback.tone-info{--tone-color:var(--primary);--tone-bg:#0d948814}.study-feedback.tone-correct{--tone-color:#15803d;--tone-bg:#15803d14}.study-feedback.tone-wrong{--tone-color:#b91c1c;--tone-bg:#b91c1c12}.study-feedback.tone-reveal{--tone-color:#f59e0b;--tone-bg:#f59e0b1a}.study-progress{border:1px solid var(--border);border-radius:.625rem;margin-top:1rem;padding:.875rem 1rem}.study-progress.is-mastered{background-color:#15803d0f;border-color:#15803d59}.study-progress-row{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.study-progress-label{font-size:.875rem;font-weight:700}.study-progress-count{color:var(--primary);font-size:.8125rem;font-weight:700}.study-progress .mastery-bar{margin-bottom:.5rem}.study-progress.is-mastered .mastery-bar-fill{background-color:#15803d}.study-progress-note{color:var(--text-secondary);font-size:.75rem}.study-panel-foot{padding:1rem 1.5rem 1.25rem}.study-answer-label{letter-spacing:.04em;color:var(--text-secondary);margin-bottom:.5rem;font-size:.6875rem;font-weight:700;display:block}.study-answer-field{border-bottom:2px solid var(--foreground);align-items:center;gap:.5rem;padding-bottom:.375rem;display:flex}.study-answer-field input{min-width:0;font:inherit;color:var(--foreground);background:0 0;border:none;outline:none;flex:1;font-size:1.125rem}.study-answer-field input::placeholder{color:var(--text-muted)}.study-answer-hint{color:var(--text-muted);white-space:nowrap;font-size:.6875rem}.study-answer-help{color:var(--text-secondary);margin-top:.5rem;font-size:.8125rem}.study-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding-top:1rem;display:flex}.study-skip{font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.5rem .25rem;font-size:.9375rem}.study-skip:hover{color:var(--foreground)}.study-primary{color:#fff;font:inherit;cursor:pointer;background-color:#12182b;border:none;border-radius:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:700}.study-primary:hover{background-color:#232c47}.study-shortcuts{text-align:center;color:var(--text-muted);margin-top:.75rem;font-size:.75rem}.study-shortcuts strong{color:var(--text-secondary)}@media (width<=900px){.study-page{flex-direction:column}.study-panel{width:auto}}.map-political{--map-water:#dce9ee;--map-land:#b7c9c4;--map-land-hover:#8fb5ac;--map-border:#f4f8f7;--map-prompt:#0d9488;--map-correct:#15803d;--map-wrong:#b91c1c;--map-reveal:#ea8c00;--map-dimmed:#cdd8d5;--map-ink:#33474a;--map-indicator:#d62828;--map-indicator-highlight:#f6c445}.map-political svg{fill-rule:evenodd;clip-rule:evenodd}.map-political .display{fill:var(--map-land);pointer-events:none;transition:fill .18s}.map-political .border{fill:none;stroke:var(--map-border);stroke-width:14px;stroke-linejoin:round;pointer-events:none}.map-political .border-dotted{stroke-dasharray:60 90;stroke-width:18px}.map-political .hitbox,.map-political .popup-zone{fill-rule:nonzero}.map-political .hitbox{fill:#0000;stroke:none;pointer-events:all;cursor:pointer}.map-political .indicator{fill:var(--map-indicator);pointer-events:none}.map-political .indicator-highlight{fill:var(--map-indicator-highlight);fill-opacity:0;pointer-events:none;transition:fill-opacity .18s}.map-political .indicator-highlight.is-visible{fill-opacity:.75}.map-political .popup{opacity:0;transition:opacity .15s}.map-political .popup.open{opacity:1}.map-political .popup:not(.open),.map-political .popup:not(.open) *{pointer-events:none}.map-political .popup-background{fill:var(--map-water);stroke:var(--map-ink);stroke-width:34px;pointer-events:all}.map-political .popup-item{fill:var(--map-land);pointer-events:none;transition:fill .18s}.map-political .popup-outline{fill:none;stroke:var(--map-ink);stroke-width:16px;stroke-linejoin:round;pointer-events:none}.map-political .popup-zone{fill:#0000;pointer-events:all}.map-political .display.is-hovered,.map-political .popup-item.is-hovered{fill:var(--map-land-hover)}.map-political .display.is-prompt,.map-political .popup-item.is-prompt{fill:var(--map-prompt)}.map-political .display.is-correct,.map-political .popup-item.is-correct{fill:var(--map-correct)}.map-political .display.is-wrong,.map-political .popup-item.is-wrong{fill:var(--map-wrong)}.map-political .display.is-reveal,.map-political .popup-item.is-reveal{fill:var(--map-reveal)}.map-political .indicator.is-prompt{fill:var(--map-prompt)}.map-political .indicator.is-correct{fill:var(--map-correct)}.map-political .indicator.is-wrong{fill:var(--map-wrong)}.map-political .indicator.is-reveal{fill:var(--map-reveal)}.map-political .indicator-highlight.is-prompt{fill:var(--map-prompt);fill-opacity:.5}.map-political .indicator-highlight.is-correct{fill:var(--map-correct);fill-opacity:.5}.map-political .indicator-highlight.is-wrong{fill:var(--map-wrong);fill-opacity:.5}.map-political .indicator-highlight.is-reveal{fill:var(--map-reveal);fill-opacity:.5}.map-political.is-introducing .display:not(.is-prompt),.map-political.is-introducing .popup-item:not(.is-prompt){fill:var(--map-dimmed)}.map-political.is-introducing .hitbox:not(.is-active),.map-political.is-locked .hitbox{pointer-events:none}.map-political.is-locked .hitbox{cursor:default}
