.blowups-lab { width:100%; min-width:0; color:var(--ink,#20252b); font-family:var(--font-ui,system-ui,sans-serif); letter-spacing:0; }
.blowups-lab *, .blowups-lab *::before, .blowups-lab *::after { box-sizing:border-box; letter-spacing:0; }
.blowups-lab [hidden] { display:none !important; }
.blowups-lab h2 { margin:0; font-size:22px; }
.blowups-lab h3 { margin:0 0 8px; font-size:14px; font-weight:600; }
.blowups-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 16px; margin-bottom:14px; }
.blowups-heading > span { font-size:12px; color:var(--muted,#5b6577); }
.blowups-form { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(190px,2fr) 78px 78px auto; gap:10px; align-items:end; padding-bottom:12px; }
.blowups-field { display:grid; gap:4px; min-width:0; color:var(--muted,#5b6577); font-size:12px; }
.blowups-input { width:100%; min-width:0; min-height:38px; padding:7px 8px; border:1px solid var(--line-2,#bac4cb); border-radius:4px; font:inherit; font-size:14px; color:var(--ink,#20252b); background:var(--surface,#fff); }
.blowups-equation { font-family:var(--font-mono,ui-monospace,monospace); }
.blowups-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:38px; padding:7px 10px; border:1px solid var(--line-2,#bac4cb); border-radius:4px; background:var(--surface,#fff); color:var(--ink,#20252b); cursor:pointer; font:inherit; font-size:13px; }
.blowups-button:hover { background:var(--surface-2,#eef1f3); }
.blowups-button:disabled { opacity:.45; cursor:not-allowed; }
.blowups-button svg { width:17px; height:17px; flex:0 0 17px; }
.blowups-icon { width:38px; height:38px; flex:0 0 38px; padding:4px; }
.blowups-lab :is(button,input,select,summary):focus-visible { outline:2px solid var(--focus,#2a52c4); outline-offset:2px; }
.blowups-book-context { margin:0 0 14px; font-size:12px; line-height:1.6; max-width:110ch; }
.blowups-book-context summary { width:fit-content; cursor:pointer; color:var(--muted,#5b6577); }
.blowups-book-context p { margin:6px 0; }
.blowups-branch-notice { color:var(--ink,#20252b); border-left:2px solid var(--accent,#2a52c4); padding-left:8px; }
.blowups-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; border-block:1px solid var(--line,#d6dce7); padding:10px 0; }
.blowups-toolbar > .blowups-field { min-width:150px; max-width:310px; flex:1; }
.blowups-camera { margin-left:auto; display:flex; gap:5px; }
.blowups-modes { display:inline-flex; border:0; padding:0; margin:0; min-width:0; }
.blowups-modes label { position:relative; }
.blowups-modes input { position:absolute; opacity:0; width:1px; height:1px; }
.blowups-modes span { display:flex; align-items:center; justify-content:center; min-height:38px; padding:7px 12px; border:1px solid var(--line-2,#bac4cb); font-size:13px; cursor:pointer; }
.blowups-modes label:first-child span { border-radius:4px 0 0 4px; }
.blowups-modes label:last-child span { border-radius:0 4px 4px 0; border-left:0; }
.blowups-modes input:checked + span { background:var(--accent-soft,#e3e9fb); color:var(--accent,#2a52c4); }
.blowups-modes input:focus-visible + span { outline:2px solid var(--focus,#2a52c4); outline-offset:2px; }
.blowups-context { padding-top:12px; }
.blowups-math { min-width:0; max-width:100%; overflow-x:auto; overflow-y:hidden; padding:4px 0; font-size:14px; }
.blowups-lab mjx-container { max-width:100%; }
.blowups-note { margin:6px 0 12px; font-size:13px; line-height:1.6; max-width:110ch; }
.blowups-legend { display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12px; margin:10px 0 14px; }
.blowups-legend span::before { content:''; display:inline-block; width:14px; height:3px; margin-right:6px; vertical-align:middle; background:currentColor; }
.blowups-key-curve { color:#13868b; }.blowups-key-exceptional { color:#bf4966; }.blowups-key-old { color:#7a64aa; }.blowups-key-point { color:#b56916; }
.blowups-plots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.blowups-plots[data-count="4"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
.blowups-plot { min-width:0; }
.blowups-plot canvas { display:block; width:100%; aspect-ratio:1; touch-action:none; cursor:crosshair; }
.blowups-plot-caption { min-height:40px; }
.blowups-plot-caption .blowups-math { font-size:12px; }
.blowups-readout { font-size:12px; line-height:1.65; min-height:50px; border-top:1px solid var(--line,#d6dce7); padding:10px 0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.blowups-point-form { display:grid; grid-template-columns:minmax(150px,1fr) minmax(70px,.6fr) minmax(70px,.6fr) auto; gap:8px; align-items:end; padding-bottom:14px; }
.blowups-parameter { border-top:1px solid var(--line,#d6dce7); padding:14px 0; }
.blowups-parameter-row { display:flex; flex-wrap:wrap; align-items:end; gap:10px; }
.blowups-parameter-row > input[type="range"] { min-width:120px; flex:1; align-self:center; accent-color:#13868b; }
.blowups-parameter-row > select { width:170px; }
.blowups-parameter-row > label { width:90px; }
.blowups-exceptional { display:grid; grid-template-columns:180px minmax(0,1fr); gap:20px; align-items:center; border-top:1px solid var(--line,#d6dce7); padding:16px 0; }
.blowups-directions-canvas { display:block; width:180px; aspect-ratio:1; touch-action:none; cursor:crosshair; }
.blowups-direction-figure { position:relative; width:180px; }
.blowups-direction-label { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none; color:var(--muted,#5b6577); font-size:14px; }
.blowups-exceptional-content { min-width:0; }
.blowups-direction-choices { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.blowups-direction-choices button { font-size:12px; }
.blowups-direction-form { display:grid; grid-template-columns:115px minmax(65px,130px) auto; gap:8px; align-items:end; max-width:430px; }
.blowups-algebra { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; border-top:1px solid var(--line,#d6dce7); padding:16px 0; }
.blowups-chart-algebra { min-width:0; }
.blowups-small { margin:5px 0; color:var(--muted,#5b6577); font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.blowups-repeat { padding:14px 0; border-top:1px solid var(--line,#d6dce7); }
.blowups-next { display:grid; grid-template-columns:minmax(130px,1fr) minmax(70px,.65fr) minmax(70px,.65fr) auto auto; gap:8px; align-items:end; }
.blowups-next .blowups-centres { grid-column:1/-1; }
.blowups-next > button:last-of-type { border-color:var(--accent,#2a52c4); color:var(--accent,#2a52c4); }
.blowups-graph { padding:14px 0; border-top:1px solid var(--line,#d6dce7); }
.blowups-graph-status { margin:0 0 6px; font-size:13px; line-height:1.55; padding-left:10px; border-left:3px solid var(--warn,#9a6408); max-width:110ch; }
.blowups-graph-status[data-resolved="true"] { border-left-color:var(--good,#1c7f54); }
.blowups-graph-view { display:block; max-width:100%; min-width:0; height:100px; margin:14px auto 8px; overflow:visible; }
.blowups-graph-edge { stroke:var(--muted,#5b6577); stroke-width:1.5; fill:none; }
.blowups-graph-vertex text { font:13px var(--font-ui,system-ui,sans-serif); fill:var(--ink,#20252b); }
.blowups-graph-new { fill:#bf4966; }.blowups-graph-old { fill:#7a64aa; }
.blowups-graph-arrow line { stroke:#13868b; stroke-width:1.6; }
.blowups-graph-arrowhead, .blowups-graph-arrow-foot { fill:#13868b; }
.blowups-graph-tilde { fill:none; stroke:#13868b; stroke-width:1.2; }
.blowups-graph-arrow text { font:italic 14px var(--font-text,Georgia,serif); fill:#13868b; }
.blowups-graph-arrow text.blowups-graph-count { font:12px var(--font-ui,system-ui,sans-serif); }
.blowups-graph-arrow:not([data-status="normal-crossing"]) line { stroke:var(--point,#c77c05); stroke-dasharray:4 3; }
.blowups-graph-arrow:not([data-status="normal-crossing"]) :is(.blowups-graph-arrowhead,.blowups-graph-arrow-foot) { fill:var(--point,#c77c05); }
.blowups-graph-arrow:not([data-status="normal-crossing"]) .blowups-graph-tilde { stroke:var(--point,#c77c05); }
.blowups-graph-arrow:not([data-status="normal-crossing"]) text { fill:var(--point,#c77c05); }
.blowups-ledger-heading { margin-top:14px !important; }
.blowups-ledger { list-style:none; margin:0 0 8px; padding:0; display:grid; gap:6px; max-width:900px; }
.blowups-ledger-item { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; min-height:44px; padding:5px 6px 5px 12px; border:1px solid var(--line,#d6dce7); border-left:3px solid var(--good,#1c7f54); border-radius:4px; font-size:13px; }
.blowups-ledger-item:not([data-status="normal-crossing"]) { border-left-color:var(--point,#c77c05); }
.blowups-ledger-where { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.blowups-ledger-status { color:var(--muted,#5b6577); font-size:12px; flex:1 1 180px; }
.blowups-ledger-item > button { margin-left:auto; min-height:34px; }
.blowups-ledger-error { margin:0; color:var(--bad,#b43d30); font-size:13px; overflow-wrap:anywhere; }
.blowups-ledger-error:not(:empty) { padding:0 0 10px; }
.blowups-check { margin-top:6px; font-size:13px; }
.blowups-check summary { width:fit-content; cursor:pointer; color:var(--muted,#5b6577); font-size:12px; }
.blowups-check-list .blowups-math { font-size:13px; }
.blowups-resolution { margin:4px 0 0; font-size:13px; }
.blowups-key-ring::before { width:9px !important; height:9px !important; border:2px solid currentColor; border-radius:50%; background:none !important; }
.blowups-key-ring { color:#cd771c; }
.blowups-numerical { margin:0; padding:8px 0; color:var(--muted,#5b6577); font-size:11px; line-height:1.6; max-width:130ch; }
.blowups-error, .blowups-repeat-error { margin:0; color:var(--bad,#b43d30); font-size:13px; overflow-wrap:anywhere; }
.blowups-error:not(:empty), .blowups-repeat-error:not(:empty) { padding:0 0 10px; }
/* The launch row under a Practice question (blowup-items.js) */
.blowup-question-launch { gap:6px 12px; margin:10px 0 2px; }
.blowup-question-launch .small { max-width:60ch; }
@media (max-width:1000px) {
  .blowups-form { grid-template-columns:minmax(130px,1fr) 90px 90px auto; }
  .blowups-equation-field { grid-column:1/-1; grid-row:1; }
  .blowups-plots[data-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .blowups-plots, .blowups-plots[data-count="4"], .blowups-algebra { grid-template-columns:minmax(0,1fr); }
  .blowups-plot { width:100%; max-width:480px; justify-self:center; }
  .blowups-exceptional { grid-template-columns:minmax(0,1fr); gap:8px; }
  .blowups-direction-figure { justify-self:center; }
  .blowups-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blowups-form > .blowups-field:first-child { grid-column:1/-1; }
  .blowups-form > button { grid-column:1/-1; }
  .blowups-point-form, .blowups-next { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blowups-point-form > label:first-child, .blowups-next > label:first-child { grid-column:1/-1; }
  .blowups-point-form > button { grid-column:1/-1; }
  .blowups-next > button:last-of-type { grid-column:2; }
  .blowups-direction-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blowups-direction-form > button { grid-column:1/-1; }
  .blowups-input { font-size:16px; }
  .blowups-modes span { padding:7px 9px; }
}
