:root{
  --bg:#f4f8f6;--paper:#fff;--ink:#10211f;--muted:#64726e;--line:#dbe7e2;
  --teal:#0f766e;--teal2:#14b8a6;--mint:#d9f7ee;--navy:#073b3a;--lime:#84cc16;
  --orange:#f59e0b;--rose:#e11d48;--violet:#7c3aed;--blue:#2563eb;--shadow:0 18px 52px rgba(13,57,51,.10);
  --r:22px;--r2:14px;--max:1460px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#eef7f3 0,#f7faf9 28rem,#f4f8f6 100%);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{background:#99f6e4;color:#083a37}
.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:50;background:rgba(7,59,58,.96);backdrop-filter:blur(18px);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.topbar-inner{max-width:var(--max);margin:auto;padding:0 28px;height:72px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:12px;min-width:max-content;font-weight:850;letter-spacing:-.02em}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#2dd4bf,#84cc16);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.brand-mark svg{width:28px;height:28px}.brand span small{display:block;color:#9de7db;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.nav{display:flex;gap:4px;overflow:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{border:0;background:transparent;color:#b9d5d0;padding:9px 11px;border-radius:11px;white-space:nowrap;font-size:14px}.nav button:hover,.nav button.active{color:white;background:rgba(255,255,255,.1)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.search-pill{display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:999px;padding:8px 11px;color:#cce6e1}.search-pill input{width:150px;border:0;background:transparent;color:white;outline:0}.search-pill input::placeholder{color:#a8c8c3}.progress-chip{border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px 11px;font-size:13px;color:#dff7f1;white-space:nowrap}
.main{max-width:var(--max);margin:auto;padding:34px 28px 70px}.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 80% 10%,rgba(132,204,22,.20),transparent 28%),radial-gradient(circle at 74% 80%,rgba(45,212,191,.23),transparent 36%),linear-gradient(135deg,#073b3a,#0b5f58 62%,#0a4541);color:white;border-radius:32px;padding:54px 54px 44px;box-shadow:0 28px 70px rgba(7,59,58,.22)}.hero:before{content:"";position:absolute;inset:-70px -140px auto auto;width:430px;height:430px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 44px rgba(255,255,255,.035),0 0 0 100px rgba(255,255,255,.025)}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:44px;align-items:center}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}.hero .eyebrow{color:#8df1df}.hero h1{font-size:clamp(42px,5vw,78px);line-height:.98;letter-spacing:-.055em;margin:0 0 24px;max-width:880px}.hero p{font-size:18px;color:#cce8e3;max-width:760px;margin:0 0 28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{border:0;border-radius:13px;padding:12px 17px;font-weight:760;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s transform,.18s background,.18s box-shadow}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,#2dd4bf,#6bd88e);color:#073b3a;box-shadow:0 10px 28px rgba(45,212,191,.24)}.btn.secondary{background:#fff;color:#0b4f4a}.btn.ghost{background:transparent;color:inherit;border:1px solid var(--line)}.hero .btn.ghost{border-color:rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.05)}.hero-visual{min-height:330px;display:grid;place-items:center;position:relative}.hero-formula{position:absolute;right:5px;top:5px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:12px 15px;font-weight:800}.hero-atom{width:min(100%,390px);filter:drop-shadow(0 18px 30px rgba(0,0,0,.18))}.hero-metrics{position:relative;margin-top:38px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.metric{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:15px}.metric b{display:block;font-size:24px;line-height:1.1}.metric span{font-size:12px;color:#b9d8d2}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:48px 0 18px}.section-head h2,.page-head h1{margin:0;letter-spacing:-.035em}.section-head h2{font-size:31px}.section-head p,.page-head p{color:var(--muted);max-width:800px;margin:6px 0 0}.page-head{margin:6px 0 28px}.page-head h1{font-size:clamp(36px,4vw,58px);line-height:1.02}.grid{display:grid;gap:16px}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-card{position:relative;min-height:214px;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 5px 22px rgba(23,66,59,.04);overflow:hidden;transition:.2s transform,.2s box-shadow}.module-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.module-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-36px;bottom:-45px;background:var(--accent,#d5f5ed);opacity:.7}.module-icon{width:48px;height:48px;border-radius:15px;background:var(--accent,#d5f5ed);display:grid;place-items:center;font-size:24px}.module-card h3{font-size:21px;margin:18px 0 6px;letter-spacing:-.02em}.module-card p{font-size:14px;color:var(--muted);margin:0 0 18px}.module-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#53645f}.bar{height:7px;border-radius:999px;background:#eaf0ed;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--teal2));border-radius:inherit}.continue-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:28px;background:linear-gradient(135deg,#e0faf3,#f5ffe9);border:1px solid #b9eadb;border-radius:var(--r);padding:26px 28px}.continue-card h3{margin:0 0 7px;font-size:24px}.continue-card p{margin:0;color:#55706a}.feature-grid{grid-template-columns:repeat(4,1fr)}.feature{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.feature .ico{font-size:26px}.feature h3{margin:10px 0 5px}.feature p{font-size:13px;color:var(--muted);margin:0}
.breadcrumbs{font-size:13px;color:var(--muted);margin-bottom:14px}.breadcrumbs button{border:0;background:none;color:var(--teal);padding:0}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lesson-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:17px;text-align:left;transition:.16s}.lesson-row:hover{border-color:#91d8c9;box-shadow:0 8px 26px rgba(15,118,110,.08)}.lesson-number{width:38px;height:38px;border-radius:12px;background:#e9f7f3;color:var(--teal);display:grid;place-items:center;font-weight:850}.lesson-row.done .lesson-number{background:var(--teal);color:white}.lesson-row h3{font-size:16px;margin:0 0 3px}.lesson-row p{font-size:12px;color:var(--muted);margin:0}.lesson-state{text-align:right;font-size:12px;color:var(--muted)}.lesson-state b{display:block;color:var(--ink);font-size:13px}
.lesson-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:stretch}.lesson-intro{background:#fff;border:1px solid var(--line);border-radius:26px;padding:31px}.lesson-intro h1{font-size:clamp(34px,4vw,54px);line-height:1.02;letter-spacing:-.04em;margin:4px 0 15px}.lesson-intro .subtitle{font-size:18px;color:#405b55}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.tag{font-size:11px;font-weight:750;border-radius:999px;background:#eff7f4;color:#3b5c55;padding:6px 9px}.visual-card{background:linear-gradient(145deg,#073b3a,#0d5c55);border-radius:26px;padding:18px;display:grid;place-items:center;min-height:330px;overflow:hidden}.visual-card svg{width:100%;max-height:310px}.goal-grid{grid-template-columns:repeat(2,1fr);margin-top:18px}.goal{background:#f8fbfa;border:1px solid var(--line);border-radius:15px;padding:15px}.goal b{color:var(--teal)}.lesson-sections{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.theory-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}.theory-card h3{margin:0 0 8px;font-size:18px}.theory-card p{margin:0;color:#455c57}.formula-card{margin-top:18px;background:linear-gradient(135deg,#102b29,#123f3b);color:white;border-radius:22px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.formula-display{font-family:"Cambria Math",Georgia,serif;font-size:26px;padding:18px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);border-radius:15px;overflow:auto}.formula-card dl{margin:0}.formula-card dl div{display:grid;grid-template-columns:95px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08)}.formula-card dt{font-weight:800;color:#9ef3e3}.formula-card dd{margin:0;color:#cbe2de;font-size:13px}.worked{margin-top:18px;background:#fff7e8;border:1px solid #f4d89e;border-radius:22px;padding:23px}.worked h3{margin:0 0 12px}.steps{counter-reset:step;display:grid;gap:8px}.step{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.step:before{counter-increment:step;content:counter(step);width:25px;height:25px;border-radius:8px;background:#f59e0b;color:white;display:grid;place-items:center;font-weight:800;font-size:12px}.answer-box{margin-top:12px;padding:11px 13px;background:#fff;border-radius:12px;font-weight:700}.misconception{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.misconception>div{border-radius:16px;padding:16px}.wrong{background:#fff0f1;border:1px solid #fecdd3}.right{background:#ecfdf5;border:1px solid #bbf7d0}.wrong b{color:#be123c}.right b{color:#047857}
.lab-card{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px}.lab-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center}.lab-controls{display:grid;gap:16px}.range-label{display:flex;justify-content:space-between;gap:10px;font-size:13px}.range-label b{font-size:15px}.range{width:100%;accent-color:var(--teal)}.lab-result{background:#eafaf4;border:1px solid #bce8da;border-radius:16px;padding:15px;font-size:14px}.lab-result strong{font-size:28px;display:block;letter-spacing:-.03em;color:#075f58}.chart{width:100%;height:250px;background:linear-gradient(#fbfdfc,#f0f7f4);border:1px solid var(--line);border-radius:16px}.lab-insight{font-size:13px;color:#50645f;margin-top:12px}.quiz{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px}.quiz-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.quiz-top h2{margin:0}.quiz-progress{font-size:12px;color:var(--muted)}.quiz-question{font-size:20px;font-weight:750;margin:22px 0 14px}.options{display:grid;gap:9px}.option{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;border:1px solid var(--line);background:#fbfdfc;border-radius:13px;padding:12px;text-align:left}.option:hover{border-color:#82cabb}.option.selected{border-color:var(--teal);background:#effbf7}.option.correct{border-color:#16a34a;background:#effdf4}.option.incorrect{border-color:#e11d48;background:#fff1f2}.option-letter{width:26px;height:26px;border-radius:8px;background:#e8f2ef;display:grid;place-items:center;font-weight:850}.feedback{margin-top:12px;border-radius:13px;padding:12px 14px;background:#f2f7f5;color:#3e5651}.quiz-actions{display:flex;gap:10px;margin-top:15px}.score-screen{text-align:center;padding:24px}.score-circle{width:110px;height:110px;border-radius:50%;margin:12px auto 20px;background:conic-gradient(var(--teal) var(--score),#e7efec 0);display:grid;place-items:center}.score-circle:after{content:"";width:82px;height:82px;border-radius:50%;background:white;position:absolute}.score-circle b{position:relative;z-index:2;font-size:24px}
.periodic-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px}.input,.select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;outline:0}.input:focus,.select:focus{border-color:#60c2b3;box-shadow:0 0 0 3px rgba(20,184,166,.10)}.periodic-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.periodic-scroll{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:15px}.periodic-grid{display:grid;grid-template-columns:repeat(18,52px);grid-template-rows:repeat(7,62px);gap:4px;min-width:1004px}.el{border:0;border-radius:9px;padding:4px;text-align:left;color:#14302b;position:relative;transition:.12s transform,.12s outline}.el:hover{transform:scale(1.06);z-index:2}.el.dim{opacity:.18}.el.active{outline:3px solid #073b3a;z-index:3}.el small{font-size:9px;display:block}.el b{font-size:18px;line-height:1}.el span{font-size:8px;display:block;overflow:hidden}.cat-nonmetal{background:#d8f3dc}.cat-noble{background:#e0e7ff}.cat-alkali{background:#fee2e2}.cat-alkaline{background:#ffedd5}.cat-metalloid{background:#fef3c7}.cat-post{background:#dbeafe}.cat-transition{background:#e0f2fe}.cat-halogen{background:#ccfbf1}.cat-lanthanide{background:#fae8ff}.cat-actinide{background:#fce7f3}.element-panel{position:sticky;top:92px;background:linear-gradient(145deg,#fff,#f4fbf8);border:1px solid var(--line);border-radius:20px;padding:20px}.element-panel .symbol{width:92px;height:92px;border-radius:24px;background:#e1f7f0;display:grid;place-items:center;font-size:46px;font-weight:900;color:var(--teal)}.element-panel h2{margin:14px 0 2px}.element-panel dl{margin:15px 0 0}.element-panel dl div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.frows{margin-top:14px;display:grid;gap:6px;min-width:1004px}.frow{display:grid;grid-template-columns:96px repeat(15,52px);gap:4px;align-items:center}.frow>span{font-size:10px;color:var(--muted)}
.trainer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.trainer{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.trainer.wide{grid-column:1/-1}.trainer h3{font-size:21px;margin:2px 0 8px}.trainer p{color:var(--muted);font-size:13px}.trainer-result{margin-top:14px;border-radius:13px;background:#e9faf4;border:1px solid #bcebdd;padding:12px;font-weight:750}.trainer-error{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.trainer-success{background:#ecfdf5;border:1px solid #bbf7d0;color:#047857}.coef-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:18px}.coef-row input{width:50px;padding:8px;border:1px solid var(--line);border-radius:9px;text-align:center}.trainer .controls{display:grid;gap:10px;margin-top:12px}.trainer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ph-scale{height:18px;border-radius:999px;background:linear-gradient(90deg,#dc2626,#f59e0b,#fde047,#22c55e,#06b6d4,#2563eb,#7c3aed);position:relative}.ph-scale i{position:absolute;top:-5px;width:4px;height:28px;background:#111;border:2px solid white;border-radius:4px}.carbon-chain{display:flex;gap:0;align-items:center;flex-wrap:wrap;margin-top:14px}.carbon-chain span{display:flex;align-items:center;font-weight:900}.carbon-chain i{font-style:normal;color:var(--teal);margin:0 3px}
.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ref-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.ref-card h3{margin:0 0 12px}.ref-card ul{padding-left:18px;color:#465b56}.ref-card li{margin:7px 0}.mini-formula{font-family:"Cambria Math",serif;background:#f1f7f5;border-radius:10px;padding:8px 10px;margin:7px 0;overflow:auto}.exam-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.exam-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.exam-card h3{font-size:22px;margin:4px 0 7px}.exam-card p{color:var(--muted)}.exam-meta{display:flex;gap:14px;font-size:12px;color:#566a65;margin:14px 0}.exam-shell{max-width:1000px;margin:auto}.timer{font-variant-numeric:tabular-nums;font-weight:850;color:#b45309}.exam-nav{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.qdot{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff}.qdot.answered{background:#dff7ef;border-color:#8cd7c6}.qdot.current{outline:2px solid var(--teal)}.progress-grid{grid-template-columns:1.1fr .9fr}.progress-panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.module-progress-row{display:grid;grid-template-columns:190px 1fr 60px;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid #eef3f1;font-size:13px}.history-item{padding:10px 0;border-bottom:1px solid #eef3f1}.empty{padding:46px;text-align:center;color:var(--muted)}
.search-results{position:absolute;top:62px;right:28px;width:min(520px,calc(100vw - 30px));max-height:65vh;overflow:auto;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.22);padding:9px}.search-result{width:100%;text-align:left;border:0;background:transparent;border-radius:11px;padding:10px}.search-result:hover{background:#f0f8f5}.search-result small{display:block;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#073b3a;color:white;border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);animation:toastIn .22s ease}@keyframes toastIn{from{transform:translateY(12px);opacity:0}}
@media(max-width:1150px){.module-grid{grid-template-columns:repeat(2,1fr)}.feature-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{grid-template-columns:1fr}.hero-visual{min-height:250px}.hero-atom{max-width:300px}.hero-metrics{grid-template-columns:repeat(3,1fr)}.periodic-wrap{grid-template-columns:1fr}.element-panel{position:static}.reference-grid{grid-template-columns:repeat(2,1fr)}.top-actions .progress-chip{display:none}}
@media(max-width:800px){.topbar-inner{padding:0 14px;height:auto;min-height:64px;flex-wrap:wrap;gap:8px;padding-top:8px;padding-bottom:8px}.brand span{display:none}.nav{order:3;width:100%}.top-actions{margin-left:auto}.search-pill input{width:110px}.main{padding:22px 14px 60px}.hero{padding:34px 23px;border-radius:24px}.hero h1{font-size:46px}.hero-metrics{grid-template-columns:repeat(2,1fr)}.module-grid,.lesson-list,.lesson-hero,.lesson-sections,.goal-grid,.trainer-grid,.exam-grid,.reference-grid,.progress-grid{grid-template-columns:1fr}.trainer.wide{grid-column:auto}.formula-card,.lab-layout,.misconception{grid-template-columns:1fr}.continue-card{grid-template-columns:1fr}.lesson-intro{padding:22px}.visual-card{min-height:240px}.periodic-toolbar{align-items:stretch;flex-direction:column}.module-progress-row{grid-template-columns:1fr}.search-results{right:10px;top:58px}.feature-grid{grid-template-columns:1fr}.hero-visual{display:none}}
/* v3 learning architecture */
.learning-cycle{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;padding:28px;border:1px solid rgba(255,255,255,.15);border-radius:26px;background:rgba(255,255,255,.07);width:min(100%,430px)}.learning-cycle b{padding:16px;border-radius:16px;background:rgba(255,255,255,.09);text-align:center}.learning-cycle span{color:#8df1df;font-size:22px}.learning-cycle b:last-child{grid-column:3}.learning-cycle span:nth-of-type(3){display:none}
.module-brief{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 24px}.module-brief>div,.prereq-card,.goals-block,.term-intro,.remember-card,.practice-card,.project-card,.no-lab,.review-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 5px 22px rgba(23,66,59,.04)}.module-brief ul,.remember-card ul{margin:8px 0 0;padding-left:20px}.tag-button{border:0;cursor:pointer}.prereq-list{display:flex;gap:8px;flex-wrap:wrap}.term-intro{margin:18px 0}.term-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.term-grid article{padding:16px;border-radius:15px;background:#f8fbfa;border:1px solid var(--line)}.term-grid h3{margin:0 0 7px}.term-grid p{margin:0 0 8px}.term-grid small{color:var(--muted)}.semantic-visual{display:flex!important;flex-direction:column;justify-content:center;min-height:220px;padding:28px!important;background:linear-gradient(145deg,#083f3c,#0b5f58)!important;color:white}.visual-kicker{font-size:11px;letter-spacing:.16em;color:#8df1df;font-weight:900;margin-bottom:14px}.semantic-visual strong{font-size:20px;line-height:1.45}.goals-block{margin:18px 0}.remember-card{margin:20px 0;border-left:5px solid #0f766e}.practice-card{margin:20px 0}.practice-list{display:grid;gap:12px}.practice-list article{border-top:1px solid var(--line);padding-top:16px}.practice-list article:first-child{border-top:0}.practice-list article>div:first-child{display:flex;gap:10px;align-items:center}.level{font-size:11px;font-weight:900;letter-spacing:.08em;color:#0f766e;background:#ccfbf1;border-radius:999px;padding:4px 8px}.btn.small{padding:8px 10px;font-size:12px}.model-answer{margin-top:10px;padding:13px 15px;border-radius:13px;background:#effaf7;border:1px solid #ccece4;color:#214f48}.misconception small{display:block;opacity:.82;margin-top:8px}.no-lab{margin:20px 0;background:#f8faf9}.weak-skills{margin:14px auto;padding:12px 14px;max-width:700px;border-radius:12px;background:#fff7ed}.option.tried-wrong{opacity:.55}.feedback.hint{background:#fff7ed;border-color:#fed7aa}.status-mastered{border-left:4px solid #16a34a}.status-practice{border-left:4px solid #eab308}.status-gap{border-left:4px solid #dc2626}.lesson-state small{display:block;color:var(--muted);font-weight:500;margin-top:4px}.project-card{margin-top:24px;background:linear-gradient(180deg,#fff,#f5fbf9)}.review-card{max-width:850px;margin:0 auto 28px}.reference-toolbar,.reference-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.reference-toolbar .input{flex:1;min-width:240px}.module-progress-row{width:100%;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,2fr) 60px;gap:16px;align-items:center;border:0;border-bottom:1px solid var(--line);background:transparent;padding:14px 0;text-align:left}.module-progress-row:last-child{border-bottom:0}.backup-card{margin-top:22px}.backup-actions{display:flex;gap:10px;flex-wrap:wrap}.progress-stats section b{font-size:30px}.exam-card button:disabled{opacity:.55;cursor:not-allowed}.reference-tabs{margin-top:10px}.ref-card details{margin:10px 0}.ref-card summary{cursor:pointer;font-weight:700}
@media(max-width:900px){.module-brief,.term-grid{grid-template-columns:1fr}.learning-cycle{grid-template-columns:1fr}.learning-cycle span,.learning-cycle b:last-child{grid-column:auto}.learning-cycle span:nth-of-type(3){display:block}.module-progress-row{grid-template-columns:1fr 60px}.module-progress-row .bar{grid-row:2;grid-column:1/3}}

/* v3.1 — layout hardening and mathematical typesetting */
.main > *,
.lesson-hero > *,
.lesson-sections > *,
.goal-grid > *,
.term-grid > *,
.formula-card > *,
.formula-card dl,
.formula-card dl > div,
.worked,
.steps,
.step,
.practice-list article,
.misconception > *,
.ref-card,
.trainer,
.exam-card,
.progress-panel {
  min-width: 0;
}
.lesson-intro h1,
.lesson-intro .subtitle,
.theory-card h3,
.theory-card p,
.term-grid h3,
.term-grid p,
.goal,
.worked h3,
.step p,
.answer-box,
.practice-list p,
.model-answer,
.misconception p,
.ref-card p,
.formula-card dd {
  overflow-wrap: break-word;
  word-break: normal;
}
.formula-card {
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
  align-items: start;
}
.formula-main { min-width: 0; }
.formula-display,
.mini-formula {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.formula-display {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  font-size: clamp(22px, 2.2vw, 32px);
  line-height: 1.35;
}
.tex-math {
  font-family: "STIX Two Math", "Cambria Math", "Times New Roman", serif;
  max-width: 100%;
}
.tex-math.tex-display {
  display: block;
  width: max-content;
  min-width: min-content;
  margin: .15em auto;
  white-space: nowrap;
}
.tex-math.tex-inline {
  display: inline-block;
  vertical-align: -0.16em;
  white-space: nowrap;
}
.formula-card dt .tex-math { color: #9ef3e3; font-size: 1.08rem; }
.formula-card dl div {
  grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);
}
.formula-card dt { min-width: 0; overflow-x: auto; }
.formula-card dd { min-width: 0; }
.formula-note-static {
  margin: 13px 0 0;
  color: #b8d7d1;
  font-size: 13px;
  line-height: 1.65;
}
.mini-formula {
  display: flex;
  align-items: center;
  min-height: 52px;
  font-family: inherit;
}
.mini-formula .tex-math { font-size: 1.06rem; }

/* The old version used both a generated counter and a literal number.
   That created three grid items in a two-column row and broke worked examples. */
.steps { counter-reset: none; gap: 11px; }
.step {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
}
.step:before { content: none; display: none; }
.step-number {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: #f59e0b;
  color: white;
  display: grid;
  place-items: center;
  font-weight: 850;
  font-size: 12px;
  line-height: 1;
}
.step p {
  min-width: 0;
  margin: 1px 0 0;
  line-height: 1.7;
  color: #684f29;
}
.worked h3 { line-height: 1.55; }
.answer-box { line-height: 1.65; }
.answer-box strong { color: #8a5b12; }

.muted { color: var(--muted); }
.review-topics { margin-top: 22px; }
.review-topics > div { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.topic-chip {
  border: 1px solid var(--line);
  background: #f7fbf9;
  color: var(--teal);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 700;
}

@media (max-width: 800px) {
  .formula-card { grid-template-columns: minmax(0, 1fr); }
  .formula-card dl div { grid-template-columns: minmax(62px, max-content) minmax(0, 1fr); }
  .formula-display { justify-content: flex-start; font-size: 24px; }
  .tex-math.tex-display { margin-left: 0; margin-right: 0; }
  .worked { padding: 19px; }
  .step { grid-template-columns: 28px minmax(0, 1fr); gap: 9px; }
}
.lab-constant{display:grid;gap:3px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#f7faf9}.lab-constant span{font-size:12px;color:var(--muted)}.lab-constant strong{font-size:18px;color:var(--teal)}.lab-constant small{font-size:10px;color:#8b9995}
.tex-unknown{color:#fecaca;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75em}
