:root{color-scheme:light;--bg: #f4f6f3;--surface: #ffffff;--surface-subtle: #eef3ef;--surface-hover: #e6eee8;--border: #d8e0da;--border-strong: #bcc9c0;--text: #17221d;--text-soft: #4f5f56;--text-muted: #718078;--brand: #176b4b;--brand-strong: #0f563b;--brand-soft: #dceee4;--accent: #b45309;--focus: #e19738;--shadow: 0 12px 30px rgba(26, 47, 36, .08);--sidebar-width: 292px;--content-width: 900px;--radius: 8px;--font-sans: Inter, "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-serif: "Noto Serif SC", "Songti SC", Georgia, serif}:root[data-theme=dark]{color-scheme:dark;--bg: #151a17;--surface: #1d2420;--surface-subtle: #242e28;--surface-hover: #2c3931;--border: #35443b;--border-strong: #4b5f53;--text: #edf3ef;--text-soft: #bdc9c1;--text-muted: #91a097;--brand: #6fc59a;--brand-strong: #8ed8af;--brand-soft: #243f31;--accent: #f0ad69;--focus: #ffc46b;--shadow: 0 14px 34px rgba(0, 0, 0, .22)}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-size:16px;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{color:inherit;font:inherit;letter-spacing:0}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 70%,transparent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:10px;z-index:100;padding:10px 14px;color:#fff;background:var(--brand-strong);border-radius:6px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.icon-button{display:inline-grid;width:40px;height:40px;flex:0 0 40px;padding:0;place-items:center;border:1px solid var(--border);border-radius:8px;color:var(--text-soft);background:var(--surface);cursor:pointer}.icon-button:hover{color:var(--brand);background:var(--surface-hover)}.icon-button svg{width:19px;height:19px}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;height:100vh;min-height:0;flex-direction:column;padding:22px 18px 16px;overflow:hidden;background:var(--surface);border-right:1px solid var(--border);z-index:30}.brand{display:flex;min-width:0;align-items:center;gap:12px;padding:2px 4px 20px;color:var(--text);text-decoration:none}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;overflow:hidden;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 28%,var(--border));border-radius:8px}.brand-mark img{width:34px;height:34px;object-fit:contain}.brand-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.brand-copy strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.brand-copy small{color:var(--text-muted);font-size:12px}.search-box{position:relative;display:flex;height:42px;flex:0 0 42px;align-items:center;margin-bottom:4px}.search-box>svg{position:absolute;left:12px;width:18px;height:18px;color:var(--text-muted);pointer-events:none}.search-box input{width:100%;height:42px;padding:0 42px 0 38px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface-subtle);outline:none}.search-box input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent)}.search-box input::placeholder{color:var(--text-muted)}.clear-search{position:absolute;right:3px;display:none;width:36px;height:36px;border:0;background:transparent}.clear-search.visible{display:grid}.search-status{height:24px;margin:2px 4px 6px;color:var(--text-muted);font-size:12px;line-height:24px}.library-nav{min-height:0;flex:1;padding-right:3px;overflow-y:auto;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}.nav-section+.nav-section{margin-top:22px}.nav-section h2{margin:0 8px 7px;color:var(--text-muted);font-size:12px;font-weight:700}.nav-section ul{margin:0;padding:0;list-style:none}.nav-section li+li{margin-top:2px}.nav-section a{display:flex;min-height:39px;align-items:center;padding:9px 10px;border-radius:7px;color:var(--text-soft);font-size:14px;line-height:1.45;text-decoration:none}.nav-section a:hover{color:var(--text);background:var(--surface-hover)}.nav-section a.active{color:var(--brand-strong);background:var(--brand-soft);font-weight:650}.empty-search{display:grid;padding:30px 12px;place-items:center;color:var(--text-muted);text-align:center}.empty-search svg{width:24px;height:24px}.empty-search p{margin:10px 0 0;font-size:13px}.sidebar-footer{display:flex;flex:0 0 auto;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.repo-link{display:flex;min-width:0;height:40px;flex:1;align-items:center;gap:8px;padding:0 10px;border-radius:7px;color:var(--text-soft);font-size:13px;text-decoration:none}.repo-link:hover{color:var(--brand);background:var(--surface-hover)}.repo-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.repo-link svg{width:17px;height:17px;flex:0 0 17px}.repo-link svg:last-child{width:14px;height:14px;margin-left:auto}.main{height:100vh;min-width:0;overflow-y:auto}.content-frame{width:min(100% - 64px,var(--content-width));margin:0 auto;padding:58px 0 72px;animation:page-enter .22s ease-out both}.mobile-header,.nav-scrim{display:none}@keyframes page-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.eyebrow{margin:0 0 8px;color:var(--brand);font-size:13px;font-weight:750}.home-heading{position:relative;padding:18px 0 38px 74px;border-bottom:1px solid var(--border)}.title-mark{position:absolute;top:18px;left:0;display:grid;width:54px;height:54px;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border));border-radius:8px}.title-mark svg{width:27px;height:27px}.home-heading h1,.document-heading h1{margin:0;color:var(--text);font-family:var(--font-serif);font-size:clamp(30px,4vw,45px);font-weight:750;line-height:1.22}.home-heading .lead{max-width:620px;margin:14px 0 0;color:var(--text-soft);font-size:17px;line-height:1.75}.library-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0 54px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.library-stats div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:20px 24px}.library-stats div+div{border-left:1px solid var(--border)}.library-stats strong{color:var(--text);font-family:var(--font-serif);font-size:24px}.library-stats div:last-child strong{color:var(--accent)}.library-stats span{color:var(--text-muted);font-size:13px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h2{margin:0;font-family:var(--font-serif);font-size:24px;line-height:1.35}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-card{display:grid;min-height:94px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:14px;padding:17px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);text-decoration:none;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.course-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.course-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;color:var(--brand);background:var(--brand-soft)}.course-card:nth-child(3n+2) .course-icon{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.course-icon svg{width:20px;height:20px}.course-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.course-copy strong{overflow-wrap:anywhere;font-size:15px;line-height:1.4}.course-copy small{display:-webkit-box;overflow:hidden;color:var(--text-muted);font-size:12px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.course-arrow{width:18px;height:18px;color:var(--text-muted)}.contribution-note{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:42px;padding:20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.note-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent)}.note-icon svg{width:21px;height:21px}.contribution-note h2{margin:0 0 4px;font-size:15px}.contribution-note p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.55}.contribution-note>a,.primary-action{display:inline-flex;min-height:40px;align-items:center;gap:7px;padding:9px 13px;border-radius:7px;color:#fff;background:var(--brand-strong);font-size:13px;font-weight:700;text-decoration:none}.contribution-note>a svg,.primary-action svg{width:16px;height:16px}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:34px;color:var(--text-muted);font-size:13px}.breadcrumb a{display:inline-flex;align-items:center;gap:6px;color:var(--text-soft);text-decoration:none}.breadcrumb a:hover{color:var(--brand)}.breadcrumb svg{width:15px;height:15px}.document-heading{padding-bottom:30px;border-bottom:1px solid var(--border)}.document-heading h1{font-size:clamp(30px,4vw,42px);overflow-wrap:anywhere}.document-heading>p:last-child{margin:12px 0 0;color:var(--text-soft);font-size:16px;line-height:1.7}.textbook-panel{margin-top:24px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.textbook-panel summary{display:grid;min-height:68px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}.textbook-panel summary::-webkit-details-marker{display:none}.textbook-panel summary:hover{background:var(--surface-subtle)}.textbook-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:7px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.textbook-icon svg{width:19px;height:19px}.textbook-summary{display:flex;min-width:0;flex-direction:column;gap:3px}.textbook-summary strong{font-size:14px}.textbook-summary small{overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.textbook-action{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.textbook-action svg{width:16px;height:16px;transition:transform .16s ease}.textbook-panel[open] .textbook-action svg{transform:rotate(180deg)}.textbook-content{display:grid;grid-template-columns:minmax(160px,230px) minmax(0,1fr);gap:24px;padding:20px;border-top:1px solid var(--border)}.textbook-cover{position:relative;display:grid;min-height:220px;place-items:center;overflow:hidden;border-radius:7px;background:var(--surface-subtle)}.textbook-cover img{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;opacity:0}.textbook-cover.is-loaded img{opacity:1}.cover-loading{position:absolute;color:var(--text-muted);font-size:12px}.textbook-cover.is-loaded .cover-loading{display:none}.textbook-cover.has-error .cover-loading{color:var(--accent)}.textbook-meta{align-self:center}.textbook-meta>span{color:var(--brand);font-size:12px;font-weight:700}.textbook-meta strong{display:block;margin-top:8px;font-family:var(--font-serif);font-size:21px}.textbook-meta p{max-width:440px;margin:12px 0 0;color:var(--text-muted);font-size:13px;line-height:1.7}.markdown-body{padding:28px 0 20px;color:var(--text-soft);font-size:16px;line-height:1.85;overflow-wrap:anywhere}.markdown-body>:first-child{margin-top:0}.markdown-body h1{display:none}.markdown-body h2,.markdown-body h3,.markdown-body h4{color:var(--text);font-family:var(--font-serif);line-height:1.4}.markdown-body h2{margin:2em 0 .75em;padding-bottom:.42em;border-bottom:1px solid var(--border);font-size:25px}.markdown-body h2.section-heading-with-icon{display:flex;align-items:center;gap:9px}.markdown-body h2.section-heading-with-icon svg{width:.9em;height:.9em;flex:0 0 auto;color:var(--accent);stroke-width:1.8}.markdown-body h3{margin:1.7em 0 .65em;font-size:20px}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body table{margin-top:0;margin-bottom:1.2em}.markdown-body ul,.markdown-body ol{padding-left:1.4em}.markdown-body li+li{margin-top:.34em}.markdown-body a{color:var(--brand-strong);font-weight:600;text-underline-offset:3px;text-decoration-thickness:1px}.markdown-body a:hover{color:var(--accent)}.markdown-body .resource-link{display:inline-flex;align-items:baseline;gap:5px}.markdown-body .resource-link:before{content:"文件";padding:1px 5px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--border));border-radius:4px;color:var(--brand);background:var(--brand-soft);font-family:var(--font-sans);font-size:10px;font-weight:700;text-decoration:none}.markdown-body img{display:block;max-width:min(100%,620px);height:auto;margin:24px auto;border-radius:8px;box-shadow:var(--shadow)}.markdown-body blockquote{padding:12px 18px;border-left:4px solid var(--brand);color:var(--text-soft);background:var(--surface-subtle)}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body code{padding:2px 5px;border:1px solid var(--border);border-radius:4px;color:var(--accent);background:var(--surface-subtle);font-size:.9em}.markdown-body pre{padding:18px;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}.markdown-body pre code{padding:0;border:0;color:var(--text);background:transparent}.markdown-body table{display:table;width:100%;border-collapse:collapse}.markdown-body th,.markdown-body td{padding:10px 12px;border:1px solid var(--border);text-align:left}.markdown-body th{color:var(--text);background:var(--surface-subtle)}.document-view:not(.page-colleges) .markdown-body th:first-child,.document-view:not(.page-colleges) .markdown-body td:first-child{width:1%;min-width:96px;white-space:nowrap}.markdown-body hr{margin:32px 0;border:0;border-top:1px solid var(--border)}.page-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px;padding-top:24px;border-top:1px solid var(--border)}.page-nav a{display:flex;min-width:0;min-height:76px;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);text-decoration:none}.page-nav a:hover{border-color:var(--brand)}.page-nav a.next{justify-content:flex-end;text-align:right}.page-nav a>svg{width:19px;height:19px;flex:0 0 19px;color:var(--brand)}.page-nav a span{display:flex;min-width:0;flex-direction:column;gap:3px}.page-nav small{color:var(--text-muted);font-size:11px}.page-nav strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.not-found{display:flex;min-height:calc(100vh - 130px);align-items:flex-start;justify-content:center;flex-direction:column}.status-code{color:var(--brand);font-family:var(--font-serif);font-size:72px;font-weight:800;line-height:1}.not-found h1{margin:18px 0 8px;font-family:var(--font-serif);font-size:30px}.not-found p{margin:0 0 24px;color:var(--text-soft)}@media(max-width:840px){.app-shell{display:block;padding-top:58px}.mobile-header{position:fixed;inset:0 0 auto;z-index:25;display:grid;height:58px;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-brand{overflow:hidden;font-size:15px;font-weight:750;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar{position:fixed;inset:0 auto 0 0;width:min(86vw,var(--sidebar-width));height:100dvh;box-shadow:var(--shadow);transform:translate(-104%);transition:transform .2s ease}.sidebar.is-open{transform:translate(0)}.nav-scrim{position:fixed;inset:0;z-index:20;width:100%;height:100%;padding:0;border:0;background:#080e0a75;cursor:pointer}.nav-open .nav-scrim{display:block}.nav-open{overflow:hidden}.main{height:auto;min-height:calc(100vh - 58px);overflow:visible}.content-frame{width:min(100% - 36px,var(--content-width));padding:38px 0 56px}}@media(max-width:620px){.document-view:not(.page-colleges) .markdown-body th,.document-view:not(.page-colleges) .markdown-body td{padding:9px 8px;font-size:14px}.content-frame{width:min(100% - 28px,var(--content-width));padding-top:28px}.home-heading{padding:0 0 28px}.title-mark{position:static;width:48px;height:48px;margin-bottom:16px}.home-heading h1,.document-heading h1{font-size:30px}.home-heading .lead{font-size:15px}.library-stats{margin:20px 0 42px}.library-stats div{padding:16px 10px;text-align:center}.library-stats strong{font-size:20px}.library-stats span{font-size:11px}.course-grid{grid-template-columns:1fr}.contribution-note{grid-template-columns:40px minmax(0,1fr);padding:18px 0}.contribution-note>a{grid-column:1 / -1;justify-content:center}.breadcrumb{margin-bottom:25px}.markdown-body{padding-top:24px;font-size:15px}.textbook-panel summary{grid-template-columns:36px minmax(0,1fr) auto;gap:10px}.textbook-action{width:18px;overflow:hidden;white-space:nowrap}.textbook-action svg{flex:0 0 16px}.textbook-content{grid-template-columns:1fr;gap:18px;padding:14px}.textbook-cover{min-height:200px}.markdown-body h2{font-size:22px}.page-nav{grid-template-columns:1fr}.page-nav>span{display:none}.page-colleges .markdown-body table,.page-colleges .markdown-body tbody,.page-colleges .markdown-body tr,.page-colleges .markdown-body td{display:block;width:100%}.page-colleges .markdown-body thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.page-colleges .markdown-body tbody{display:grid;gap:10px}.page-colleges .markdown-body tr{padding:13px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.page-colleges .markdown-body td{padding:4px 0;border:0;font-size:13px}.page-colleges .markdown-body td:first-child{padding-bottom:8px;color:var(--text);font-size:15px;font-weight:700}.page-colleges .markdown-body td:nth-child(2):before,.page-colleges .markdown-body td:nth-child(3):before{display:inline-block;width:72px;color:var(--text-muted);font-size:12px}.page-colleges .markdown-body td:nth-child(2):before{content:"学院官网"}.page-colleges .markdown-body td:nth-child(3):before{content:"培养方案"}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
