.book-foundation-lab{border:1px solid #e0e7d4;background:linear-gradient(145deg,#f5f7eb,#fffefa)}
.book-foundation-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:12px 0;color:#475742}
.book-foundation-controls label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:.875rem;font-weight:800}
.book-foundation-controls select{min-height:44px;max-width:100%;padding:7px 10px;border:1px solid #d5dfc9;border-radius:9px;background:#fff;color:#364635;font:inherit;font-weight:700}
.book-foundation-controls select:focus-visible,.book-foundation-controls input:focus-visible{outline:3px solid #c7d7a9;outline-offset:2px}
.foundation-clock{display:block;width:min(100%,250px);height:auto;margin:12px auto 5px;overflow:visible}
.clock-face-circle{fill:#fffefa;stroke:#d6dfc8;stroke-width:2.5}
.clock-ticks line,.ruler-ticks line{stroke:#82916b;stroke-width:1.5}
.clock-ticks line.is-major,.ruler-ticks line.is-major{stroke:#536648;stroke-width:2.5}
.clock-numbers{fill:#475742;font:700 13px/1 system-ui,sans-serif;text-anchor:middle}
.clock-hand{stroke-linecap:round}
.clock-hour-hand{stroke:#586849;stroke-width:6}
.clock-minute-hand{stroke:#a17746;stroke-width:4}
.clock-hub{fill:#56674b;stroke:#fffefa;stroke-width:1.5}
.foundation-range-label{width:min(100%,440px);justify-content:space-between!important;flex-wrap:wrap}
.foundation-range-label input[type=range]{flex:1 1 210px;min-width:150px;accent-color:#74854f}
.foundation-range-label output{min-width:5.5em;color:#4e6540;font-weight:900;text-align:right}
.foundation-ruler,.foundation-length-bar,.foundation-timeline{display:block;width:min(100%,520px);height:auto;margin:8px auto 0;overflow:visible}
.ruler-highlight{fill:#dfe9c9}
.ruler-edge,.timeline-base{stroke:#74845f;stroke-width:2}
.ruler-ticks text,.foundation-length-bar .ruler-ticks text,.foundation-timeline .ruler-ticks text{fill:#5b694f;font:700 10px system-ui,sans-serif;text-anchor:middle}
.ruler-unit{fill:#67755c;font:700 10px system-ui,sans-serif;text-anchor:end}
.length-bar-outline{fill:#fff;stroke:#8a9874;stroke-width:1.5}
.length-bar-fill{fill:#c9d99e;opacity:.95}
.timeline-base{stroke:#d4dcc7;stroke-width:8;stroke-linecap:round}
.timeline-elapsed{stroke:#87975e;stroke-width:8;stroke-linecap:round}
.timeline-caption{fill:#596b4c;font:700 10px system-ui,sans-serif;text-anchor:middle}
.foundation-money-pieces{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;margin:7px 0}
.foundation-money-piece{display:inline-flex;align-items:center;justify-content:center;min-width:62px;min-height:38px;padding:5px 10px;border:1px solid #c9d5b3;border-radius:11px;background:#fffefa;color:#536543;font-size:.875rem;font-weight:900;box-shadow:0 2px 5px #46533b12}
.foundation-money-piece:nth-child(even){border-radius:50%;min-width:44px;min-height:44px;background:#f8f2df;border-color:#e5d4a9;color:#806d43}
.foundation-money-empty{color:#778273;font-size:.875rem}
.foundation-change-equation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:12px 0;padding:12px;border:1px solid #e6ebdd;border-radius:12px;background:#fffefa;color:#5d6956;font-size:.875rem;font-weight:800}
.foundation-change-equation b{color:#9b8155;font-size:1.1rem}
.foundation-change-equation strong{color:#4d6743}
.book-foundation-lab .book-model-result{min-height:1.8em}
@media(max-width:650px){
  .book-foundation-controls{align-items:stretch;gap:8px;margin:10px 0}
  .book-foundation-controls label{justify-content:space-between;flex:1 1 140px;min-height:48px;padding:0 2px;font-size:.95rem}
  .book-foundation-controls select{min-height:46px;font-size:1rem}
  .foundation-range-label input[type=range]{min-width:130px}
  .foundation-clock{width:min(100%,230px)}
  .foundation-change-equation{gap:6px;padding:10px 7px;font-size:.8125rem}
  .foundation-money-piece{font-size:.95rem}
}
@media(prefers-reduced-motion:reduce){.book-foundation-lab *{scroll-behavior:auto!important;transition:none!important}}

.book-empty[hidden]{display:none!important}

.foundation-equal-groups-visual{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin:12px 0}
.foundation-equal-group,.foundation-division-group{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:9px 6px;border:1px solid #dce4cf;border-radius:11px;background:#fffefa}
.foundation-equal-group>span,.foundation-division-group>b,.foundation-division-leftover>b{color:#596a4e;font-size:.8125rem;font-weight:900;text-align:center}
.foundation-equal-group>div,.foundation-division-group>span,.foundation-division-leftover>span{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;min-height:17px}
.foundation-dot{display:inline-block;width:14px;height:14px;flex:0 0 14px;border:1px solid #75865a;border-radius:50%;background:linear-gradient(145deg,#bdce92,#e0e9c8);box-shadow:0 1px 2px #35452b1a}
.foundation-array-visual{display:grid;grid-template-columns:repeat(var(--foundation-array-columns,4),minmax(18px,1fr));gap:7px;width:min(100%,360px);margin:14px auto;padding:12px;border:1px solid #dce4cf;border-radius:12px;background:#fffefa}
.foundation-array-visual .foundation-dot{width:100%;height:auto;aspect-ratio:1;max-width:32px;justify-self:center}
.foundation-division-visual{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:8px;margin:12px 0}
.foundation-division-group{flex:1 1 84px;max-width:135px}
.foundation-division-leftover{display:flex;min-width:80px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:9px 7px;border:1px dashed #bb9a70;border-radius:11px;background:#fff9ef}
.book-foundation-lab [data-foundation-division-divisor-label]{max-width:9em}
@media(max-width:650px){
  .foundation-equal-groups-visual{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .foundation-equal-group,.foundation-division-group{padding:9px 5px}
  .foundation-array-visual{width:min(100%,300px);gap:6px;padding:10px}
  .foundation-array-visual .foundation-dot{max-width:26px}
  .foundation-division-visual{gap:6px}
  .foundation-division-group{flex-basis:72px}
}

.foundation-fraction-wholes{display:grid;gap:10px;margin:12px 0}
.foundation-fraction-unit{display:grid;grid-template-columns:5.5em minmax(0,1fr);align-items:center;gap:9px;min-width:0}
.foundation-fraction-unit>b{color:#596a4e;font-size:.8125rem;text-align:right}
.foundation-fraction-pieces{display:grid;grid-template-columns:repeat(var(--fraction-parts,4),minmax(0,1fr));gap:3px;min-width:0}
.foundation-fraction-pieces span{height:28px;min-width:0;border:1px solid #cfd8bf;border-radius:4px;background:#fffefa}
.foundation-fraction-pieces span.is-shaded{border-color:#82965a;background:linear-gradient(135deg,#aebe80,#d5dfaa)}
.foundation-fraction-area{display:grid;place-items:center;margin:12px 0}
.foundation-fraction-area-grid{display:grid;grid-template-columns:repeat(var(--fraction-area-columns,3),minmax(0,1fr));grid-template-rows:repeat(var(--fraction-area-rows,4),minmax(24px,1fr));gap:2px;width:min(100%,340px);aspect-ratio:3/2;padding:4px;border:1px solid #bfcbb0;border-radius:10px;background:#fffefa}
.foundation-area-cell{min-width:0;border:1px solid #e0e6d7;border-radius:3px;background:#fffefa}
.foundation-area-cell.is-first-factor{background:#dce8c5}
.foundation-area-cell.is-second-factor{background:#f3e6bf}
.foundation-area-cell.is-overlap{border-color:#71834e;background:linear-gradient(135deg,#9eaf70,#c9d99e)}
@media(max-width:650px){
  .foundation-fraction-unit{grid-template-columns:4.5em minmax(0,1fr);gap:6px}
  .foundation-fraction-unit>b{font-size:.75rem}
  .foundation-fraction-pieces span{height:26px}
  .foundation-fraction-area-grid{width:min(100%,300px);aspect-ratio:4/3}
}
.foundation-pigeonhole-bins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;min-width:0}
.foundation-pigeonhole-bin{min-width:0;padding:12px;border:2px solid #c6d2b5;border-radius:12px;background:#fffefa}
.foundation-pigeonhole-bin>b{display:block;color:#475742;font-size:.875rem}
.foundation-pigeonhole-dots{display:flex;flex-wrap:wrap;gap:5px;min-height:28px;margin-top:8px;align-content:start;color:#617b43}
.foundation-pigeonhole-dots>span{font-size:20px;line-height:24px}
.foundation-pigeonhole-dots>small{font-size:.8125rem;color:#6d7566}
@media(min-width:900px){.foundation-pigeonhole-bins{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Counterexample lab: range checks and evidence are separate, not color-only. */
.foundation-proof-gates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.foundation-proof-gates>div{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px;border:1px solid #c9d3b5;border-radius:12px;background:#fffefa;overflow-wrap:anywhere}
.foundation-proof-gates strong{font-size:14px;color:#455d34}
.foundation-proof-groups{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;min-height:32px}
.foundation-proof-group{display:flex;align-items:center;gap:3px;padding:7px;border:1px solid #829465;border-radius:8px;background:#edf2df}
.foundation-proof-group i{font-size:14px;font-style:normal;color:#4c6337}
.foundation-proof-group.is-remainder{border-style:dashed;background:#fff1df}
.foundation-proof-group small{font-size:12px;margin-left:3px;color:#77572b}
[data-book-model="counterexample-check"] .book-foundation-controls label{min-width:0;max-width:100%}
[data-book-model="counterexample-check"] .book-foundation-controls select{max-width:100%;min-width:0;width:100%;font-size:13px}
@media(max-width:480px){.foundation-proof-gates{grid-template-columns:1fr}[data-book-model="counterexample-check"] .book-foundation-controls{display:grid;grid-template-columns:minmax(0,1fr)}[data-book-model="counterexample-check"] .book-foundation-controls label{flex-wrap:wrap}}

/* Paired-removal lab: labels and removed outlines accompany the colors. */
.foundation-removal-rows{display:grid;gap:10px;margin:14px 0;min-width:0}
.foundation-removal-row{min-width:0;padding:12px;border:1px solid #c9d3b5;border-radius:12px;background:#fffefa}
.foundation-removal-row>b{display:block;font-size:14px;color:#394735}
.foundation-removal-row>div{display:flex;flex-wrap:wrap;gap:7px;min-height:22px;margin-top:8px;align-items:center}
.foundation-bead{display:inline-block;width:20px;height:20px;flex:0 0 20px;box-sizing:border-box;border:2px solid #9b4650;border-radius:50%;background:#c9797d}
.foundation-bead.is-blue{border-color:#386687;background:#77a4c5}
.foundation-bead.is-removed{border-style:dashed;background:transparent;opacity:.65}
[data-book-model="paired-removal"] .book-foundation-controls label{min-width:0;max-width:100%}
[data-book-model="paired-removal"] .book-foundation-controls select{min-width:0;max-width:100%;width:100%;font-size:13px}
.book-deep-references{font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.book-deep-references ul{padding-left:20px}
.book-deep-references a{color:#455d34;text-decoration:underline}
@media(max-width:480px){[data-book-model="paired-removal"] .book-foundation-controls{display:grid;grid-template-columns:minmax(0,1fr)}[data-book-model="paired-removal"] .book-foundation-controls label{flex-wrap:wrap}}
