.roadmap[data-v-d4ff52c3]{position:relative}.legend[data-v-d4ff52c3]{margin:0 0 16px;font-size:13px;color:var(--vp-c-text-3)}.legend b[data-v-d4ff52c3]{color:var(--vp-c-text-1)}.mainline[data-v-d4ff52c3]{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:12px}.mainline-label[data-v-d4ff52c3]{align-self:center;flex:none;font-size:13px;color:var(--vp-c-text-3);margin-right:4px}.stage-box[data-v-d4ff52c3]{flex:1 0 150px;display:flex;flex-direction:column;gap:4px;padding:12px 14px 10px;text-align:left;border:1px solid var(--vp-c-divider);border-radius:12px;background:var(--vp-c-bg-soft);color:var(--vp-c-text-1);cursor:pointer;transition:box-shadow .15s,border-color .15s}.stage-box[data-v-d4ff52c3]:hover{box-shadow:0 2px 8px #00000014}.stage-box.current .stage-name[data-v-d4ff52c3]:before{content:"● ";color:var(--vp-c-brand-1);font-size:10px;vertical-align:middle}.stage-box.active[data-v-d4ff52c3]{border-color:var(--vp-c-text-1);background:transparent;box-shadow:0 0 0 1px var(--vp-c-text-1) inset}.stage-box.complete .stage-name[data-v-d4ff52c3]:after{content:" ✓";color:#22c55e}.stage-name[data-v-d4ff52c3]{font-weight:600;font-size:15px}.stage-brief[data-v-d4ff52c3]{font-size:12px;color:var(--vp-c-text-3);line-height:1.4}.stage-progress[data-v-d4ff52c3],.card-bar[data-v-d4ff52c3]{display:block;height:3px;margin-top:4px;border-radius:2px;background:var(--vp-c-divider);overflow:hidden}.stage-progress i[data-v-d4ff52c3]{display:block;height:100%;background:var(--vp-c-brand-1);transition:width .3s}.card-bar i[data-v-d4ff52c3]{display:block;height:100%;transition:width .3s}.stage-arrow[data-v-d4ff52c3]{align-self:center;flex:none;color:var(--vp-c-text-3)}.toolbar[data-v-d4ff52c3]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:10px 14px;margin-bottom:20px;border:1px solid var(--vp-c-divider);border-radius:10px;font-size:13px}.next-up[data-v-d4ff52c3]{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;min-width:0}.next-label[data-v-d4ff52c3]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:var(--vp-c-brand-1);color:#fff}.next-title[data-v-d4ff52c3]{color:var(--vp-c-text-1);background:none;border:0;padding:0;font:inherit;font-weight:600;cursor:pointer}.next-title[data-v-d4ff52c3]:hover{color:var(--vp-c-brand-1)}.next-meta[data-v-d4ff52c3]{color:var(--vp-c-text-3);font-size:12px}.resume-label[data-v-d4ff52c3]{background:var(--vp-c-bg-soft);color:var(--vp-c-text-2);border:1px solid var(--vp-c-divider)}.next-locate[data-v-d4ff52c3]{font-size:12px;padding:2px 8px;border-radius:10px;border:1px solid var(--vp-c-divider);background:transparent;color:var(--vp-c-text-2);cursor:pointer}.next-locate[data-v-d4ff52c3]:hover{border-color:var(--vp-c-brand-1);color:var(--vp-c-brand-1)}.filters[data-v-d4ff52c3]{display:flex;gap:14px;color:var(--vp-c-text-2)}.filters label[data-v-d4ff52c3]{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.stage[data-v-d4ff52c3]{margin-bottom:28px;scroll-margin-top:80px}.stage-title[data-v-d4ff52c3]{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--vp-c-divider);font-size:18px;font-weight:600}.stage-count[data-v-d4ff52c3]{font-size:13px;font-weight:400;color:var(--vp-c-text-3)}.stage-next[data-v-d4ff52c3]{background:none;border:0;padding:0;font:inherit;color:var(--vp-c-brand-1);cursor:pointer}.columns[data-v-d4ff52c3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.column[data-v-d4ff52c3]{display:flex;flex-direction:column;gap:8px;min-width:0}.column-head[data-v-d4ff52c3]{display:flex;align-items:center;gap:8px;margin-bottom:2px}.column-toggle[data-v-d4ff52c3]{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;font:inherit;color:var(--vp-c-text-1);cursor:pointer;text-align:left}.column-toggle:hover .column-name[data-v-d4ff52c3]{color:var(--vp-c-brand-1)}.column.collapsed .column-name[data-v-d4ff52c3]{color:var(--vp-c-text-3)}.dot[data-v-d4ff52c3]{flex:none;width:10px;height:10px;border-radius:50%}.column-name[data-v-d4ff52c3]{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-count[data-v-d4ff52c3]{font-size:11px;color:var(--vp-c-text-3)}.badge[data-v-d4ff52c3]{flex:none;font-size:11px;padding:2px 8px;border-radius:8px;border:1px solid var(--vp-c-divider);color:var(--vp-c-text-2);white-space:nowrap}.badge.mastered[data-v-d4ff52c3]{border-color:#22c55e;color:#166534;background:#dcfce7}.card[data-v-d4ff52c3]{display:flex;flex-direction:column;gap:3px;padding:10px 12px 8px;text-align:left;border:1px solid var(--vp-c-divider);border-radius:10px;background:transparent;color:var(--vp-c-text-1);cursor:pointer;transition:box-shadow .15s,border-color .15s,opacity .15s}.card[data-v-d4ff52c3]:hover{box-shadow:0 2px 8px #00000014}.card.selected[data-v-d4ff52c3]{border-color:var(--vp-c-text-1);background:var(--vp-c-bg-soft)}.card.complete .card-title[data-v-d4ff52c3]{color:var(--vp-c-text-3)}.card.complete .card-title[data-v-d4ff52c3]:after{content:" ✓";color:#22c55e}.card.muted[data-v-d4ff52c3]{opacity:.4}.card-title[data-v-d4ff52c3]{font-weight:600;font-size:15px;line-height:1.35}.card-sub[data-v-d4ff52c3]{font-size:12px;color:var(--vp-c-text-3)}.star[data-v-d4ff52c3]{color:#f59e0b;margin-right:4px}.loading[data-v-d4ff52c3]{color:var(--vp-c-text-3);font-size:13px}.panel-mask[data-v-d4ff52c3]{position:fixed;inset:0;z-index:60;background:#00000040}.panel[data-v-d4ff52c3]{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(460px,100vw);display:flex;flex-direction:column;background:var(--vp-c-bg, hsl(var(--background)));border-left:1px solid var(--vp-c-divider);box-shadow:-4px 0 24px #0000001f;padding:16px 18px calc(12px + env(safe-area-inset-bottom,0px))}.panel-head[data-v-d4ff52c3]{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-crumb[data-v-d4ff52c3]{display:flex;align-items:center;gap:6px;font-size:15px;min-width:0}.panel-crumb a[data-v-d4ff52c3]{color:var(--vp-c-text-2)}.panel-crumb a[data-v-d4ff52c3]:hover{color:var(--vp-c-brand-1)}.crumb-sep[data-v-d4ff52c3]{color:var(--vp-c-text-3)}.panel-close[data-v-d4ff52c3]{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--vp-c-divider);background:transparent;color:var(--vp-c-text-2);cursor:pointer}.panel-sub[data-v-d4ff52c3]{margin:6px 0 12px;font-size:12px;color:var(--vp-c-text-3)}.topic-list[data-v-d4ff52c3]{flex:1;min-height:0;overflow-y:auto;margin:0;padding:0;list-style:none}.topic[data-v-d4ff52c3]{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--vp-c-divider)}.topic-empty[data-v-d4ff52c3]{padding:20px 0;color:var(--vp-c-text-3);font-size:13px;text-align:center}.status[data-v-d4ff52c3]{flex:none;width:26px;height:26px;margin-top:1px;border-radius:50%;border:1px solid var(--vp-c-divider);background:var(--vp-c-bg-soft);color:var(--vp-c-text-3);font-size:13px;line-height:1;cursor:pointer}.is-review .status[data-v-d4ff52c3]{background:#fef3c7;border-color:#f59e0b;color:#92400e}.is-done .status[data-v-d4ff52c3]{background:#dcfce7;border-color:#22c55e;color:#166534}.topic-body[data-v-d4ff52c3]{min-width:0;flex:1}.topic-title[data-v-d4ff52c3]{font-weight:500;font-size:14px;color:var(--vp-c-text-1);background:none;border:0;padding:0;font-family:inherit;text-align:left;cursor:pointer}.topic-title[data-v-d4ff52c3]:hover{color:var(--vp-c-brand-1)}.is-done .topic-title[data-v-d4ff52c3]{color:var(--vp-c-text-3)}.topic-tags[data-v-d4ff52c3]{margin-left:6px}.tag[data-v-d4ff52c3]{font-size:11px;padding:1px 6px;margin-right:4px;border-radius:6px;background:var(--vp-c-bg-soft);color:var(--vp-c-text-3)}.tag.freq-极高[data-v-d4ff52c3]{color:#b45309;background:#fef3c7}.dark{color:#fde68a;background:#451a03}.topic-line[data-v-d4ff52c3]{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--vp-c-text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.panel-nav[data-v-d4ff52c3]{display:flex;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--vp-c-divider)}.panel-nav button[data-v-d4ff52c3]{flex:1;padding:6px 10px;font-size:13px;border-radius:8px;border:1px solid var(--vp-c-divider);background:transparent;color:var(--vp-c-text-2);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-nav button[data-v-d4ff52c3]:hover:not(:disabled){border-color:var(--vp-c-brand-1);color:var(--vp-c-brand-1)}.panel-nav button[data-v-d4ff52c3]:disabled{opacity:.4;cursor:default}.reader-mask[data-v-d4ff52c3]{position:fixed;inset:0;z-index:70;background:#00000073}.reader[data-v-d4ff52c3]{position:fixed;z-index:71;top:0;right:0;bottom:0;width:min(1050px,96vw);display:flex;flex-direction:column;background:var(--vp-c-bg, hsl(var(--background)));border-left:1px solid var(--vp-c-divider);box-shadow:-8px 0 32px #0003;overflow:hidden}.slide-enter-active[data-v-d4ff52c3],.slide-leave-active[data-v-d4ff52c3]{transition:transform .22s ease,opacity .22s ease}.slide-enter-from[data-v-d4ff52c3],.slide-leave-to[data-v-d4ff52c3]{transform:translate(100%);opacity:.6}.fade-enter-active[data-v-d4ff52c3],.fade-leave-active[data-v-d4ff52c3]{transition:opacity .2s ease}.fade-enter-from[data-v-d4ff52c3],.fade-leave-to[data-v-d4ff52c3]{opacity:0}.reader-head[data-v-d4ff52c3]{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--vp-c-divider)}.reader-head .status[data-v-d4ff52c3]{margin-top:0}.reader-title[data-v-d4ff52c3]{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.reader-title b[data-v-d4ff52c3]{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-meta[data-v-d4ff52c3]{font-size:12px;color:var(--vp-c-text-3)}.reader-btn[data-v-d4ff52c3]{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--vp-c-divider);background:transparent;color:var(--vp-c-text-2);font-size:14px;cursor:pointer;text-decoration:none}.reader-btn[data-v-d4ff52c3]:hover:not(:disabled){border-color:var(--vp-c-brand-1);color:var(--vp-c-brand-1)}.reader-btn[data-v-d4ff52c3]:disabled{opacity:.35;cursor:default}.reader-mark[data-v-d4ff52c3]{width:auto;padding:0 10px;font-size:13px;white-space:nowrap}.mark-done[data-v-d4ff52c3]:hover{border-color:#22c55e;color:#166534;background:#dcfce7}.mark-review[data-v-d4ff52c3]:hover{border-color:#f59e0b;color:#92400e;background:#fef3c7}.dark{background:#052e16;color:#86efac}.dark{background:#451a03;color:#fde68a}.reader-keys[data-v-d4ff52c3]{margin:0;padding:6px 14px;font-size:11px;color:var(--vp-c-text-3);border-top:1px solid var(--vp-c-divider)}.reader-body[data-v-d4ff52c3]{position:relative;flex:1;min-height:0}.reader-loading[data-v-d4ff52c3]{position:absolute;inset:0;margin:0;display:grid;place-items:center;font-size:13px;color:var(--vp-c-text-3)}.reader-frame[data-v-d4ff52c3]{width:100%;height:100%;border:0;background:transparent;opacity:0;transition:opacity .15s}.reader-frame.ready[data-v-d4ff52c3]{opacity:1}@media(max-width:640px){.legend[data-v-d4ff52c3]{font-size:12px}.mainline[data-v-d4ff52c3]{gap:6px;margin-inline:-16px;padding-inline:16px;scroll-snap-type:x proximity}.mainline-label[data-v-d4ff52c3]{display:none}.stage-box[data-v-d4ff52c3]{flex:0 0 auto;min-width:120px;padding:8px 10px;scroll-snap-align:start}.stage-name[data-v-d4ff52c3]{font-size:14px}.stage-brief[data-v-d4ff52c3],.stage-arrow[data-v-d4ff52c3]{display:none}.toolbar[data-v-d4ff52c3]{padding:8px 10px}.filters[data-v-d4ff52c3]{width:100%}.columns[data-v-d4ff52c3]{grid-template-columns:1fr;gap:20px}.column[data-v-d4ff52c3]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.column-head[data-v-d4ff52c3]{grid-column:1 / -1}.card[data-v-d4ff52c3]{padding:8px 10px 6px}.card-title[data-v-d4ff52c3]{font-size:14px}.reader[data-v-d4ff52c3]{width:100vw;height:100dvh;border-left:0}.reader-head[data-v-d4ff52c3]{padding:8px 10px;gap:6px}.reader-title b[data-v-d4ff52c3]{font-size:14px}.reader-meta[data-v-d4ff52c3],.reader-ext[data-v-d4ff52c3]{display:none}.reader-btn[data-v-d4ff52c3]{width:32px;height:32px}.reader-mark[data-v-d4ff52c3]{width:auto;min-width:32px;padding:0 6px;font-size:12px;white-space:nowrap}.reader-head[data-v-d4ff52c3]{gap:4px;padding:8px}.reader-head .status[data-v-d4ff52c3]{width:26px;height:26px;font-size:13px;pointer-events:none}.reader-title b[data-v-d4ff52c3]{font-size:13px}.reader-keys[data-v-d4ff52c3]{display:none}.reader-head[data-v-d4ff52c3],.panel-head[data-v-d4ff52c3]{position:relative;touch-action:none}.reader-head[data-v-d4ff52c3]{padding-top:14px}.reader-head[data-v-d4ff52c3]:before,.panel-head[data-v-d4ff52c3]:before{content:"";position:absolute;top:4px;left:50%;width:36px;height:4px;transform:translate(-50%);border-radius:2px;background:var(--vp-c-divider)}.panel-head[data-v-d4ff52c3]{padding-top:8px}.panel[data-v-d4ff52c3]{top:auto;height:85dvh;width:100vw;border-left:0;border-top:1px solid var(--vp-c-divider);border-radius:14px 14px 0 0}.panel-nav button[data-v-d4ff52c3]{padding:10px}.topic[data-v-d4ff52c3]{padding:12px 0}.status[data-v-d4ff52c3]{width:32px;height:32px;font-size:15px}.topic-title[data-v-d4ff52c3]{font-size:15px}.topic-line[data-v-d4ff52c3]{-webkit-line-clamp:3}.slide-enter-from.panel[data-v-d4ff52c3],.slide-leave-to.panel[data-v-d4ff52c3]{transform:translateY(100%)}}
