.practice-section{max-width:1160px;margin:0 auto 28px;scroll-margin-top:94px}
#lesson-practice[hidden],.practice-section [hidden]{display:none!important}
.practice-section button,.practice-section input,.practice-section summary{touch-action:manipulation}
.practice-section button,.practice-section summary{min-height:44px}
.practice-section button{border:1px solid #ceded2;border-radius:6px;padding:10px 15px;background:#fffefa;color:#365d4b;font-size:12px;line-height:1.5}
.practice-section button:hover:not(:disabled){background:#e9f3e9;border-color:#8fb7a1}
.practice-section button:disabled{opacity:.45}
.practice-section :is(button,input,select,summary,.practice-full-view):focus-visible{outline:3px solid #4b98b4;outline-offset:3px}
.practice-section input[type=range]{height:44px;background:transparent}
.practice-section input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,#278b77 var(--fill,0%),#e5ecdf var(--fill,0%))}
.practice-section input[type=range]::-webkit-slider-thumb{margin-top:-4.5px}
.practice-section input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(to right,#278b77 var(--fill,0%),#e5ecdf var(--fill,0%))}
.practice-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:7px 0 17px}
.practice-heading .eyebrow{color:#617e65;letter-spacing:1.5px}
.practice-heading h1{margin:5px 0 7px;font:700 26px/1.5 var(--serif);letter-spacing:1px}
.practice-heading p{margin:0;color:#617465;font-size:12px;line-height:1.85}
.practice-heading button{flex-shrink:0}
.practice-progress{margin:0 0 10px;text-align:right;font-size:11px;color:#60775f}
.practice-nav{display:grid;grid-template-columns:repeat(var(--question-count,5),minmax(0,1fr));gap:8px;margin-bottom:18px;padding:3px}
.practice-nav button{display:grid;grid-template-columns:27px minmax(0,1fr);column-gap:9px;row-gap:2px;min-height:76px;padding:12px;text-align:left;position:relative;background:#fafbf7}
.practice-nav button>span{grid-row:1/3;align-self:center;display:grid;place-items:center;width:27px;height:27px;border:1px solid #dce5d7;border-radius:50%;color:#70846d;font:12px var(--number)}
.practice-nav strong{align-self:end;font-weight:500;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.practice-nav small{align-self:start;color:#74836c;font-size:10px}
.practice-nav button[aria-current=step]{border-color:#6da38b;background:#e7f1e8;box-shadow:inset 0 -3px #13766d}
.practice-nav button[aria-current=step] strong{color:#12695c;font-weight:600}
.practice-nav button[aria-current=step]>span{background:var(--teal);border-color:var(--teal);color:#fff}
.practice-card{padding:27px 32px 23px;border-color:#dbe4d6}
.practice-card-heading{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.practice-level{display:inline-block;padding:3px 8px;border:1px solid #dde6d2;border-radius:3px;background:#f4f6ec;color:#627249;font-size:10px;letter-spacing:.5px}
.practice-card-heading h2{margin:9px 0 6px;font:700 23px/1.5 var(--serif);letter-spacing:.5px}
.practice-skill{margin:0;color:#647861;font-size:12px;line-height:1.7}
.practice-prompt{max-width:78ch;color:#2b443a;font-size:14px;line-height:2}
.practice-prompt p{margin:0 0 12px}
.practice-prompt strong{color:#176b59;font-weight:600}
.practice-study-note{margin:0 0 14px;color:#617465;font-size:12px;line-height:1.8}
.practice-question-figure{max-width:700px;margin:20px 0 24px;border:1px solid #dde5d7;border-radius:8px;overflow:hidden;background:#fbfcf8}
.practice-figure-canvas{overflow-x:auto;padding:12px;scrollbar-width:thin}
.practice-figure-canvas:focus-visible{outline:3px solid #4b98b4;outline-offset:-3px}
.practice-figure-canvas svg{display:block;width:100%;height:auto;min-width:460px;font-family:var(--sans)}
.practice-question-figure figcaption{display:flex;gap:10px;align-items:baseline;padding:10px 14px;border-top:1px solid #e5eadd;color:#617458;font-size:12px;line-height:1.8}
.practice-question-figure figcaption>span{flex-shrink:0;color:#26715c;font-size:11px}
@media(max-width:600px){.practice-question-figure figcaption{display:block}.practice-question-figure figcaption>span{margin-right:8px}.practice-figure-canvas::after{content:'左右滑动查看完整题图';display:block;color:#71816b;font-size:11px;margin-top:6px}}
.practice-answer{margin:22px 0 20px;padding:19px 20px 14px;background:#f6f8f1;border:1px solid #e0e8d8;border-radius:8px}
.practice-answer-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px 20px;max-width:760px;margin-bottom:16px}
.practice-answer-fields>label{display:block;min-width:0;font-size:12px;color:#465e4b}
.practice-answer-fields>label>span{display:block;margin-bottom:8px;line-height:1.7}
.practice-answer-fields>label>div{display:flex;align-items:center;gap:9px}
.practice-answer input[type=number]{width:142px;max-width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #bbcdb8;border-radius:5px;background:white;color:#274d3d;font:16px var(--number)}
.practice-answer input[aria-invalid=true]{border-color:#ad6438;background:#fffaf4}
.practice-choice{grid-column:1/-1;min-width:0;border:0;margin:0;padding:0}
.practice-choice legend{margin-bottom:8px;font-size:12px;color:#465e4b;line-height:1.7}
.practice-choice label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;min-height:44px;margin:6px 0;border:1px solid #d6e0ce;border-radius:5px;background:#fffefa;font-size:13px;line-height:1.8;cursor:pointer}
.practice-choice label:has(:checked){border-color:#6da38b;background:#e7f1e8}
.practice-choice input{flex-shrink:0;width:17px;height:17px;margin:4px 0;accent-color:var(--teal)}
.practice-choice label:has([aria-invalid=true]){border-color:#ad6438}
.practice-answer .unit{color:#62765d;font-size:12px;white-space:nowrap}
.practice-answer button[type=submit]{background:var(--teal);border-color:var(--teal);color:#fff;padding-right:21px;padding-left:21px}
.practice-answer button[type=submit]:hover{background:#0c655c;border-color:#0c655c}
.practice-feedback{margin:12px 0 0;min-height:21px;color:#5f735d;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.practice-feedback[data-status=correct],.practice-feedback[data-status=success]{color:#126c50}
.practice-feedback[data-status=incorrect],.practice-feedback[data-status=error]{color:#9b5126}
.practice-card details{margin:10px 0;border:1px solid #e1e7db;border-radius:7px;background:#fffefa}
.practice-card summary{display:list-item;list-style-position:inside;padding:12px 15px;color:#426c54;font-size:12px;font-weight:500;cursor:pointer;line-height:1.7}
.practice-card summary::marker{color:#7c9778;font-size:10px}
.practice-card summary:hover{background:#f1f6ed}
.practice-card details[open]>summary{border-bottom:1px solid #e3eadd;background:#f4f7ee}
.practice-hint>p,.practice-solution>p,.practice-solution>ol{margin:15px 19px;color:#486047;font-size:13px;line-height:1.95}
.practice-solution>ol{padding-left:23px}
.practice-solution li+li{margin-top:10px}
.practice-solution .practice-takeaway{padding:12px 14px;border-left:3px solid #8ead73;background:#f0f5e7;color:#466338}
.practice-model-content{padding:18px 18px 14px;min-width:0}
.practice-model-controls{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.practice-model-controls button{padding:9px 13px;min-width:64px}
.practice-model-controls>label{flex:1;display:flex;align-items:center;gap:10px;min-width:230px;font-size:12px;color:#526b52}
.practice-model-controls input[type=range]{flex:1;min-width:50px;width:auto;min-height:44px;accent-color:var(--teal)}
.practice-model-controls output{min-width:54px;text-align:right;color:#345d48;font:12px var(--number);white-space:nowrap}
.practice-checkpoints{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.practice-checkpoints button{padding:8px 12px;font-size:11px;background:#f5f8ef;color:#4f7053}
.practice-checkpoints button[aria-pressed=true]{background:#e1eee2;border-color:#89ad8a;color:#126958}
.practice-parameter-controls{display:grid;gap:10px;margin-top:14px;padding:13px 15px;border:1px dashed #cadbc8;border-radius:6px;background:#f8faf4}
.practice-parameter-controls label{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:12px;color:#526b52}
.practice-parameter-controls input[type=range]{flex:1;min-width:80px;min-height:44px;accent-color:var(--teal)}
.practice-parameter-controls output{min-width:65px;text-align:right;font:12px var(--number);color:#345d48}
.practice-parameter-controls select{max-width:100%;min-height:44px;border:1px solid #bbcdb8;border-radius:5px;padding:8px;background:#fffefa;color:#335c48;font:inherit}
.practice-model-scene{margin:15px 0 11px;overflow:hidden;border:1px solid #e0e7d8;border-radius:7px;background:#fafcf6}
.practice-view-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:#617458;font-size:11px}
.practice-view-controls>span{margin-right:auto}
.practice-view-controls button{padding:7px 12px}
.practice-model-scene svg{display:block;width:100%;height:auto;max-width:100%;font-family:var(--sans)}
.practice-model-readout{display:flex;flex-wrap:wrap;gap:9px 20px;margin:10px 0;color:#335c48;font-size:12px;line-height:1.8;font-variant-numeric:tabular-nums}
.practice-model-note{margin:9px 0 0;color:#617458;font-size:11px;line-height:1.85}
.practice-full-view{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;color:var(--teal);font-size:12px;text-underline-offset:3px}
.practice-next{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:19px;padding-top:18px;border-top:1px solid var(--line)}
.practice-next small{color:#71816b;font-size:11px;line-height:1.8}
@media(max-width:1100px){
  .practice-card{padding:24px}
  .practice-nav{gap:6px}
  .practice-nav button{padding:11px 9px;column-gap:6px;grid-template-columns:24px minmax(0,1fr)}
  .practice-nav button>span{width:24px;height:24px;font-size:11px}
  .practice-nav strong{font-size:11px}
}
@media(max-width:760px){
  .practice-heading{align-items:flex-start;gap:12px}
  .practice-heading h1{font-size:23px}
  .practice-heading button{padding:9px 11px;font-size:11px}
  .practice-nav{grid-template-columns:repeat(var(--question-count,5),minmax(140px,1fr));overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:3px;padding:4px 4px 10px;margin-right:-4px;margin-left:-4px;scrollbar-width:thin}
  .practice-nav button{scroll-snap-align:start;min-height:70px}
  .practice-card{padding:22px 20px}
  .practice-card-heading h2{font-size:22px}
  .practice-model-content{padding:14px}
  .practice-experiment-scene{overflow-x:auto}
  .practice-experiment-scene svg{min-width:640px}
  .practice-experiment-scene::after{content:'左右滑动查看完整模型图';display:block;padding:8px;font-size:11px;color:#617458}
}
@media(max-width:480px){
  .practice-section{scroll-margin-top:78px}
  .practice-heading{flex-wrap:wrap;margin-bottom:10px}
  .practice-heading h1{font-size:22px}
  .practice-heading button{min-height:44px}
  .practice-progress{font-size:11px}
  .practice-card{padding:19px 15px}
  .practice-card-heading{padding-bottom:14px;margin-bottom:15px}
  .practice-card-heading h2{font-size:20px}
  .practice-prompt{font-size:14px;line-height:1.95}
  .practice-answer{padding:16px 13px 12px;margin-top:18px}
  .practice-answer-fields{grid-template-columns:1fr;gap:15px}
  .practice-answer input[type=number]{width:155px}
  .practice-card summary{padding-right:12px;padding-left:12px}
  .practice-hint>p,.practice-solution>p,.practice-solution>ol{margin:14px;font-size:12px}
  .practice-model-content{padding:11px}
  .practice-model-controls>label{flex-basis:100%;min-width:0;gap:8px}
  .practice-parameter-controls{padding:10px}
  .practice-parameter-controls label>span:first-child{flex-basis:100%}
  .practice-model-readout{gap:5px 12px;font-size:11px}
  .practice-model-scene{margin-left:-6px;margin-right:-6px}
  .practice-model-scene:not(.practice-experiment-scene) svg text{font-size:26px}
  .practice-next{gap:10px}
  .practice-next small{flex-basis:100%;order:3;text-align:center}
}
.practice-lesson-session{scroll-margin-top:94px}
@media(max-width:720px){.practice-lesson-session{scroll-margin-top:132px}}
