:root{color-scheme:light dark;--bg:#f5f7f8;--paper:white;--ink:#182e35;--muted:#475e66;--brand:#125c54;--line:#ccd8dd;--wash:#eaf3f0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:1.05rem/1.6 system-ui,sans-serif}header{display:flex;justify-content:space-between;gap:1rem;max-width:1050px;margin:auto;padding:1.2rem}a{color:var(--brand)}header>a:first-child{font-weight:750;text-decoration:none}main{max-width:850px;padding:1rem 1.5rem 4rem;margin:auto}h1{font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.15;letter-spacing:-.025em}h2{font-size:1.4rem;line-height:1.3}h3{font-size:1.12rem}p{max-width:65ch}nav,.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.3rem 0}button,.button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:.65rem 1rem;border-radius:.6rem;min-height:44px;text-decoration:none}button:hover,.button:hover{border-color:var(--brand)}button[aria-current="page"],button.primary{background:var(--brand);color:white;border-color:var(--brand)}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #df8d19;outline-offset:3px}.card{background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:clamp(1rem,3vw,2rem);margin:1rem 0}.eyebrow{font-size:.85rem;color:var(--muted);font-weight:700;letter-spacing:.07em;text-transform:uppercase}.small,footer{font-size:.9rem;color:var(--muted)}footer{max-width:850px;margin:auto;padding:1.5rem}.hint{padding:1rem;background:var(--wash);border-left:4px solid var(--brand);border-radius:.25rem}input[type=text]{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:.4rem;padding:.7rem;display:block;width:min(100%,26rem);margin:.6rem 0}.choice{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem;border:1px solid var(--line);border-radius:.5rem;margin:.5rem 0}.choice input{margin-top:.55rem;accent-color:var(--brand)}ol li{padding:.3rem}table{border-collapse:collapse;width:100%;margin-top:1rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--line)}.plot{display:flex;align-items:end;gap:.3rem;max-width:100%;min-height:130px;margin:1rem 0;padding:.5rem;border-bottom:2px solid var(--line)}.stack{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:end;font-variant-numeric:tabular-nums}.dot{width:14px;height:14px;border-radius:50%;background:var(--brand);margin:2px}.tick{font-size:.9rem}.error{color:#982f21}.skip{position:absolute;top:-100px;left:1rem;padding:.8rem;background:var(--paper);z-index:2}.skip:focus{top:0}summary{cursor:pointer}#feedback:empty,#save-error:empty{display:none}@media(prefers-color-scheme:dark){:root{--bg:#122227;--paper:#1c3036;--ink:#e9f2f4;--muted:#b7cbd1;--brand:#78cbbb;--line:#45616a;--wash:#263f43}button.primary,button[aria-current=page]{color:#122227}.error{color:#ffb2a2}}@media(max-width:480px){header{font-size:.9rem}main{padding:1rem}nav{gap:.35rem}nav button{padding:.5rem .65rem;font-size:.95rem}.card{padding:1rem}}
/* A grouped learning path, with compact cards and one clear next step. */
[hidden]{display:none!important}.learning-header{align-items:center;max-width:1160px;border-bottom:1px solid var(--line);flex-wrap:wrap}.learning-header .brand{font-size:1.12rem;line-height:1.3}.brand span{display:block;font-size:.72rem;font-weight:500;color:var(--muted);margin-top:.3rem}.learning-header nav{margin:0;align-items:center;gap:1.2rem}.learning-header nav>a{font-weight:650;text-decoration:none;padding:.5rem 0}.tools-menu{position:relative}.tools-menu>summary{padding:.5rem;font-weight:650;color:var(--brand)}.tools-menu>div{position:absolute;right:0;top:100%;width:min(290px,80vw);padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:.6rem;z-index:5;box-shadow:0 12px 30px #102c3320}.tools-menu a{display:block;padding:.4rem 0}.library-layout{max-width:1120px}.library-intro{padding:1rem 0 .5rem}.library-intro h1{font-size:clamp(2.2rem,6vw,3.5rem);max-width:15ch;margin:.5rem 0 1rem}.lede{font-size:1.15rem;color:var(--muted)}.next-step{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:var(--wash);border-left:4px solid var(--brand);padding:1.3rem 1.5rem;border-radius:.6rem;margin:1rem 0 2rem}.next-step h2{margin:.25rem 0;font-size:1.3rem}.next-step p{margin:.4rem 0}.next-step .button{white-space:nowrap}.search-row{max-width:600px}.search-row>label,.skill-picker>label{display:block;font-weight:650}input[type=search],select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:.5rem;padding:.75rem;width:100%;margin:.4rem 0;min-height:44px}input[type=search]:focus-visible,select:focus-visible{outline:3px solid #df8d19;outline-offset:3px}.search-row p{margin:.2rem 0}.group-jumps{gap:.5rem 1.2rem;margin:1rem 0 2.5rem;font-size:.9rem}.learning-group{margin:2rem 0 3rem;scroll-margin-top:1.5rem}.group-heading{display:flex;gap:1rem;align-items:flex-start;border-top:1px solid var(--line);padding-top:1.2rem}.group-heading>span{color:var(--brand);font-size:.9rem;font-weight:750;padding-top:.3rem}.group-heading h2{margin:0}.group-heading p{margin:.3rem 0;color:var(--muted)}.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.topic-grid>.card{margin:0}.topic-card{padding:1.4rem;display:flex;flex-direction:column}.topic-card h3{font-size:1.25rem;margin:0 0 .6rem}.topic-card h3 a{text-decoration:none;color:var(--ink)}.topic-card h3 a:hover{text-decoration:underline}.topic-card>p{margin:.3rem 0 .6rem}.topic-card .actions{margin:auto 0 0;padding-top:1rem;align-items:center;gap:.7rem 1rem;font-size:.95rem}.skill-tags{display:flex;gap:.35rem;flex-wrap:wrap;list-style:none;padding:0;margin:.6rem 0 1rem}.skill-tags li{font-size:.78rem;background:var(--wash);border-radius:.3rem;padding:.18rem .5rem;color:var(--muted)}.practice-state{font-size:.85rem;color:var(--muted)}a.primary,.steps-nav a[aria-current=page]{background:var(--brand);color:white;border-color:var(--brand)}.breadcrumbs{font-size:.9rem;margin:.5rem 0 1.5rem}.steps-nav{gap:.4rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.steps-nav a{font-size:.9rem;padding:.5rem .7rem}.steps-nav span{font-size:.75rem;opacity:.8;margin-right:.2rem}.skill-picker{margin:1.2rem 0}.skill-picker select{max-width:28rem}.question-card h2{font-size:1.3rem}.help-zone{border-top:1px solid var(--line);padding-top:.5rem;margin-top:1.5rem}.help-zone h3{font-size:1rem}.help-zone .actions{margin:.5rem 0 1rem}.solution-disclosure{margin:1.2rem 0;color:var(--muted);font-size:.95rem}.solution-disclosure .hint{color:var(--ink)}.hint ol{padding-left:1.3rem}.hint p:first-child{margin-top:0}.card details{padding:.8rem 0;border-bottom:1px solid var(--line)}.button{display:inline-flex;align-items:center;justify-content:center}.hint:focus,main:focus{outline:none}footer{max-width:1120px;border-top:1px solid var(--line)}@media(prefers-color-scheme:dark){a.primary,.steps-nav a[aria-current=page]{color:#122227}}@media(max-width:640px){.topic-grid{grid-template-columns:1fr}.next-step{align-items:flex-start;flex-direction:column;padding:1.2rem}.learning-header{gap:.7rem;padding:1rem}.learning-header nav{gap:1rem}.topic-card{padding:1.2rem}.group-jumps{flex-direction:column;gap:.7rem}.steps-nav a{flex:1 0 auto}.learning-group{margin-bottom:2rem}.tools-menu>div{right:-4rem}.library-intro{padding-top:.5rem}}
@media(max-width:640px){.learning-header{position:relative}.tools-menu{position:static}.tools-menu>div{left:1rem;right:1rem;top:100%;width:auto}}

/* 2026-09-25 learning surface: lesson path, answer key beside each question, charts and TI-84 dock. */
body{font-size:max(1rem,16px)}
.calc-toggle{font-weight:650;color:var(--brand);padding:.5rem .8rem}
.shell{display:grid;grid-template-columns:minmax(0,1fr);max-width:1500px;margin:auto;align-items:start}
.shell>main{width:100%;container-type:inline-size}
body.in-lesson .shell>main{max-width:1000px}
.lesson-nav{padding:1.2rem 1rem 2rem;border-right:1px solid var(--line);position:sticky;top:0;max-height:100vh;overflow-y:auto;font-size:.95rem}
.nav-title{font-size:1rem;margin:.2rem 0 .8rem}
.path,.path ol{list-style:none;padding:0;margin:0}
.path>li{margin:0 0 1rem}
.unit-label{font-size:.8rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem}
.path a{display:block;padding:.45rem .6rem;border-radius:.4rem;text-decoration:none;color:var(--ink);border-left:3px solid transparent}
.path a:hover{background:var(--wash)}
.path a[aria-current=page]{background:var(--wash);border-left-color:var(--brand);font-weight:700}
.nav-meta{display:block;font-size:.8rem;color:var(--muted);font-weight:400}
.lesson-menu{margin:0 0 1rem;border:1px solid var(--line);border-radius:.6rem;background:var(--paper)}
.lesson-menu>summary{padding:.75rem 1rem;font-weight:650;min-height:44px}
.lesson-menu .path{padding:0 .8rem .8rem}
.lesson-menu .path a{min-height:44px}
.builds-on{margin-top:-.4rem}
.reading section{padding:.4rem 0 .6rem;border-bottom:1px solid var(--line)}
.reading section:last-child{border-bottom:0;margin-bottom:1.2rem}
.reading h2{font-size:1.2rem;margin:1rem 0 .3rem}
.worked li{padding:.25rem 0}
.steps-nav{margin:1rem 0 1.4rem}
.steps-nav a{min-height:44px}
/* Question and answer key sit side by side when the content column is wide enough. */
.qa{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);margin:1rem 0}
.qa>.card{margin:0}
@container (min-width:760px){.qa{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.answer-key{position:sticky;top:1rem}}
.question-card h2{font-size:1.25rem;line-height:1.4}
.question-card fieldset{border:0;padding:0;margin:.5rem 0}
.question-card legend{font-weight:650;margin-bottom:.3rem}
.question-card label[for=answer]{font-weight:650}
.feedback{padding:1rem;border-radius:.4rem;margin:.8rem 0;border-left:4px solid var(--brand);background:var(--wash)}
.feedback:empty{display:none}
.feedback.is-incorrect{border-left-color:#b35a00}
.feedback:focus{outline:3px solid #df8d19;outline-offset:2px}
.help-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--line)}
.answer-key{border-top:4px solid var(--brand)}
.answer-key h2{font-size:1.2rem;margin-top:0}
.answer-key h3{font-size:1rem;margin:1rem 0 .3rem}
.key-answer{font-size:1.1rem;padding:.7rem .9rem;background:var(--wash);border-radius:.4rem}
.key-answer span,.key-label{display:inline-block;font-size:.8rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-right:.3rem}
.save-status{padding:.7rem .9rem;border:1px solid var(--line);border-radius:.4rem;margin-top:.5rem}
.save-status p{margin:0 0 .4rem}
.question-nav{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1rem 0}
.quiz-nav ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0 0 .5rem}
.quiz-nav button{min-width:44px;padding:.5rem .7rem}
.quiz-nav button.is-answered{border-color:var(--brand);border-width:2px}
.quiz-nav button[aria-current=step]{background:var(--brand);color:white;border-color:var(--brand)}
.quiz-summary .score{font-size:1.2rem;font-weight:700}
.summary-counts{padding-left:1.2rem}
.quiz-review{padding-left:1.4rem}
.quiz-review summary{padding:.3rem 0}
.status-tag{display:inline-block;font-size:.8rem;font-weight:700;background:var(--wash);border-radius:.3rem;padding:.1rem .45rem;margin-right:.3rem}
.record-list li{padding:.3rem 0}
.data-table{max-width:30rem;margin:1rem 0}
.data-table caption,.chart-figure table caption{text-align:left;font-weight:650;padding-bottom:.3rem}
.data-table td,.data-table th{font-variant-numeric:tabular-nums}
.chart-figure{margin:1rem 0}
.chart-figure figcaption{font-size:.95rem;color:var(--muted);margin-bottom:.4rem}
.chart-row{display:flex;flex-wrap:wrap;gap:1rem}
.chart-row>.chart-wrap{flex:1 1 300px}
.chart-wrap{overflow-x:auto;max-width:520px}
.chart-name{font-weight:700;margin:.2rem 0}
.chart{display:block;width:100%;min-width:300px;height:auto}
.chart text{font:12px system-ui,sans-serif;fill:var(--ink)}
.chart .bar{fill:var(--brand);fill-opacity:.8;stroke:var(--paper);stroke-width:1}
.chart .bar-label{font-weight:700}
.chart .grid line{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--ink);stroke-width:1.2}
.chart .box{fill:var(--wash);stroke:var(--ink);stroke-width:1.5}
.chart .median{stroke:var(--brand);stroke-width:3}
.chart .whisker{stroke:var(--ink);stroke-width:1.5}
.chart .outlier{fill:var(--paper);stroke:var(--ink);stroke-width:1.6}
.chart-figure details{margin-top:.4rem}
kbd{font:inherit;font-size:.85em;border:1px solid var(--line);border-radius:.3rem;padding:0 .3rem;background:var(--wash)}
/* TI-84 dock: a column beside the lesson on wide screens; a full-screen panel on small ones. */
.calc-dock{background:var(--paper);border-left:1px solid var(--line);padding:1rem;width:356px;position:sticky;top:0;max-height:100vh;overflow-y:auto}
.calc-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.calc-head h2{font-size:1.15rem;margin:0}
.calc-head h2:focus{outline:none}
.calc-head button{padding:.45rem .7rem}
#calc-slot{min-height:60px;margin:.6rem 0}
#calc-slot iframe{display:block;border:1px solid var(--line);border-radius:.4rem;max-width:100%;background:#fff}
.ti-guide{margin-top:1rem;border-top:1px solid var(--line);padding-top:.6rem}
.ti-guide summary{font-weight:650;min-height:44px;display:flex;align-items:center}
.ti-guide h3{font-size:1rem;margin:.8rem 0 .3rem}
.ti-guide ol{padding-left:1.2rem;margin:.2rem 0}
.ti-guide dt{font-weight:700;margin-top:.4rem}
.ti-guide dd{margin:0 0 0 1rem}
#ti36-slot iframe{display:block;max-width:100%;border:1px solid var(--line);border-radius:.4rem}
.activity-map{margin:1.5rem 0}.activity-map h2{margin:.2rem 0}.activity-map ol{list-style:none;padding:0;margin:1rem 0 0}.activity-map li{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.75rem;align-items:center;border-top:1px solid var(--line);padding:.75rem 0}.activity-map li a{font-weight:700}.activity-map li p{margin:.1rem 0;color:var(--muted);font-size:.9rem}.activity-number{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--wash);font-weight:750;color:var(--brand)}.activity-map button{font-size:.85rem;padding:.4rem .65rem}.lesson-position{margin:-.4rem 0 .6rem;color:var(--muted);font-size:.9rem}.lesson-guide-button{margin:.2rem 0 1rem;border-color:var(--brand);color:var(--brand);font-weight:700}.model-picker{display:grid;gap:.35rem;border:1px solid var(--line);border-radius:.6rem;margin:1rem 0;padding:.75rem}.model-picker legend,.guide-label{font-weight:700}.model-picker label{display:flex;gap:.4rem;align-items:flex-start;cursor:pointer}.model-picker input{margin-top:.4rem;accent-color:var(--brand)}.calc-dock select{width:100%}.calc-dock #guide-content{border:1px solid var(--line);border-radius:.6rem;padding:.8rem;margin:.6rem 0 1rem}.calc-dock #guide-content h3{margin:.2rem 0}.guide-example,.guide-finish{background:var(--wash);border-radius:.4rem;padding:.6rem}.guide-steps{padding-left:1.4rem}.guide-steps li{margin:.4rem 0}.guide-sources{border-top:1px solid var(--line);padding-top:.7rem}
@media(min-width:761px){body.calc-open .shell{grid-template-columns:minmax(0,1fr) auto}}
@media(min-width:1100px){
 body.in-lesson .shell{grid-template-columns:260px minmax(0,1fr)}
 body.in-lesson.calc-open .shell{grid-template-columns:260px minmax(0,1fr) auto}
 body.in-lesson .lesson-menu{display:none}
 body.in-lesson .shell>main{padding:1rem 2rem 4rem}
}
@media(max-width:1099px){.lesson-nav{display:none!important}}
@media(max-width:760px){
 .calc-dock{position:fixed;inset:0;width:auto;max-height:none;z-index:20;border-left:0;padding:1rem 1rem 3rem}
 #calc-slot iframe{margin:auto}
 .learning-header nav{gap:.4rem 1rem}
 .question-nav>*{flex:1 1 auto}
}
@media(max-width:640px){.activity-map li{grid-template-columns:2rem minmax(0,1fr)}.activity-map li button{grid-column:2;justify-self:start}}
@media(prefers-color-scheme:dark){.quiz-nav button[aria-current=step]{color:#122227}.feedback.is-incorrect{border-left-color:#f0a35a}}

.regression-line{stroke:var(--accent,#2265b5);stroke-width:2.5;stroke-dasharray:6 3}

/* Residual diagrams retain numeric zero and table alternatives at every width. */
.residual-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.residual-panel{min-width:0;margin:0;padding:1rem}.residual-panel .chart-wrap{max-width:none}.residual-figure .chart{min-width:300px}.residual-chart text{font-size:16px}.residual-data-wrap{max-width:100%;overflow-x:auto}.residual-figure details{overflow-x:auto}.residual-zero{stroke-width:1.6}.residual-panel h3{margin-top:0}@media(max-width:760px){.residual-panels{grid-template-columns:1fr}}

.residual-scroll-note{display:none}.residual-figure .chart-wrap:focus-visible{outline:3px solid var(--brand);outline-offset:3px}@media(max-width:760px){.residual-scroll-note{display:block}}
