/* 站内练习与过关测验（正式版）：配色沿用学习地图（暖橙主色、米白底），K线绿涨红跌；浅深两套。类名一律 pr- 开头，不碰顶栏与全站样式 */
:root{--bg:#fbfaf8;--bg2:#f4f1ea;--card:#fff;--text:#1f2430;--sub:#5c6577;--mute:#8a92a1;--line:#e6e3dd;--line2:#d8d3c9;
  --accent:#b45309;--accent-soft:rgba(180,83,9,.085);--on-accent:#fff;--hover:rgba(31,36,48,.045);
  --up:#15803d;--dn:#dc2626;--ema:#a16207;--blu:#2563eb;--mk:#7c3aed;--zone:rgba(37,99,235,.07);--span:rgba(124,58,237,.07);--mask:rgba(31,36,48,.06);
  --ok:#047857;--ok-soft:rgba(4,120,87,.09);--no:#b42318;--no-soft:rgba(180,35,24,.08);--free:#047857;
  --shadow:0 10px 30px rgba(31,36,48,.08),0 1px 3px rgba(31,36,48,.05)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14161a;--bg2:#181b20;--card:#1c1f26;--text:#e8e6e3;--sub:#9aa3b2;--mute:#7b8494;--line:#2a2f39;--line2:#3a404c;
  --accent:#f59e0b;--accent-soft:rgba(245,158,11,.11);--on-accent:#1f1300;--hover:rgba(255,255,255,.05);
  --up:#22c55e;--dn:#f87171;--ema:#eab308;--blu:#60a5fa;--mk:#c4b5fd;--zone:rgba(96,165,250,.09);--span:rgba(196,181,253,.09);--mask:rgba(255,255,255,.05);
  --ok:#34d399;--ok-soft:rgba(52,211,153,.11);--no:#fb7185;--no-soft:rgba(251,113,133,.1);--free:#34d399;--shadow:0 10px 30px rgba(0,0,0,.35)}}
:root[data-theme="dark"]{--bg:#14161a;--bg2:#181b20;--card:#1c1f26;--text:#e8e6e3;--sub:#9aa3b2;--mute:#7b8494;--line:#2a2f39;--line2:#3a404c;
  --accent:#f59e0b;--accent-soft:rgba(245,158,11,.11);--on-accent:#1f1300;--hover:rgba(255,255,255,.05);
  --up:#22c55e;--dn:#f87171;--ema:#eab308;--blu:#60a5fa;--mk:#c4b5fd;--zone:rgba(96,165,250,.09);--span:rgba(196,181,253,.09);--mask:rgba(255,255,255,.05);
  --ok:#34d399;--ok-soft:rgba(52,211,153,.11);--no:#fb7185;--no-soft:rgba(251,113,133,.1);--free:#34d399;--shadow:0 10px 30px rgba(0,0,0,.35)}
html{color-scheme:light dark}
:root[data-theme="light"]{color-scheme:light}:root[data-theme="dark"]{color-scheme:dark}
body.pr{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.pr *{box-sizing:border-box}
.pr button{font:inherit;color:inherit;cursor:pointer}
.pr button:disabled{cursor:default}
.pr svg.i{flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pr :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.pr [hidden]{display:none!important}
.pr .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* 子导航 */
.pr-subnav{border-bottom:1px solid var(--line);background:var(--bg)}
.pr-subnav-in{max-width:1120px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:10px;min-height:46px;flex-wrap:wrap}
.pr-crumb{font-size:13px;color:var(--mute)}.pr-crumb a{color:var(--sub);text-decoration:none}.pr-crumb span{margin:0 6px}
.pr-subnav .tabs{display:flex;gap:2px;margin-left:auto}
.pr-subnav .tabs a{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;font-size:13.5px;color:var(--sub);text-decoration:none;white-space:nowrap}
.pr-subnav .tabs a:hover{background:var(--hover)}
.pr-subnav .tabs a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:700}
@media(max-width:640px){.pr-subnav-in{padding:4px 16px}.pr-subnav .tabs{margin-left:0}}

.pr-wrap{max-width:1120px;margin:0 auto;padding:24px 20px 72px}
@media(max-width:720px){.pr-wrap{padding:16px 16px 56px}}
.pr-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--accent)}
.pr-h1{margin:4px 0 6px;font-size:28px;line-height:1.3;letter-spacing:-.01em}
.pr-lead{margin:0;color:var(--sub);max-width:780px}
@media(max-width:720px){.pr-h1{font-size:22px}}
.pr-h2{margin:36px 0 4px;font-size:20px}
.pr-sub{margin:4px 0;color:var(--sub);font-size:13.5px}
.pr-hint{font-size:13px;color:var(--mute)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--bg2);color:var(--sub);border:1px solid var(--line)}

/* 状态条与登录 */
.pr-meter{display:flex;flex-wrap:wrap;gap:6px 18px;margin:16px 0 0;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:13.5px;color:var(--sub)}
.pr-meter span{display:inline-flex;align-items:center;gap:6px}.pr-meter b{color:var(--text)}
.pr-meter svg{color:var(--accent)}
.pr-gate{display:flex;gap:12px;align-items:center;margin:16px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);flex-wrap:wrap}
.pr-gate>svg{color:var(--accent)}
.pr-gate>div{flex:1;min-width:200px}
.pr-gate b{display:block}.pr-gate span{display:block;color:var(--sub);font-size:13px}

/* 课程标签与控制区 */
.pr-tabs{display:flex;gap:8px;margin:22px 0 0;flex-wrap:wrap}
.pr-tabs button{display:inline-flex;align-items:baseline;gap:6px;min-height:40px;padding:7px 14px;border-radius:12px;border:1.5px solid var(--line2);background:var(--card);font-weight:700}
.pr-tabs button span{font-size:12px;font-weight:600;color:var(--mute)}
.pr-tabs button[aria-selected="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.pr-ctl{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.pr-sel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pr-sel span{font-size:13px;font-weight:700;color:var(--sub)}
.pr-sel select{flex:1;min-width:0;max-width:100%;min-height:38px;padding:6px 10px;border-radius:10px;border:1px solid var(--line2);background:var(--bg);color:var(--text);font:inherit;font-size:14px}
.pr-kinds{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pr-kinds button{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:4px 11px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:13px;color:var(--sub)}
.pr-kinds button small{font-size:11.5px;color:var(--mute)}
.pr-kinds button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
.pr-kinds button[aria-pressed="true"] small{color:inherit;opacity:.8}

/* 做题区 */
.pr-stage{margin-top:18px;scroll-margin-top:70px}
.pr-stage-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.pr-stage-h .sp{flex:1}
.pr-card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:18px;box-shadow:var(--shadow)}
@media(max-width:520px){.pr-card{padding:14px 12px;border-radius:14px}}
.pr-q{margin:0 0 12px;font-weight:650;font-size:15.5px;line-height:1.6}
.pr-chart{position:relative;width:100%;min-width:0}
.pr-chart svg{display:block;width:100%;touch-action:manipulation}
.pr-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 2px 0;font-size:12.5px;color:var(--sub)}
.pr-legend span{display:inline-flex;align-items:center;gap:5px}
.pr-legend i{display:inline-block;width:16px;height:0;border-top:2px dashed currentColor}
.pr-legend i.box{width:12px;height:12px;border:1.6px dashed currentColor;border-radius:3px;color:var(--mk)}
.pr-legend i.zone{width:12px;height:12px;background:var(--zone);border:1px solid var(--blu);border-radius:3px}
.pr-legend i.mask{width:12px;height:12px;background:var(--mask);border:1px dashed var(--line2);border-radius:3px}
.pr-legend i.ema{border-top:2px solid var(--ema)}
.pr-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pr-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:900px){.pr-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.pr-grid3{grid-template-columns:1fr}}
.pr-opt-chart{position:relative;display:block;width:100%;min-width:0;text-align:left;padding:8px 8px 6px;border:1.5px solid var(--line);border-radius:12px;background:var(--card)}
.pr-opt-chart:not(:disabled):hover{border-color:var(--line2);background:var(--hover)}
.pr-opt-chart[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pr-opt-chart.is-right{border-color:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.pr-opt-chart.is-wrong{border-color:var(--no);box-shadow:0 0 0 3px var(--no-soft)}
.pr-opt-chart .lt{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-weight:800;font-size:13px}
.pr-opt-chart .lt .tag{font-weight:600;font-size:12px;color:var(--sub);margin-left:auto;text-align:right;line-height:1.3}
.pr-opt-chart .dt{margin-top:4px;font-size:12px;line-height:1.5;color:var(--sub)}
.pr-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pr-opts.col{flex-direction:column}
.pr-opts button{min-height:40px;padding:7px 14px;border-radius:10px;border:1.5px solid var(--line2);background:var(--card);font-size:14px;font-weight:600;text-align:left;line-height:1.45}
.pr-opts.col button{display:flex;gap:10px;align-items:flex-start;font-weight:550}
.pr-opts.col button .l{flex-shrink:0;font-weight:800;color:var(--mute)}
.pr-opts button:not(:disabled):hover{border-color:var(--accent)}
.pr-opts button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.pr-opts button.is-right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.pr-opts button.is-wrong{border-color:var(--no);background:var(--no-soft);color:var(--no)}
.pr-ogroup{margin-top:12px}
.pr-ogroup>p{margin:0 0 6px;font-size:13.5px;font-weight:700;color:var(--sub)}
.pr-ogroup .pr-opts{margin-top:0}
.pr-ogroup .pr-opts button{font-size:13.5px;min-height:36px;padding:6px 12px}
.pr-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}
.pr-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:7px 16px;border-radius:10px;border:1px solid var(--line2);background:var(--card);font-size:14px;font-weight:650;white-space:nowrap;text-decoration:none;color:var(--text)}
.pr-btn.sm{min-height:34px;padding:5px 12px;font-size:13px}
.pr-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}
.pr-btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pr-btn.pri:not(:disabled):hover{filter:brightness(1.06);color:var(--on-accent)}
.pr-btn:disabled{opacity:.45}
.pr-err{margin:10px 0 0;color:var(--no);font-size:13.5px}

/* 计算与情景 */
.pr-given{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0 0;padding:0}
.pr-given div{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.pr-given dt{font-size:12px;color:var(--sub)}
.pr-given dd{margin:2px 0 0;font-weight:700;font-variant-numeric:tabular-nums;word-break:break-all}
.pr-calc{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.pr-calc label{flex:0 1 220px;min-width:140px}
.pr-calc input{width:100%;min-height:42px;padding:8px 12px;border-radius:10px;border:1.5px solid var(--line2);background:var(--bg);color:var(--text);font:inherit;font-size:16px;font-variant-numeric:tabular-nums}
.pr-calc input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.pr-calc .u{font-weight:700;color:var(--sub)}
.pr-calc.is-right input{border-color:var(--ok)}.pr-calc.is-wrong input{border-color:var(--no)}
.pr-rulecard{margin:4px 0 0;padding:10px 14px;border-radius:12px;border:1px dashed var(--line2);background:var(--bg2);font-size:13.5px}
.pr-rulecard b{display:inline-flex;align-items:center;gap:6px;color:var(--accent)}
.pr-rulecard ul{margin:4px 0 0;padding-left:18px;color:var(--sub)}

/* 反馈 */
.pr-fb{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);font-size:14px}
.pr-fb .vd{display:flex;align-items:center;gap:6px;font-weight:800;margin-bottom:4px}
.pr-fb .vd.ok{color:var(--ok)}.pr-fb .vd.no{color:var(--no)}.pr-fb .vd.mid{color:var(--accent)}
.pr-fb p{margin:4px 0}
.pr-fb .why{font-size:14.5px}
.pr-more{margin-top:6px}
.pr-more summary{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:13px;color:var(--sub);font-weight:600;list-style:none}
.pr-more summary::-webkit-details-marker{display:none}
.pr-more summary svg{transition:transform .2s}
.pr-more[open] summary svg{transform:rotate(180deg)}
.pr-more>div{margin-top:6px;padding:8px 10px;border-radius:10px;background:var(--card);border:1px solid var(--line);font-size:13px;color:var(--sub)}
.pr-more b{color:var(--text)}
.pr-steps{margin:4px 0;padding-left:18px}
.pr-src{font-size:12.5px;color:var(--mute)}
.pr-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pr-links a{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 10px;border-radius:999px;border:1px solid var(--line2);background:var(--card);font-size:12.5px;text-decoration:none;color:var(--text)}
.pr-links a:hover{border-color:var(--accent);color:var(--accent)}
.pr-links a .c{color:var(--mute);font-weight:600;flex-shrink:0}
.pr-links a .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pr-rates{display:grid;gap:6px;margin:8px 0 4px}
.pr-rate{display:grid;grid-template-columns:44px 1fr 46px;gap:8px;align-items:center;font-size:13px}
.pr-rate .bar{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.pr-rate .bar i{display:block;height:100%;background:var(--sub);border-radius:999px}
.pr-rate.best .bar i{background:var(--accent)}
.pr-rate .v{text-align:right;font-variant-numeric:tabular-nums}
.pr-rate .k{font-weight:700;color:var(--text)}
.pr-rate.act .k::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blu);margin-left:4px;vertical-align:2px}
.pr-ledger{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:13.5px;font-variant-numeric:tabular-nums}
.pr .pos{color:var(--up)}.pr .neg{color:var(--dn)}
.pr-timer{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:10px}
.pr-timer i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left center}
.pr-sum{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.pr-sum li{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.pr-sum li svg{margin-top:3px}

/* 课节列表 */
.pr-lessons{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.pr-lessons li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.pr-lessons .t{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.pr-lessons .t .no{font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0}
.pr-lessons .t a{font-weight:650;text-decoration:none;color:var(--text)}
.pr-lessons .t a:hover{color:var(--accent)}
.pr-lessons em{font-style:normal;display:inline-flex;align-items:center;gap:3px;padding:0 7px;border-radius:999px;font-size:11.5px;font-weight:700}
.pr-lessons em.free{color:var(--free);border:1px solid var(--free)}
.pr-lessons em.pass{color:var(--on-accent);background:var(--accent)}
.pr-lessons .m{grid-column:1;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--mute)}
.pr-lessons .m span{display:inline-flex;align-items:center;gap:3px}
.pr-lessons .b{grid-column:2;grid-row:1/span 2;display:flex;gap:6px}
@media(max-width:640px){.pr-lessons li{grid-template-columns:1fr}.pr-lessons .b{grid-column:1;grid-row:auto}}

/* 过关测验 */
.pr-lesson-card{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);margin:16px 0 18px;flex-wrap:wrap}
.pr-lesson-card>span:nth-child(2){flex:1;min-width:200px}
.pr-lesson-card .ic{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pr-lesson-card b{display:block}
.pr-lesson-card span span{color:var(--sub);font-size:13px}
.pr-steps-bar{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.pr-steps-bar i{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:12.5px;font-weight:800;border:1.5px solid var(--line2);color:var(--sub);background:var(--card)}
.pr-steps-bar i.cur{border-color:var(--accent);color:var(--accent)}
.pr-steps-bar i.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.pr-steps-bar i.no{border-color:var(--no);background:var(--no-soft);color:var(--no)}
.pr-steps-bar .t{margin-left:6px;font-size:13px;color:var(--sub)}
.pr-intro p{margin:0}
.pr-result{text-align:center;padding:26px 16px}
.pr-result .big{font-size:40px;font-weight:800;line-height:1.1}
.pr-result .big small{font-size:18px;color:var(--sub);font-weight:700}
.pr-result .vd{margin:8px 0 0;font-weight:800}
.pr-result .vd.ok{color:var(--ok)}.pr-result .vd.no{color:var(--no)}
.pr-skill{display:flex;align-items:center;gap:12px;margin:14px auto 0;padding:12px 16px;border-radius:14px;border:1.5px solid var(--line2);background:var(--card);text-align:left;max-width:460px;text-decoration:none;color:var(--text)}
.pr-skill .ring{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px dashed var(--line2);color:var(--mute);flex-shrink:0}
.pr-skill.lit{border-color:var(--accent)}
.pr-skill.lit .ring{border:2px solid var(--accent);background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 6px var(--accent-soft)}
.pr-skill b{display:block}.pr-skill span span{font-size:13px;color:var(--sub)}
.pr-disc{margin-top:40px;padding-top:14px;border-top:1px solid var(--line);color:var(--mute);font-size:12.5px}

/* Snow 插画：学习地图同一套图，56px（手机 48px） */
.pr-snow{display:block;width:56px;height:56px;border-radius:14px;overflow:hidden;flex-shrink:0;background:var(--bg2,#f4f1ea);box-shadow:0 0 0 1px var(--line)}
.pr-snow img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:640px){.pr-snow{width:48px;height:48px}}
.pr-soft{font-size:12.5px;color:var(--mute)}.pr-soft a{color:var(--accent);text-decoration:none;font-weight:600}.pr-soft a:hover{text-decoration:underline}
.pr-meter span.pr-soft{display:inline;flex-basis:100%}
