/* 视觉日语 · 看一段日文（ime-jp-decode.js） */
.jpd-root{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.jpd-top{background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.jpd-top .ko-sec-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600}
.jpd-top .ko-sec-t .ko-opt{margin-left:auto;font-weight:400;font-size:13px}
.jpd-ta{width:100%;box-sizing:border-box;font:18px/1.6 "Noto Serif JP","Noto Sans SC",serif;padding:8px 10px;border:1px solid #cfcac0;border-radius:10px;resize:vertical;background:#fffdf8}
.jpd-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.jpd-btns .kp-act.on{background:#b23a26;color:#fff}
.jpd-file{cursor:pointer;display:inline-flex;align-items:center} .jpd-file input{display:none}
.jpd-hist{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px}
.jpd-lines{display:flex;flex-direction:column;gap:10px}
.jpd-line{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:10px 12px}
.jpd-line-btns{display:flex;flex-direction:column;gap:4px}
.jpd-toks{display:flex;flex-wrap:wrap;gap:4px 2px;font-size:24px;line-height:1.3;align-items:flex-end}
.jpd-tok{border:0;border-bottom:3px solid transparent;background:transparent;font:inherit;padding:2px 4px;cursor:pointer;border-radius:6px 6px 0 0;color:#222}
.jpd-tok.n{border-bottom-color:#2f6a8a}.jpd-tok.v{border-bottom-color:#b8661c}.jpd-tok.a{border-bottom-color:#4f7a3a}.jpd-tok.p{border-bottom-color:#c9c3b6;color:#777}.jpd-tok.d{border-bottom-color:#8a5fb3}.jpd-tok.c{border-bottom-color:#ddd}
.jpd-tok.hk:hover{background:#fdf7e3} .jpd-tok.on,.jpd-tok.on:hover{background:#1c1a17;color:#fff}
.jpd-tok rt,.jpd-c-word rt,.jpd-w rt{font-size:11px;color:#8a6d3b;font-family:"Noto Sans SC",sans-serif} .jpd-tok.on rt{color:#f2c879}
.jpd-sym{font-size:22px;color:#888;padding:2px}
.jpd-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center} .jpd-legend i{font-style:normal;font-size:13px;padding:0 4px}
.jpd-card{background:#1c1a17;color:#f3efe6;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px}
.jpd-c-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jpd-c-word{font-size:40px;line-height:1.3} .jpd-c-word rt{font-size:13px;color:#f2c879}
.jpd-c-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px;color:#c9c3b6}
.jpd-kana{font-family:"IBM Plex Mono",monospace} .jpd-pos{border-radius:999px;padding:0 8px;font-size:12px;background:#333;color:#eee} .jpd-pos.n{background:#2f6a8a}.jpd-pos.v{background:#b8661c}.jpd-pos.a{background:#4f7a3a}.jpd-pos.d{background:#8a5fb3}
.jpd-c-zh{width:100%;font-size:18px;color:#fff}
.jpd-badge{font-size:11px;background:#f2c879;color:#4a3300;border-radius:999px;padding:1px 8px;margin-left:6px}
.jpd-kanjis{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.jpd-kanji{background:#2a2622;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px} .jpd-kanji.new{outline:2px solid #f2c879}
.jpd-k-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.jpd-k-big{font-size:48px;line-height:1.1;font-family:"Noto Serif JP",serif} .jpd-k-read{font-size:13px;color:#d9d3c7;flex:1} .jpd-k-read small{color:#8a8f93;margin-right:4px} .jpd-k-zh{color:#fff;font-size:14px}
.jpd-parts{display:flex;gap:4px;align-items:center;flex-wrap:wrap} .jpd-plus{color:#8a8f93} .jpd-part{display:inline-flex;flex-direction:column;align-items:center;background:#1c1a17;border-radius:8px;padding:4px 8px;min-width:44px} .jpd-part b{font-size:24px;font-weight:500} .jpd-part small{font-size:10px;color:#c9c3b6;white-space:nowrap}
.jpd-words{display:flex;gap:6px;flex-wrap:wrap} .jpd-w{border:1px solid #4a443d;background:transparent;color:#f3efe6;border-radius:8px;padding:3px 8px;cursor:pointer;font:inherit;font-size:16px;display:flex;flex-direction:column;align-items:center} .jpd-w small{font-size:11px;color:#c9c3b6}
.jpd-story{font-size:13px;color:#f2c879} .jpd-trap{font-size:13px;color:#ff9f8f}
.jpd-root .jp-spk{background:transparent;border:0;cursor:pointer;font-size:18px}
@media (max-width:600px){.jpd-toks{font-size:20px}.jpd-c-word{font-size:32px}.jpd-kanjis{grid-template-columns:1fr}}
.jpd-go{background:#b23a26;color:#fff;border:0;border-radius:999px;padding:6px 16px;font:inherit;font-weight:600;cursor:pointer} .jpd-go:disabled{opacity:.5}
/* v34：翻译输入 + 企业识别 */
.jpd-inlang{display:inline-flex;align-items:center;gap:4px;font-size:13px} .jpd-inlang select{font:inherit;padding:4px 6px;border:1px solid #cfcac0;border-radius:8px;background:#fff}
.jpd-src{background:#fff;border:1px dashed #cfcac0;border-radius:12px;padding:8px 12px;font-size:14px} .jpd-src small{color:#8a6d3b} .jpd-src em{color:#777;font-style:normal;font-size:13px}
.jpd-ents{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#ebe3f5;border-radius:12px;padding:8px 12px} .jpd-ents-l{font-size:13px;color:#6b4a9e;font-weight:600}
.jpd-ent{display:inline-flex;flex-direction:column;background:#fff;border:1px solid #c9b8e6;border-radius:10px;padding:6px 10px;text-decoration:none;color:#222;line-height:1.3} .jpd-ent b{font-size:15px} .jpd-ent small{color:#666} .jpd-ent i{font-style:normal;font-size:11px;color:#6b4a9e}
.jpd-ent{cursor:pointer;font:inherit;text-align:left} .jpd-ent.on{background:#6b4a9e;color:#fff;border-color:#6b4a9e} .jpd-ent.on small,.jpd-ent.on i{color:#e8dff5}
.jpd-ent-panel{min-height:60px}
/* v35：页签 */
.jpd-tabs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:8px 10px} .jpd-tabs .sp{flex:1}
.jpd-tab{border:1px solid #d9d4c8;background:#faf8f3;border-radius:999px;padding:6px 14px;font:inherit;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:#222}
.jpd-tab.on{background:#1c1a17;color:#fff;border-color:#1c1a17} .jpd-tab.zero{opacity:.45} .jpd-tab-n{font-size:11px;background:rgba(0,0,0,.08);border-radius:999px;padding:0 6px} .jpd-tab.on .jpd-tab-n{background:rgba(255,255,255,.2)}
.jpd-body{min-height:80px}
.jpd-page{display:flex;flex-direction:column;gap:10px} .jpd-page-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#666} .jpd-page-h .ko-opt{margin-left:auto}
.jpd-kanjis{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px} .jpd-kanjis.sm{padding:6px 0 4px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.jpd-page .jpd-kanji{background:#1c1a17;color:#f3efe6}
.jpd-wlist{display:flex;flex-direction:column;gap:4px}
.jpd-wrow{background:#fff;border:1px solid #e3e0d8;border-radius:12px;padding:4px 10px} .jpd-wrow.open{background:#fdfbf6}
.jpd-wmain{display:grid;grid-template-columns:minmax(90px,auto) auto auto 1fr auto auto;gap:10px;align-items:center;width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;padding:6px 0;color:#222}
.jpd-wword{font-size:24px;line-height:1.3;font-family:"Noto Serif JP",serif} .jpd-wword rt{font-size:10px;color:#8a6d3b;font-family:"Noto Sans SC",sans-serif}
.jpd-wmain .jpd-kana{color:#8a6d3b} .jpd-wzh{font-size:15px} .jpd-wbtns{display:inline-flex;gap:2px;align-items:center;color:#999}
.jpd-line-body{flex:1;min-width:0} .jpd-line-tr{margin-top:6px;font-size:14px;color:#555;border-top:1px dashed #e3e0d8;padding-top:6px} .jpd-line-tr em{color:#999;font-style:normal;font-size:12px}
.jpd-src .han{font-family:"Noto Serif JP",serif;font-size:15px}
@media (max-width:600px){.jpd-wmain{grid-template-columns:1fr auto;grid-auto-flow:row}.jpd-wzh{grid-column:1/-1}}
/* v36：侧栏 + 内容区（照 SiLink 课文解构） */
.jpd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:10px 14px}
.jpd-stat{display:flex;flex-direction:column;gap:2px} .jpd-stat b{font:600 22px "IBM Plex Mono",monospace;color:#b23a26} .jpd-stat small{font-size:11px;color:#8a6d3b;letter-spacing:.04em;text-decoration:underline dotted #d9d4c8;text-underline-offset:3px}
.jpd-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}
.jpd-side{background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:12px 10px;position:sticky;top:12px;display:flex;flex-direction:column;gap:10px}
.jpd-side-gt{font:11px "IBM Plex Mono",monospace;letter-spacing:.1em;color:#8a6d3b;padding:0 8px 4px}
.jpd-side-it{display:flex;align-items:center;gap:8px;width:100%;border:1px solid transparent;background:transparent;font:inherit;font-size:14px;text-align:left;padding:6px 8px;border-radius:8px;cursor:pointer;color:#222}
.jpd-side-it i{font-style:normal;font-size:9px;color:#b23a26} .jpd-side-it.zero{color:#999} .jpd-side-it.zero i{color:#ccc} .jpd-side-it small{margin-left:auto;font-size:11px;color:#999}
.jpd-side-it.on{background:#fdf1ec;border-color:#e9b9a8;color:#b23a26;font-weight:600} .jpd-side-it:hover{background:#faf6ee}
.jpd-side-note{font-size:11px;color:#999;padding:4px 8px;border-top:1px dashed #e3e0d8}
.jpd-panel{background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.jpd-panel-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap} .jpd-panel-h h3{margin:0;font:600 18px "Noto Serif SC",serif}
.jpd-badge-src{margin-left:auto;font-size:11px;border-radius:999px;padding:2px 10px;border:1px solid} .jpd-badge-src.lib{color:#2f6a8a;border-color:#2f6a8a} .jpd-badge-src.ai{color:#b8661c;border-color:#b8661c}
.jpd-orig{font-size:20px;line-height:2.1} .jpd-orig p{margin:0 0 8px} .jpd-orig rt{font-size:10px;color:#8a6d3b;font-family:"Noto Sans SC",sans-serif}
.jpd-h4{margin:6px 0 0;font:600 14px "Noto Serif SC",serif;color:#555} .jpd-chips{display:flex;flex-wrap:wrap;gap:6px} .jpd-chips .ko-chip small{color:#999}
.jpd-ents.sem .jpd-ent.none{opacity:.55;border-style:dashed}
.ent-timeline{margin:0;padding-left:20px;line-height:1.8}
@media (max-width:760px){.jpd-layout{grid-template-columns:1fr}.jpd-side{position:static;flex-direction:row;flex-wrap:wrap;gap:4px}.jpd-side-g{display:contents}.jpd-side-gt{display:none}.jpd-side-it{width:auto}.jpd-side-note{display:none}}
/* v37：进度提示、语义词汇卡片、弹窗 */
.jpd-phase{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:8px 12px;background:#fff7ed;border:1px solid #f3d9b1;border-radius:10px;font-size:13px;color:#7a4b10} .jpd-phase small{color:#9a7a55;font-size:12px} .jpd-phase.sub{background:#f4f0fb;border-color:#d9cdf0;color:#4b3570;margin:0 0 10px}
.jpd-spin{display:inline-block;width:14px;height:14px;border:2px solid #d9cdf0;border-top-color:#6b4a9e;border-radius:50%;animation:jpdspin .8s linear infinite;vertical-align:middle;flex:none} .jpd-spin.sm{width:10px;height:10px;border-width:2px} @keyframes jpdspin{to{transform:rotate(360deg)}}
.jpd-ent.card{padding:0;overflow:hidden;cursor:default} .jpd-ent-main{all:unset;display:flex;flex-direction:column;gap:2px;padding:8px 12px;cursor:pointer;font:inherit;line-height:1.3;min-width:140px} .jpd-ent-main:disabled{cursor:default} .jpd-ent-main:not(:disabled):hover{background:#f4f0fb} .jpd-ent-main b{font-size:15px} .jpd-ent-main small{color:#666} .jpd-ent-main i{font-style:normal;font-size:11px;color:#6b4a9e}
.jpd-ent-acts{display:flex;gap:6px;padding:6px 10px;border-top:1px dashed #e3e0d8;background:#faf9f6} .jpd-ent-acts .kp-act{font-size:11px;padding:2px 8px;text-decoration:none}
.jpd-modal-bg{position:fixed;inset:0;background:rgba(20,16,30,.55);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow:auto} .jpd-modal{background:#f7f5f0;border-radius:16px;width:min(980px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35)} .jpd-modal-h{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #e3e0d8;background:#fff;border-radius:16px 16px 0 0;position:sticky;top:0;z-index:2} .jpd-modal-h .sp{flex:1} .jpd-modal-h .kp-act{text-decoration:none} .jpd-modal-body{overflow:auto;padding:0 0 12px;flex:1} .jpd-modal-body .ent-embed-bar{border-radius:0} body.jpd-noscroll{overflow:hidden}
@media (max-width:640px){.jpd-modal-bg{padding:0}.jpd-modal{border-radius:0;max-height:100vh;height:100vh}.jpd-modal-h{border-radius:0}}
.jpd-modal-h .kp-act,.jpd-ent-acts .kp-act{display:inline-flex;align-items:center;line-height:1.2;box-sizing:border-box}
/* 韩文：어절 + 罗马音 */
.jpd-ej{display:inline-flex;flex-direction:column;align-items:center;margin:0 2px 4px} .jpd-ej small{font-size:10px;color:#8a8577;font-family:ui-monospace,monospace;line-height:1}
.jpd-toks .jpd-tok small{display:block;font-size:10px;color:#777;font-weight:400;line-height:1.1;margin-top:1px} .jpd-toks .jpd-tok{display:inline-flex;flex-direction:column;align-items:center;vertical-align:top}
/* 中文：看一段中文（zhd-*） */
.zhd-han{font-family:"Noto Serif SC","Noto Serif CJK SC","Songti SC",serif}
.zhd-ta{font-size:19px;line-height:1.7;font-family:"Noto Serif SC","Songti SC",serif}
.zhd-var{margin-left:auto;display:inline-flex;gap:4px} .zhd-var .kp-act{font-size:12px;padding:2px 10px} .zhd-var .kp-act.on{background:#2f6b4f;color:#fff}
.zhd-orig{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;line-height:2.2} .zhd-orig.big{font-size:24px;background:#fff;border:1px solid #e3e0d8;border-radius:14px;padding:12px 18px} .zhd-orig.big p{margin:0 0 6px}
.zhd-orig rt{font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;color:#2f6b4f;letter-spacing:0} .zhd-w{display:inline}
.zhd-py{font-size:14px;color:#2f6b4f;font-family:ui-sans-serif,system-ui,sans-serif}
.zhd-hsk{font-style:normal;font-size:10px;background:#e7f1ec;color:#2f6b4f;border-radius:6px;padding:1px 6px;white-space:nowrap}
.jpd-root .jpd-k-big.zhd-han{font-size:40px}
.zhd-orig ruby{margin:0 .14em;ruby-align:center} .zhd-orig .zhd-w{margin-right:.28em} .zhd-orig rt{font-size:10.5px}
/* v2（2026-10-30）PUA / 扩展区：KaiXinSong（PUA 变形构件）→ BabelStone Han（扩展 B 区）必须排在最前，其余字自动回落（ime.css 已声明 @font-face 子集） */
.jpd-root,.jpd-root .han,.jpd-root .zhd-han,.jpd-root .jpd-k-big,.jpd-root .jpd-part b,.jpd-root .jpd-part small,.jpd-root .jpd-wword,.jpd-root .jpd-toks,.jpd-root .jpd-orig,.jpd-root .zhd-orig,.jpd-root .zhd-ta,.jpd-root .jpd-src .han,.jpd-root .ko-chip,.jpd-root .zhd-chain b,.jpd-root .zhd-blk b{font-family:'KaiXinSong','BabelStone Han',"Noto Serif SC","Noto Serif JP","Noto Serif CJK SC","Songti SC",serif}
.jpd-root .jpd-k-read,.jpd-root .jpd-page-h,.jpd-root .kp-hint,.jpd-root .jpd-side,.jpd-root .jpd-stat small,.jpd-root .zhd-py,.jpd-root .jpd-btns,.jpd-root .kp-act{font-family:'KaiXinSong','BabelStone Han',"Noto Sans SC",system-ui,sans-serif}
.jpd-root .zhd-orig rt,.jpd-root .jpd-kana{font-family:ui-sans-serif,system-ui,sans-serif}
/* 字：为什么这样写（查表 · 实线）；词 / 句：模型解读（虚线） */
.zhd-k-mean{font-size:13px;color:#f3efe6;opacity:.9;max-width:180px;line-height:1.35}
.zhd-why{border-top:1px solid #3a352e;padding-top:8px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.zhd-type{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;font-weight:600;color:#f2c879} .zhd-type.phono{color:#f2b3a6} .zhd-type.ideo{color:#f2c879} .zhd-type.picto{color:#c9d8f0}
.zhd-chains{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch}
.zhd-chain{display:flex;flex-direction:column;gap:1px;padding:5px 9px;border-radius:9px;min-width:72px;line-height:1.25} .zhd-chain b{font-size:22px;font-weight:400} .zhd-chain span{font-size:10px;opacity:.85} .zhd-chain em{font-style:normal;font-size:11.5px}
.zhd-chain.sem{background:rgba(196,72,52,.18);border:1px solid rgba(232,120,98,.6);color:#ffd9cf} .zhd-chain.phon{background:rgba(70,90,190,.2);border:1px solid rgba(140,160,240,.6);color:#d9e0ff}
.zhd-eq{align-self:center;font-size:18px;color:#f3efe6;padding-left:4px}
.zhd-mean{color:#f3efe6} .zhd-mean small{opacity:.6} .zhd-ety{font-size:12px;opacity:.75;line-height:1.45}
.zhd-wdeep,.zhd-sdeep{margin-top:8px;border:1px dashed #c9c2b4;border-radius:12px;padding:10px 12px;background:#fdfbf6;display:flex;flex-direction:column;gap:8px}
.zhd-wdeep .zhd-type,.zhd-sdeep .zhd-type{color:#7a3b24;font-size:13px}
.zhd-hsk.dash{background:transparent;border:1px dashed #b9b2a4;color:#7d776b}
.zhd-rel{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.zhd-blk{display:inline-flex;flex-direction:column;align-items:center;min-width:56px;padding:6px 10px;border-radius:12px;line-height:1.2} .zhd-blk b{font-size:28px;font-weight:400} .zhd-blk small{font-size:10.5px}
.zhd-blk.head{background:#b8432f;color:#fff} .zhd-blk.mod{background:rgba(52,72,160,.07);border:2px solid #34489f;color:#26357a} .zhd-blk.affix{border:2px dashed #b5aea0;color:#6d675c}
.zhd-conn{display:inline-flex;flex-direction:column;align-items:center;color:#7d776b;min-width:44px} .zhd-conn small{font-size:10px} .zhd-conn b{font-size:20px;line-height:1}
.zhd-plain{margin:0;font-size:14px;line-height:1.55;color:#2b2722}
.zhd-here{display:flex;flex-direction:column;gap:4px} .zhd-here>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px} .zhd-here b{font-size:20px;font-weight:400} .zhd-here small{color:#7d776b}
.zhd-forbid{font-size:13px;background:#fff4e8;border-radius:8px;padding:6px 10px;color:#7a4b10} .zhd-forbid small{font-weight:600}
.zhd-conds{display:flex;flex-direction:column;gap:2px;font-size:12.5px} .zhd-conds .ok{color:#2f6b4f} .zhd-conds .ng{color:#a33b2b} .zhd-conds em{font-style:normal;color:#5e584d;font-size:12px}
.zhd-roles{display:flex;flex-wrap:wrap;gap:6px}
.zhd-role{display:inline-flex;flex-direction:column;align-items:center;padding:5px 10px;border-radius:12px;min-width:44px;border:2px solid transparent} .zhd-role b{font-size:22px;font-weight:400} .zhd-role small{font-size:10px}
.zhd-role.agent{background:#b8432f;color:#fff} .zhd-role.patient{background:rgba(52,72,160,.08);border-color:#34489f;color:#26357a} .zhd-role.action,.zhd-role.result{background:#3a352e;color:#fff} .zhd-role.marker{border:2px dashed #c3bcae;color:#8a8477} .zhd-role.time,.zhd-role.place,.zhd-role.modifier,.zhd-role.topic,.zhd-role.other{background:#f1eee7;color:#4a453c}
.zhd-rw{display:flex;flex-direction:column;gap:4px} .zhd-rw-it{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:4px 8px;border-radius:8px} .zhd-rw-it.cur{background:#f4efe3} .zhd-rw-it .zhd-han{font-size:18px} .zhd-rw-it small{color:#7d776b;font-size:12px}
.zhd-wrong>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;color:#a33b2b} .zhd-wrong small{color:#7d776b}
/* 理性解读 */
.gst-topic{font-size:20px;font-weight:600;color:#2b2722;margin:4px 0 8px}
.gst-gist{background:#fff;border:1px solid #e3e0d8;border-left:4px solid #6b4a9e;border-radius:12px;padding:10px 14px} .gst-gist small{color:#6b4a9e;font-weight:600;font-size:12px} .gst-gist p{margin:4px 0 0;font-size:15.5px;line-height:1.65}
.gst-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin:10px 0;font-size:13px;color:#3d3830} .gst-meta small{color:#8a8477}
.gst-sec ul{margin:4px 0 10px;padding-left:20px;line-height:1.6;font-size:14px}
.gst-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px} .gst-sec.fact{background:#eef6f1;border-radius:12px;padding:6px 12px} .gst-sec.op{background:#f6f0fb;border-radius:12px;padding:6px 12px} .gst-sec.think{background:#fff6e6;border-radius:12px;padding:6px 12px}
.gst .src{font-size:11px;color:#8a8477;margin-top:6px}
.jpd-words .jpd-wrow.open{grid-column:1/-1} .zhd-sdeep .src,.zhd-wdeep .src{font-size:11px;color:#8a8477}
/* v3（2026-10-30）字卡：浅底、结构化（照字官 v2 配色：意符朱砂 / 声符靛蓝 / 构件灰） */
.zc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.zc{background:#fffdf8;border:1px solid #e6e0d3;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 2px rgba(60,40,10,.04)} .zc.borrowed{border-style:dashed}
.zc-head{display:flex;gap:14px;align-items:flex-start}
.zc-big{font-size:64px;line-height:1;color:#2b2722;min-width:68px;text-align:center}
.zc-id{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.zc-py{display:flex;align-items:center;gap:6px;font-size:17px;color:#2f6b4f;font-family:ui-sans-serif,system-ui,sans-serif} .zc-py .jp-spk{font-size:14px}
.zc-mean{font-size:16px;font-weight:600;color:#2b2722;line-height:1.3}
.zc-tags{display:flex;flex-wrap:wrap;gap:5px}
.zc-tag{font-style:normal;font-size:11px;padding:2px 8px;border-radius:999px;background:#f1ede4;color:#5e584d;white-space:nowrap} .zc-tag.t-phono{background:#fbe9e4;color:#a33b2b} .zc-tag.t-ideo{background:#fbe9e4;color:#a33b2b} .zc-tag.t-picto{background:#e8ecf8;color:#34489f} .zc-tag.warn{background:#fff3dc;color:#9a5b00}
.zc-formula{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;background:#f7f3ea;border-radius:12px}
.zc-blk{display:inline-flex;flex-direction:column;align-items:center;min-width:64px;max-width:120px;padding:6px 10px;border-radius:12px;line-height:1.2;text-align:center}
.zc-blk b{font-size:28px;font-weight:400} .zc-blk small{font-size:10px;letter-spacing:.04em;text-transform:uppercase;opacity:.8} .zc-blk em{font-style:normal;font-size:12px;margin-top:2px}
.zc-blk.sem{background:#fff;border:2px solid #b8432f;color:#8f2f20} .zc-blk.phon{background:#fff;border:2px solid #34489f;color:#26357a} .zc-blk.part{background:#fff;border:1px solid #d8d1c2;color:#4a453c}
.zc-op{font-size:20px;color:#9a9284} .zc-res{font-size:34px;color:#2b2722;padding:0 4px}
.zc-picto{font-size:40px;width:64px;height:64px;border:2px solid #b8432f;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#8f2f20;background:#fff} .zc-note{font-size:13px;color:#5e584d}
.zc-pos{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:#6d675c} .zc-pos>small{color:#9a9284;margin-right:2px}
.zc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:8px;background:#f1ede4} .zc-chip b{font-size:16px;font-weight:400;color:#2b2722}
.zc-story{font-size:13px;line-height:1.55;color:#4a453c} .zc-story p{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} .zc-story.open p{display:block}
.zc-more{all:unset;cursor:pointer;font-size:12px;color:#2f6b4f;margin-top:4px;display:inline-block}
@media (max-width:600px){.zc-grid{grid-template-columns:1fr}.zc-big{font-size:54px}}
/* 词卡 v3 */
.zw-list{display:flex;flex-direction:column;gap:8px}
.zw{position:relative;background:#fffdf8;border:1px solid #e6e0d3;border-radius:14px} .zw.open{border-color:#c9bfa9;box-shadow:0 2px 8px rgba(60,40,10,.06)}
.zw-main{all:unset;cursor:pointer;display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;gap:14px;align-items:center;padding:10px 48px 10px 14px;width:100%;box-sizing:border-box}
.zw-w{display:flex;flex-direction:column;align-items:center;line-height:1.1} .zw-w small{font-size:12px;color:#2f6b4f;font-family:ui-sans-serif,system-ui,sans-serif;white-space:nowrap} .zw-w b{font-size:26px;font-weight:400;color:#2b2722}
.zw-g{font-size:15px;color:#2b2722;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .zw-g.none{color:#9a9284;font-style:italic} .zw.open .zw-g{white-space:normal}
.zw-tags{display:flex;gap:6px;align-items:center} .zw-ai{font-style:normal;color:#c48a1a;font-size:12px} .zw-car{font-style:normal;color:#9a9284;font-size:12px}
.zw-spk{position:absolute;right:10px;top:12px}
.zw-body{padding:0 14px 12px;display:flex;flex-direction:column;gap:8px}
.zw-ctx{font-size:15px;color:#2b2722} .zw-ctx small{display:block;font-size:11px;color:#9a9284;text-transform:uppercase;letter-spacing:.04em}
.zw-dict{font-size:12.5px;color:#6d675c} .zw-dict small{margin-right:6px;color:#9a9284}
@media (max-width:600px){.zw-main{grid-template-columns:auto 1fr;}.zw-tags{grid-column:1/-1}}
/* 理性解读：要认识的词 */
.gst-terms{margin:4px 0 8px} .gst-tl{display:flex;flex-wrap:wrap;gap:8px}
.gst-term{display:inline-flex;flex-direction:column;align-items:center;padding:6px 12px;border-radius:12px;background:#fff;border:1px solid #e3e0d8;line-height:1.25} .gst-term b{font-size:20px;font-weight:400} .gst-term small{font-size:11px;color:#2f6b4f} .gst-term em{font-style:normal;font-size:12px;color:#4a453c}
/* v4（2026-10-30）汉字 / 词汇页：小卡 + 点击弹窗（照 SiLink 字卡样式） */
.zt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px} .zt-grid.word{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.zt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px 9px;background:#fffdf8;border:1px solid #e6e0d3;border-radius:14px;text-align:center;position:relative;transition:transform .12s,box-shadow .12s}
.zt:hover,.zt:focus-visible{transform:translateY(-2px);box-shadow:0 4px 12px rgba(60,40,10,.10);border-color:#d5c8ad}
.zt::before{content:'';position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:transparent}
.zt.t-phono::before,.dot.t-phono{background:#b8432f} .zt.t-ideo::before,.dot.t-ideo{background:#2f8a7a} .zt.t-picto::before,.dot.t-picto{background:#34489f}
.zt-py{font-size:12px;color:#2f6b4f;font-family:ui-sans-serif,system-ui,sans-serif;min-height:15px}
.zt-c{font-size:40px;font-weight:400;line-height:1.1;color:#2b2722} .zt.word .zt-c{font-size:28px}
.zt-m{font-size:12px;color:#5e584d;line-height:1.3;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:31px} .zt-m.none{color:#b0a998;font-style:italic}
.zt-foot{display:flex;gap:5px;font-size:10px;color:#8a8477} .zt-foot i{font-style:normal;background:#f1ede4;border-radius:999px;padding:1px 6px} .zt-foot i.ai{background:transparent;color:#c48a1a}
.zt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12px;color:#6d675c;margin-top:12px} .zt-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:-8px}
/* 弹窗卡 */
.zp-bg{align-items:center}
.zp{background:#fbf8f1;border-radius:22px;width:min(440px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden}
.zp-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid #ece5d6;background:#fbf8f1} .zp-bar .sp{flex:1} .zp-bar small{font-size:12px;color:#8a8477;min-width:44px;text-align:center}
.zp-nav,.zp-x{all:unset;cursor:pointer;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#5e584d;font-size:18px} .zp-nav:hover,.zp-x:hover{background:#efe8da}
.zp-body{overflow:auto;padding:16px 22px 22px;display:flex;flex-direction:column;gap:14px}
.zp-head{display:flex;gap:16px;align-items:center}
.zp-big{font-size:68px;line-height:1;color:#b8432f;font-weight:600} .zp-big.word{font-size:48px}
.zp-hd{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.zp-py{font-size:18px;color:#3d3830;font-family:"Noto Serif SC",serif;letter-spacing:.02em}
.zp-read{all:unset;cursor:pointer;background:#b8432f;color:#fff;border-radius:999px;padding:5px 16px;font-size:14px;font-weight:600} .zp-read:hover{background:#a23a28}
.zp-tags{display:flex;flex-wrap:wrap;gap:6px}
.zp-chip{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid #d9d1c0;color:#5e584d;background:#fff} .zp-chip.t-phono{border-color:#e3b2a7;color:#a33b2b;background:#fdf1ee} .zp-chip.t-ideo{border-color:#a9d6cc;color:#2f7a6a;background:#eef8f5} .zp-chip.t-picto{border-color:#b9c3e8;color:#34489f;background:#f0f3fc} .zp-chip.soft{border-style:dashed;color:#8a8477}
.zp-lead{font-size:16px;color:#2b2722;line-height:1.45;border-bottom:1px solid #ece5d6;padding-bottom:12px}
.zp-formula{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 0;flex-wrap:wrap}
.zp-box{width:66px;height:66px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:36px;background:#e6f2ef;border:2px solid #4a9a8a;color:#2f6b5f} .zp-box.phon{background:#eaedf8;border-color:#5b6cc0;color:#34489f} .zp-box.part{background:#f1ede4;border-color:#c9bfa9;color:#4a453c}
.zp-box.res{background:#fff;border:2.5px solid #b8432f;color:#b8432f;width:76px;height:76px;font-size:42px} .zp-box.res.big{width:96px;height:96px;font-size:56px;border-radius:50%}
.zp-op{font-size:26px;color:#9a9284} .zp-note{font-size:13px;color:#6d675c;max-width:200px}
.zp-table{width:100%;border-collapse:collapse;font-size:13px} .zp-table th{font-size:11px;font-weight:500;color:#8a8477;text-align:left;padding:4px 6px;border-bottom:1px solid #ece5d6} .zp-table td{padding:8px 6px;border-bottom:1px solid #f1ebdf;vertical-align:top;color:#3d3830} .zp-table td.c{font-size:22px;color:#2b2722;white-space:nowrap} .zp-table td.pos{color:#8a8477;font-size:12px}
.zp-role{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;background:#e6f2ef;color:#2f6b5f} .zp-role.phon{background:#eaedf8;color:#34489f} .zp-role.part{background:#f1ede4;color:#6d675c}
.zp-sec h5{margin:0 0 4px;font-size:12px;letter-spacing:.06em;color:#b8432f;font-weight:700} .zp-sec p{margin:0;font-size:14px;line-height:1.6;color:#3d3830} .zp-en{font-style:italic;color:#5e584d}
.zp-chars{display:flex;flex-wrap:wrap;gap:8px} .zp-cbtn{all:unset;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;padding:6px 12px;border-radius:12px;background:#fff;border:1px solid #e3dccd;min-width:60px} .zp-cbtn:hover{border-color:#b8432f} .zp-cbtn b{font-size:26px;font-weight:400;color:#2b2722} .zp-cbtn small{font-size:11px;color:#2f6b4f} .zp-cbtn em{font-style:normal;font-size:11px;color:#6d675c;max-width:110px;text-align:center}
.zp .zhd-wdeep{background:#fff;margin-top:0}
.jpd-root .zt-c,.jpd-root .zp-big,.jpd-root .zp-box,.jpd-root .zp-table td.c,.jpd-root .zp-cbtn b{font-family:'KaiXinSong','BabelStone Han',"Noto Serif SC","Songti SC",serif}
@media (max-width:600px){.zp-bg{align-items:flex-end;padding:0}.zp{width:100%;border-radius:22px 22px 0 0;max-height:88vh}.zp-big{font-size:56px}.zt-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}}
/* v5（2026-10-30）：手机端侧栏 → 吸顶横向标签条；逐句按钮横排；句式小签；提示条 */
@media (max-width:760px){
  .jpd-side{position:sticky;top:0;z-index:20;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding:8px 10px;margin:0 -2px;border-radius:0 0 12px 12px;background:#fffdf8;box-shadow:0 2px 6px rgba(60,40,10,.08)}
  .jpd-side::-webkit-scrollbar{display:none}
  .jpd-side-g{display:contents}.jpd-side-gt,.jpd-side-note{display:none}
  .jpd-side-it{flex:none;width:auto;white-space:nowrap;padding:6px 12px;border-radius:999px;border:1px solid #e6e0d3;background:#fff;font-size:13px}
  .jpd-side-it.on{background:#2b2722;color:#fff;border-color:#2b2722} .jpd-side-it.on small{color:#d9d3c7} .jpd-side-it i{display:none}
  .jpd-line{flex-direction:column;gap:6px} .jpd-line-btns{flex-direction:row;gap:14px;order:2}
  .jpd-stats{grid-template-columns:repeat(3,1fr)} .jpd-stat b{font-size:20px}
}
.zhd-pats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.zhd-pat{font-size:11px;padding:1px 9px;border-radius:999px;background:#eef6f1;color:#2f6b4f;border:1px solid #cfe5d8;font-family:ui-sans-serif,system-ui,sans-serif} .zhd-pat.wy{background:#f6efe2;color:#8a5a2b;border-color:#e8d8b8}
.zhd-notice{margin:8px 0;padding:8px 12px;border-radius:10px;background:#fff6e6;border:1px solid #f0d9a8;color:#7a4b10;font-size:13px;line-height:1.5}
/* v5.1（2026-10-30）：日 / 韩 / 阿 小卡 + 弹窗；友好报错；键盘焦点 */
.zt.fresh{border-style:dashed;border-color:#d8b56a}
.zp-reads{display:flex;gap:8px;flex-wrap:wrap} .zp-read.soft{background:#efe8da;color:#5e584d} .zp-read.soft:hover{background:#e5dccb}
.zp-k{font-size:11px;color:#8a8477;font-family:ui-sans-serif,system-ui,sans-serif}
.zp-lead.none{color:#b0a998;font-style:italic}
.zp:focus{outline:none}
.zt:focus-visible,.zp-nav:focus-visible,.zp-x:focus-visible,.zp-read:focus-visible,.zp-cbtn:focus-visible,.jpd-side-it:focus-visible,.jpd-tok:focus-visible,.hs-err-x:focus-visible{outline:2px solid #2f6b4f;outline-offset:2px}
.ar-grid{direction:rtl} .ar-zt{direction:ltr} .ar-zt .zt-c{font-size:26px;direction:rtl} .ar-zt .zt-c .ar-hl{font-size:26px}
.ar-head{justify-content:flex-start} .zp-box.ar-box{font-size:34px;background:#f1ecfa;border-color:#7b5cc4;color:#5a3ea8}
.zp .ard-parts{margin:0} button.ard-part{font:inherit;cursor:pointer;text-align:inherit} button.ard-part:hover{filter:brightness(.97)}
.hs-err{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:default} .hs-err>span{flex:1;min-width:200px} .hs-err .kp-act{padding:3px 12px}
.hs-err-x{all:unset;cursor:pointer;padding:0 6px;font-size:14px;opacity:.7} .hs-err-x:hover{opacity:1}
.kd-err.hs-err{text-align:left;background:#fdf1ee;border:1px solid #f0c9bf;border-radius:10px;padding:8px 12px;margin:8px 0;font-size:14px;color:#9a2f1f}
/* v6（2026-10-30）P2：声调颜色 · TTS 标注 · 加入复习 · 复习翻卡 · 拍照逐字确认 · HSK 分级 */
.py.t1{color:#c8372b} .py.t2{color:#2c8a43} .py.t3{color:#2f5fbf} .py.t4{color:#8a3fb3} .py.t5{color:#9a9284}
rt.py{font-weight:500}
.tts-dot{font-size:8px;letter-spacing:.02em;vertical-align:super;margin-left:1px;color:#9a9284;font-family:ui-sans-serif,system-ui,sans-serif}
.tts-tag{font-size:9px;font-weight:600;margin-left:6px;padding:0 4px;border-radius:4px;background:rgba(255,255,255,.28);vertical-align:middle;letter-spacing:.03em}
.zp-read.soft .tts-tag{background:#e5dccb}
.zp-rev{all:unset;cursor:pointer;font-size:13px;padding:5px 12px;border-radius:999px;border:1px dashed #b9ad94;color:#5e584d;background:#fff} .zp-rev:hover{border-color:#2f6b4f;color:#2f6b4f} .zp-rev.on{border-style:solid;border-color:#2f6b4f;color:#2f6b4f;background:#eef6f1} .zp-rev:focus-visible{outline:2px solid #2f6b4f;outline-offset:2px}
.zp-hd{flex-wrap:wrap}
.rv-open{border-color:#2f6b4f;color:#2f6b4f}
.zp.rv .zp-body{align-items:center;text-align:center;gap:12px;min-height:280px;justify-content:center}
.rv-t{font-size:14px;color:#3d3830} .rv-n{font-size:12px;color:#8a8477}
.rv-front{font-size:64px;line-height:1.1;color:#b8432f} .rv-read{font-size:20px;color:#3d3830} .rv-mean{font-size:16px;color:#2b2722} .rv-extra{font-size:13px;color:#6d675c}
.rv-back,.rv-q{display:flex;flex-direction:column;align-items:center;gap:10px} .rv-btns{display:flex;gap:10px;margin-top:6px}
.rv-empty{font-size:14px;color:#5e584d;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:300px} .rv-done{font-size:44px;color:#2f6b4f}
.ocr-rev{margin:10px 0;padding:12px 14px;border:1px solid #e6e0d3;border-radius:14px;background:#fffdf8}
.ocr-h{display:flex;flex-direction:column;gap:2px;margin-bottom:8px} .ocr-h small{color:#6d675c}
.ocr-txt{font-size:24px;line-height:1.9;word-break:break-all}
.ocr-c{display:inline-block;min-width:1em;text-align:center}
button.ocr-c.unsure{all:unset;cursor:pointer;display:inline-block;min-width:1.1em;text-align:center;border:2px dashed #d08a2a;border-radius:6px;background:#fff6e6;margin:0 1px;line-height:1.3} button.ocr-c.unsure.ok{border-style:solid;border-color:#2f6b4f;background:#eef6f1} button.ocr-c.unsure:focus-visible{outline:2px solid #2f6b4f;outline-offset:2px}
.ocr-c.ed{display:inline-flex;align-items:center;gap:4px;vertical-align:middle} .ocr-in{width:2.2em;font-size:22px;text-align:center;border:2px solid #2f6b4f;border-radius:6px;padding:0 2px;font-family:inherit} .ocr-ok{all:unset;cursor:pointer;font-size:14px;background:#2f6b4f;color:#fff;border-radius:6px;padding:2px 8px}
.ocr-tip{font-size:12px;color:#6d675c;display:flex;gap:10px;align-items:center;margin-top:6px}
.ocr-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px} .ocr-btns .jpd-go[disabled]{opacity:.45;cursor:not-allowed}
.zhd-hsk{margin:8px 0;padding:10px 14px;border:1px solid #e6e0d3;border-radius:14px;background:#fffdf8;display:flex;flex-direction:column;gap:8px}
.zhd-hsk-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap} .zhd-hsk-h small{color:#8a8477;font-size:12px} .zhd-hsk-my{margin-left:auto;font-size:13px;color:#3d3830} .zhd-hsk-my select{font:inherit;padding:2px 6px;border-radius:8px;border:1px solid #d9d1c0;background:#fff}
.zhd-hsk-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#f1ede4;gap:2px}
.zhd-hsk-bar .seg{display:block;min-width:4px}
.b1-2{background:#3f8f6b} .b3-4{background:#7fb35a} .b5-6{background:#d9a441} .b7-9{background:#c8603a} .bnone{background:#bdb5a5}
.zhd-hsk-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:#5e584d} .zhd-hsk-legend .sw{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.zhd-hsk-v{font-size:14px;padding:6px 10px;border-radius:10px} .zhd-hsk-v b{font-size:18px;margin-right:4px} .zhd-hsk-v.ok{background:#eef6f1;color:#2f6b4f} .zhd-hsk-v.mid{background:#fff6e6;color:#8a5a1a} .zhd-hsk-v.hard{background:#fdf1ee;color:#9a2f1f}
.zhd-hsk-ab{display:flex;flex-wrap:wrap;gap:6px;align-items:center} .zhd-hsk-ab small{color:#6d675c}
