:root{color-scheme:light;--ink:#17352f;--muted:#5b716a;--green:#147654;--green-dark:#0d5a3d;--pale:#edf6f0;--line:#dbe5de;--paper:#fff;--bg:#f6f7f2;--blue:#226c9d;--red:#a53931;--amber:#795d16}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:10px;background:var(--green);color:white;padding:10px 17px;min-height:46px;font-weight:650;transition:background .15s}button:hover{background:var(--green-dark)}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #da9b32;outline-offset:3px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.topbar{height:80px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 max(24px,calc((100vw - 1380px)/2));background:#fff}.brand{font-size:24px;font-weight:800;color:var(--green);letter-spacing:-1px}.brand span{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:600}.topbar>a:last-child{font-size:14px}main{max-width:1380px;margin:auto;padding:32px 24px 0}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.8px;color:var(--green);margin:0 0 8px}h1{font-size:40px;letter-spacing:-1.5px;line-height:1.15;margin:0 0 10px}h2{font-size:24px;line-height:1.3;margin:6px 0 13px;letter-spacing:-.4px}.intro{margin:0;color:var(--muted);font-size:16px}.secondary{color:var(--ink);background:#fff;border-color:var(--line)}.secondary:hover{background:var(--pale)}#diagnose{text-align:left;font-size:14px;min-width:195px}#diagnose span{display:block;font-size:12px;color:var(--muted);font-weight:400}.families{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.families button{border-color:var(--line);background:transparent;color:var(--muted);font-size:14px;padding:12px 8px}.families button.active{background:var(--ink);border-color:var(--ink);color:white}.families .family-count{font-size:11px;display:block;opacity:.8}.toolbar{display:flex;align-items:end;gap:18px}.task-select{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;flex:1}.task-select select{display:block;margin-top:5px;width:100%;padding:11px 34px 11px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;font-size:15px;letter-spacing:0}.modes{display:flex;border:1px solid var(--line);padding:4px;border-radius:12px;background:#eaf0e9}.modes button{font-size:13px;min-height:38px;padding:7px 14px;background:transparent;color:var(--muted)}.modes button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 1px 5px #17352f12}.toolbar>.secondary{font-size:14px}.mode-note{font-size:12px;color:var(--muted);min-height:19px;margin:12px 0 18px}.workspace{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:22px;align-items:start}.graph-card,.work-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.graph-card{position:sticky;top:18px;padding:20px 18px}.function-head{display:flex;align-items:center;gap:18px;min-height:80px;border-bottom:1px solid var(--line);padding-bottom:16px}.badge{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}.formula{font-family:"Cambria Math",Cambria,Georgia,serif;font-size:30px;line-height:1.55;overflow-wrap:anywhere}.formula sup{font-size:.62em}.formula sub{font-size:.6em}.frac{display:inline-flex;vertical-align:middle;flex-direction:column;align-items:center;line-height:1.15;font-size:.8em;margin:0 .16em}.frac>span:first-child{border-bottom:1px solid currentColor;padding:0 .2em .07em}.frac>span:last-child{padding:.07em .2em 0}.sqrt{display:inline-flex;align-items:stretch}.radical{font-size:1.08em}.radicand{border-top:1px solid currentColor;padding:0 .09em}.piecewise,.cases{display:inline-table;border-left:2px solid currentColor;border-radius:10px;padding-left:12px;font-size:.75em;vertical-align:middle}.piecewise>div,.cases>div{display:flex;gap:25px;align-items:center}.case-condition{font-family:system-ui,sans-serif;font-size:.68em}#graph{display:block;width:100%;height:auto;margin:12px 0 0;touch-action:manipulation}#graph.place-active{cursor:crosshair}.graph-caption{font-size:13px;color:var(--muted);background:var(--bg);border-radius:9px;padding:10px 13px;margin:8px 0 14px}.reference{border-top:1px solid var(--line);padding-top:12px;font-size:13px;color:var(--muted)}summary{cursor:pointer;font-weight:650;color:var(--ink)}.reference p{margin:10px 0}code{font-size:13px;white-space:nowrap;background:#eff3ef;padding:2px 4px;border-radius:4px}.work-card{padding:24px}.work-heading{display:flex;justify-content:space-between;gap:10px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:750;color:var(--muted)}.assistance{font-size:10px;color:var(--amber)}.progress-track{height:4px;background:var(--pale);margin:12px 0 24px;border-radius:3px}.progress-track>div{height:100%;background:var(--green);border-radius:3px;transition:width .2s}.history{display:grid;gap:8px}.done-step{border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;padding:9px 12px;font-size:13px;background:#f8fbf8}.done-step b{display:block;color:var(--green);font-size:11px}.done-step span{overflow-wrap:anywhere}.history:not(:empty){margin-bottom:24px}#current-step>p{font-size:14px;color:var(--muted);margin:6px 0 20px}.answer-field{display:block;font-size:14px;font-weight:650;margin:14px 0}.answer-field input,.answer-field select{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #becfc5;border-radius:8px;font-weight:400;color:var(--ink);background:#fff;font-size:18px}.answer-field small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:6px}.symbol-pad{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 17px}.symbol-pad button{background:var(--bg);color:var(--ink);border-color:var(--line);min-height:32px;padding:3px 10px;font:16px Georgia,serif}.step-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.step-actions>button:first-child{flex:1}.step-actions .secondary{font-size:13px;flex:0 1 auto}.status{padding:12px 14px;margin:16px 0;border-radius:9px;font-size:14px;border:1px solid var(--line)}.status.good{color:#155b40;background:#eaf6ed;border-color:#c3ddca}.status.bad{color:#87332d;background:#fff0eb;border-color:#e7c3b7}.hint-box{background:#fff9e9;border:1px solid #e8d8a5;border-radius:10px;margin-top:15px;padding:14px;font-size:14px;color:#614f26}.hint-box p{margin:8px 0}.hint-box button{background:#fff;color:#614f26;border:1px solid #e8d8a5;font-size:12px;min-height:34px;padding:5px 10px}.hint-header{display:flex;justify-content:space-between;align-items:center;font-weight:750;font-size:12px}.points-table{width:100%;border-collapse:collapse;font-size:16px}.points-table th{text-align:left;font-size:12px;color:var(--muted);font-weight:650;padding:9px;background:var(--bg)}.points-table td{border-bottom:1px solid var(--line);padding:9px}.points-table input{width:100%;min-width:65px;max-width:140px;border:1px solid #becfc5;border-radius:7px;padding:7px 10px;font-size:17px}.points-table td:first-child{font-family:Cambria,Georgia,serif}.points-table .row-status{font-size:11px}.invalid{border-color:var(--red)!important;background:#fff5ef!important}.valid{border-color:var(--green)!important;background:#f2faf4!important}.point-controls:empty{display:none}.point-controls{border-top:1px solid var(--line);padding-top:12px}.point-controls label{font-size:12px}.point-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:9px}.point-row input{width:100%;padding:8px;border:1px solid #bdcec3;border-radius:7px;margin-top:3px}.point-row button{font-size:12px;padding:8px 10px}.point-target{font-size:14px;margin:0 0 10px}.course-tools{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.course-tools>details{border:1px solid var(--line);border-radius:12px;background:white;padding:17px;font-size:14px}.course-tools summary{font-size:15px}.course-tools p{font-size:13px}.muted{color:var(--muted)}.progress-list{padding:0;list-style:none}.progress-list li{padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}.score{font-size:30px;color:var(--green);font-weight:800}.summary-list{padding:0;list-style:none;font-size:14px}.summary-list li{border-bottom:1px solid var(--line);padding:9px 0}.summary-list b{display:block;font-size:11px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:21px 0;margin-top:20px;display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted)}dialog{width:min(640px,calc(100% - 28px));max-height:90vh;border:1px solid var(--line);border-radius:20px;padding:27px;color:var(--ink);background:#fff}dialog::backdrop{background:#102f285c;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;gap:16px;align-items:start}.icon{background:transparent;color:var(--ink);font-size:27px;min-height:36px;padding:0 10px}.icon:hover{background:var(--pale)}.diagnostic-options{display:grid;gap:9px}.diagnostic-options button{text-align:left;background:var(--bg);color:var(--ink);border-color:var(--line);font-size:15px;font-weight:500}.diagnostic-options button:hover{background:var(--pale)}.diagnostic-count{font-size:12px;color:var(--muted)}.diag-question{font-size:19px;margin:14px 0 20px}.noscript{margin:20px;padding:20px;border:1px solid #c55;background:#fee}#reset-progress{font-size:12px;min-height:35px;padding:6px 11px}.storage-warning{color:var(--amber);font-weight:600}button.text-button{border:0;background:transparent;color:var(--green);padding:0 4px;min-height:30px;font-size:13px}.point-progress{font-size:12px;color:var(--muted)}
@media(min-width:1450px){main{padding-top:38px}.workspace{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}@media(max-width:980px){h1{font-size:33px}.workspace{gap:14px}.graph-card{padding:15px 10px}.work-card{padding:18px}.toolbar{gap:9px}.toolbar>.secondary{font-size:12px}.formula{font-size:25px}.modes button{padding:7px 10px}.families button{font-size:12px}}@media(max-width:760px){main{padding:23px 14px 0}.topbar{height:65px;padding:0 16px}.brand{font-size:21px}.heading{align-items:start}.heading #diagnose{min-width:0;padding:8px 10px;font-size:11px;max-width:115px}.heading #diagnose span{font-size:10px}h1{font-size:29px}.eyebrow{font-size:8px;letter-spacing:1px}.intro{font-size:13px}.families{gap:5px}.families button{font-size:10px;line-height:1.35;border-radius:8px;min-height:60px;padding:7px 3px}.families .family-count{font-size:9px;margin-top:3px}.toolbar{flex-wrap:wrap}.task-select{flex-basis:100%}.modes{flex:1}.modes button{flex:1}.toolbar>.secondary{padding:8px 10px}.workspace{grid-template-columns:1fr}.graph-card{position:static}.function-head{min-height:65px}.formula{font-size:29px}.graph-card #graph{max-height:350px}.graph-caption{font-size:12px}.reference{font-size:12px}.work-card{padding:21px 17px}.course-tools{grid-template-columns:1fr;gap:10px}footer{flex-wrap:wrap;font-size:10px}.point-row{grid-template-columns:1fr 1fr auto}h2{font-size:22px}dialog{padding:20px}.work-heading{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.piecewise{display:inline-flex;align-items:center;border:0;border-radius:0;padding-left:0;font-size:1em;gap:7px}.piecewise>.cases{display:inline-grid;gap:8px;font-size:.76em;border-left:2px solid currentColor;border-radius:13px;padding-left:13px}.cases>.case{display:grid;grid-template-columns:minmax(70px,1fr) auto;gap:14px;align-items:center}.case>span:last-child{font:0.7em/1.4 system-ui,sans-serif;white-space:nowrap}

/* Board sessions share only the current exercise, never personal browser results. */
.college-board-mode #progress-panel,.college-board-mode #open-board,.college-board-mode footer a,.college-board-mode .topbar>a:not(.brand){display:none}
.college-board-mode .topbar .brand{cursor:default}
.topbar #open-board{margin-left:auto;margin-right:24px}
@media(max-width:650px){.topbar{height:auto;min-height:65px;flex-wrap:wrap;gap:8px;padding-top:12px;padding-bottom:12px}.topbar #open-board{order:3;flex-basis:100%;margin:0;text-align:right;font-size:12px}}
