/* 手册六段课页（费曼版）与交易体系总图、章图的样式。颜色只用全站令牌（assets/ui.css）。
   生成器：build/feynman/（kit.py 组件、system.py 总图与章图、terms.py 术语悬停）；脚本 trader/feynman.js。 */
.fy-i{width:1em;height:1em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em}
.fy-kicker{margin:0 0 4px;font-size:var(--fs-small,13px);font-weight:600;letter-spacing:var(--ls-kicker);color:var(--accent)}
.fy-mute{color:var(--mute)}
.fy-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}
.fy-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 16px;border:1px solid var(--line2);border-radius:var(--r-sm,10px);background:var(--card);color:var(--text);font:inherit;font-size:var(--fs-ui,15px);font-weight:600;cursor:pointer}
.fy-btn:hover{border-color:var(--accent-line);background:var(--hover)}
.fy-btn:disabled{opacity:.5;cursor:not-allowed}
.fy-btn-pri{background:var(--fill);border-color:var(--fill-edge);color:var(--on-fill)}
.fy-btn-pri:hover{background:var(--fill-hover)}
.fy-btn:focus-visible,.fy-opt:focus-visible,.fy-term:focus-visible,.fy-sm-btn:focus-visible,.fy-fast-go:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------------- 你在这（课页顶部） */
.fy-mm{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:18px 0 16px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
a.fy-mm-map{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.fy-mm-k{font-size:var(--fs-small,13px);font-weight:600;color:var(--accent);white-space:nowrap}
.fy-mm-dots{position:relative;display:flex;gap:6px;margin:0;padding:0;list-style:none}
.fy-mm-dots::before{content:"";position:absolute;left:6px;right:6px;top:50%;height:2px;background:var(--line2);transform:translateY(-50%)}
.fy-mm-o{position:relative;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line3);background:var(--card);color:var(--mute);font-size:var(--fs-tiny,12px);font-weight:600}
.fy-mm-dots .is-here .fy-mm-o{width:24px;height:24px;margin:-2px 0;border-color:var(--accent);background:var(--accent);color:var(--on-accent);box-shadow:var(--ring)}
.fy-mm-map:hover .fy-mm-o{border-color:var(--accent-line)}
.fy-mm-say{flex:1 1 260px;margin:0;font-size:var(--fs-aux,14px);line-height:1.55;color:var(--sub)}
.fy-mm-say b{color:var(--text);margin-right:8px}
.fy-mm-step{display:inline-block;margin-right:8px;padding:0 8px;border-radius:var(--r-pill,999px);background:var(--accent-soft2);color:var(--accent);font-size:var(--fs-small,13px);font-weight:600}

/* ---------------- 高手速通 */
.fy-mm+.fy-fast{margin-top:0}
.fy-fast{margin:14px 0 0;border:1px dashed var(--accent-line);border-radius:var(--r-md,10px);background:var(--accent-soft)}
.fy-fast-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 6px}
.fy-fast-go{display:flex;align-items:center;gap:10px;flex:1;padding:10px 10px;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.fy-fast-go>.fy-i{width:20px;height:20px;color:var(--accent)}
.fy-fast-go b{display:block;font-size:var(--fs-ui,15px)}
.fy-fast-go small{display:block;color:var(--sub);font-size:var(--fs-small,13px)}
.fy-fast-badge{display:inline-flex;align-items:center;gap:5px;margin-right:8px;padding:3px 10px;border-radius:var(--r-pill,999px);background:var(--ok-soft);border:1px solid var(--ok-line);color:var(--ok);font-size:var(--fs-small,13px);font-weight:600;white-space:nowrap}
.fy-fast-box{padding:4px 16px 16px}
.fy-fqs{margin:0;padding-left:1.3em}
.fy-fq{margin:10px 0 14px}
.fy-fq>p{margin:0 0 8px;font-weight:600}
.fy-fq.is-wrong .fy-fq-why{color:var(--err)}
.fy-fq-why{margin:8px 0 0;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-fast-st{margin:10px 0 0;font-size:var(--fs-ui,15px);line-height:1.6}
.fy-fast-st a{color:var(--accent);font-weight:600}

/* ---------------- 六段导航 */
.fy-nav.section-nav{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 6px;padding:0;border:0;background:none}
.fy-nav a{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 6px;border:1px solid var(--line);border-radius:var(--r-pill,999px);background:var(--card);color:var(--sub);font-size:var(--fs-aux,14px);text-decoration:none}
.fy-nav a b{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent-soft2);color:var(--accent);font-size:var(--fs-tiny,12px)}
.fy-nav a:hover{border-color:var(--accent-line);color:var(--text)}

/* ---------------- 段 */
.fy-sec{margin:34px 0 0;scroll-margin-top:calc(var(--nav-h,64px) + 12px)}
.fy-sec-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:6px}
.fy-sec-no{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;margin-top:2px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:var(--fs-body,16px)}
.fy-sec-k{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-small,13px);font-weight:600;letter-spacing:var(--ls-kicker);color:var(--accent)}
.fy-sec-h h2{margin:2px 0 0!important;padding:0!important;border:0!important;font-size:22px;line-height:1.35}
.fy-lead,.fy-lead2{margin:6px 0 12px;color:var(--sub);font-size:var(--fs-ui,15px);line-height:1.7}
.fy-sec-b>p,.fy-sec-b .fy-st-a p,.fy-step p,.fy-mo p{line-height:1.8}
.fy-fold-bar{display:none}
.fy-page.is-fast .fy-sec[data-fy-fold]:not(.is-open) .fy-sec-b,.fy-page.is-fast .fy-sec[data-fy-fold]:not(.is-open) .fy-lead{display:none}
.fy-page.is-fast .fy-sec[data-fy-fold] .fy-fold-bar{display:flex}
.fy-fold-bar{align-items:center;gap:10px;margin:8px 0 0;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm,10px);background:var(--card2);font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-fold-bar button{margin-left:auto;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}

/* ① 先自己想 */
.fy-think{padding:16px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-scene{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.fy-scene>p{flex:1 1 220px;margin:0;font-size:var(--fs-body,16px);line-height:1.7}
.fy-mini{margin:0;flex:0 0 auto}
.fy-mini svg{display:block;width:150px;max-width:100%;height:auto}
.fy-mini p{margin:0;font-size:var(--fs-tiny,12px);color:var(--mute)}
.fy-book table{border-collapse:collapse;min-width:170px;font-size:var(--fs-ui,15px)}
.fy-book th,.fy-book td{padding:5px 12px;border-bottom:1px solid var(--line);text-align:left}
.fy-book th{font-weight:600;color:var(--sub);white-space:nowrap}
.fy-book td{font-variant-numeric:tabular-nums;font-weight:600}
.fy-bk-ask td{color:var(--ch-down)}.fy-bk-bid td{color:var(--ch-up)}
.fy-svg-t{font-size:var(--fs-small,13px);fill:var(--text);font-weight:600}
.fy-svg-s{font-size:var(--fs-small,13px);fill:var(--sub)}
.fy-tick{stroke:var(--line3);stroke-width:1}
.fy-wick-up{stroke:var(--ch-up);stroke-width:2}
.fy-body-up{fill:var(--ch-up)}
.fy-ln{fill:none;stroke:var(--text);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.fy-dash{stroke:var(--warn);stroke-width:1.5;stroke-dasharray:5 4;fill:none}
.fy-ring{fill:none;stroke:var(--warn);stroke-width:2}
.fy-wick-dn{stroke:var(--ch-down);stroke-width:2}
.fy-body-dn{fill:var(--ch-down)}
.fy-bar-n{fill:var(--line3)}
.fy-q{margin:14px 0 10px;font-size:17px;font-weight:600}
.fy-opts{display:flex;flex-wrap:wrap;gap:8px}
.fy-opt{min-height:42px;padding:9px 14px;border:1px solid var(--line2);border-radius:var(--r-sm,10px);background:var(--card);color:var(--text);font:inherit;font-size:var(--fs-ui,15px);text-align:left;cursor:pointer}
.fy-opt:hover{border-color:var(--accent-line)}
.fy-opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft2);box-shadow:var(--shadow-sel)}
.fy-opt.is-right{border-color:var(--ok-line);background:var(--ok-soft)}
.fy-opt.is-wrong{border-color:var(--err-line);background:var(--err-soft)}
.fy-hint{margin:10px 0 0;font-size:var(--fs-aux,14px);color:var(--mute)}
.fy-why{display:block;margin-top:12px}
.fy-why span{display:block;margin-bottom:4px;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-why textarea,.fy-bk-say textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-sm,10px);background:var(--card2);color:var(--text);font:inherit;font-size:var(--fs-ui,15px);line-height:1.6;resize:vertical}
.fy-saved{margin:8px 0 0;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-saved.is-on{color:var(--ok)}

/* 讲解视频 */
.fy-video{margin:26px 0 0}
.fy-video .qs{margin:0}
.fy-vid-t{margin:0 0 10px!important;font-size:17px}

/* ② 大白话 */
.fy-say{margin:4px 0 14px;padding:14px 16px;border-left:4px solid var(--accent);border-radius:0 var(--r-sm,10px) var(--r-sm,10px) 0;background:var(--accent-soft);font-size:18px;line-height:1.75;font-weight:600;color:var(--text)}
.fy-analogy{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-an-k{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-weight:600;color:var(--accent)}
.fy-analogy p{margin:6px 0;line-height:1.8}
.fy-an-list{margin:8px 0;padding:0;list-style:none;display:grid;gap:8px}
.fy-an-list li{position:relative;padding:8px 12px 8px calc(12px + var(--fy-an-w,4.6em));border-radius:var(--r-sm,10px);background:var(--card2);line-height:1.7}
.fy-an-list li b{position:absolute;left:12px;top:8px;color:var(--text)}
@media (max-width:560px){.fy-an-list[data-fy-an-long] li{padding-left:12px}.fy-an-list[data-fy-an-long] li b{position:static;display:block}}

/* ③ 框架 */
.fy-here{margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm,10px);background:var(--card);font-size:var(--fs-ui,15px);line-height:1.7}
.fy-here a{color:var(--accent);font-weight:600}
.fy-steps,.fy-timeline,.fy-stuck{margin:0;padding:0;list-style:none}
.fy-timeline{margin-top:16px}
.fy-step,.fy-mo{position:relative;display:flex;gap:12px;padding:0 0 18px;scroll-margin-top:calc(var(--nav-h,64px) + 12px)}
.fy-step>div,.fy-mo>div{flex:1;min-width:0}
.fy-step-n,.fy-mo-n{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);font-weight:600;font-size:var(--fs-aux,14px);background:var(--card)}
.fy-step:not(:last-child)::before,.fy-mo:not(:last-child)::before{content:"";position:absolute;left:13px;top:30px;bottom:0;width:2px;background:var(--line2)}
.fy-step h3,.fy-mo h3{margin:2px 0 4px!important;font-size:17px}
.fy-step p,.fy-mo p{margin:4px 0}
.fy-miss,.fy-without{display:flex;gap:8px;padding:8px 12px;border-radius:var(--r-sm,10px);background:var(--err-soft);font-size:var(--fs-ui,15px);line-height:1.65}
.fy-miss b,.fy-without b{flex-shrink:0;color:var(--err)}
.fy-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 0;font-size:var(--fs-aux,14px)}
.fy-tools span{color:var(--mute)}
.fy-tools a{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:600;text-decoration:none}
.fy-tools a:hover{text-decoration:underline}

/* ④ 实战 */
.fy-mo-w{margin:0!important;font-size:var(--fs-small,13px);font-weight:600;letter-spacing:var(--ls-kicker);color:var(--accent)}
.fy-one{padding:8px 12px;border-radius:var(--r-sm,10px);background:var(--card2);font-weight:600}
.fy-calc{padding:8px 12px;border:1px dashed var(--line2);border-radius:var(--r-sm,10px);font-size:var(--fs-ui,15px)}
.fy-fig{margin:10px 0 18px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-cap{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.fy-cap b{font-size:var(--fs-body,16px)}.fy-cap span{font-size:var(--fs-small,13px);color:var(--sub)}
.fy-fig-paper svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.fy-note{margin:8px 0 0;font-size:var(--fs-small,13px);line-height:1.6;color:var(--mute)}
.fy-xrp text{font-size:9.5px}
.fy-second{margin:6px 0 0}

/* ⑤ 卡点 */
.fy-st{margin:0 0 12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-st-q{margin:0 0 4px;font-size:17px;font-weight:600;color:var(--text)}
.fy-st-a p{margin:4px 0}
a.fy-st-go{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:var(--fs-aux,14px);color:var(--accent);font-weight:600;text-decoration:none}
a.fy-st-go:hover{text-decoration:underline}

/* ⑥ 讲回去 */
.fy-back{display:grid;gap:14px;padding:16px;border:1px solid var(--accent-line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-bk-k{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:var(--fs-aux,14px);font-weight:600;color:var(--accent)}
.fy-bk-mine{padding:10px 12px;border-radius:var(--r-sm,10px);background:var(--card2)}
.fy-bk-mine p{margin:2px 0;line-height:1.65}
.fy-key{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.fy-key li{padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm,10px)}
.fy-key li.is-mine{border-color:var(--accent)}
.fy-key li[data-ok="1"] .fy-verdict{color:var(--ok)}.fy-key li[data-ok="0"] .fy-verdict{color:var(--err)}
.fy-key b{margin-right:8px}.fy-key p{margin:4px 0 0;font-size:var(--fs-ui,15px);color:var(--sub);line-height:1.6}
.fy-verdict{font-size:var(--fs-small,13px);font-weight:600}
.fy-bk-say{display:block}
.fy-bk-p{display:block;margin:0 0 8px;line-height:1.7}
.fy-bk-ck ol,.fy-bk-bl ol{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.fy-bk-ck li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.fy-bk-ck label{display:flex;align-items:flex-start;gap:8px;min-height:32px;line-height:1.55;cursor:pointer}
.fy-bk-ck input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}
a.fy-ck-go{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-small,13px);font-weight:600;color:var(--accent);text-decoration:none}
.fy-bk-st{margin:6px 0 0;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-bk-bl li{line-height:2.3}
.fy-blank{min-width:3em;max-width:100%;margin:0 4px;padding:2px 6px;border:0;border-bottom:2px solid var(--line3);background:var(--card2);color:var(--text);font:inherit;font-size:var(--fs-ui,15px);text-align:center}
.fy-blank:focus{outline:none;border-bottom-color:var(--accent)}
.fy-blank.is-ok{border-bottom-color:var(--ok);background:var(--ok-soft)}
.fy-blank.is-no{border-bottom-color:var(--err);background:var(--err-soft)}
.fy-bl-st,.fy-copy-st{font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-bl-ans{margin:8px 0 0;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-model summary{cursor:pointer;color:var(--accent);font-weight:600}
.fy-model p{margin:8px 0 0;padding:10px 12px;border-radius:var(--r-sm,10px);background:var(--card2);line-height:1.8}
.fy-take{margin:10px 0 0;font-size:var(--fs-ui,15px);color:var(--sub)}

/* 自测、进阶 */
.fy-check{margin:36px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-check h2{margin:0 0 8px!important;padding:0!important;border:0!important;font-size:19px}
.fy-qzs{margin:0;padding:0;list-style:none}
.fy-qz{margin:12px 0 16px}.fy-qz>p{margin:0 0 8px}
.fy-qz-fb{margin:8px 0 0;font-size:var(--fs-ui,15px);line-height:1.6}
.fy-qz-fb.is-ok b{color:var(--ok)}.fy-qz-fb.is-no b{color:var(--err)}
.fy-adv{margin:24px 0 0}
.fy-adv>details{border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card)}
.fy-adv summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none}
.fy-adv summary::-webkit-details-marker{display:none}
.fy-adv summary>.fy-i{width:20px;height:20px;color:var(--accent)}
.fy-adv summary b{display:block}.fy-adv summary small{display:block;color:var(--sub);font-size:var(--fs-small,13px)}
.fy-adv-b{padding:0 16px 12px}

/* ---------------- 术语悬停 */
a.fy-term{color:inherit;text-decoration:underline dotted var(--accent-line);text-decoration-thickness:1.5px;text-underline-offset:4px;cursor:help}
a.fy-term:hover{color:var(--accent)}
.fy-pop{position:absolute;z-index:60;max-width:300px;padding:10px 12px;border-radius:var(--r-sm,10px);background:var(--raise);color:var(--text);box-shadow:var(--shadow-pop);font-size:var(--fs-aux,14px);line-height:1.6}
.fy-pop b{display:block;margin-bottom:2px}
.fy-pop p{margin:0}
.fy-pop a{display:inline-flex;align-items:center;gap:4px;margin-top:6px;color:var(--accent);font-weight:600;text-decoration:none}

/* ---------------- 交易体系总图（手册目录页） */
.fy-sm{margin:22px 0 8px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r,16px);background:var(--card)}
.fy-sm-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 18px}
.fy-sm-head h2{margin:2px 0!important;padding:0!important;border:0!important;font-size:20px;line-height:1.4}
.fy-sm-head p{margin:2px 0 0;font-size:var(--fs-aux,14px);color:var(--sub);line-height:1.6}
a.fy-sm-lm{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:var(--fs-aux,14px);font-weight:600;text-decoration:none;white-space:nowrap}
a.fy-sm-lm:hover{text-decoration:underline}
.fy-sm-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0 0;padding:0;list-style:none;counter-reset:none}
.fy-sm-st{position:relative;min-width:0}
.fy-sm-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;height:100%;padding:10px 12px 12px;border:1px solid var(--line2);border-radius:var(--r-md,10px);background:var(--card2);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.fy-sm-btn:hover{border-color:var(--accent-line)}
.fy-sm-btn[aria-expanded="true"]{border-color:var(--accent);box-shadow:var(--shadow-sel);background:var(--accent-soft)}
.fy-sm-o{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);font-size:var(--fs-small,13px);font-weight:600;background:var(--card)}
.fy-sm-st.is-done .fy-sm-o{background:var(--accent);color:var(--on-accent)}
.fy-sm-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.fy-sm-t b{font-size:var(--fs-ui,15px);line-height:1.35}
.fy-sm-t small{font-size:var(--fs-small,13px);line-height:1.45;color:var(--sub)}
.fy-sm-t em{font-style:normal;font-size:var(--fs-tiny,12px);color:var(--mute)}
.fy-sm-bar{display:block;width:100%;height:4px;border-radius:2px;background:var(--line2);overflow:hidden}
.fy-sm-bar i{display:block;width:0;height:100%;background:var(--accent)}
.fy-sm-pc{font-size:var(--fs-tiny,12px);color:var(--mute)}
.fy-sm-fork{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line2)}
.fy-sm-fk{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-aux,14px);font-weight:600;color:var(--sub)}
.fy-sm-track2{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}
.fy-sm-br .fy-sm-btn{border-style:dashed}
.fy-sm-br .fy-sm-o{border-style:dashed;font-size:var(--fs-tiny,12px)}
.fy-sm-st>.fy-sm-panel{margin:8px 0 4px}
.fy-sm-panel{margin:14px 0 0;padding:14px 16px;border:1px solid var(--accent-line);border-radius:var(--r-md,10px);background:var(--card2)}
.fy-sm-ph{display:flex;flex-direction:column;gap:2px;margin:0 0 8px}
.fy-sm-ph span{font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-sm-ch{margin:10px 0 0}
.fy-sm-cht{display:flex;align-items:baseline;gap:10px;margin:0 0 6px;font-weight:600}
.fy-sm-cht a{color:var(--text);text-decoration:none}.fy-sm-cht a:hover{color:var(--accent)}
.fy-sm-cnt{font-size:var(--fs-small,13px);font-weight:400;color:var(--mute)}
.fy-sm-ls{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 14px;margin:0;padding:0;list-style:none}
.fy-sm-ls a{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--r-sm,10px);color:var(--sub);font-size:var(--fs-aux,14px);text-decoration:none}
.fy-sm-ls a:hover{background:var(--hover);color:var(--text)}
.fy-sm-ls a.is-on{color:var(--text)}
.fy-no{font-variant-numeric:tabular-nums;font-size:var(--fs-tiny,12px);color:var(--mute)}
.fy-dot{display:inline-block;flex-shrink:0;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line3);background:transparent}
.fy-dot.is-on,a.is-on .fy-dot{border-color:var(--accent);background:var(--accent)}
.fy-sm-note{margin:12px 0 0;font-size:var(--fs-small,13px);color:var(--mute)}
.fy-sm-more{display:flex;flex-wrap:wrap;gap:6px 20px;margin:10px 0 0;font-size:var(--fs-aux,14px)}
.fy-sm-more a{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:600;text-decoration:none;border-bottom:0}
.fy-sm-more a:hover{text-decoration:underline}

/* ---------------- 章图（章首页） */
.fy-cm{margin:22px 0 12px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r,16px);background:var(--card)}
.fy-cm-head h2{margin:2px 0!important;padding:0!important;border:0!important;font-size:20px}
.fy-cm-head p{margin:2px 0 0;font-size:var(--fs-aux,14px);color:var(--sub)}
.fy-cm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px;margin:14px 0 0}
.fy-cm-col{position:relative;min-width:0;padding:10px 8px;border:1px solid var(--line);border-radius:var(--r-md,10px);background:var(--card2)}
.fy-cm-col:not(:last-child)::after{content:"";position:absolute;right:-13px;top:22px;width:12px;height:2px;background:var(--accent-line)}
.fy-cm-col:nth-child(3n)::after{display:none}
.fy-cm-col li{min-width:0}
.fy-cm-h{display:flex;flex-direction:column;gap:2px;margin:0 0 8px}
.fy-cm-i{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:var(--fs-tiny,12px);font-weight:600}
.fy-cm-h b{font-size:var(--fs-aux,14px);line-height:1.35}
.fy-cm-h small{font-size:var(--fs-tiny,12px);line-height:1.4;color:var(--sub)}
.fy-cm-c{font-size:var(--fs-tiny,12px);color:var(--mute)}
.fy-cm-col ol{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.fy-cm-col a{min-width:0;display:flex;align-items:center;gap:6px;min-height:30px;padding:4px 7px;border:1px solid var(--line);border-radius:var(--r-sm,10px);background:var(--card);color:var(--sub);font-size:var(--fs-small,13px);line-height:1.3;text-decoration:none}
.fy-cm-col a:hover{border-color:var(--accent-line);color:var(--text)}
.fy-cm-col a.is-on{border-color:var(--accent-line);background:var(--accent-soft2);color:var(--text)}
.fy-cm-col a.is-on .fy-no{color:var(--accent);font-weight:600}
.fy-cm-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fy-cm-goal{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0 0;padding:12px 14px;border-radius:var(--r-md,10px);background:var(--accent-soft);border:1px solid var(--accent-line)}
.fy-cm-goal span{font-size:var(--fs-small,13px);font-weight:600;color:var(--accent)}
.fy-cm-goal b{font-size:var(--fs-body,16px)}
.fy-cm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;font-size:var(--fs-small,13px);color:var(--mute)}
.fy-cm-legend a{color:var(--accent);font-weight:600}

@media (max-width:860px){.fy-sm-track{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){
  .fy-sm,.fy-cm{padding:14px 12px}
  .fy-sm-track{grid-template-columns:1fr}
  .fy-sm-track2{grid-template-columns:1fr}
  .fy-sm-btn{display:grid;grid-template-columns:28px 1fr auto;align-items:center;column-gap:10px;height:auto}
  .fy-sm-bar{grid-column:2/4}
  .fy-sm-pc{grid-column:3;grid-row:1}
  .fy-cm-grid{grid-template-columns:1fr 1fr}.fy-cm-col::after{display:none}
  .fy-mm{padding:10px 12px}.fy-mm-dots{gap:3px}.fy-mm-o{width:18px;height:18px;font-size:var(--fs-tiny,12px)}.fy-mm-dots .is-here .fy-mm-o{width:22px;height:22px}
  .fy-sec-h h2{font-size:20px}
  .fy-think,.fy-back,.fy-check{padding:12px}
  .fy-say{font-size:17px}
  .fy-opt{width:100%}
}
@media (prefers-reduced-motion:no-preference){.fy-sm-bar i{transition:width var(--dur-3,.32s) var(--ease)}.fy-opt,.fy-btn,.fy-sm-btn{transition:border-color var(--dur-1,.12s),background-color var(--dur-1,.12s)}}
/* 课页正文链接默认带下划线边框，地图里的格子不要 */
.fy-sm-ls a,.fy-sm-cht a,a.fy-sm-lm,a.fy-mm-map,.fy-cm-legend a,a.fy-st-go,a.fy-ck-go,a.fy-term,.fy-pop a,.fy-fast-st a{border-bottom:0}
