:root{color-scheme:light dark;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f7;--surface-3: #e9edf3;--ink: #16191f;--ink-2: #3d4654;--muted: #69727f;--line: #e2e6ec;--line-strong: #ccd2dc;--accent: #2563eb;--accent-ink: #1d4ed8;--accent-wash: #eaf1ff;--good: #0f9d6b;--good-wash: #e7f7f0;--bad: #e0394e;--bad-wash: #fdecee;--warn: #d9822b;--r-surface: 14px;--r-control: 10px;--shadow-sm: 0 1px 2px rgba(20, 30, 50, .05), 0 1px 3px rgba(20, 30, 50, .06);--shadow-md: 0 6px 20px rgba(20, 30, 50, .08);--maxw: 1160px;--rail-h: 56px;--ease: cubic-bezier(.16, 1, .3, 1)}@media(prefers-color-scheme:dark){:root{--bg: #0d1117;--surface: #161b22;--surface-2: #1b212b;--surface-3: #232b36;--ink: #e9edf3;--ink-2: #c2cad6;--muted: #8b95a3;--line: #2a323d;--line-strong: #3a434f;--accent: #6492f0;--accent-ink: #80a6f5;--accent-wash: #18263f;--good: #35c08a;--good-wash: #14271f;--bad: #f0697a;--bad-wash: #2c191c;--warn: #e0a050;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:1.25;color:var(--ink)}h2{font-size:1.35rem;letter-spacing:-.01em;margin:0 0 1rem}h3{font-size:1.05rem;margin:0 0 .5rem}p{margin:0 0 .5rem}button{font-family:inherit}.tag{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:var(--accent-ink);background:var(--accent-wash);border-radius:999px;padding:.12rem .55rem;margin-right:.45rem;white-space:nowrap;vertical-align:middle}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:2rem;max-width:var(--maxw);margin:0 auto;padding:1.5rem 1.5rem 5rem;align-items:start}.app-sidebar{position:sticky;top:1.5rem}.nav-toggle{display:none}.app-sidebar-scroll{max-height:calc(100dvh - 3rem);overflow-y:auto;padding-right:4px}.lesson-page{min-width:0}.lesson-section{scroll-margin-top:calc(var(--rail-h) + 12px);padding:1.25rem 0 2rem}.lesson-section+.lesson-section{border-top:1px solid var(--line)}.lesson-missing{max-width:var(--maxw);margin:4rem auto;text-align:center;color:var(--muted)}.curriculum-nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.curriculum-nav a{display:flex;gap:.6rem;align-items:baseline;padding:.5rem .6rem;border-radius:var(--r-control);text-decoration:none;color:var(--ink-2);transition:background .18s var(--ease),color .18s var(--ease)}.curriculum-nav a:hover{background:var(--surface-2)}.curriculum-nav a.active{background:var(--accent-wash);color:var(--accent-ink)}.curriculum-nav a.active .nav-index{color:var(--accent)}.nav-index{font-size:.72rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;min-width:1.4em}.nav-text{display:flex;flex-direction:column;min-width:0}.nav-phase{font-size:.7rem;color:var(--muted)}.nav-capability{font-size:.84rem;line-height:1.35}.section-rail{position:sticky;top:0;z-index:20;display:flex;gap:1.5rem;height:var(--rail-h);align-items:stretch;padding:0 .25rem;margin-bottom:.75rem;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);overflow-x:auto}.section-rail button{flex:0 0 auto;padding:0 .1rem;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:.92rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .18s var(--ease),border-color .18s var(--ease)}.section-rail button:hover{color:var(--ink)}.section-rail button.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.hero{padding:.5rem 0 .25rem}.hero-eyebrow{color:var(--accent-ink);font-size:.78rem;font-weight:700;letter-spacing:.04em;margin:0}.hero-title{margin:.3rem 0 .6rem;font-size:clamp(1.6rem,1.1rem + 2vw,2.3rem);letter-spacing:-.02em}.hero-capability{font-size:1.02rem;color:var(--ink);margin-bottom:.35rem}.hero-summary{color:var(--ink-2);max-width:70ch}.hero-mental-model,.hero-output{display:flex;gap:.4rem;align-items:baseline;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);padding:.65rem .9rem;margin:.6rem 0}.hero-mental-model p,.hero-output p{margin:0;color:var(--ink-2)}.concept-card{border:1px solid var(--line);border-radius:var(--r-surface);padding:1.25rem 1.4rem;margin:1rem 0;background:var(--surface);box-shadow:var(--shadow-sm)}.concept-title{font-size:1.15rem;letter-spacing:-.01em}.concept-idea{font-size:1rem;color:var(--ink)}.concept-why,.concept-lens{color:var(--ink-2);margin:.3rem 0}.example-contrast{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.1rem 0}.example{border-radius:var(--r-control);padding:.9rem 1rem;border:1px solid var(--line)}.example h4{margin:0 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.example.good{background:var(--good-wash);border-color:color-mix(in srgb,var(--good) 35%,var(--line))}.example.good h4{color:var(--good)}.example.bad{background:var(--bad-wash);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.example.bad h4{color:var(--bad)}.example p{font-size:.9rem;color:var(--ink-2)}.example-context{font-weight:600;color:var(--ink)!important}.example-outcome{font-size:.84rem}.pitfall-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.pitfall{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;font-size:.88rem;padding:.6rem .75rem;background:var(--surface-2);border-radius:var(--r-control)}.pitfall-fix{color:var(--good)}.decision-layer{border-left:3px solid var(--accent);padding-left:.95rem;margin:1rem 0}.decision-question{color:var(--muted);margin:.2rem 0 .5rem}.decision-choices{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.decision-choices li{font-size:.9rem;color:var(--ink-2);padding:.5rem .7rem;background:var(--surface-2);border-radius:var(--r-control)}.choice-example{display:inline-block;font-size:.76rem;color:var(--muted);margin-left:.5rem;font-family:ui-monospace,SFMono-Regular,monospace}.question-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.question-item{border:1px solid var(--line);border-radius:var(--r-surface);padding:1.1rem 1.2rem;background:var(--surface)}.question-head{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--muted)}.question-index{font-weight:600}.question-weight{font-weight:700;color:var(--accent-ink);background:var(--accent-wash);padding:.1rem .55rem;border-radius:999px}.question-prompt{font-weight:600;font-size:1rem;margin:.5rem 0 .8rem}.question-scenario{color:var(--muted);font-size:.9rem;margin-bottom:.6rem}.option-list{display:flex;flex-direction:column;gap:.5rem}.option-button{text-align:left;padding:.65rem .9rem;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);color:var(--ink);cursor:pointer;font-size:.92rem;transition:border-color .16s var(--ease),background .16s var(--ease),transform .08s var(--ease)}.option-button:hover{border-color:var(--accent)}.option-button:active{transform:translateY(1px)}.option-button.selected{border-color:var(--accent);background:var(--accent-wash)}.option-button.correct{border-color:var(--good);background:var(--good-wash)}.option-button.wrong{border-color:var(--bad);background:var(--bad-wash)}.question-explanation{font-size:.86rem;color:var(--muted);margin-top:.6rem;padding-top:.5rem;border-top:1px dashed var(--line)}.submit-quiz{margin-top:1.2rem;padding:.65rem 1.4rem;border:none;border-radius:var(--r-control);background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:filter .16s var(--ease),transform .08s var(--ease)}.submit-quiz:hover:not(:disabled){filter:brightness(1.06)}.submit-quiz:active:not(:disabled){transform:translateY(1px)}.submit-quiz:disabled{background:var(--line-strong);color:var(--muted);cursor:not-allowed}.practice-prompt{background:var(--surface-2);border-radius:var(--r-control);padding:.7rem .9rem;color:var(--ink-2)}.practice-label{display:block;font-weight:600;margin:.85rem 0 .4rem}.practice-textarea{width:100%;min-height:150px;padding:.85rem;border:1px solid var(--line-strong);border-radius:var(--r-control);font:inherit;resize:vertical;background:var(--surface);color:var(--ink)}.practice-textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.practice-textarea::placeholder{color:var(--muted)}.rubric-list{list-style:none;margin:.5rem 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.rubric-list label{display:flex;gap:.55rem;align-items:flex-start;font-size:.92rem;cursor:pointer;color:var(--ink-2)}.rubric-list input{margin-top:.2rem;accent-color:var(--accent)}.review-result{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-surface);padding:1.1rem 1.25rem}.review-score{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums}.review-score strong{color:var(--accent-ink)}.review-empty{color:var(--muted)}.weak-concepts ul,.recommendations ul,.attempt-history ul{margin:.4rem 0;padding-left:1.2rem;color:var(--ink-2)}.attempt-history{margin-top:1rem}.capability-archive{margin-top:2rem}.archive-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.archive-toggle{display:flex;align-items:center;gap:.6rem;border:0;background:transparent;padding:0;cursor:pointer;color:var(--ink)}.archive-toggle h2{margin:0}.archive-caret{color:var(--muted);transition:transform .18s var(--ease);display:inline-block}.archive-caret.open{transform:rotate(90deg)}.archive-summary{font-size:.78rem;font-weight:600;color:var(--accent-ink);background:var(--accent-wash);padding:.1rem .6rem;border-radius:999px}.export-archive{padding:.5rem 1.05rem;border:1px solid var(--accent);border-radius:var(--r-control);background:transparent;color:var(--accent-ink);font-weight:600;cursor:pointer;transition:background .16s var(--ease)}.export-archive:hover{background:var(--accent-wash)}.archive-scroll{overflow-x:auto}.capability-archive table{width:100%;border-collapse:collapse;margin-top:.9rem;font-size:.88rem;min-width:460px}.capability-archive th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.5rem .6rem;border-bottom:1px solid var(--line-strong)}.capability-archive td{padding:.6rem;border-bottom:1px solid var(--line);color:var(--ink-2)}.capability-archive td:nth-child(2),.capability-archive td:nth-child(4){font-variant-numeric:tabular-nums}.archive-status{font-size:.76rem;font-weight:600;padding:.12rem .6rem;border-radius:999px;background:var(--surface-3);color:var(--muted)}.archive-status[data-status=可独立交付]{background:var(--good-wash);color:var(--good)}.archive-status[data-status=练习]{background:var(--accent-wash);color:var(--accent-ink)}.archive-status[data-status=理解]{background:var(--surface-3);color:var(--ink-2)}.architecture-diagram{margin:1.25rem 0;padding:1rem 1.25rem 1.25rem;border:1px solid var(--line);border-radius:var(--r-surface);background:var(--surface-2)}.architecture-diagram .diagram-heading{font-weight:600;margin-bottom:.85rem;color:var(--ink)}.architecture-diagram figcaption{margin-top:.85rem;font-size:.84rem;color:var(--muted)}.architecture-canvas{position:relative;width:100%}.architecture-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}.architecture-connectors path{fill:none;stroke:var(--line-strong);stroke-width:1.5}.architecture-connectors marker path{stroke:none}.architecture-connector[data-relation=feedback] path{stroke:var(--accent);stroke-dasharray:5 4}.architecture-connector[data-relation=guard] path,.architecture-connector[data-relation=branch] path{stroke:var(--bad)}.architecture-connector[data-relation=dependency] path{stroke-dasharray:2 3}.architecture-connectors text{fill:var(--muted);font-size:11px}.architecture-node-list{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-around}.architecture-node{position:relative;display:inline-flex;align-items:center;padding:.5rem .85rem;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);font-size:.88rem;z-index:3;box-shadow:var(--shadow-sm)}.architecture-node[data-tone=accent]{border-color:var(--accent)}.architecture-node[data-tone=system]{background:var(--accent-wash);border-color:var(--accent)}.architecture-node[data-tone=warning]{border-color:var(--warn)}.architecture-node[data-tone=success]{border-color:var(--good)}.architecture-groups{display:flex;flex-wrap:wrap;gap:1rem;position:relative}.architecture-group{flex:1 1 200px;padding:.8rem;border:1px dashed var(--line-strong);border-radius:var(--r-control);background:var(--surface)}.architecture-group h3{margin:0 0 .5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.architecture-group[data-kind=layer]{flex-basis:100%}.architecture-loop{position:relative;display:grid;place-items:center;min-height:260px}.architecture-loop-slot{position:absolute;--angle: calc(360deg / var(--loop-count) * var(--slot) - 90deg);transform:translate(calc(cos(var(--angle))*120px),calc(sin(var(--angle))*100px))}.mobile-day-nav{display:none}@media(max-width:860px){.app-shell{grid-template-columns:1fr;gap:.5rem;padding:.5rem 1rem 88px}.app-sidebar{display:none}.example-contrast,.pitfall{grid-template-columns:1fr}.hero-title{font-size:1.5rem}.mobile-day-nav{display:flex;align-items:stretch;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.mday-toggle{flex:0 0 auto;width:42px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);color:var(--accent-ink);font-size:22px;line-height:1;cursor:pointer}.mday-track{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity}.mobile-day-nav:not(.open) .mday-track{display:none}.mday-chip{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;min-width:132px;max-width:156px;padding:8px 11px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);color:var(--ink);text-decoration:none;scroll-snap-align:start}.mday-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.mday-phase{font-size:.72rem;font-weight:700;opacity:.85}.mday-title{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
