:root{--paper:oklch(0.974 0.012 80);--surface:oklch(0.996 0.003 80);--ink:oklch(0.285 0.038 258);--muted:oklch(0.49 0.025 258);--navy:oklch(0.31 0.045 258);--accent:oklch(0.5 0.14 38);--line:oklch(0.875 0.014 80);--selected:oklch(0.927 0.026 72);--success:oklch(0.43 0.075 170);--soft:oklch(0.94 0.009 80);--white:oklch(1 0 0);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a,select,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button{color:inherit}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--ink)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.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:-100px;left:20px;z-index:40;padding:14px;background:var(--ink);color:var(--white)}.skip-link:focus{top:12px}.topbar{height:91px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);background:var(--surface);position:relative;z-index:20}.brand{padding:0;background:none;border:0;display:flex;gap:15px;align-items:center;text-align:left;font-size:17px;font-weight:650;letter-spacing:.02em}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:7px;letter-spacing:.05em}.brand-symbol{width:45px;height:45px;background:var(--navy);color:var(--paper);font-family:Georgia,serif;font-size:25px;display:flex;align-items:center;justify-content:center;border-radius:7px;position:relative;font-weight:400}.brand-symbol span{position:absolute;right:-5px;bottom:-5px;background:var(--accent);font-family:inherit;font-size:14px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center}.top-actions{display:flex;gap:20px;align-items:center}.local-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px}.local-label i{width:6px;height:6px;border-radius:50%;background:var(--success)}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);max-width:1760px;margin:auto;min-height:calc(100vh - 91px)}.sidebar{padding:31px 24px 24px;border-right:1px solid var(--line);align-self:start;position:sticky;top:0;height:calc(100vh - 0px);max-height:100vh;display:flex;flex-direction:column;background:var(--paper)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.small-label{font-size:12px;color:var(--muted)}.text-button{border:0;background:none;color:var(--accent);font-size:12px;padding:5px 0;min-height:32px}.text-button:hover{text-decoration:underline;text-underline-offset:4px}#course-title{font-size:20px;line-height:1.55;font-weight:650;letter-spacing:-.025em;margin:16px 0 25px;overflow-wrap:anywhere}.progress-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.progress-top strong{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}progress{width:100%;height:4px;appearance:none;border:0;border-radius:5px;background:var(--line);margin:10px 0 24px;flex-shrink:0}progress::-webkit-progress-bar{background:var(--line);border-radius:5px}progress::-webkit-progress-value{background:var(--accent);border-radius:5px}progress::-moz-progress-bar{background:var(--accent);border-radius:5px}.search-box{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:0 11px;min-height:42px;color:var(--muted);flex-shrink:0}.search-box input{width:100%;min-width:0;border:0;background:none;outline:none;padding:10px 0;font-size:12px;color:var(--ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.search-box:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-box input:focus-visible{outline:none}.filters{display:flex;gap:8px;margin:11px 0 18px}.filters label{flex:1;min-width:0}.filters select{width:100%;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;min-height:33px;border-radius:4px;padding:4px}.list-caption{font-size:11px;color:var(--muted);margin-bottom:10px}.lesson-list{overflow:auto;margin:0 -10px;padding:0 10px 12px;min-height:100px;flex:1}.lesson-button{width:100%;border:0;background:none;display:flex;gap:10px;align-items:flex-start;padding:14px 10px;text-align:left;border-radius:6px;margin:3px 0;transition:background .15s}.lesson-button:hover{background:var(--soft)}.lesson-button.active{background:var(--selected)}.lesson-number{font-family:Georgia,serif;font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:24px;padding-top:1px}.lesson-button.active .lesson-number{color:var(--accent)}.lesson-main{min-width:0;flex:1}.lesson-name{font-size:12px;line-height:1.65;display:block;overflow-wrap:anywhere}.lesson-meta{display:flex;flex-wrap:wrap;gap:5px 9px;font-size:10px;color:var(--muted);margin-top:7px;line-height:1.5}.lesson-meta .downloaded{color:var(--success)}.done-icon{font-size:12px;color:var(--success);margin-top:3px}.sidebar-bottom{border-top:1px solid var(--line);padding-top:16px;margin-top:14px;flex-shrink:0}.sidebar-bottom p{font-size:10px;color:var(--muted);line-height:1.9;margin-bottom:5px}main{padding:42px 48px 70px;min-width:0;outline:none}#content{max-width:1000px;margin:0 auto}.breadcrumb{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:11px;margin-bottom:32px;flex-wrap:wrap}.breadcrumb button{color:var(--muted);border:0;background:none;padding:0}.breadcrumb button:hover{color:var(--accent)}.breadcrumb span:last-child{color:var(--ink)}.lesson-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.lesson-kicker{font-size:12px;color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:12px}.lesson-kicker span{font-family:Georgia,serif;font-size:17px}.lesson-header h2{font-size:27px;font-weight:600;letter-spacing:-.025em;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere}.metadata{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px;line-height:1.8}.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:40px;border:1px solid var(--line);padding:9px 15px;background:var(--surface);color:var(--ink);border-radius:5px;font-size:12px;line-height:1.5;text-decoration:none;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:var(--soft)}.button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:var(--navy);color:var(--white);border-color:var(--navy)}.button.primary:hover:not(:disabled){background:var(--ink)}.button.completed{color:var(--success);border-color:var(--success);background:var(--surface)}.button.subtle{background:none}.mark-done{flex-shrink:0;margin-top:7px}.player-shell{border-radius:8px;overflow:hidden;background:var(--navy)}video{display:block;width:100%;max-height:70vh;aspect-ratio:16/9;background:oklch(.16 0 0)}.audio-player{padding:32px;color:var(--white);display:flex;align-items:center;gap:24px}.audio-art{font-family:Georgia,serif;font-size:42px;width:76px;height:76px;flex-shrink:0;border:1px solid oklch(.53 .03 258);border-radius:50%;display:grid;place-items:center}.audio-main{flex:1;min-width:0}.audio-main p{font-size:12px;margin-bottom:14px;opacity:.85}audio{width:100%}.player-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;color:var(--muted);font-size:10px}.player-footer a{font-size:11px}.content-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:30px 0 0}.content-tabs button{border:0;background:none;padding:14px 0;font-size:13px;color:var(--muted);position:relative}.content-tabs button[aria-selected=true]{color:var(--ink);font-weight:600}.content-tabs button[aria-selected=true]:after{content:"";position:absolute;height:2px;background:var(--accent);bottom:-1px;left:0;right:0}.panel{padding-top:26px}.panel[hidden]{display:none}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.panel-heading h3{font-size:15px;font-weight:600;margin:0}.prose{font-size:14px;line-height:2;color:var(--ink);overflow-wrap:anywhere;max-width:75ch}.prose p{margin-bottom:1.3em}.prose h1,.prose h2,.prose h3{font-size:20px;line-height:1.6;margin:1.8em 0 .6em}.prose h3{font-size:17px}.prose img{max-width:100%;height:auto;display:block;margin:18px auto;border-radius:4px}.prose video{margin:18px 0}.prose audio{margin:18px 0}.prose ul,.prose ol{padding-left:24px}.prose blockquote{margin:20px 0;background:var(--soft);padding:18px 24px;border-radius:4px}.prose pre{overflow:auto;padding:16px;background:var(--soft);border-radius:4px;font-size:12px;line-height:1.7}.prose table{width:100%;border-collapse:collapse;display:block;overflow:auto}.prose th,.prose td{padding:8px 12px;border:1px solid var(--line);text-align:left}.prose a{word-break:break-all}.notice{display:flex;gap:15px;background:var(--selected);padding:22px 24px;border-radius:6px;align-items:flex-start;margin-bottom:22px}.notice-icon{font-family:Georgia,serif;font-size:24px;line-height:1;color:var(--accent)}.notice h3{font-size:14px;margin-bottom:8px;font-weight:600}.notice p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:0}.notice a{display:inline-block;margin-top:11px;font-size:12px}.empty{padding:32px 10px;color:var(--muted);font-size:12px;line-height:1.9;text-align:center}.reading-empty{padding:30px 0;max-width:60ch;color:var(--muted);font-size:13px;line-height:2}.attachment-list{display:flex;flex-direction:column;gap:0}.attachment{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:12px;color:var(--ink)}.attachment-icon{width:36px;height:40px;background:var(--soft);display:grid;place-items:center;font-size:11px;color:var(--muted);border-radius:4px}.attachment-name{min-width:0;overflow-wrap:anywhere;flex:1}.attachment-arrow{color:var(--accent);font-size:20px}.notes-intro{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:14px}.notes-text{display:block;resize:vertical;min-height:210px;width:100%;padding:20px;border:1px solid var(--line);border-radius:6px;line-height:1.9;font-size:13px;background:var(--surface);color:var(--ink)}.notes-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:11px;color:var(--muted);margin-top:12px}.lesson-navigation{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);padding-top:24px;margin-top:42px}.lesson-navigation button{max-width:48%;border:0;background:none;text-align:left;padding:8px 0;font-size:11px;line-height:1.8;color:var(--muted)}.lesson-navigation button:last-child{text-align:right}.lesson-navigation strong{display:block;font-size:12px;font-weight:500;color:var(--ink);margin-top:4px}.overview-header{display:grid;grid-template-columns:minmax(0,1fr) 176px;gap:34px;align-items:center;padding:7px 0 34px;border-bottom:1px solid var(--line)}.overview-header.no-cover{grid-template-columns:1fr}.overview-heading{font-family:Georgia,"Songti SC","STSong",serif;font-size:35px;font-weight:500;line-height:1.5;margin-bottom:17px;letter-spacing:-.025em}.overview-subtitle{font-size:13px;line-height:1.9;color:var(--muted);max-width:48ch;margin-bottom:24px}.overview-cover{width:176px;max-height:230px;object-fit:cover;object-position:top;border-radius:6px}.overview-actions{display:flex;gap:10px;flex-wrap:wrap}.overview-stats{display:flex;gap:34px;flex-wrap:wrap;padding:23px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.overview-stats strong{font-family:Georgia,serif;font-size:24px;font-weight:400;color:var(--ink);margin-right:7px;font-variant-numeric:tabular-nums}.overview-section{margin-top:35px}.overview-section>h3{font-size:16px;margin-bottom:19px}.archive-summary{font-size:12px;color:var(--muted);line-height:1.9}.archive-summary ul{padding-left:19px}.download-status{margin-top:24px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);background:var(--navy);color:var(--white);padding:12px 20px;border-radius:6px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:50;max-width:calc(100vw - 40px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.mobile-menu{display:none}@media(min-width:1450px){main{padding:48px 70px 80px}.workspace{grid-template-columns:330px minmax(0,1fr)}.sidebar{padding-left:30px;padding-right:30px}}@media(max-width:1050px){.workspace{grid-template-columns:275px minmax(0,1fr)}main{padding:32px 28px 60px}.sidebar{padding:25px 20px}.lesson-header{display:block}.mark-done{margin-top:15px}.overview-header{grid-template-columns:1fr 120px;gap:20px}.overview-cover{width:120px}.overview-heading{font-size:29px}.topbar{padding:0 26px}}@media(max-width:760px){.topbar{height:76px;padding:0 20px}.brand{font-size:15px;gap:12px}.brand small{font-size:10px}.brand-symbol{width:38px;height:38px;font-size:22px}.local-label{display:none}.mobile-menu{display:inline-flex;font-size:11px;min-height:36px}.workspace{display:block;min-height:calc(100vh - 76px)}.sidebar{display:none;position:relative;top:auto;height:auto;max-height:none;border-right:0;border-bottom:1px solid var(--line);padding:23px 22px}.sidebar.is-open{display:flex}.lesson-list{max-height:52vh;min-height:0}.sidebar-bottom{display:block}#course-title{font-size:18px;margin:10px 0 17px}.sidebar progress{margin-bottom:17px}main{padding:25px 22px 50px}.breadcrumb{margin-bottom:23px;font-size:10px}.lesson-header h2{font-size:23px}.lesson-kicker{font-size:11px}.lesson-header{margin-bottom:20px}.mark-done{min-height:35px;font-size:11px}.metadata{font-size:10px;gap:10px}.player-footer{font-size:10px;align-items:flex-start;line-height:1.7}.content-tabs{margin-top:18px;gap:24px}.content-tabs button{font-size:12px}.panel{padding-top:23px}.panel-heading{align-items:flex-start}.panel-heading h3{font-size:14px}.prose{font-size:13px;line-height:2}.overview-header{grid-template-columns:1fr 88px;gap:18px;align-items:start}.overview-cover{width:88px;max-height:135px}.overview-heading{font-size:26px;margin-bottom:14px}.overview-subtitle{font-size:12px}.overview-actions{grid-column:1/-1}.overview-stats{gap:18px 24px;font-size:10px}.overview-stats strong{font-size:22px}.button{font-size:11px;padding:8px 12px;min-height:37px}.notice{padding:19px 17px;gap:12px}.notice p{font-size:11px}.audio-player{padding:22px 18px;gap:14px}.audio-art{width:46px;height:46px;font-size:28px}.audio-main p{font-size:11px}.notes-text{padding:15px}.notes-footer{align-items:flex-start;line-height:1.7}.lesson-navigation{gap:20px}.lesson-navigation strong{font-size:11px}.overview-section{margin-top:29px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.resource-documents{display:flex;flex-wrap:wrap;gap:10px}.image-resources{margin-top:20px}.image-resources summary{cursor:pointer;font-size:12px;color:var(--accent);padding:8px 0;min-height:36px}.image-resources summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.resource-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px 18px;margin-top:15px}.resource-image{text-decoration:none;font-size:11px;line-height:1.8;color:var(--ink);min-width:0}.resource-image img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain;background:var(--surface);border-radius:4px;margin-bottom:9px}.resource-image span{display:block}.resource-image small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.resource-image:hover span{color:var(--accent)}
