/* Generated from the existing practice report by example_reports.py. */
:root{--mono:var(--f-sans);--disp:var(--f-sans);--cjk:var(--f-sans);--cjk-serif:var(--f-sans);
--pen-paper:var(--pen);--ok-paper:var(--ok);--amber:var(--ink-dim)}
/* ── paper report ── */
.paper-wrap{display:none;position:relative;z-index:2;padding:128px 20px 80px;justify-content:center}
.paper-wrap.on{display:flex}
.paper{width:min(820px,100%);background:var(--card);color:var(--ink);border-radius:14px;
  font-family:var(--cjk);position:relative;
  box-shadow:0 18px 50px rgba(28,35,51,.08),0 0 0 1px var(--line);
  animation:handback .7s cubic-bezier(.16,.84,.3,1) both}
@keyframes handback{from{opacity:0;transform:translateY(46px) rotate(.4deg)}to{opacity:1;transform:none}}
.paper::before{content:"";position:absolute;inset:0;border-radius:6px;pointer-events:none;opacity:.6;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.13 0 0 0 0 0.11 0 0 0 0 0.07 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23p)'/%3E%3C/svg%3E")}
.paper .inner{padding:46px 54px 50px;position:relative}
.p-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:8px}
.p-head .t1{font-family:var(--disp);font-size:13px;letter-spacing:.26em;color:var(--ink-dim);text-transform:uppercase}
.p-head h2{font-family:var(--cjk-serif);font-size:30px;font-weight:700;letter-spacing:.06em;margin-top:6px}
.p-head .mono{font-family:var(--mono);font-size:11px;color:var(--ink-dim);text-align:right;line-height:1.9}
/* score stamp */
.stamp{position:absolute;top:118px;inset-inline-end:38px;width:118px;height:118px;transform:rotate(8deg) scale(.6);opacity:0;
  mix-blend-mode:multiply;transition:transform .45s cubic-bezier(.2,1.6,.35,1),opacity .3s}
.stamp.on{opacity:1;transform:rotate(-6deg) scale(1)}
.stamp svg{width:100%;height:100%}
.p-sec{margin-top:30px}
.p-sec .cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.3em;color:var(--ink-dim);margin-bottom:14px}
.srcline{font-family:var(--disp);font-size:18.5px;line-height:1.75;font-weight:460}
.units{margin-top:22px;display:flex;flex-direction:column}
.unit{display:grid;grid-template-columns:20px 1fr;gap:0 16px;padding:14px 12px;border-radius:8px;
  opacity:0;transform:translateY(8px);transition:.45s cubic-bezier(.2,.8,.2,1)}
.unit.show{opacity:1;transform:none}
.unit + .unit{border-top:1px dashed rgba(28,35,51,.16)}
.unit .glyph{font-family:var(--mono);font-size:15px;font-weight:600;padding-top:2px}
.unit.u-ok .glyph{color:var(--ok-paper)} .unit.u-part .glyph{color:var(--amber)} .unit.u-bad .glyph{color:var(--pen-paper)}
.unit .src{font-family:var(--disp);font-size:15.5px;line-height:1.6}
.unit .said{font-family:var(--cjk-serif);font-size:15.5px;margin-top:7px;line-height:1.7}
.unit .said .lbl,.unit .fix .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--ink-dim);margin-inline-end:10px}
.unit .fix{margin-top:8px;font-size:13.5px;line-height:1.75;color:var(--ink)}
.redo{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.redo-btn{cursor:pointer;border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:9px;padding:8px 14px;font-size:13px;letter-spacing:.04em}
.redo-btn:disabled{opacity:.5;cursor:default}
.redo-msg{font-size:13px;color:var(--ink-dim)}
.redo-out{flex-basis:100%}
/* 10-19 二次复核：比「再说一次」更轻的一颗小按钮（虚线框），不抢主操作 */
.sc{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.sc-btn{cursor:pointer;border:1px dashed var(--line-2);background:transparent;color:var(--ink-dim);border-radius:8px;padding:5px 11px;font-size:12.5px;letter-spacing:.03em;min-height:32px}
.sc-btn:hover{color:var(--ink);border-color:var(--ink-dim)}
.sc-btn:disabled{opacity:.5;cursor:default}
.sc-hint{font-size:12px;color:var(--ink-faint)}
.sc-msg{flex-basis:100%;font-size:12.5px;color:var(--ink-dim)}
.sc-msg:empty{display:none}
.sc-res{flex-basis:100%;font-size:13px;line-height:1.65;color:var(--ink-dim);border-inline-start:2px solid var(--line-2);padding-inline-start:10px}
.sc-res.diff{border-inline-start-color:var(--pen-paper, #d6301c);color:var(--ink)}
.sc-res a{color:var(--pen-paper)}
.sc-why{margin-top:4px}
.class-line{margin:18px 0 0;font-size:13.5px;line-height:1.7;color:var(--ink-dim)}
.topfix .unit{border-inline-start:3px solid var(--pen-paper, #d6301c);padding-inline-start:10px}
.unit .fix .tag{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  color:var(--pen-paper);border:1px solid color-mix(in srgb,var(--pen-paper) 55%,transparent);
  border-radius:4px;padding:1px 8px;margin-inline-end:9px;vertical-align:1px}
.unit.u-part .fix .tag{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,transparent)}
.unit .ded{font-family:var(--mono);font-weight:600;color:var(--pen-paper);white-space:nowrap;margin-inline-start:8px}
.ev-quotes{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:12px;background:#fff;overflow:hidden}
.ev-q{padding:20px 22px;min-width:0}
.ev-q+.ev-q{border-inline-start:1px dashed rgba(28,35,51,.22)}
.ev-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:var(--ink-dim);margin-bottom:9px}
.ev-src{font-family:var(--disp);font-size:15px;line-height:1.8}
.ev-ren{font-family:var(--cjk-serif);font-size:15px;line-height:1.95}
.report-score{padding:20px;border:1px solid var(--line-2);border-top:3px solid var(--pen-paper);border-radius:12px;background:var(--paper-2)}
.report-score-value{font-family:var(--disp);font-size:44px;line-height:1.2;color:var(--pen-paper);margin:8px 0}
.report-score-value small{font-family:var(--mono);font-size:18px;color:var(--ink-dim)}
.report-score p,.report-score details{font-size:14px;line-height:1.65;margin:8px 0}
.report-score summary{cursor:pointer}
*{box-sizing:border-box}body{margin:0}
.example-wrap{padding:40px 16px 60px;display:flex;justify-content:center}
.example-wrap .paper{animation:none}.paper h1{font-size:26px;line-height:1.4;margin:8px 0}
.paper p{line-height:1.7}.example-note{margin:18px 0;color:var(--ink-dim)}
.example-wrap .unit{grid-template-columns:20px minmax(0,1fr)}
.ev-src,.ev-ren,.fix{overflow-wrap:anywhere}.ev-lbl{display:block}
.example-wrap .unit .src{font-size:17px}.example-wrap .unit .fix .lbl{letter-spacing:0}
.example-wrap .p-sec{margin-top:26px}.example-wrap .ev-quotes{margin-top:12px;background:var(--card)}
.example-wrap .ev-lbl{letter-spacing:.04em;line-height:1.5}
.example-wrap .unit .fix{margin-top:12px}.example-wrap .unit .fix p{margin:6px 0}
.example-wrap footer{margin-top:30px}.example-wrap footer a{color:var(--pen);font-weight:600}
@media(max-width:600px){.paper .inner{padding:24px 18px}.p-head{display:block}
.paper h1{font-size:23px}.ev-quotes{grid-template-columns:minmax(0,1fr)}
.ev-q{padding:16px}.ev-q+.ev-q{border-inline-start:0;border-top:1px dashed var(--line-2)}
.example-wrap .unit{padding:14px 0;gap:0 8px}}
