@font-face{font-family:Libre Franklin;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/libre-franklin-300.woff2)format("woff2")}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/libre-franklin-400.woff2)format("woff2")}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/libre-franklin-500.woff2)format("woff2")}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/libre-franklin-600.woff2)format("woff2")}:root{--bg:#f6f4ef;--surface:#fff;--surface-2:#f0eee7;--surface-3:#e8e5db;--ink:#23231d;--muted:#5b5a4e;--faint:#6f6e60;--line:#e7e4da;--line-strong:#d7d3c7;--brand-green:#2c4631;--accent:#ad8442;--accent-strong:#8a662c;--accent-soft:#f2ebda;--accent-text:#7a5a26;--accent-ink:#101c0c;--ok-bg:#e4efdf;--ok-ink:#2c7a45;--ok-line:#5aa876;--warn-bg:#f7edd3;--warn-ink:#8a6414;--warn-line:#cc9a34;--bad-bg:#f6e4de;--bad-ink:#b23b2c;--bad-line:#d17d6a;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-pill:999px;--radius:var(--r-lg);--shadow-sm:0 1px 2px #2822140f;--shadow:0 1px 3px #2822140d, 0 10px 24px -10px #28221424;--shadow-lg:0 28px 60px -20px #28221442;--font-sans:"Libre Franklin", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}:root[data-theme=dark]{--bg:#101d15;--surface:#182619;--surface-2:#1f3122;--surface-3:#273c2b;--ink:#ece7d8;--muted:#b4b9a8;--faint:#8d937f;--line:#2b3f2e;--line-strong:#3a4f3c;--brand-green:#2c4631;--accent:#c69b52;--accent-strong:#d8b06a;--accent-soft:#26361f;--accent-text:#c69b52;--accent-ink:#101d15;--ok-bg:#16351f;--ok-ink:#7ed69b;--ok-line:#3f915d;--warn-bg:#2f2913;--warn-ink:#e6c266;--warn-line:#8a7231;--bad-bg:#33201b;--bad-ink:#f0937f;--bad-line:#8a4a3c;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #00000059, 0 12px 28px -10px #0000008c;--shadow-lg:0 30px 70px -20px #000000b3}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"kern", "liga";margin:0;font-size:16px;line-height:1.55}::selection{background:var(--accent-soft);color:var(--ink)}.problem h2,.study h2,.exam h2,.dash-head h2,.explanation h3,.modal h2{letter-spacing:-.015em}.app{max-width:780px;margin:0 auto;padding:32px 18px 72px}.app-header{position:relative}.wordmark{align-items:center;gap:10px;display:flex}.wordmark-mark{color:var(--accent-text);flex:none;display:inline-flex}.wordmark-mark svg{display:block}.app-header h1{letter-spacing:-.025em;color:var(--brand-green);margin:0;font-size:1.6rem;font-weight:700;line-height:1.1}:root[data-theme=dark] .app-header h1{color:var(--ink)}.theme-toggle{width:40px;height:40px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);cursor:pointer;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background .15s;display:flex;position:absolute;top:0;right:0}.theme-toggle svg{width:18px;height:18px;display:block}.theme-toggle:hover{color:var(--accent-text);border-color:var(--line-strong)}.subtitle{color:var(--muted);letter-spacing:-.003em;margin:7px 0 0;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:20px}.controls{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;gap:16px;margin:18px 0;padding:16px 18px;display:flex}.setup-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.setup-summary{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex:200px;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;transition:border-color .15s;display:flex}.setup-summary:hover{border-color:var(--line-strong)}.setup-gear{color:var(--muted);flex:none}.setup-text{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.setup-caret{color:var(--faint);flex:none;font-size:.7rem}.setup-bar .new-question{flex:none}.session-tally{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;flex:none;font-size:.8rem}.setup-panel{border-top:1px solid var(--line);flex-direction:column;gap:16px;padding-top:16px;animation:.2s cubic-bezier(.16,1,.3,1) both rp-rise;display:flex}.control-group{flex-direction:column;gap:8px;display:flex}.control-label{text-transform:uppercase;letter-spacing:.07em;color:var(--faint);font-size:.7rem;font-weight:700}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;gap:3px;width:fit-content;max-width:100%;padding:4px;display:inline-flex}.segmented button{border-radius:var(--r-sm);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:7px 14px;font-size:.9rem;font-weight:500;transition:color .15s,background .15s}.segmented button:hover:not(.active):not(:disabled){color:var(--ink)}.segmented button.active{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm);font-weight:600}.segmented button:disabled{opacity:.4;cursor:not-allowed}.topic-chips{flex-wrap:wrap;gap:6px;display:flex}.topic-chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:var(--r-pill);cursor:pointer;padding:6px 12px;font-size:.85rem;transition:color .15s,border-color .15s,background .15s}.topic-chip:hover{border-color:var(--line-strong);color:var(--ink)}.topic-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;padding:7px 12px;font-size:.85rem;transition:color .15s,border-color .15s,background .15s}.chip:hover{border-color:var(--line-strong)}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.chip[data-mastery]:before{content:"";vertical-align:middle;background:var(--line-strong);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.chip[data-mastery=mastered]:before{background:var(--ok-line)}.chip[data-mastery=learning]:before{background:var(--warn-line)}.chip[data-mastery=lapsed]:before{background:var(--bad-line)}.rxn-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.rxn-expand-all{white-space:nowrap;padding:2px 4px;font-size:.78rem}.rxn-toolbar{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.rxn-search{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-width:0;color:var(--ink);flex:150px;padding:8px 11px;font-size:.85rem;transition:border-color .15s,box-shadow .15s,background .15s}.rxn-search::placeholder{color:var(--faint)}.rxn-search:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.rxn-sort,.rxn-filter-toggle{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--muted);cursor:pointer;padding:8px 11px;font-size:.82rem;transition:color .15s,border-color .15s}.rxn-filter-toggle.on{border-color:var(--accent);color:var(--accent-text)}.rxn-filters{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:8px;margin-bottom:10px;padding:12px;display:flex}.rxn-filter-row{flex-direction:column;gap:5px;display:flex}.rxn-filter-label{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-size:.66rem;font-weight:700}.rxn-group{border-top:1px solid var(--line)}.rxn-group:first-of-type{border-top:0}.rxn-group-head{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:9px 4px;font-size:.85rem;font-weight:600;display:flex}.rxn-group-caret{color:var(--faint);width:12px;font-size:.7rem;transition:transform .15s}.rxn-group-count{font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);margin-left:auto;padding:1px 8px;font-size:.7rem;font-weight:600}.rxn-group .chips{padding:0 0 10px 18px}.hint{color:var(--muted);margin:0;font-size:.78rem}.problem{margin-top:18px;animation:.3s cubic-bezier(.16,1,.3,1) both rp-rise}.problem h2{letter-spacing:-.02em;margin:0 0 3px;font-size:1.2rem;font-weight:640}.prompt{color:var(--muted);margin:0 0 16px}.equation{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:18px;padding:16px 12px;display:flex}.molecule{text-align:center;margin:0}.molecule img{border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);background:#fff;display:block}.molecule figcaption{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-top:6px;font-size:.7rem;font-weight:600}.arrow{flex-direction:column;align-items:center;min-width:96px;display:flex}.reagent-label{color:var(--accent-text);text-align:center;overflow-wrap:break-word;max-width:150px;font-size:.85rem;font-weight:600}.arrow-line{color:var(--line-strong);font-size:1.7rem;line-height:1}.product-slot{background:var(--surface);border:2px dashed var(--line-strong);border-radius:var(--r-sm);justify-content:center;align-items:center;width:150px;height:120px;display:flex}.qmark{color:var(--line-strong);font-size:2.4rem;font-weight:700}.reagent-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px;display:grid}.reagent-option{text-align:left;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);color:var(--ink);cursor:pointer;align-items:center;gap:10px;padding:14px 13px;font-size:1rem;transition:border-color .15s,background .15s,box-shadow .15s,transform 60ms;display:flex}.reagent-option-label{flex:1}.reagent-num{font-variant-numeric:tabular-nums;width:22px;height:22px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);flex:none;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.reagent-mark{flex:none;font-size:1.1rem;font-weight:700}.reagent-option.correct .reagent-mark{color:var(--ok-ink)}.reagent-option.wrong .reagent-mark{color:var(--bad-ink)}.reagent-option:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-sm)}.reagent-option:active:not(:disabled){transform:translateY(1px)}.reagent-option.selected{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.reagent-option.correct{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok-ink);font-weight:600}.reagent-option.wrong{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad-ink)}.reagent-option:disabled{cursor:default}.primary{background:var(--accent);color:var(--accent-ink);border-radius:var(--r-md);letter-spacing:-.006em;cursor:pointer;box-shadow:var(--shadow-sm);border:0;padding:11px 18px;font-size:.95rem;font-weight:600;transition:background .15s,box-shadow .15s,transform 60ms}.primary:hover:not(:disabled){background:var(--accent-strong);box-shadow:var(--shadow)}.primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(1px)}.primary:disabled{opacity:.5;cursor:not-allowed}.new-question{align-self:flex-start}.submit,.next{margin-top:4px}.next{background:var(--ink);color:var(--surface)}.next:hover:not(:disabled){background:var(--ink);opacity:.9}.feedback{border-radius:var(--r-md);border:1px solid;margin:16px 0 8px;padding:14px 16px;animation:.26s cubic-bezier(.16,1,.3,1) both rp-rise}.feedback-text{margin:0;font-weight:600}.feedback-icon{margin-right:8px;font-weight:800}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.feedback-correct{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.feedback-stereo{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.feedback-wrong{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink)}.answer-reveal{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;font-size:.85rem;display:flex}.ketcher-wrap{border:1px solid var(--line);border-radius:var(--r-md);height:460px;box-shadow:var(--shadow-sm);margin-bottom:16px;overflow:hidden}.ketcher-wrap .Ketcher-root{height:100%}.ketcher-loading{height:200px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--r-md);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.error{background:var(--bad-bg);border:1px solid var(--bad-line);color:var(--bad-ink);border-radius:var(--r-sm);padding:10px 14px;font-size:.9rem}.notice{background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok-ink);border-radius:var(--r-sm);padding:10px 14px;font-size:.9rem}.explanation{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);margin-top:16px;padding:18px 20px}.explanation h3{letter-spacing:-.015em;margin:0 0 6px;font-size:1.05rem;font-weight:640}.explanation h4{text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:18px 0 8px;font-size:.72rem;font-weight:700}.exp-summary{margin:0}.exp-points{color:var(--ink);margin:10px 0 0;padding-left:20px}.exp-points li{margin-bottom:6px}.exp-compounds{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:12px 14px;list-style:none;display:flex}.exp-compounds li{font-size:.85rem}.exp-compound-role{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-right:6px;font-size:.6rem;font-weight:700}.exp-compound-name{color:var(--ink);font-weight:600}.targeted{background:var(--surface);border:1px solid var(--warn-line);border-radius:var(--r-sm);margin-bottom:14px;padding:12px 14px}.targeted-tag{text-transform:uppercase;letter-spacing:.07em;color:var(--warn-ink);margin-bottom:4px;font-size:.66rem;font-weight:700;display:inline-block}.targeted p{margin:0}.mechanism ol{margin:0;padding-left:20px}.mechanism li{margin-bottom:14px}.step-text{display:block}.mechanism .molecule{margin-top:8px}.reagent-notes ul{margin:0;padding-left:18px}.reagent-notes li{color:var(--muted);margin-bottom:6px}.reagent-notes li.is-correct{color:var(--ok-ink)}.sequence-bar{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-bottom:18px;padding:14px 12px;display:flex}.seq-arrow{flex-direction:column;align-items:center;min-width:110px;display:flex;position:relative}.seq-index{font-variant-numeric:tabular-nums;color:var(--accent-ink);background:var(--accent);border-radius:var(--r-pill);justify-content:center;align-items:center;width:17px;height:17px;font-size:.65rem;font-weight:700;display:flex;position:absolute;top:-2px;right:8px}.route-steps{margin:0;padding-left:22px}.route-steps>li{margin-bottom:18px}.route-step-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.route-reagent{color:var(--accent-text);overflow-wrap:break-word;min-width:0;font-weight:700}.route-rxn{color:var(--muted);font-size:.82rem}.route-equation{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-bar{justify-content:flex-end;margin-bottom:6px;display:flex}.link-button{color:var(--accent-text);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;padding:4px 6px;font-size:.85rem;font-weight:500;transition:background .15s}.link-button:hover{text-decoration:underline}.link-icon{vertical-align:-2px;width:14px;height:14px;margin-right:5px}.arrow-frame{border:1px solid var(--line);border-radius:var(--r-sm);width:fit-content;max-width:100%;box-shadow:var(--shadow-sm);background:#fff;margin-top:8px;overflow:hidden}.arrow-frame svg{max-width:100%;height:auto;display:block}.route-strategy{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--muted);margin:0 0 12px;padding:10px 14px;font-size:.9rem;font-style:italic}.concept-picker{flex-wrap:wrap}.concept-molecule{justify-content:center;margin:12px 0;display:flex}.concept-choices{flex-direction:column;gap:8px;margin:12px 0;display:flex}.concept-choice{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s,box-shadow .15s,transform 60ms;display:flex}.concept-choice:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-sm)}.concept-choice:active:not(:disabled){transform:translateY(1px)}.concept-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.concept-choice.correct{border-color:var(--ok-line);background:var(--ok-bg)}.concept-choice.wrong{border-color:var(--bad-line);background:var(--bad-bg)}.concept-number{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);width:160px;color:var(--ink);font:inherit;margin:12px 0;padding:11px 13px;font-size:1.1rem;transition:border-color .15s,box-shadow .15s,background .15s;display:block}.concept-number:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.concept-exp-structures{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.reference-search{width:100%;margin-bottom:6px}.reference-topic-count{font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface-2);border-radius:var(--r-pill);margin-left:6px;padding:1px 8px;font-size:.75rem;font-weight:600}.reference-list{margin:0 0 8px;padding:0;list-style:none}.reference-item{border-bottom:1px solid var(--line)}.reference-head{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:baseline;gap:8px;padding:11px 2px;display:flex}.reference-caret{color:var(--faint);flex:none;width:12px;font-size:.7rem}.reference-name{font-weight:600}.reference-reagent{color:var(--muted);text-align:right;margin-left:auto;font-size:.82rem}.reference-body{padding:2px 2px 14px 22px}.reference-summary{margin:0 0 8px}.reference-variants,.reference-arrows{color:var(--muted);margin:8px 0 0;font-size:.82rem}.progress-io{align-items:center;gap:4px;display:flex}.progress-io-note{color:var(--accent-text);margin-top:0}.exam-history{margin:20px 0}.exam-history-meta{color:var(--muted);font-size:.8rem}.exam-spark{width:100%;height:34px;margin:4px 0 10px}.exam-history-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.exam-history-list li{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:5px 0;display:flex}.exam-history-score{font-variant-numeric:tabular-nums;min-width:44px;font-weight:700}.exam-history-score.ok{color:var(--ok-ink)}.exam-history-score.warn{color:var(--warn-ink)}.exam-history-score.bad{color:var(--bad-ink)}.exam-history-detail{color:var(--muted);font-size:.85rem}.exam-timer{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:10px;font-weight:600}.exam-timer.low{color:var(--bad-ink)}.exam-unanswered{cursor:default;opacity:.7}.welcome-lead{color:var(--muted);margin:0 0 14px}.welcome-tabs{flex-direction:column;gap:10px;margin:0 0 6px;padding:0;list-style:none;display:flex}.welcome-tabs li{font-size:.92rem;line-height:1.45}.welcome-tabs strong{color:var(--accent-text)}.problem-actions{flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:14px;display:flex}.share-link{opacity:.85}.report-link{opacity:.8;margin:14px auto 0;display:block}.report-box{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-md);margin-top:14px;padding:14px 16px;font-size:.9rem}.report-title{margin:0 0 8px;font-weight:600}.report-option{cursor:pointer;margin:4px 0;display:block}.report-option input{margin-right:8px}.report-comment{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);font:inherit;resize:vertical;margin-top:8px;padding:7px 9px}.report-comment:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.report-actions{align-items:center;gap:10px;margin-top:10px;display:flex}.report-done{text-align:center;color:var(--muted);margin:14px 0 0;font-size:.9rem}.modal-backdrop{-webkit-backdrop-filter:blur(3px);z-index:50;background:#0c101980;justify-content:center;align-items:center;padding:16px;animation:.18s both rp-fade;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:460px;box-shadow:var(--shadow-lg);max-height:90vh;padding:24px 26px;animation:.24s cubic-bezier(.16,1,.3,1) both rp-pop;overflow-y:auto}.modal h2{letter-spacing:-.02em;margin:0 0 12px;font-size:1.4rem;font-weight:660}.tutorial-steps{margin:0;padding-left:20px}.tutorial-steps li{margin-bottom:10px}.wedge-fig{background:var(--surface-2);border-radius:var(--r-sm);margin:16px 0 8px;padding:8px}.wf-atom{fill:var(--ink);font-size:15px;font-weight:600}.wf-cap{fill:var(--muted);font-size:11px}.modal-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.dont-show{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.view-tabs{border-bottom:1px solid var(--line);scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:2px;margin-top:18px;display:flex;overflow-x:auto}.view-tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:10px 15px;font-size:.93rem;font-weight:500;transition:color .15s,border-color .15s}.view-tabs button:hover{color:var(--ink)}.view-tabs button.active{color:var(--accent-text);border-bottom-color:var(--accent);font-weight:600}.dashboard{margin-top:18px}.dash-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dash-head h2{letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:640}.dash-subhead{text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:18px 0 4px;font-size:.72rem;font-weight:700}.mistakes{margin-top:6px}.mistakes .dash-head{align-items:baseline}.mistake-count{color:var(--bad-ink);font-variant-numeric:tabular-nums;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;margin:12px 0 18px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);text-align:center;padding:14px 8px}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.45rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-top:3px;font-size:.68rem;font-weight:600}.mastery-bar-wrap{margin-bottom:4px}.mastery-bar{border-radius:var(--r-pill);background:var(--line);height:12px;display:flex;overflow:hidden}.mastery-bar .seg{height:100%;display:block}.mastery-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.legend-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.seg.mastered,.legend-swatch.mastered{background:var(--ok-line)}.seg.learning,.legend-swatch.learning{background:var(--warn-line)}.seg.lapsed,.legend-swatch.lapsed{background:var(--bad-line)}.seg.untouched,.legend-swatch.untouched{background:var(--line-strong)}.topic-list{margin-top:2px}.topic{border-bottom:1px solid var(--line)}.topic:last-child{border-bottom:0}.topic-summary{cursor:pointer;align-items:center;gap:10px;padding:10px 4px;list-style:none;display:flex}.topic-summary::-webkit-details-marker{display:none}.caret{color:var(--faint);font-size:.8rem;transition:transform .15s}.topic[open] .caret{transform:rotate(90deg)}.topic-name{min-width:150px;font-weight:600}.progress-track{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);flex:1;min-width:50px;height:8px;overflow:hidden}.progress-fill{background:var(--ok-line);height:100%;display:block}.topic-meta{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.82rem}.badge.due{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);border-radius:var(--r-pill);white-space:nowrap;padding:2px 8px;font-size:.68rem;font-weight:700}.rxn-chips{flex-wrap:wrap;gap:6px;padding:4px 4px 14px 26px;display:flex}.rxn-chip{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface-2);color:var(--muted);padding:5px 10px;font-size:.8rem}.rxn-chip.mastered{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.rxn-chip.learning{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.rxn-chip.lapsed{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad-ink)}.study h2{letter-spacing:-.02em;margin:6px 0 2px;font-size:1.25rem;font-weight:640}.study-suggest{flex-direction:column;gap:8px;margin:10px 0 16px;display:flex}.study-topic{margin-bottom:12px}.study-topic .dash-subhead{margin:14px 0 6px}.rxn-chip.clickable{cursor:pointer;font-family:inherit;font-size:.8rem;transition:border-color .15s,background .15s,color .15s}.rxn-chip.clickable:hover{border-color:var(--accent);color:var(--ink)}.lesson .equation{margin-top:12px}.lesson .primary,.practice-support .submit{margin-top:16px}.hint-box{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-md);margin:14px 0;padding:12px 14px}.hint-box .exp-points{color:var(--warn-ink);margin:0 0 6px}.hint-box .link-button{color:var(--warn-ink);padding-left:0;font-weight:600}.study-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;display:flex}.free-study{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin:4px 0 14px;font-size:.85rem;display:flex}.lock-badge{color:var(--faint);text-transform:none;letter-spacing:0;margin-left:6px;font-size:.72rem;font-weight:500}.locked-hint{margin:6px 0 4px;font-style:italic}.exam h2{letter-spacing:-.02em;margin:6px 0 2px;font-size:1.25rem;font-weight:640}.exam-progress{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:10px;margin-bottom:12px;font-size:.8rem;display:flex}.exam-progress-track{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);flex:1;height:6px;overflow:hidden}.exam-progress-fill{background:var(--accent);height:100%;transition:width .3s cubic-bezier(.16,1,.3,1);display:block}.exam-score{text-align:center;margin:20px 0;animation:.3s cubic-bezier(.16,1,.3,1) both rp-rise}.exam-score-big{font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--accent-text);font-size:3rem;font-weight:720;line-height:1}.exam-score-sub{color:var(--muted);margin-top:6px}.exam-review{margin:6px 0 0;padding-left:0;list-style:none}.exam-review li{border-bottom:1px solid var(--line);font-size:.9rem}.exam-review li:last-child{border-bottom:0}.exam-review-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:9px 0;display:flex}.exam-review-toggle:hover .exam-review-name{color:var(--accent-text)}.exam-review-name{flex:1}.exam-review-chevron{color:var(--faint);font-size:.7rem}.exam-review-panel{padding:2px 0 14px 26px}.exam-mark{text-align:center;width:18px;font-weight:700}.exam-review li.ok .exam-mark{color:var(--ok-ink)}.exam-review li.bad .exam-mark{color:var(--bad-ink)}.conditions-note{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);margin:12px 0 0;padding:11px 14px;font-size:.9rem}.conditions-tag{text-transform:uppercase;letter-spacing:.07em;color:var(--accent-text);margin-right:6px;font-size:.66rem;font-weight:700}.kbd-hint{color:var(--faint);margin:10px 0 0;font-size:.78rem}kbd{font-family:var(--font-mono);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--muted);border-bottom-width:2px;border-radius:5px;padding:2px 5px;font-size:.78em;line-height:1}.palette-backdrop{align-items:flex-start;padding-top:12vh}.palette{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);animation:.2s cubic-bezier(.16,1,.3,1) both rp-pop;overflow:hidden}.palette-input{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:0 0;padding:16px 18px;font-size:1.05rem}.palette-input:focus{outline:none}.palette-input::placeholder{color:var(--faint)}.palette-list{max-height:46vh;margin:0;padding:6px;list-style:none;overflow-y:auto}.palette-item{border-radius:var(--r-sm);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.palette-item.active{background:var(--accent-soft)}.palette-label{font-weight:500}.palette-hint{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);flex:none;font-size:.68rem;font-weight:600}.palette-empty{color:var(--muted);text-align:center;padding:16px 12px}.palette-foot{border-top:1px solid var(--line);color:var(--faint);gap:16px;padding:9px 14px;font-size:.74rem;display:flex}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:44px;padding-top:18px;font-size:.85rem;display:flex}.footer-find{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:var(--r-pill);cursor:pointer;align-items:center;gap:6px;padding:5px 12px;transition:color .15s,border-color .15s;display:inline-flex}.footer-find:hover{color:var(--accent-text);border-color:var(--line-strong)}.footer-brand{margin:0}.footer-brand a{color:var(--accent-text);font-weight:600;text-decoration:none}.footer-brand a:hover{text-decoration:underline}.skeleton{pointer-events:none}.sk-line,.sk-mol,.sk-opt,.sk-arrow{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.3s ease-in-out infinite rp-shimmer}.sk-line{height:14px;margin-bottom:10px}.sk-title{width:55%;height:22px}.sk-sub{width:78%}.sk-equation{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);justify-content:center;align-items:center;gap:14px;margin:16px 0 18px;padding:16px 12px;display:flex}.sk-mol{width:150px;height:120px}.sk-arrow{width:40px;height:12px}.sk-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.sk-opt{height:52px}@keyframes rp-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes rp-rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes rp-fade{0%{opacity:0}to{opacity:1}}@keyframes rp-pop{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=760px){.equation{flex-direction:column;gap:4px}.equation .arrow-line{transform:rotate(90deg)}}@media (width<=560px){.app{padding:20px 13px 52px}.ketcher-wrap{height:380px}.view-tabs button{padding:10px 12px;font-size:.9rem}.molecule img{max-width:100%;height:auto}.segmented{flex-wrap:wrap}.chip,.topic-chip,.rxn-chip.clickable{padding-top:11px;padding-bottom:11px}.segmented button{padding-top:10px;padding-bottom:10px}}
