:root{--ink:#21313e;--muted:#5a6976;--blue:#2859a5;--green:#477d69;--line:#dce3e8;--paper:#fff;--bg:#f6f4ef}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.6 "Times New Roman",Times,serif}a{color:var(--blue)}button,input,select,textarea{font:inherit}button,.button{background:white;border:1px solid #b7c5d0;color:var(--blue);padding:7px 13px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#edf3fa}button:disabled{opacity:.45;cursor:default}.primary,.tabs .active{background:var(--blue);color:white}header,main,footer{max-width:1260px;margin:auto;padding:24px}header nav{display:flex;gap:9px;align-items:center;flex-wrap:wrap}#profile{margin-left:auto}.eyebrow{font:700 12px/1.5 Arial,sans-serif;letter-spacing:2px;color:var(--green);margin-top:30px}h1{font-size:48px;line-height:1.15;margin:10px 0}h2{font-size:30px;line-height:1.2}h3{line-height:1.3}.lead{color:var(--muted);max-width:740px}.overview,.stats{display:flex;gap:12px;flex-wrap:wrap}.overview span,.stats span{padding:7px 13px;border:1px solid var(--line);border-radius:30px;background:white;font-size:15px}main{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;padding-top:0}aside{align-self:start;position:sticky;top:15px;max-height:85vh;overflow:auto;background:white;border:1px solid var(--line);border-radius:12px;padding:12px}aside button{display:block;width:100%;text-align:left;margin:4px 0;border-color:transparent;font-size:16px}aside .active{background:#e8f0f8;border-color:#b9cce1}.chapter-progress{font-size:13px;color:var(--muted);display:block}article{min-width:0}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.tabs button{font-size:16px}.panel,.problem-card{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:23px;margin:16px 0;min-width:0}.section-picker{width:100%;padding:10px;background:white;border:1px solid #b7c5d0;border-radius:7px}.concept{border-left:4px solid var(--green);padding:3px 20px;background:#f2f8f5;margin:20px 0}.concept h3{margin:14px 0 4px}.source,.muted,small{color:var(--muted)}.source,small{font-size:14px}.visual{background:#f8fbfd;border:1px solid #dbe6ef;border-radius:12px;padding:18px;margin:20px 0}.visual-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.visual-head h3{margin:0}.visual-head span{font-size:13px;color:var(--muted)}.visual-stage svg{display:block;width:100%;height:auto;margin:15px auto;background:white;border-radius:8px}.visual-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.visual-controls label{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.visual-controls input{min-width:140px;flex:1}.visual-caption{font-size:16px;min-height:3.2em}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.problem-card{margin:0;padding:18px;display:flex;flex-direction:column;gap:10px}.problem-card h3{margin:0;font-size:20px}.problem-card p{font-size:16px;margin:0;color:var(--muted)}.problem-card button{align-self:flex-start;margin-top:auto}.complete{color:#276440}.notice{padding:13px 17px;border-left:4px solid #b88726;background:#fff7e4;font-size:16px}.answer{width:100%;padding:11px;border:1px solid #a8b7c3;border-radius:7px;margin:12px 0}textarea.answer{min-height:130px}.choices{display:grid;gap:9px;margin:20px 0}.choice{text-align:left;display:flex;align-items:baseline;gap:14px;width:100%;color:var(--ink);padding:12px 16px}.choice .letter{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;height:28px;border:1px solid currentColor;border-radius:50%}.choice.selected{background:#e9f1fa;border-color:var(--blue)}.choice.correct{background:#edf7ef;border-color:#43945b}.feedback{padding:13px 17px;background:#edf5ee;margin:15px 0}.feedback.wrong{background:#fff1e9}.solution{border-top:1px solid var(--line);padding-top:15px;margin-top:20px}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.katex-display{overflow-x:auto;overflow-y:hidden;padding:5px 0}.math-warning{color:#8a4f11;background:#fff5e3;font-family:monospace;font-size:14px}.prose{overflow-wrap:anywhere}.prose p{white-space:pre-wrap}.prose table{border-collapse:collapse;max-width:100%}.prose th,.prose td{border:1px solid #aaa;padding:6px}.tablewrap{overflow:auto}dialog{width:min(900px,95vw);max-height:93vh;border:1px solid #b8c6d0;border-radius:12px;padding:28px;color:var(--ink);background:white;overflow:auto}dialog::backdrop{background:#1a2a3b88}.close{position:sticky;top:0;float:right;z-index:2;font-size:24px;padding:0 10px}.question-head{padding-right:40px}.question-meta{color:var(--muted);font-size:14px}.test-nav{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.test-nav button{min-width:36px;padding:4px}.test-nav .answered{background:#e2efe6}.test-nav .current{border:2px solid var(--blue)}.timer{font-variant-numeric:tabular-nums;font-weight:bold;color:var(--blue)}progress{width:100%;height:10px}footer{font-size:14px;color:var(--muted);border-top:1px solid var(--line)}@media(max-width:760px){header,main,footer{padding:16px}h1{font-size:36px}main{grid-template-columns:1fr;gap:8px}aside{position:static;max-height:180px}aside button{padding:5px}.panel{padding:17px}.visual{padding:12px}.visual-head{display:block}.grid{grid-template-columns:1fr}dialog{padding:18px}.tabs{gap:5px}.tabs button{padding:6px 9px;font-size:15px}.overview{gap:5px}.overview span{font-size:13px;padding:5px 9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.book-diagram svg{display:block;width:100%;max-width:600px;height:auto;margin:20px auto}.choice>span:last-child{min-width:0;overflow-x:auto}.prose .katex{white-space:nowrap}

.lesson-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:12px;align-items:start}.lesson-complete{padding:6px;width:44px;height:44px;display:grid;place-items:center;background:transparent;border-color:transparent;color:#6b7d8c}.lesson-complete svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.lesson-complete:hover{color:#2859a5;background:#edf3fa}.lesson-complete.is-complete{color:#fff;background:#477d69;border-color:#477d69}.lesson-complete:focus-visible{outline:3px solid #7aa2df;outline-offset:2px}

.visual-equation{font-size:18px;min-height:55px}.visual-equation .katex-display{margin:6px 0}.visual-stage{min-width:0}.practice-location{font-size:14px}.visual-controls button{font-size:15px}

/* A single reading path, rather than a dashboard of unrelated activities. */
#tabs{display:block}.path-context{margin:6px 0;color:var(--muted);font-size:16px}.learning-stages{display:flex;flex-wrap:wrap;gap:12px 28px;padding:0;list-style-position:inside;color:var(--muted);font-size:16px}.learning-stages li{padding:7px 0;border-bottom:2px solid transparent}.learning-stages [aria-current]{color:var(--blue);border-color:var(--blue);font-weight:bold}.path-actions{justify-content:space-between;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.section-navigation{font-size:15px}.worked-steps{padding-left:28px}.worked-steps>li{padding:5px 12px 5px 8px;border-bottom:1px solid var(--line);margin:12px 0}.worked-steps>li::marker{font-weight:bold;color:var(--green)}.worked-steps p{margin:8px 0}#worked-example{margin:24px 0;border-top:1px solid var(--line);padding-top:12px}.section-navigation button{background:transparent}.path-actions button{max-width:100%}

.concept h4{font-size:17px;margin:24px 0 5px;color:var(--green)}.concept h4+p{margin-top:5px}.concept .prose p{margin-top:8px}

.concept table{border-collapse:collapse;width:100%;font-size:16px}.concept th,.concept td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left}.visual-controls output{min-width:40px}.visual-controls label{min-width:0}
.prose p>.katex{display:inline-block;overflow:visible;vertical-align:baseline;padding:.15em 0}.prose .katex{overflow-wrap:normal;word-break:normal}.katex-display{padding:.35em 0}.concept{min-width:0}.worked-steps{min-width:0}

.reward-status{font-size:14px;margin:12px 0}.reward-badges{display:flex;flex-wrap:wrap;gap:7px}.reward-badges span{padding:5px 10px;border:1px solid var(--line);border-radius:20px;background:white}.reward-badges .earned{color:#6b4e00;background:#fff3d6;border-color:#e3c770}.reward-status details{margin:10px 0;max-width:750px}.reward-status summary{cursor:pointer;color:var(--blue)}.reward-status li{margin:7px 0}.reward-status p{margin:10px 0}#reward-chip{margin-left:auto}#profile{margin-left:0}.ach-pn{font-family:Arial,sans-serif}.ach-pn small{color:inherit}

@media(max-width:760px){.visual-controls label{flex:0 0 100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.visual-controls label input{grid-column:1;width:100%;min-width:0}.visual-controls label output{grid-column:2}.visual-controls button{font-size:14px;padding:6px 9px}}

.variable-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:16px 0}.variable-control{display:grid;grid-template-columns:minmax(0,1fr) 82px;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:white}.variable-control.is-active{border-color:var(--blue);background:#edf4fb}.variable-control label{grid-column:1/-1;font-size:16px;cursor:pointer}.variable-control input[type=range]{width:100%;min-width:0}.variable-control input[type=number]{width:82px;min-width:0;font-size:16px;padding:4px;border:1px solid #b7c5d0;border-radius:5px}.variable-control small{grid-column:1/-1;font-size:12px}.visual-stage [data-variable]:focus{outline:2px solid #d08434}.visual-controls [data-active]{display:block;flex-basis:100%}#triple-limit{width:100px;padding:5px}.tablewrap button{font-size:14px;padding:5px 8px}@media(max-width:760px){.variable-controls{grid-template-columns:1fr}.variable-control{grid-template-columns:minmax(0,1fr) 82px}}

/* Long algebraic expressions remain readable without widening the page. */
.prose p>.katex{max-width:100%;overflow-x:auto;overflow-y:hidden}.model-result{min-width:0}.model-result table{width:100%;border-collapse:collapse}.model-result th,.model-result td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line)}.visual>label{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.visual>label input{min-width:0;max-width:100%}.visual>label output{min-width:36px}.model-result .katex-display{max-width:100%}
.precalculus-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.precalculus-controls label{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:8px;font-size:16px}.precalculus-controls input[type=range]{grid-column:1;width:100%;min-width:0}.precalculus-controls input[type=number]{grid-column:2;width:90px;min-width:0}.precalculus-controls select{grid-column:1/-1;width:100%;min-width:0}.visual [data-picture] svg,.visual>svg{display:block;width:100%;height:auto;margin-top:16px}.visual [data-description]{font-size:16px;overflow-wrap:anywhere}@media(max-width:760px){.precalculus-controls{grid-template-columns:1fr}}
.prose p>.katex{padding-right:.18em}


/* Inline math must flow with text, never create a tiny scroll box. */
.prose p>.katex{display:inline;max-width:none;overflow:visible;vertical-align:baseline;padding:0 .12em 0 0;white-space:normal}
.prose p>.katex>.katex-html{white-space:normal}
.prose .katex .base{white-space:nowrap}
.katex-display{padding:.4em .2em;max-width:100%;box-sizing:border-box}
.katex-display>.katex,.katex-display>.katex>.katex-html{white-space:normal}
.choice>span:last-child{overflow:visible;overflow-wrap:anywhere}
/* Only a formula wider than its entire paragraph becomes a scrollable block. */
.prose p>.katex.math-wide{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.4em .2em;white-space:nowrap}
.prose p>.katex.math-wide>.katex-html{white-space:nowrap}
.book-diagram{max-width:100%;overflow-x:auto}
.visual .concept>label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:9px 0;min-width:0}.visual .concept>label select{max-width:100%;min-width:0}.visual .concept>label input{max-width:100%;min-width:0}.visual .concept>label input[type=number]{width:108px}.visual .concept>label input[type=range]{flex:1;min-width:100px}@media(max-width:760px){.visual .concept>label{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.visual .concept>label select,.visual .concept>label input[type=range]{width:100%}}

/* Honor hidden native controls. */
.visual .concept>label[hidden]{display:none}
/* Visible lesson navigation. */
.learning-stages a{display:inline-block;padding:8px 4px;min-height:44px;box-sizing:border-box;color:inherit}.learning-stages a:focus-visible{outline:3px solid #bd7027;outline-offset:3px}#tabs{scroll-margin-top:12px}.lesson-panel>#visual{margin:12px 0 28px}.lesson-panel>.book-diagram{max-width:100%;overflow:auto}

/* Explanatory storyboard controls. */
.v2-story-viewport{max-width:100%;overflow:auto}.v2-story-viewport.v2-fit svg{min-width:0!important}.v2-pan-hint{display:none}.v2-story-formula{padding:10px;background:#edf4fb;overflow-wrap:anywhere}@media(max-width:600px){.v2-story-viewport svg{min-width:480px;max-width:none!important}.v2-pan-hint{display:block;font-size:14px}.v2-story-viewport{border:1px solid #c4d5e5;border-radius:8px}}.v2-story-controls{margin:16px 0;padding:14px;background:#fff;border:1px solid #c9d8e7;border-radius:10px}.v2-prediction{font-weight:600;color:#234c72}.v2-story-buttons{display:flex;flex-wrap:wrap;gap:8px}.v2-story-buttons button{min-height:44px;padding:8px 12px;font-size:16px}.v2-story-buttons button:focus-visible,[data-story-pick]:focus{outline:3px solid #bd7027;outline-offset:3px}.v2-exact{margin-top:14px}.source-comparison summary{min-height:44px;padding:10px 0;cursor:pointer}.v2-exact summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:600}.v2-story-controls [data-story-caption]{margin-bottom:0;line-height:1.55}@media(prefers-reduced-motion:reduce){.v2-story-controls *{animation:none!important;transition:none!important}}

/* Lesson playback */
.lesson-playback{border:1px solid #a9c7da;border-radius:10px;background:#edf5fb;padding:12px;margin:0 0 16px}.lesson-playback .actions{display:flex;flex-wrap:wrap;gap:8px}.lesson-playback label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.lesson-playback p{margin:.6em 0 0;font-size:.95rem}.visual select{max-width:100%;min-width:0}.visual label{max-width:100%;overflow-wrap:anywhere}.learning-stages a{display:inline-block;padding:8px 4px;min-height:44px;box-sizing:border-box;color:inherit}#tabs{scroll-margin-top:12px}.lesson-panel>#visual{margin:12px 0 28px}

/* Wrap visual explanations */
.visual p{overflow-wrap:anywhere}

/* Keep numeric diagram entries readable instead of shrinking them on phones. */
.book11-readable-diagram{max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #c4d5e5;border-radius:8px;margin:12px 0;overscroll-behavior-x:contain}
.book11-readable-diagram>svg{display:block;min-width:var(--book11-table-width,783px);max-width:none!important;width:100%!important;height:auto}
.book11-readable-diagram.book11-diagram-fit>svg{min-width:0}
.book11-readable-diagram:focus-visible{outline:3px solid #bd7027;outline-offset:2px}
.book11-diagram-tools{margin:12px 0 0}.book11-diagram-tools p{font-size:14px;margin:6px 0}.book11-diagram-tools button{min-height:44px}

.qualified-exercise,.qualified-solution{border-left:4px solid #4a789a;padding:4px 14px;margin:16px 0;background:#f2f7fb}.source-comparison{margin:12px 0;padding:10px;border:1px solid #c9d6df;border-radius:6px}.source-comparison summary{cursor:pointer;min-height:44px;font-weight:600}.reviewed-conclusion{padding:10px;background:#f5f1e7;border-left:4px solid #9c743a}

.original-exercise .book-diagram svg,.source-comparison .book-diagram svg{min-width:440px}

.errata-diagram svg{min-width:500px}.errata-diagram:focus-visible,.source-comparison .book-diagram:focus-visible{outline:3px solid #bd7027;outline-offset:2px}@media(max-width:600px){.errata-diagram::after,.source-comparison .book-diagram::after{content:"Swipe sideways, or focus the diagram and use arrow keys, to read all labels.";display:block;font-size:14px;color:#5a6976}}
