.math-visualizer .visualizer-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:24px}.visualizer-controls{display:flex;flex-direction:column;gap:14px}.visualizer-control{display:grid;gap:6px;font-size:.9rem}.visualizer-control>span{font-weight:600}.visualizer-control input,.visualizer-control select,.visualizer-control math-field{width:100%;min-width:0;min-height:44px;box-sizing:border-box;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px;font:inherit}.visualizer-control input[type=range]{padding:0;accent-color:var(--accent)}.visualizer-view{min-width:0}.visualizer-figure{margin:12px 0;width:100%;overflow:hidden}.math-visualizer-svg{display:block;width:100%;height:auto;max-height:460px;color:var(--ink);background:var(--panel)}.math-visualizer-svg text{font:12px var(--ui-font,system-ui);fill:currentColor}.visualizer-grid{stroke:var(--border);stroke-width:1}.visualizer-axis{stroke:currentColor;stroke-width:1.2}.visualizer-curve{fill:none;stroke:currentColor;stroke-width:2.4}.visualizer-line-1{stroke:var(--accent);stroke-dasharray:9 5}.visualizer-line-2{stroke:var(--accent);stroke-dasharray:3 3;stroke-width:3}.visualizer-handle{fill:var(--panel);stroke:var(--accent);stroke-width:3}.visualizer-dot{fill:var(--accent);stroke:var(--ink);stroke-width:1}.visualizer-area,.visualizer-area-alt,.visualizer-corner,.visualizer-base-area{fill:var(--accent);fill-opacity:.16;stroke:currentColor;stroke-width:1}.visualizer-area-alt{fill-opacity:.32;stroke-dasharray:4 3}.visualizer-corner{fill-opacity:.6;stroke-width:2}.visualizer-base-area{fill-opacity:.06}.visualizer-legend,.visualizer-notes{font-size:.86rem;line-height:1.5}.visualizer-formula{overflow:auto;padding:8px 0}.visualizer-chain{font-weight:600;line-height:1.7}.visualizer-links{display:flex;flex-wrap:wrap;gap:8px}.math-visualizer button{min-height:44px}.math-visualizer :focus-visible{outline:3px solid var(--accent);outline-offset:2px}.visualizer-notes table{border-collapse:collapse;width:100%}.visualizer-notes td,.visualizer-notes th{padding:4px;border-bottom:1px solid var(--border);text-align:left}.math-visualizer .science-errors:empty{display:none}
@media(max-width:680px){.math-visualizer .visualizer-layout{grid-template-columns:1fr;gap:12px;padding:12px}.visualizer-view{grid-row:1}.visualizer-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.visualizer-links{grid-column:1/-1}.math-visualizer .science-studio-header,.math-visualizer .science-studio-footer{padding:10px}.math-visualizer .science-studio-footer{flex-wrap:wrap}.math-visualizer .science-status{font-size:.8rem}}

.math-visualizer .math-visualizer-svg{max-height:none}.visualizer-controls>select{min-height:44px;background:var(--panel);color:var(--ink);border:1px solid var(--border);max-width:100%}

@media(max-width:680px){.math-visualizer-svg text{font-size:18px}}

/* Pascal keeps readable, tappable integers; wide rows scroll inside the figure. */
.pascal-figure{overflow:auto;max-height:480px;padding:4px;box-sizing:border-box}
.pascal-triangle{display:flex;flex-direction:column;gap:4px;min-width:max-content}
.pascal-row{display:flex;justify-content:center;gap:4px}
.pascal-row button{flex:0 0 48px;width:48px;min-height:44px;padding:2px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:5px;font:500 16px var(--ui-font,system-ui)}
.pascal-row button[aria-pressed=true]{outline:3px solid var(--accent-ui);outline-offset:-3px;font-weight:800;text-decoration:underline;background:var(--sheet)}
.pascal-expansion{display:flex;align-items:center;gap:5px;overflow-x:auto;white-space:nowrap;padding:8px 3px;font-size:1rem}
.pascal-selected-term{border-bottom:3px solid var(--accent-ui);font-weight:700;padding:3px}

.math-visualizer .science-values:empty{display:none}
/* V208 plane visualizers (matrix, complex): vectors use the curve ink; the product/result uses the accent. */
.visualizer-vector{stroke:currentColor;stroke-width:2.6}
.visualizer-arrowhead{fill:currentColor}
.visualizer-vector.visualizer-vector-result{stroke:var(--accent);stroke-width:3.2}
.visualizer-arrowhead.visualizer-vector-result{fill:var(--accent)}
.visualizer-tick{font-size:10px;fill:currentColor;opacity:.7}
.visualizer-label{font-weight:700;fill:currentColor}
