.review{--r-bg:#f0eee6;--r-card:#fffdf9;--r-ink:#262624;--r-muted:#6b6a63;--r-line:#e3ddd0;--r-chip:#f5efe4;--r-accent:#cc785c;--r-accent-strong:#b35f45;--r-good:#2f7d59;--r-good-soft:#e6f2ea;--r-bad:#b3402f;--r-bad-soft:#f6e5e1;color:var(--r-ink)}.dark .review{--r-bg:#262624;--r-card:#2f2e2b;--r-ink:#f0eee6;--r-muted:#b5b2a6;--r-line:#46443e;--r-chip:#3a3833;--r-accent:#e0956f;--r-accent-strong:#eeb290;--r-good:#7fc7a1;--r-good-soft:#2b3a33;--r-bad:#e8a08f;--r-bad-soft:#3d2c2a}.review-muted{color:var(--r-muted)}.review-warning{border:1px solid var(--r-line);background:var(--r-chip);border-radius:.9rem;margin-bottom:1rem;padding:.85rem 1.05rem;font-size:.9rem;line-height:1.5}.review-warning strong{color:var(--r-accent-strong)}.review-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}#review-search{border:1px solid var(--r-line);background:var(--r-card);min-width:220px;color:var(--r-ink);border-radius:.6rem;flex:1;padding:.5rem .8rem;font-size:.9rem}.review-toggle{color:var(--r-muted);cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.review-count{color:var(--r-muted);font-size:.8rem;font-weight:600}.review-back{border:1px solid var(--r-line);background:var(--r-chip);color:var(--r-ink);border-radius:999px;align-items:center;gap:.4rem;margin-bottom:1rem;padding:.35rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.review-back:hover{border-color:var(--r-accent);color:var(--r-accent)}.review-layout{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=1024px){.review-layout{grid-template-columns:260px minmax(0,1fr);align-items:start}}.review-toc{align-self:start}@media (width>=1024px){.review-toc{height:calc(100vh - 6rem);padding-right:.4rem;position:sticky;top:5rem;overflow-y:auto}}.review-toc-title{text-transform:uppercase;letter-spacing:.12em;color:var(--r-muted);padding:0 .25rem .5rem;font-size:.7rem;font-weight:700}.review-toc details{border-bottom:1px solid var(--r-line)}.review-toc summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .25rem;font-size:.88rem;font-weight:700;list-style:none;display:flex}.review-toc summary::-webkit-details-marker{display:none}.review-toc .toc-right{flex:none;align-items:center;gap:.5rem;display:inline-flex}.review-toc .toc-w{color:var(--r-accent);font-size:.7rem;font-weight:600}.review-toc .toc-chev{color:var(--r-muted);font-size:.7rem;transition:transform .15s}.review-toc details[open] .toc-chev{transform:rotate(90deg)}.review-toc details[open]>summary .toc-dom,.review-toc summary:hover .toc-dom{color:var(--r-accent)}.review-toc a{color:var(--r-muted);border-left:2px solid var(--r-line);padding:.28rem .25rem .28rem .85rem;font-size:.82rem;text-decoration:none;display:block}.review-toc a:hover{color:var(--r-ink);border-left-color:var(--r-accent)}.review-toc a.active{color:var(--r-accent);border-left-color:var(--r-accent);background:var(--r-chip);font-weight:600}.review-top{z-index:40;border:1px solid var(--r-line);background:var(--r-accent);color:#fff;cursor:pointer;box-shadow:var(--shadow-card-hover);border-radius:999px;padding:.5rem .9rem;font-size:.82rem;font-weight:700;position:fixed;bottom:1.25rem;right:1.25rem}.review-top[hidden]{display:none}.r-domain{margin-top:2.5rem;scroll-margin-top:5rem}.r-domain:first-child{margin-top:0}.r-domain-head{border-bottom:2px solid var(--r-line);padding-bottom:.4rem}.r-domain-head h2{letter-spacing:-.01em;font-size:1.4rem;font-weight:800}.r-domain-head .w{color:var(--r-accent);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:700}.r-concepts{gap:.6rem;margin-top:1rem;display:grid}.r-concept{border:1px solid var(--r-line);background:var(--r-chip);border-radius:.7rem;padding:.7rem .9rem;font-size:.88rem}.r-concept .t{color:var(--r-ink);font-weight:700}.r-concept .s{color:var(--r-muted);margin-top:.15rem;line-height:1.5}.r-concept a{color:var(--r-accent);white-space:nowrap;font-weight:600;text-decoration:none}.r-concept a:hover{text-decoration:underline}.r-task{margin-top:1.6rem;scroll-margin-top:5rem}.r-task h3{color:var(--r-accent-strong);font-size:1.05rem;font-weight:700}.r-q{border:1px solid var(--r-line);background:var(--r-card);box-shadow:var(--shadow-card);content-visibility:auto;contain-intrinsic-size:0 260px;border-radius:.8rem;margin-top:.9rem;padding:1.1rem 1.2rem}.r-q .qid{color:var(--r-muted);letter-spacing:.03em;font-size:.72rem;font-weight:700}.r-q .stem{margin-top:.3rem;font-weight:600;line-height:1.55}.r-opts{gap:.45rem;margin-top:.8rem;display:grid}.r-opt{border:1px solid var(--r-line);border-radius:.6rem;align-items:flex-start;gap:.6rem;padding:.55rem .75rem;font-size:.92rem;line-height:1.5;display:flex}.r-opt .l{border:1px solid var(--r-line);background:var(--r-chip);border-radius:.4rem;flex:none;place-items:center;width:1.5rem;height:1.5rem;font-size:.78rem;font-weight:700;display:grid}.r-answered .r-opt.correct{border-color:var(--r-good);background:var(--r-good-soft)}.r-answered .r-opt.correct .l{background:var(--r-good);color:#fff;border-color:var(--r-good)}.r-ans{border:1px solid var(--r-line);border-radius:.6rem;margin-top:.85rem;overflow:hidden}.r-ans .row{border-top:1px solid var(--r-line);padding:.6rem .85rem;font-size:.88rem;line-height:1.55}.r-ans .row:first-child{border-top:none}.r-ans .row.good{background:var(--r-good-soft)}.r-ans .row .lab{font-weight:700}.r-ans .row.good .lab{color:var(--r-good)}.r-ans .row.why .lab{color:var(--r-muted)}.r-doc{margin-top:.7rem;font-size:.85rem}.r-doc a{color:var(--r-accent);font-weight:600;text-decoration:none}.r-doc a:hover{text-decoration:underline}code{background:var(--r-chip);border:1px solid var(--r-line);border-radius:4px;padding:0 .25rem;font-size:.85em}.r-reveal{margin-top:.7rem;display:none}.review.testmode .r-q:not(.revealed) .r-ans,.review.testmode .r-q:not(.revealed) .r-doc{display:none}.review.testmode .r-q:not(.revealed) .r-reveal{display:block}.review.testmode .r-q:not(.revealed) .r-opt.correct{border-color:var(--r-line);background:var(--r-card)}.review.testmode .r-q:not(.revealed) .r-opt.correct .l{background:var(--r-chip);color:var(--r-ink);border-color:var(--r-line)}.r-reveal button{border:1px solid var(--r-line);background:var(--r-chip);color:var(--r-ink);cursor:pointer;border-radius:.5rem;padding:.35rem .8rem;font-size:.82rem;font-weight:600}
