:root{
  --bg:#0d0d1f;
  --card:#161633;
  --card2:#1b1b3d;
  --bdr:#252558;
  --txt:#e2e8f0;
  --mut:#94a3b8;
  --soft:#a8bbd6;
  --pri:#b79d72;
  --sec:#8b7558;
  --shadow:0 18px 52px rgba(2,6,23,.32);
}
body.light{
  --bg:#ece4d1;
  --card:#f6f0e3;
  --card2:#efe6d3;
  --bdr:#d5c8ac;
  --txt:#332a1f;
  --mut:#756754;
  --soft:#5f5343;
  --pri:#b2873c;
  --sec:#8c7441;
  --shadow:0 18px 42px rgba(143,116,65,.12);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(183,157,114,.08), transparent 24%),
    radial-gradient(circle at top right, rgba(139,117,88,.08), transparent 28%),
    var(--bg);
  color:var(--txt);
  font-family:'Segoe UI',system-ui,-apple-system,sans-serif;
  transition:background .25s,color .25s;
  padding:1.2rem;
}
body.light{background:#ece4d1}
.theme-btn{
  position:fixed;top:1rem;right:1rem;z-index:20;
  background:var(--card);border:1px solid var(--bdr);border-radius:12px;
  color:var(--mut);padding:.52rem .92rem;font-size:.9rem;cursor:pointer;
  box-shadow:var(--shadow);transition:background .15s,color .15s,border-color .15s;
}
.theme-btn:hover{color:var(--txt);border-color:var(--pri)}
.page{
  max-width:1440px;margin:0 auto;
  border:1px solid var(--bdr);border-radius:30px;overflow:hidden;
  background:
    linear-gradient(135deg, rgba(183,157,114,.08), transparent 28%),
    linear-gradient(180deg, var(--card), rgba(22,22,51,.94));
  box-shadow:var(--shadow);
}
body.light .page{background:#f6f0e3}
.hero{
  padding:1.2rem 1.25rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.06);
}
body.light .hero{border-bottom-color:rgba(148,163,184,.18)}
.hero-top{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-bottom:1rem;
}
.back-cluster{display:flex;gap:.65rem;flex-wrap:wrap}
.back-link,.category-back{
  display:inline-flex;align-items:center;gap:.45rem;
  text-decoration:none;color:var(--pri);font-weight:700;font-size:.95rem;
  padding:.48rem .82rem;border-radius:999px;border:1px solid rgba(183,157,114,.24);
  background:rgba(183,157,114,.08);
}
.back-link:hover,.category-back:hover{background:rgba(183,157,114,.14)}
.category-back{cursor:pointer}
body.light .back-link,
body.light .category-back{
  border-color:rgba(178,135,60,.24);
  background:rgba(178,135,60,.08);
}
.hero-tag{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:30px;padding:.26rem .74rem;border-radius:999px;
  background:rgba(183,157,114,.1);border:1px solid rgba(183,157,114,.22);
  color:#ead7b4;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
}
body.light .hero-tag{color:#9b7736;background:rgba(178,135,60,.1);border-color:rgba(178,135,60,.2)}
.hero h1{font-size:clamp(2rem,4vw,3.15rem);line-height:1.02;letter-spacing:-.05em}
.hero p{max-width:900px;margin-top:.65rem;color:var(--soft);font-size:1rem;line-height:1.8}
.hero-title-row{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
}
.hero-title-dot{
  width:16px;
  height:16px;
  border-radius:50%;
  flex-shrink:0;
  box-shadow:0 0 0 5px rgba(255,255,255,.05);
}
.content{padding:1.1rem 1.25rem 1.4rem}
.cat-tabs{
  display:flex;gap:.72rem;overflow-x:auto;padding-bottom:.2rem;
}
.cat-tabs{margin-bottom:1.2rem}
.subcat-tabs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.8rem;
  overflow:visible;
  padding-bottom:0;
  margin:.1rem 0 1rem;
}
.cat-tab,.subcat-tab{
  appearance:none;border:1px solid rgba(183,157,114,.18);background:rgba(183,157,114,.06);
  color:var(--mut);border-radius:999px;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.6rem;font-weight:800;
  transition:background .15s,border-color .15s,color .15s,transform .15s;
}
.cat-tab{padding:.72rem 1rem;font-size:.9rem}
.subcat-tab{
  width:100%;
  min-height:64px;
  padding:.78rem .95rem;
  font-size:.84rem;
  justify-content:space-between;
  align-items:flex-start;
  white-space:normal;
  text-align:left;
  border-radius:20px;
}
.cat-tab:hover,.subcat-tab:hover{transform:translateY(-1px);color:var(--txt)}
.cat-tab.active,.subcat-tab.active{color:var(--txt);background:rgba(183,157,114,.12);border-color:rgba(183,157,114,.34)}
body.light .cat-tab,body.light .subcat-tab{background:rgba(178,135,60,.06);border-color:rgba(178,135,60,.18)}
body.light .cat-tab.active,body.light .subcat-tab.active{background:rgba(178,135,60,.13);border-color:rgba(178,135,60,.3)}
.cat-dot{
  width:11px;height:11px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 0 4px rgba(255,255,255,.04);
}
.cat-count,.subcat-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:24px;height:24px;padding:0 .38rem;border-radius:999px;
  background:rgba(255,255,255,.06);font-size:.72rem;font-weight:900;color:inherit;
}
.category-panel{
  border:1px solid var(--bdr);border-radius:28px;padding:1rem;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)), rgba(10,18,45,.2);
}
body.light .category-panel{background:#f2eadb}
.category-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-bottom:1rem;padding-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.06);
}
body.light .category-head{border-bottom-color:rgba(148,163,184,.18)}
.category-title{display:flex;align-items:center;gap:.7rem;font-size:1.25rem;font-weight:900;letter-spacing:-.03em}
.category-sub{color:var(--mut);font-size:.92rem;margin-top:.24rem}
.category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}
.category-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;width:100%;text-align:left;
  border:1px solid var(--bdr);border-radius:22px;padding:1.1rem 1.05rem;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)), var(--card2);
  color:var(--txt);cursor:pointer;
}
.category-card:hover{border-color:rgba(183,157,114,.3);transform:translateY(-1px)}
.category-card-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%}
.category-card-title{display:flex;align-items:center;gap:.7rem;font-size:1.02rem;font-weight:900;letter-spacing:-.03em}
.category-card-copy{color:var(--mut);font-size:.88rem;line-height:1.65}
.category-card-cta{display:inline-flex;align-items:center;gap:.35rem;color:var(--pri);font-size:.82rem;font-weight:800}
.category-accordion{
  display:grid;
  gap:1rem;
}
.category-accordion-item{
  border:1px solid var(--bdr);
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)), var(--card2);
  box-shadow:0 14px 28px rgba(15,23,42,.06);
}
body.light .category-accordion-item{
  background:#f2eadb;
  box-shadow:0 14px 28px rgba(140,117,84,.08);
}
.category-accordion-item.is-open{
  border-color:rgba(183,157,114,.34);
}
.category-accordion-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  padding:1.08rem 1.14rem;
}
.category-main-link{
  min-width:0;
  display:flex;
  align-items:center;
  gap:.9rem;
  text-decoration:none;
  color:inherit;
}
.category-main-link:hover .category-main-label{
  color:var(--pri);
}
.category-main-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.14rem;
}
.category-main-label{
  font-size:1.1rem;
  font-weight:900;
  letter-spacing:-.03em;
  transition:color .15s;
}
.category-main-meta{
  color:var(--mut);
  font-size:.88rem;
  line-height:1.45;
}
.category-main-badges{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.category-expand-btn{
  appearance:none;
  border:1px solid rgba(183,157,114,.22);
  background:rgba(183,157,114,.08);
  color:var(--pri);
  border-radius:18px;
  padding:.74rem .9rem;
  min-width:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  cursor:pointer;
  font-weight:900;
}
.category-expand-btn:hover{
  background:rgba(183,157,114,.14);
}
.category-expand-btn[aria-expanded="true"] .category-expand-chevron{
  transform:rotate(45deg);
}
.category-expand-chevron{
  font-size:1.24rem;
  line-height:1;
  transition:transform .18s ease;
}
.category-accordion-body{
  padding:0 1.14rem 1.14rem;
}
.category-sublist{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.78rem;
}
.category-subitem{
  min-width:0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  text-decoration:none;
  color:inherit;
  border:1px solid rgba(183,157,114,.18);
  background:rgba(183,157,114,.06);
  border-radius:20px;
  padding:.88rem .95rem;
  transition:transform .15s,border-color .15s,background .15s;
}
.category-subitem:hover{
  transform:translateY(-1px);
  filter:saturate(1.08);
}
.category-subcopy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.2rem;
}
.category-subtitle{
  font-size:.93rem;
  font-weight:800;
  line-height:1.35;
}
.category-submeta{
  color:var(--mut);
  font-size:.78rem;
  line-height:1.4;
}
.category-subarrow{
  color:var(--pri);
  font-weight:900;
  flex-shrink:0;
}
.category-subempty{
  color:var(--sec);
}
.exercise-stack{
  --exercise-font-scale: 1;
  display:grid;
  gap:1rem;
}
.exercise-card{
  border:1px solid var(--bdr);border-radius:24px;overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)), var(--card2);
}
body.light .exercise-card{background:var(--card2)}
.exercise-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1.4rem 1.4rem 1.26rem;border-bottom:1px solid rgba(255,255,255,.06);
}
body.light .exercise-head{border-bottom-color:rgba(148,163,184,.18)}
.exercise-toggle{width:100%;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.exercise-card.is-collapsed .exercise-head{border-bottom:none}
.exercise-head-right{display:flex;align-items:center;gap:.8rem;margin-left:auto}
.exercise-chevron{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;
  border:1px solid rgba(183,157,114,.24);background:rgba(183,157,114,.08);color:var(--pri);font-size:calc(1.15rem * var(--exercise-font-scale));font-weight:900;line-height:1;
}
.exercise-head-copy{display:grid;gap:.18rem;min-width:0}
.exercise-title{font-size:calc(1.05rem * var(--exercise-font-scale));font-weight:900;letter-spacing:-.03em}
.exercise-subtitle{
  color:var(--mut);
  font-size:calc(.84rem * var(--exercise-font-scale));
  line-height:1.45;
  font-weight:600;
}
.exercise-body{display:block}
.exercise-body[hidden]{display:none !important}
.exercise-layout{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  height:clamp(720px, 78vh, 860px);
  min-height:720px;
  align-items:stretch;
}
.pdf-col{
  display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;height:100%;overflow:hidden;background:#f8f5ef;
}
body.light .pdf-col{background:#efe6d3}
.pdf-col + .pdf-col{border-left:1px solid rgba(255,255,255,.06)}
body.light .pdf-col + .pdf-col{border-left-color:rgba(148,163,184,.18)}
.pdf-head,.corr-summary-bar{
  display:flex;align-items:center;justify-content:flex-end;gap:.8rem;flex-wrap:wrap;
  padding:1.2rem 1.3rem;border-bottom:1px solid rgba(255,255,255,.06);min-height:96px;
}
body.light .pdf-head,body.light .corr-summary-bar{border-bottom-color:rgba(148,163,184,.18)}
.corr-summary-bar{display:grid;grid-template-columns:auto minmax(0,1fr);justify-content:normal}
.corr-summary-main{display:flex;align-items:center;gap:.75rem;min-width:0;font-weight:800;color:var(--txt)}
.corr-summary-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:nowrap;justify-content:flex-end;min-width:0}
.ghost-btn{
  text-decoration:none;color:var(--pri);font-weight:700;font-size:calc(.82rem * var(--exercise-font-scale));padding:.92rem 1.3rem;border-radius:16px;
  border:1px solid rgba(183,157,114,.22);background:rgba(183,157,114,.06);
}
.ghost-btn:hover{background:rgba(183,157,114,.12)}
body.light .ghost-btn{border-color:rgba(178,135,60,.18);background:rgba(178,135,60,.08)}
.corr-toggle-btn{
  border:none;border-radius:16px;padding:.92rem 1.3rem;cursor:pointer;background:rgba(183,157,114,.12);
  color:var(--txt);font-weight:800;font-size:calc(.82rem * var(--exercise-font-scale));
}
body.light .corr-toggle-btn{background:rgba(178,135,60,.14)}
.pdf-frame{display:none !important;width:100%;height:100%;min-height:0;border:0;background:#111827}
.subject-frame,.corr-frame{min-height:0;height:100%}
.pdf-mobile-viewer{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;
  min-height:0;height:100%;max-height:none;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;
  padding:.85rem;background:#f8f5ef;scrollbar-width:thin;scrollbar-color:rgba(166,123,50,.45) transparent;
}
.pdf-mobile-viewer::-webkit-scrollbar{width:10px;height:10px}
.pdf-mobile-viewer::-webkit-scrollbar-thumb{
  background:rgba(166,123,50,.45);border-radius:999px;border:2px solid transparent;background-clip:padding-box;
}
.pdf-mobile-viewer[hidden]{display:none !important}
.pdf-mobile-viewer.active{display:flex}
.pdf-mobile-state{
  padding:1rem 1.05rem;border:1px dashed rgba(183,157,114,.28);border-radius:16px;color:var(--soft);
  background:rgba(183,157,114,.05);line-height:1.6;
}
.pdf-mobile-state a{color:var(--pri);font-weight:700}
.pdf-mobile-page{
  margin:0 auto .9rem;width:min(100%,1040px);max-width:1040px;flex:0 0 auto;
  padding:.3rem;border-radius:18px;background:#ffffff;box-shadow:0 10px 26px rgba(15,23,42,.12);
}
.pdf-mobile-canvas{display:block;width:100%;height:auto;border-radius:12px;background:#ffffff}
body.light .pdf-mobile-viewer{background:#efe6d3}
body.light .pdf-mobile-page{background:#fffdf8;box-shadow:0 10px 22px rgba(140,117,84,.12)}
.inline-exercise-viewer{
  min-height:0;
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  padding:1.5rem;
  background:linear-gradient(180deg, rgba(248,245,239,.96), rgba(244,239,230,.92));
}
.inline-exercise-card{
  width:min(100%, 1320px);
  margin:0 auto;
  padding:1.9rem 2rem;
  border-radius:28px;
  background:#fffdf8;
  border:1px solid rgba(140,117,84,.16);
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}
.inline-exercise-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:.8rem;
}
.inline-exercise-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:.44rem 1rem;
  border-radius:999px;
  background:rgba(178,135,60,.08);
  border:1px solid rgba(178,135,60,.18);
  color:var(--pri);
  font-size:calc(.74rem * var(--exercise-font-scale));
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.inline-exercise-note{
  color:var(--mut);
  font-size:calc(.8rem * var(--exercise-font-scale));
  font-weight:700;
  line-height:1.45;
}
.inline-exercise-body{
  color:var(--txt);
  line-height:1.7;
  font-size:calc(1.03rem * var(--exercise-font-scale));
}
.inline-exercise-body .katex{
  font-size:1.08em;
}
.inline-exercise-body .katex-display{
  margin:.6rem 0 !important;
  overflow-x:auto;
  overflow-y:hidden;
  padding:.1rem 0 .25rem;
}
.inline-exercise-body .math-inline{
  display:inline-flex;
  align-items:flex-end;
  gap:.06em;
  font-family:"KaTeX_Main","Cambria Math","STIX Two Text","Times New Roman",serif;
  font-weight:600;
  letter-spacing:0;
  font-size:1.04em;
}
.inline-exercise-body .math-inline sup,
.inline-exercise-body .math-inline sub{
  font-size:.72em;
  line-height:1;
}
.inline-exercise-body .math-fn{
  font-style:normal;
  font-weight:600;
}
.inline-exercise-body .math-integral-expression{
  gap:.16em;
}
.inline-exercise-body .math-frac{
  display:inline-grid;
  grid-template-rows:auto 1px auto;
  justify-items:center;
  align-items:center;
  min-width:1.6em;
  margin:0 .08em;
  vertical-align:middle;
}
.inline-exercise-body .math-frac-top,
.inline-exercise-body .math-frac-bottom{
  padding:0 .22em;
  line-height:1.05;
}
.inline-exercise-body .math-frac-top{
  padding-bottom:.1em;
}
.inline-exercise-body .math-frac-bottom{
  padding-top:.1em;
}
.inline-exercise-body .math-frac-bar{
  width:100%;
  height:1px;
  background:currentColor;
  opacity:.82;
  border-radius:999px;
}
.inline-exercise-body .math-int-wrap{
  position:relative;
  display:inline-flex;
  align-items:flex-start;
  margin-right:.06em;
}
.inline-exercise-body .math-int-symbol{
  font-size:1.72em;
  line-height:.68;
}
.inline-exercise-body .math-int-bounds{
  display:flex;
  flex-direction:column;
  line-height:1;
  transform:translate(-.2em,-.12em);
  margin-right:-.06em;
}
.inline-exercise-body .math-int-bounds sup,
.inline-exercise-body .math-int-bounds sub{
  font-size:.54em;
  line-height:1;
}
.inline-exercise-body .math-int-body{
  display:inline-flex;
  align-items:flex-end;
  gap:.08em;
}
.inline-exercise-body .math-differential{
  font-style:italic;
}
.inline-exercise-body .math-limit-expression{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:.02em;
  line-height:1;
}
.inline-exercise-body .math-limit-op{
  font-size:.94em;
  font-weight:800;
  letter-spacing:0;
}
.inline-exercise-body .math-limit-sub{
  font-size:.62em;
}
.inline-exercise-body p + p{margin-top:.8rem}
.inline-exercise-body ul,
.inline-exercise-body ol{margin:.9rem 0 .1rem 0}
.inline-exercise-body ul{margin:.7rem 0 .1rem 1.2rem}
.inline-exercise-body .corr-detailed{
  display:grid;
  gap:1rem;
}
.inline-exercise-body .corr-question{
  display:grid;
  gap:.9rem;
  padding:1.1rem 1.15rem;
  border-radius:20px;
  border:1px solid rgba(178,135,60,.14);
  background:rgba(178,135,60,.05);
}
.inline-exercise-body .corr-question-head{
  display:grid;
  gap:.25rem;
}
.inline-exercise-body .corr-question-index{
  color:var(--pri);
  font-size:.84rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.inline-exercise-body .corr-question-title{
  color:var(--txt);
  font-size:1.06rem;
  font-weight:800;
  line-height:1.4;
}
.inline-exercise-body .corr-question-method{
  margin:0;
  padding:.82rem .9rem;
  border-radius:16px;
  background:rgba(178,135,60,.08);
  color:var(--soft);
  line-height:1.7;
  font-weight:600;
}
.inline-exercise-body .corr-question-body{
  display:grid;
  gap:.85rem;
}
.inline-exercise-body .corr-question-body p{
  margin:0;
}
.inline-exercise-body .corr-subhead{
  margin:.1rem 0 0;
  color:var(--pri);
  font-size:.86rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.inline-exercise-body .corr-question-conclusion{
  margin:0;
  padding:.9rem 1rem;
  border-radius:16px;
  border:1px solid rgba(178,135,60,.18);
  background:rgba(178,135,60,.08);
  color:var(--txt);
  font-weight:800;
  line-height:1.7;
}
.inline-exercise-body .corr-math-block{
  margin:0;
  padding:1rem 1.1rem;
  border-radius:18px;
  border:1px solid rgba(178,135,60,.14);
  background:rgba(255,255,255,.38);
  overflow-x:auto;
  overflow-y:hidden;
}
.inline-exercise-body .corr-math-block .katex-display{
  margin:0 !important;
}
.inline-exercise-body .corr-calc-block{
  display:grid;
  gap:.18rem;
}
.inline-exercise-body .corr-calc-line{
  margin:0;
  line-height:1.45;
  white-space:pre-wrap;
  overflow-x:auto;
  overflow-y:hidden;
  padding:.04rem 0;
}
.inline-exercise-body .corr-calc-line + .corr-calc-line{
  padding-top:0;
  border-top:none;
}
.inline-exercise-body .corr-bullet-list{
  margin:0;
  padding-left:1.35rem;
  display:grid;
  gap:.5rem;
}
.inline-exercise-body .corr-bullet-list li{
  padding:0;
  margin:0;
  border:none;
  background:none;
  list-style:disc;
}
.inline-exercise-body .corr-bullet-list li::before{
  display:none;
}
.inline-exercise-body .corr-choice-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.75rem;
}
.inline-exercise-body .corr-choice-cell{
  padding:.95rem 1rem;
  border-radius:18px;
  border:1px solid rgba(178,135,60,.14);
  background:rgba(255,255,255,.38);
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow-x:auto;
  overflow-y:hidden;
}
.inline-exercise-body .corr-question-steps{
  margin:0;
}
.inline-exercise-body ol{
  list-style:none;
  padding:0;
  counter-reset:correction-step;
  display:grid;
  gap:1.15rem;
}
.inline-exercise-body ol li{
  position:relative;
  list-style:none;
  margin:0;
  padding:1.35rem 1.4rem 1.35rem 5.2rem;
  border-radius:22px;
  border:1px solid rgba(178,135,60,.14);
  background:rgba(178,135,60,.06);
}
.inline-exercise-body ol li::before{
  counter-increment:correction-step;
  content:counter(correction-step);
  position:absolute;
  top:1.18rem;
  left:1.2rem;
  width:3rem;
  height:3rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(178,135,60,.16);
  color:var(--pri);
  font-size:calc(.78rem * var(--exercise-font-scale));
  font-weight:900;
}
.inline-exercise-body li + li{margin-top:0}
.inline-exercise-body h4{
  margin:.1rem 0 .65rem;
  font-size:calc(1.02rem * var(--exercise-font-scale));
  color:var(--pri);
  letter-spacing:-.01em;
}
body.light .inline-exercise-viewer{background:#efe6d3}
body.light .inline-exercise-card{
  background:#fffaf1;
  border-color:rgba(140,117,84,.2);
  box-shadow:0 10px 22px rgba(140,117,84,.1);
}
body.light .inline-exercise-body .corr-question{
  background:rgba(178,135,60,.07);
  border-color:rgba(178,135,60,.16);
}
body.light .inline-exercise-body .corr-question-method{
  background:rgba(178,135,60,.1);
}
body.light .inline-exercise-body .corr-question-conclusion{
  background:rgba(178,135,60,.1);
  border-color:rgba(178,135,60,.18);
}
body.light .inline-exercise-body .corr-math-block,
body.light .inline-exercise-body .corr-choice-cell{
  background:rgba(255,253,248,.86);
  border-color:rgba(178,135,60,.16);
}
body.light .inline-exercise-body ol li{
  background:rgba(178,135,60,.08);
  border-color:rgba(178,135,60,.16);
}
.corr-wrap{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;height:100%;background:inherit}
.corr-panel{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;background:inherit}
.corr-closed,.corr-open{min-height:0;height:100%;background:inherit}
.corr-open[hidden],.corr-closed[hidden]{display:none !important}
.corr-open{display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;align-items:stretch}
.corr-closed{padding:1rem;display:flex;align-items:flex-end;overflow:hidden}
.exercise-ai{
  min-height:320px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.7rem;width:100%;
}
.exercise-ai-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.exercise-ai-title{font-size:.98rem;font-weight:900;letter-spacing:-.02em}
.exercise-ai-sub{color:var(--mut);font-size:.82rem;line-height:1.5;margin-top:.2rem}
.exercise-ai-pill{
  display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:.25rem .62rem;border-radius:999px;
  background:rgba(183,157,114,.08);border:1px solid rgba(183,157,114,.18);color:var(--pri);font-size:.72rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;
}
.exercise-ai-messages{
  min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:.55rem;padding-right:.2rem;
}
.exercise-ai-hint{
  border:1px dashed rgba(183,157,114,.22);border-radius:14px;background:rgba(183,157,114,.05);
  color:var(--soft);padding:.85rem .95rem;font-size:.88rem;line-height:1.65;
}
.exercise-ai-msg{font-size:.9rem;line-height:1.7;padding:.62rem .82rem;border-radius:14px;white-space:pre-wrap;word-break:break-word}
.exercise-ai-msg.user{background:rgba(140,117,84,.16);color:#f1e6d4;align-self:flex-end;max-width:90%}
.exercise-ai-msg.assistant{background:rgba(183,157,114,.08);color:#ead7b4;align-self:flex-start;max-width:100%}
body.light .exercise-ai-msg.user{color:#312e81}
body.light .exercise-ai-msg.assistant{color:#6e5727;background:rgba(178,135,60,.08)}
.exercise-ai-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end}
.exercise-ai-input{
  width:100%;min-height:42px;max-height:84px;resize:none;background:rgba(15,12,8,.24);
  border:1px solid rgba(183,157,114,.18);border-radius:14px;color:var(--txt);font:inherit;font-size:.9rem;line-height:1.35;padding:.55rem .75rem;
}
.exercise-ai-input::placeholder{font-size:.82rem;line-height:1.3}
body.light .exercise-ai-input{background:rgba(251,253,255,.92);border-color:rgba(148,163,184,.52)}
.exercise-ai-send{
  border:none;border-radius:14px;padding:.8rem 1rem;cursor:pointer;
  background:linear-gradient(135deg, rgba(183,157,114,.95), rgba(139,117,88,.95));color:#1a130c;font-weight:900;font-size:.95rem;
}
.exercise-ai-send:disabled{opacity:.45;cursor:not-allowed}
body.light .exercise-ai-send{background:#a67b32;color:#f8fafc}
.exercise-card[data-exercise-format="inline"] .exercise-layout{
  height:auto;
  min-height:0;
  align-items:start;
}
.exercise-card[data-exercise-format="inline"] .pdf-col,
.exercise-card[data-exercise-format="inline"] .corr-wrap,
.exercise-card[data-exercise-format="inline"] .corr-panel,
.exercise-card[data-exercise-format="inline"] .corr-open,
.exercise-card[data-exercise-format="inline"] .corr-closed{
  height:auto;
  min-height:0;
  overflow:visible;
}
.exercise-card[data-exercise-format="inline"] .pdf-col{
  grid-template-rows:auto;
  align-self:start;
}
.exercise-card[data-exercise-format="inline"] .inline-exercise-viewer{
  height:auto;
  overflow:visible;
  padding:.72rem;
}
.exercise-card[data-exercise-format="inline"] .inline-exercise-card{
  width:100%;
  max-width:none;
  margin:0;
  padding:.85rem .92rem;
}
.exercise-card[data-exercise-format="inline"] .corr-closed{
  padding:.72rem;
  align-items:stretch;
}
.exercise-card[data-exercise-format="inline"] .exercise-ai{
  min-height:180px;
}
.empty-note{
  border:1px dashed rgba(183,157,114,.24);border-radius:18px;padding:1rem 1.05rem;color:var(--soft);line-height:1.7;
  background:rgba(183,157,114,.05);
}
.category-footer{
  margin-top:1rem;
  border-top:1px solid rgba(255,255,255,.06);
  padding:1rem 1.25rem 1.05rem;
}
.category-footer-links{
  display:flex;align-items:center;gap:.6rem 1rem;flex-wrap:wrap;
}
.category-footer-links a{
  color:var(--mut);text-decoration:none;font-size:.82rem;font-weight:700;
}
.category-footer-links a:hover{
  color:var(--txt);
}
.category-footer-note{
  margin-top:.55rem;color:var(--mut);font-size:.75rem;line-height:1.55;
}
body.light .category-footer{
  border-top-color:rgba(148,163,184,.18);
}
@media (max-width: 980px){
  .exercise-layout{grid-template-columns:1fr;height:auto;min-height:auto}
  .pdf-col + .pdf-col{border-left:none;border-top:1px solid rgba(255,255,255,.06)}
  body.light .pdf-col + .pdf-col{border-top-color:rgba(148,163,184,.18)}
  .pdf-col,.corr-wrap,.corr-panel,.corr-open,.corr-closed{height:auto;min-height:0;overflow:visible}
  .pdf-mobile-viewer{display:flex;max-height:none;overflow-y:visible;overflow-x:hidden;height:auto}
}
@media (min-width: 981px) and (max-width: 1280px){
  .exercise-layout{grid-template-columns:1fr 1fr;height:clamp(640px,72vh,790px);min-height:640px}
}
@media (hover: none) and (pointer: coarse) and (min-width: 700px){
  .exercise-layout{grid-template-columns:1fr 1fr;height:clamp(560px,68vh,760px);min-height:560px}
}
@media (max-width: 640px){
  body{padding:.75rem}
  .content{padding:.9rem}
  .hero{padding:1rem}
  .exercise-ai-row{grid-template-columns:1fr}
  .corr-summary-bar{display:flex;align-items:flex-start;justify-content:space-between}
  .corr-summary-actions{flex-wrap:wrap;justify-content:flex-start}
  .subcat-tabs{grid-template-columns:1fr}
  .category-accordion-head{grid-template-columns:1fr}
  .category-expand-btn{justify-self:start}
  .category-sublist{grid-template-columns:1fr}
  .category-footer{padding:.95rem 1rem 1rem}
}
