.formula-options{border:0;padding:0;margin:0;display:grid;gap:7px}.formula-options label{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;font-size:.9rem;line-height:1.6;cursor:pointer;overflow-wrap:anywhere}.formula-options label:has(input:checked){background:#edf5ef;border-color:#a1bda9}.formula-options input{accent-color:var(--green);flex-shrink:0}.answer-heading{margin-top:17px}.view-tip{font-size:.74rem;color:var(--muted);margin-left:auto}.live-graph{border:1px solid var(--line);border-radius:12px;margin-top:15px;padding:10px}.live-graph h3{font-size:.88rem;font-weight:500}.practice-shell{max-width:900px}.practice-intro{padding:22px 25px;margin:18px 0}.practice-intro h1{font:500 1.8rem/1.5 var(--serif)}.practice-intro>p{font-size:.9rem;margin-top:8px}.practice-card{padding:22px 25px;margin:16px 0;scroll-margin-top:16px}.practice-card h2{font:500 1.25rem/1.6 var(--serif);margin-bottom:10px}.practice-card .notes-label{display:block;margin:18px 0 8px;font-size:.9rem}.practice-card textarea{resize:vertical;width:100%;min-height:155px;border:1px solid #c6d9ce;border-radius:10px;background:linear-gradient(transparent 31px,#dde8e0 32px) 0 8px/100% 32px;line-height:32px;padding:8px 12px;font-size:.95rem}.practice-card form{margin-top:16px}.practice-card details{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}.practice-card summary{cursor:pointer;font-size:.9rem}.practice-card .solution p,.practice-card .practice-hints p{font-size:.9rem;margin-top:9px}.practice-card .answer-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.practice-card .answer-field input{width:110px;min-height:44px;text-align:center;font-size:1.1rem;border:1px solid #b8cdbf;border-radius:8px}.practice-card .answer-field [aria-invalid=true]{border-color:#b69351;background:#fff9ea}.practice-card .field-hint{font-size:.82rem}.practice-card .check-feedback{font-size:.9rem;margin-top:10px;color:#8c671c}.practice-card .check-feedback[data-state=right]{color:var(--deep)}.practice-card .earned-medal{margin-top:12px;padding:10px 12px;border:1px solid #e2d0a4;border-radius:12px;background:#fff9e9;color:#84682f;font-size:.87rem}.practice-card .earned-medal span{font-size:1.3rem;margin-right:9px}.practice-card .graph-figure{max-width:600px;margin:12px auto}.practice-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.practice-record-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.practice-record-row a{font-size:.8rem}.question-toc{position:sticky;top:0;z-index:3;background:#f5f8f7ed;backdrop-filter:blur(8px);padding:8px}.question-toc a[data-state=done]{border-color:#a2bca8;background:#e8f2e9}.practice-card .related{font-size:.84rem;margin-top:14px;color:var(--deep);text-decoration:underline;text-underline-offset:4px}.practice-card .card-foot{display:flex;justify-content:space-between;margin-top:18px;font-size:.8rem;color:var(--muted)}.practice-card .explain-answer{padding:8px 12px;border-radius:8px;background:#eef5ef;font-weight:600}.practice-intro .pdf-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}@media(max-width:700px){.view-tip{width:100%;margin:0}.practice-card,.practice-intro{padding:18px 16px}.question-toc{gap:4px}.practice-intro h1{font-size:1.55rem}.practice-card h2{font-size:1.15rem}.practice-card .answer-field input{width:100px}}@media print{.practice-card{border:0;break-inside:avoid}.practice-card form,.practice-card details,.practice-links,.question-toc{display:none}.practice-card textarea{border:1px solid #ccc}.practice-intro .pdf-links{display:none}}

/* Clear lesson choices and quiet progress markers share the chapter palette. */
.practice-toc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.practice-toc-link{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-height:96px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);text-align:left;line-height:1.65;transition:background .15s,border-color .15s}
.practice-toc-link:hover{background:#f0f7f3;border-color:#b5cdbd}
.practice-toc-number{display:grid;place-items:center;align-self:center;width:40px;height:40px;border:1px solid #cbded2;border-radius:50%;background:#f0f6f2;color:var(--deep);font-size:.95rem;font-variant-numeric:tabular-nums}
.practice-toc-title{min-width:0;font-size:1rem;font-weight:500;overflow-wrap:anywhere}
.practice-toc-status{display:block;margin-top:3px;color:var(--muted);font-size:.78rem;font-weight:400}
.practice-toc-link[data-state=done]{border-color:#b2ccb8;background:#f1f7ef}
.practice-toc-link[data-state=done] .practice-toc-number{border-color:#adbf9b;background:#eaf1de;color:#506b3a}
.practice-toc-link[data-state=done] .practice-toc-status{color:var(--deep)}
.practice-toc-note{font-size:.88rem;line-height:1.8;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}
.phase-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;margin:0 0 12px;list-style:none}
.phase-step{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#fffefd;color:var(--muted);text-align:center;line-height:1.5}
.phase-number{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:1px solid #d4e1d8;border-radius:50%;background:#f5f8f5;font-size:.77rem;font-variant-numeric:tabular-nums}
.phase-label{font-size:.84rem;overflow-wrap:anywhere}
.phase-step.active,.phase-step[aria-current=step]{border-color:#9ebea9;background:#edf5ee;color:var(--deep)}
.phase-step.active .phase-number,.phase-step[aria-current=step] .phase-number{border-color:var(--green);background:var(--green);color:white}
.phase-step.done .phase-number{border-color:#b7c8ae;background:#edf3e6;color:#587447}
@media(max-width:700px){.practice-toc-grid{grid-template-columns:1fr;gap:10px;margin-top:15px}.practice-toc-link{min-height:82px;padding:13px 15px;gap:12px}.practice-toc-title{font-size:.96rem}.phase-step{gap:5px;padding:7px 5px}.phase-label{font-size:.78rem}.phase-number{width:22px;height:22px}}
@media print{.phase-track{display:none}.practice-toc-link{break-inside:avoid;box-shadow:none}}

.practice-card .practice-heading{font:500 1.25rem/1.6 var(--serif);margin-bottom:10px}.phase-track{display:flex;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#aac8b6 transparent}.phase-step{flex:0 0 132px;min-width:0}.phase-label{overflow-wrap:anywhere}@media(max-width:700px){.practice-card .practice-heading{font-size:1.15rem}.phase-step{flex-basis:112px}}

.practice-toc-link{grid-template-columns:40px minmax(0,1fr) auto}
