:root{--ink:#183c36;--muted:#536c66;--green:#14664d;--light:#e9f3ec;--line:#ccddd4;--bg:#f3f6ef}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:17px/1.55 system-ui,-apple-system,Segoe UI,Arial,sans-serif}a{color:var(--green)}header{max-width:1200px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-size:24px;font-weight:850;text-decoration:none}header nav{display:flex;align-items:center;gap:20px}main{max-width:1200px;margin:auto;padding:10px 24px 40px}.heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:10px 0 24px}h1{font-size:clamp(26px,3vw,40px);letter-spacing:-1px;line-height:1.15;margin:6px 0 12px}h2{font-size:20px;line-height:1.3;margin:4px 0}.intro{margin:0;color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1px;margin:0;color:var(--green)}.badge{font-size:14px;background:var(--light);border:1px solid var(--line);padding:10px;border-radius:10px;white-space:nowrap}.toolbar{display:grid;grid-template-columns:1fr 1.3fr auto;gap:14px;align-items:end}.toolbar label{font-size:13px;font-weight:750}.modes{display:flex;gap:4px}.modes button[aria-pressed=true]{color:white;background:var(--green)}button,.button{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:700 15px/1.35 system-ui;min-height:44px;padding:10px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.primary{background:var(--green);color:white;border-color:var(--green)}button:hover{filter:brightness(.95)}button:disabled{opacity:.45;cursor:default}input,select,textarea{width:100%;min-width:0;max-width:100%;border:1px solid #a8c2b5;border-radius:8px;background:white;color:var(--ink);padding:10px 12px;font:inherit}select{min-height:44px}input[type=range]{padding:6px 0;accent-color:var(--green)}textarea{resize:vertical}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #db961c;outline-offset:3px}.workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:22px;margin-top:16px;align-items:start}.work-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}.task-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.formula{font-size:clamp(20px,2vw,27px);line-height:1.55;overflow-wrap:anywhere;margin:14px 0 0}.formula sub{font-size:.6em}.step-line{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700}progress{height:6px;width:100%;border:0;accent-color:var(--green);margin:8px 0 18px}.done-step{border-left:3px solid #a3cdb5;background:#f3f8f3;padding:8px 12px;margin:0 0 8px;font-size:14px;overflow-wrap:anywhere}.done-step b{display:block;color:var(--green)}#history:empty{display:none}#current-step label{display:block;font-size:18px;font-weight:650;margin:15px 0 8px}#answer{font-size:22px;min-height:52px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.symbols{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.symbols button{min-width:38px;padding:7px}#feedback{margin-top:14px;font-weight:600;overflow-wrap:anywhere}#feedback.bad{color:#9c342c;background:#fff2ed;border-radius:8px;padding:12px}#feedback.good{color:#14664d}.hint-box{border:1px solid #ead69c;border-radius:10px;background:#fff9e7;margin-top:14px;padding:14px}.hint-box p{margin:0 0 9px}.task-navigation{border-top:1px solid var(--line);margin-top:24px;padding-top:16px;display:flex;gap:12px;justify-content:space-between}aside{display:grid;gap:12px;min-width:0}details,.notes{border:1px solid var(--line);border-radius:12px;background:white;padding:14px 16px;min-width:0}summary{cursor:pointer;font-weight:750;min-height:24px}details p{font-size:15px}#lab label{display:block;font-size:14px;margin-top:12px}#lab svg{margin:12px 0 0}svg{width:100%;display:block;background:#fcfdf9;border:1px solid var(--line);border-radius:8px;touch-action:manipulation}#task-graph{cursor:crosshair}#exercise-graph{margin-bottom:18px}#graph-caption{font-size:13px;margin:5px 0}#lab-facts{font-size:14px}#lab-facts p{margin:8px 0}#notes{margin-top:9px;font-size:16px}.muted,footer{font-size:13px;color:var(--muted)}#mode-note{margin-top:9px}footer{margin-top:24px}#completion{background:var(--light);padding:16px;border-radius:12px;margin-top:15px}[hidden]{display:none!important}.board-mode header,.board-mode .heading,.board-mode footer{display:none}.board-mode main{padding:10px}.board-mode .workspace{margin-top:10px}.board-mode .toolbar{grid-template-columns:1fr 1fr}.board-mode .modes{grid-column:1/-1}.board-mode .work-card{padding:16px}@media(max-width:850px){.workspace{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr 1fr}.modes{grid-column:1/-1}aside{grid-template-columns:1fr 1fr}#lab,.notes{grid-column:1/-1}}@media(max-width:480px){body{font-size:16px}header{padding:12px;gap:9px;align-items:flex-start}.brand{font-size:20px}header nav{gap:8px;flex-wrap:wrap;justify-content:flex-end;font-size:12px}header .button{padding:8px;font-size:12px;min-height:40px}main{padding:5px 12px 24px}.heading{display:block;margin:8px 0 16px}.heading .badge{display:inline-block;margin-top:10px;font-size:12px;padding:5px 8px}.intro{font-size:14px}.toolbar{gap:8px}.toolbar select{font-size:14px;padding:8px}.modes button{flex:1;padding:9px;font-size:14px}.work-card{padding:15px;border-radius:12px}.workspace{gap:12px}.formula{font-size:22px}aside{display:grid;grid-template-columns:1fr}details,.notes{padding:12px}.task-navigation button{font-size:13px;padding:9px}#current-step label{font-size:17px}#condition{margin-top:10px}.task-head{margin-bottom:12px}h2{font-size:18px}}
/* Keep the complete task graph in the first 900px viewport on desktop too. */
#task-graph{width:min(100%,505px);margin-inline:auto}
