.voice-board { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--voice-border, #dbe3f1); color: var(--voice-ink, #243656); min-width: 0; }
.voice-board-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 12px; }
.voice-board-heading h3 { margin: 0; font-size: 15px; }
.voice-board-status { color: var(--voice-muted, #63728a); font-size: 12px; }
.voice-board[data-interrupted="true"] .voice-board-status { color: #ad3542; }
.voice-board-content { min-width: 0; overflow: visible; }
.voice-board-navigation { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.voice-board-navigation[hidden], .voice-board-navigation [hidden] { display: none; }
.voice-board-navigation button { min-height: 40px; padding: 7px 11px; border: 1px solid #dbe3f1; border-radius: 8px; color: inherit; background: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.voice-board-navigation button:disabled { opacity: .4; cursor: default; }
.voice-board-navigation button:focus-visible { outline: 3px solid #7196f4; outline-offset: 2px; }
.voice-board-progress { color: var(--voice-muted, #63728a); font-size: 12px; font-variant-numeric: tabular-nums; }
.voice-board-step { margin: 0; padding: 14px 0 18px; border-bottom: 1px solid #edf0f7; min-width: 0; }
.voice-board-step:first-child { padding-top: 0; }
.voice-board-step:last-child { border-bottom: 0; padding-bottom: 0; }
.voice-board-step > [hidden] { display: none !important; }
.voice-board[data-practicing="true"] .voice-board-status { color: #405a7c; }
.voice-board-step h4 { margin: 0 0 8px; font-size: 14px; font-weight: 650; line-height: 1.6; overflow-wrap: anywhere; }
.voice-board-explanation, .voice-board-summary { font-size: 14px; line-height: 1.8; margin: 10px 0; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.voice-board-explanation > .katex, .voice-board-summary > .katex { display: inline-block; max-width: 100%; overflow-x: auto; overflow-y: hidden; vertical-align: middle; }
.voice-board-explanation .katex-display, .voice-board-summary .katex-display { max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.voice-board-details { min-width: 0; margin-top: 10px; border-top: 1px solid #e4eaf4; }
.voice-board-details > summary { min-height: 44px; padding: 11px 2px; font-size: 13px; line-height: 1.7; color: var(--voice-primary, #2454e6); cursor: pointer; }
.voice-board-details > summary:focus-visible { outline: 3px solid #7196f4; outline-offset: 2px; border-radius: 4px; }
.voice-board-details > .voice-board-explanation { margin-top: 0; }
.voice-board-details[open] { padding-bottom: 4px; }
.voice-board-graphic { margin: 0; min-width: 0; }
.voice-board-label-legend { margin: 8px 0 0; padding: 10px 12px; border: 1px solid #dbe3f1; border-radius: 8px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.voice-board-text-notes { margin-top: 0; }
.voice-board-label-legend[hidden], .voice-board[data-practicing="true"] .voice-board-label-legend { display: none !important; }
.voice-board-label-key { margin: 0 0 6px; font-weight: 600; }
.voice-board-label-notes { list-style: none; margin: 0; padding: 0; }
.voice-board-label-notes li { display: flex; gap: 8px; align-items: baseline; margin: 5px 0; }
.voice-board-label-note-number { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.voice-board-label-note-text { min-width: 0; }
.voice-board-label-note-text .katex { display: inline-block; max-width: 100%; overflow-x: auto; vertical-align: middle; }
.voice-board-label-warning { margin: 8px 0 0; color: #ad3542; }
.voice-board-label-note-help { margin: 8px 0 0; color: var(--voice-muted, #63728a); font-size: 12px; }
.voice-board-viewport { position: relative; width: 100%; min-width: 0; background: #fff; overflow: hidden; border-radius: 6px; }
.voice-board-viewport[data-base="blank"] { aspect-ratio: 1080 / 780; background-image: linear-gradient(#edf2fa 1px, transparent 1px); background-size: 100% 28px; }
.voice-board-image { display: block; width: 100%; max-width: none; height: auto; margin: 0; }
.voice-board-viewport > svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: hidden; pointer-events: none; }
.voice-board-viewport[data-failed="true"] > svg { display: none; }
.voice-board-label { position: absolute; max-width: min(60%, 320px); max-height: calc(100% - 16px); overflow: auto; overflow-wrap: anywhere; white-space: pre-wrap; padding: 2px 4px; font-size: 14px; line-height: 1.5; background: #ffffffeb; border-radius: 3px; }
.voice-board-label .katex { font-size: 1.05em; white-space: nowrap; }
.voice-board-label-number { max-width: none; max-height: none; padding: 1px 3px; font-variant-numeric: tabular-nums; }
.voice-board-image-error { padding: 12px; font-size: 13px; color: #ad3542; }
.voice-board-formula { max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 10px 12px; margin-top: 8px; background: #f7f9fd; border-left: 3px solid var(--voice-primary, #2454e6); font-size: 17px; line-height: 1.8; }
.voice-board-formula .katex-display { margin: 0; }
.voice-board-formula-selectable { -webkit-tap-highlight-color: transparent; min-height: 44px; cursor: pointer; border-radius: 0 6px 6px 0; }
.voice-board-formula-selectable:focus-visible { outline: 3px solid #7196f4; outline-offset: 2px; }
.voice-board-formula-selected { background: #eaf0ff; box-shadow: inset 0 0 0 2px var(--voice-primary, #2454e6); }
.voice-board-formula + .voice-board-viewport { margin-top: 12px; }
.voice-board-empty { margin: 10px 0 0; color: var(--voice-muted, #63728a); font-size: 12px; line-height: 1.7; }
.voice-function-figure { margin: 14px 0 0; border: 1px solid #dbe3f1; border-radius: 8px; overflow: hidden; background: #fff; }
.voice-function-example { margin: 0; padding: 10px 12px; background: #f7f9fd; font-size: 14px; line-height: 1.7; }
.voice-function-example span:not(.katex *) { color: var(--voice-muted, #63728a); }
.voice-function-viewport { width: 100%; min-width: 0; overflow: hidden; }
.voice-function-viewport svg { display: block; width: 100%; height: auto; }
.voice-function-legend { padding: 10px 12px; border-top: 1px solid #edf0f7; }
.voice-function-legend-row { display: flex; gap: 10px; align-items: center; margin: 5px 0; min-width: 0; }
.voice-function-swatch { width: 20px; height: 3px; flex: 0 0 20px; border-radius: 2px; }
.voice-function-expression { min-width: 0; overflow-x: auto; padding: 3px 0; font-size: 15px; }
.voice-function-endpoint-key { margin: 8px 0 0; font-size: 12px; color: var(--voice-muted, #63728a); }
.voice-physics-figure { margin: 14px 0 0; border: 1px solid #dbe3f1; border-radius: 8px; overflow: hidden; background: #fff; }
.voice-physics-viewport svg { display: block; width: 100%; height: auto; }
.voice-physics-figure > .voice-board-formula { margin-top: 0; }
.voice-physics-legend { border-top: 1px solid #edf0f7; padding: 10px 12px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.voice-physics-legend p { margin: 4px 0; }
.voice-physics-legend .voice-physics-note { margin-top: 10px; font-size: 12px; color: var(--voice-muted, #63728a); }
.voice-subject-figure { margin: 14px 0 0; border: 1px solid #dbe3f1; border-radius: 8px; overflow: hidden; background: #fff; }
.voice-subject-viewport svg { display: block; width: 100%; height: auto; }
.voice-chemistry-equation { padding: 18px 12px; font-size: 18px; overflow-x: auto; overflow-y: hidden; }
.voice-chemistry-equation .katex-display { margin: 0; }
.voice-chemistry-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 8px; padding: 4px 0; }
.voice-chemistry-term { flex: 0 0 auto; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 3px 4px; }
.voice-subject-legend { border-top: 1px solid #edf0f7; padding: 10px 12px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.voice-subject-legend p { margin: 4px 0; }
.voice-subject-legend .voice-subject-note { margin-top: 10px; font-size: 12px; color: var(--voice-muted, #63728a); }
.voice-board-step > h4 + :is(.voice-function-figure, .voice-physics-figure, .voice-subject-figure, .voice-board-viewport) { margin-top: 0; }
@media (max-width: 600px) { .voice-board-formula { font-size: 16px; padding: 9px; } }

.voice-interactive-context { font-size: 12px; line-height: 1.7; color: var(--voice-muted, #63728a); margin: 8px 0 0; }
