:root{--bg:#f9fafb;--text:#1f2937;--link:#397eab;--line:#d1d5db;--selected:#e5e7eb;--muted:#6b7280;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--bg:#111827;--text:#d1d5db;--link:#75b6dc;--line:#4b5563;--selected:#374151;--muted:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--link);outline-offset:3px}h1,h2,h3{line-height:1.3}h1{font-size:36px}h2{font-size:26px}p{margin:1em 0}.site-header{z-index:20;background:var(--bg);white-space:nowrap;align-items:center;gap:18px;height:58px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #0002}.site-name{flex:none}.nav-links{scrollbar-width:none;align-items:stretch;gap:16px;min-width:0;height:100%;display:flex;overflow-x:auto}.nav-links>a{border-bottom:2px solid #0000;align-items:center;display:flex}.nav-links>a[aria-current=page]{border-color:var(--link)}.nav-tools{align-items:center;gap:20px;margin-left:auto;padding-left:12px;display:flex}.nav-tools a,.nav-tools button{color:var(--link);background:0 0;border:0;padding:0;display:flex}.menu-toggle{display:none}.home-page{min-height:calc(100vh - 140px);padding:40px 16px 32px}.section-title{margin:0 0 16px;font-size:20px;font-weight:600}.home-books{flex-wrap:wrap;justify-content:flex-start;display:flex}.book-card{border:1px solid var(--line);opacity:.9;border-radius:4px;width:192px;margin:10px 20px 20px 0;display:block;overflow:hidden}.book-card:hover{opacity:1;text-decoration:none;box-shadow:0 4px 6px #0002}.book-cover{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:107px;padding:12px;display:flex}.book-cover>span{text-shadow:0 1px 2px #0003;font-size:22px;font-weight:600}.book-cover small{opacity:.9;font-size:12px}.book-card h2{text-align:center;margin:0;padding:12px 4px 4px;font-size:16px;font-weight:700;line-height:24px}.book-card p{margin:0;padding:4px 4px 8px;line-height:24px}.home-latest{margin-top:24px}.home-blog-item{margin:16px 0}.home-blog-item time{font-size:14px;font-weight:600;display:block}.home-blog-item>a{margin-top:4px;display:block}.site-footer{padding:24px 16px;font-size:14px}.reading-layout{grid-template-columns:316px minmax(0,1fr);min-height:calc(100vh - 128px);display:grid}.reading-sidebar{border-right:1px solid var(--line);height:calc(100vh - 58px);padding:20px 0 24px 16px;position:sticky;top:58px;overflow-y:auto}.reading-sidebar h2{margin:0 4px 10px;font-size:14px;font-weight:600}.reading-sidebar nav{flex-direction:column;display:flex}.reading-sidebar nav>a{margin-bottom:4px;padding:6px 4px}.reading-sidebar .selected{background:var(--selected)}.reading-content{min-width:0;padding:24px 16px 48px}.reading-content>h1{margin:2px 0 18px}.author-line{margin:0 0 32px 64px}.author-line p{margin:2px 0}.large-cover{aspect-ratio:16/9;width:100%;height:auto;max-height:530px}.large-cover>span{font-size:clamp(26px,5vw,68px)}.large-cover small{margin-top:20px;font-size:24px}.muted{color:var(--muted)}.empty{padding:10px 0}.chapter-pager{border-top:1px solid var(--line);justify-content:space-between;gap:24px;margin-top:48px;padding-top:20px;display:flex}.blog-entry{border-bottom:1px solid var(--line);margin-bottom:24px;padding:8px 0 28px}.blog-entry h2{margin:12px 0;font-size:26px}.blog-entry .muted{font-size:14px}.plain-page{max-width:1000px;min-height:calc(100vh - 130px);padding:30px 16px}.plain-page h1{margin-top:0}.search-form{gap:12px;margin:24px 0;display:flex}.search-form input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:9px 12px}.search-form button{border:1px solid var(--link);background:var(--link);color:var(--bg);white-space:nowrap;border-radius:4px;padding:9px 20px}.search-result{border-bottom:1px solid var(--line);padding:16px 0}.search-result>a{font-size:21px}.search-result p{overflow-wrap:anywhere;margin:8px 0}.prose{overflow-wrap:anywhere;line-height:1.8}.prose h2{margin-top:32px}.prose img{max-width:100%;height:auto}.prose pre{background:var(--selected);padding:16px;overflow:auto}.prose blockquote{border-left:4px solid var(--line);color:var(--muted);margin-left:0;padding-left:16px}.prose table{border-collapse:collapse;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px 12px}.article-tags{border-top:1px solid var(--line);flex-wrap:wrap;gap:16px;margin-top:32px;padding-top:16px;display:flex}.not-found{min-height:70vh;padding:60px 16px}.skip-link{z-index:30;background:var(--bg);padding:12px;position:fixed;top:-100px}.skip-link:focus{top:0}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (min-width:1500px){.home-page{max-width:1440px;margin:auto}.site-header{padding-inline:calc(50% - 704px)}}@media (max-width:1100px){.nav-links{gap:13px}.site-header{gap:14px}.reading-layout{grid-template-columns:260px minmax(0,1fr)}}@media (max-width:760px){.site-header{height:54px}.menu-toggle{color:var(--link);background:0 0;border:0;order:-1;padding:4px;display:block}.nav-links{display:none}.nav-links.open{background:var(--bg);flex-direction:column;gap:4px;height:auto;max-height:70vh;padding:12px 16px;display:flex;position:absolute;top:54px;left:0;right:0;overflow:auto;box-shadow:0 4px 6px #0002}.nav-links>a{padding:6px 0}.home-page{padding-top:28px}.book-card{width:calc(50% - 10px);margin-right:20px}.book-card:nth-child(2n){margin-right:0}.book-cover{aspect-ratio:16/9;height:auto}.book-cover>span{font-size:19px}.reading-layout{display:block}.reading-sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;max-height:230px;padding:16px;position:static}.reading-content h1{font-size:30px}.author-line{margin-left:0}.nav-tools{gap:18px}.large-cover small,.section-title{font-size:18px}}.site-footer{text-align:center;color:var(--muted);--link:#16a34a}.site-footer a{color:var(--muted)}.site-footer a:hover,.site-footer a:focus-visible{color:var(--link)}html[data-theme=dark] .site-footer{--link:#4ade80}.content-cover{aspect-ratio:16/9;object-fit:cover;background:var(--selected);border-radius:10px;width:100%;height:auto;display:block}.book-card .course-custom-cover{border-radius:8px;width:calc(100% - 16px);margin:8px 8px 0}.article-cover{margin:24px 0 32px}.blog-list-cover{max-width:640px;margin-top:16px}.home-post-cover{max-width:260px;margin-bottom:12px}.admin-page{max-width:1200px;min-height:calc(100vh - 140px);margin:auto;padding:48px 28px 64px}.admin-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;display:flex}.admin-heading h1{margin:4px 0 10px;font-size:32px}.admin-heading p{color:var(--muted);margin:0}.admin-eyebrow{letter-spacing:.08em;font-size:13px}.admin-primary,.admin-secondary{border:1px solid var(--line);border-radius:8px;min-height:42px;padding:9px 18px;font-weight:500}.admin-primary{background:var(--link);color:#fff;border-color:var(--link)}.admin-secondary{background:var(--bg);color:var(--text)}.admin-page button:disabled{opacity:.5;cursor:not-allowed}.admin-login,.admin-setup{border:1px solid var(--line);border-radius:14px;max-width:620px;padding:28px}.admin-login{gap:14px;max-width:420px;display:grid}.admin-login h2,.admin-setup h2{margin:0 0 8px;font-size:22px}.admin-setup dd{color:var(--muted);margin:6px 0 20px}.admin-setup dt{overflow-wrap:anywhere;font-family:monospace}.admin-setup p{line-height:1.8}.admin-page input:not([type=file]):not([type=range]){border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:11px 12px}.admin-workspace{grid-template-columns:300px minmax(0,1fr);gap:24px;display:grid}.admin-library,.admin-editor{border:1px solid var(--line);border-radius:14px;min-width:0;padding:24px}.admin-library{align-self:start}.admin-tabs{gap:8px;margin-bottom:18px;display:flex}.admin-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;flex:1;padding:9px}.admin-tabs button[aria-pressed=true]{background:var(--selected);color:var(--text);font-weight:600}.admin-items{max-height:480px;margin:16px 0;overflow:auto}.admin-items>button{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;margin:4px 0;padding:12px;display:block}.admin-items>button.selected{background:var(--selected)}.admin-items small{color:var(--muted);margin-top:5px;display:block}.admin-library>.admin-secondary{width:100%}.admin-editor-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.admin-editor-heading h2{margin:0;font-size:22px}.admin-editor-heading>span{color:var(--muted);flex:none;font-size:12px}.admin-cover-preview{aspect-ratio:16/9;background:var(--selected);border-radius:12px;overflow:hidden}.admin-cover-preview>img{object-fit:cover;width:100%;height:100%;display:block}.admin-default-cover{color:#fff;text-align:center;background:#426782;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;padding:24px;display:flex}.admin-default-cover strong{font-size:28px}.admin-hint{color:var(--muted);font-size:12px}.admin-upload{border:1px dashed var(--line);overflow-wrap:anywhere;border-radius:8px;margin:20px 0;padding:16px;display:block}.admin-upload input{max-width:100%;margin-top:12px;font-size:13px;display:block}.admin-field{gap:9px;margin:20px 0;font-size:14px;display:grid}.admin-field small{color:var(--muted)}.admin-field input[type=range]{width:100%;accent-color:var(--link)}.admin-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.admin-error,.admin-success{border-radius:8px;margin-bottom:24px;padding:14px 18px;line-height:1.7}.admin-error{background:color-mix(in srgb,#d33 10%,var(--bg));color:var(--text);border:1px solid #d337}.admin-success{background:color-mix(in srgb,#16a34a 10%,var(--bg));border:1px solid #16a34a66}.admin-success a{margin-left:12px}@media (max-width:800px){.admin-workspace{grid-template-columns:minmax(0,1fr)}.admin-items{max-height:220px}.admin-page{padding:28px 20px}.admin-library,.admin-editor{padding:20px}.admin-heading h1{font-size:28px}}.exchanges-page{max-width:1200px;min-height:calc(100vh - 140px);margin-inline:auto;padding:48px 32px 64px}.exchange-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.exchange-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;padding:28px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 3px #00000005}.exchange-card:hover{border-color:#22c55e;transform:translateY(-4px);box-shadow:0 8px 24px #14251c0d}.exchange-logo{background:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:0;height:80px;margin-bottom:24px;padding:8px;display:flex}.exchange-logo img{object-fit:contain;width:100%;max-width:260px;height:64px;display:block}.exchange-card h2{margin:0 0 12px;font-size:19px;font-weight:600;line-height:1.4}.exchange-card>p{color:var(--muted);margin:0 0 24px;font-size:14px;line-height:1.85}.exchange-register{color:#fff;background:#16a34a;border:1px solid #15803d33;border-radius:10px;justify-content:center;align-self:stretch;align-items:center;gap:10px;min-height:48px;margin-top:auto;padding:12px 20px;font-size:14px;font-weight:600;line-height:1.5;transition:background .15s,box-shadow .15s;display:flex;box-shadow:0 2px 4px #14532d12}.exchange-register:hover{background:#15803d;text-decoration:none;box-shadow:0 4px 10px #14532d24}.exchange-register:focus-visible{outline-offset:3px;outline:3px solid #22c55e}.exchange-register:active{box-shadow:none;background:#166534}.exchange-register svg{flex-shrink:0}html[data-theme=dark] .exchange-card{background:#182231}@media (max-width:1000px){.exchange-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.exchanges-page{padding:24px 20px 40px}.exchange-grid{grid-template-columns:minmax(0,1fr);gap:20px}.exchange-card{padding:24px}}@media (prefers-reduced-motion:reduce){.exchange-card,.exchange-register{transition:none}.exchange-card:hover{transform:none}}:is(.tutorial-layout,.article-layout){max-width:1440px;margin-inline:auto;padding-inline:clamp(24px,3vw,48px)}:is(.tutorial-layout,.article-layout) .reading-sidebar{padding:32px 20px 32px 0}:is(.tutorial-layout,.article-layout) .reading-sidebar h2{margin:0 12px 16px}:is(.tutorial-layout,.article-layout) .reading-sidebar nav>a{overflow-wrap:anywhere;border-radius:6px;margin-bottom:4px;padding:9px 12px;line-height:1.65}:is(.tutorial-layout,.article-layout) .reading-content{width:100%;max-width:960px;margin-inline:auto;padding:32px clamp(28px,4vw,64px) 64px}.tutorial-layout .author-line{align-items:center;gap:12px;margin-left:0;display:flex}.tutorial-layout .author-avatar{object-fit:cover;border-radius:50%;flex:none;width:48px;height:48px}.tutorial-layout .author-line>div{min-width:0}.tutorial-tree ul{margin:0;padding:0;list-style:none}.tutorial-tree li{margin:3px 0}.tutorial-tree li>ul{border-left:1px solid var(--line);margin:3px 0 8px 12px;padding-left:10px}.tutorial-tree ul[hidden]{display:none}.tutorial-tree-row{border-radius:6px;align-items:flex-start;min-width:0;display:flex}.tutorial-tree-row>a,.tutorial-group-toggle{overflow-wrap:anywhere;text-align:left;min-width:0;color:var(--link);flex:1;padding:9px 10px;line-height:1.65}.tutorial-group-toggle,.tutorial-branch-toggle{font:inherit;cursor:pointer;color:var(--link);background:0 0;border:0}.tutorial-group-toggle{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.tutorial-group-toggle svg,.tutorial-branch-toggle svg{flex:none;transition:transform .15s}.tutorial-tree button[aria-expanded=true] svg{transform:rotate(90deg)}.tutorial-branch-toggle{flex:none;justify-content:center;align-items:center;width:30px;min-height:44px;padding:0;display:flex}.tutorial-tree-row:hover{background:var(--selected)}.tutorial-tree-row.selected>a,.tutorial-tree-row.active-path>.tutorial-group-toggle{font-weight:600}.tutorial-layout .prose :is(h2,h3){scroll-margin-top:84px}@media (max-width:1100px){:is(.tutorial-layout,.article-layout){grid-template-columns:260px minmax(0,1fr)}:is(.tutorial-layout,.article-layout) .reading-sidebar{padding-right:16px}:is(.tutorial-layout,.article-layout) .reading-content{padding-inline:28px}}@media (max-width:760px){:is(.tutorial-layout,.article-layout){padding-inline:24px}:is(.tutorial-layout,.article-layout) .reading-sidebar{padding:24px 0 16px}:is(.tutorial-layout,.article-layout) .reading-content{padding:28px 0 48px}:is(.tutorial-layout,.article-layout) .reading-sidebar h2{margin-left:12px}}.search-dialog{border:1px solid var(--line);background:var(--bg);width:min(640px,100vw - 32px);max-height:min(680px,100dvh - 48px);color:var(--text);white-space:normal;border-radius:16px;margin:auto;padding:0;position:fixed;inset:0;overflow:hidden;box-shadow:0 24px 80px #0004}.search-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a6b}.search-dialog-heading{justify-content:space-between;align-items:center;gap:12px;padding:22px 24px 16px;display:flex}.search-dialog-heading h2{margin:0;font-size:18px;font-weight:600}.search-dialog .search-close{color:var(--muted);background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:5px;font-size:13px;display:inline-flex}.search-close kbd{border:1px solid var(--line);border-radius:4px;padding:1px 5px;font:12px inherit}.search-input-wrap{border:1px solid var(--line);color:var(--muted);background:var(--bg);border-radius:10px;align-items:center;gap:12px;margin:0 24px;padding:12px 14px;display:flex}.search-input-wrap:focus-within{border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb,var(--link) 14%,transparent)}.search-input-wrap svg{flex:none}.search-input-wrap input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:none;padding:0;font-size:16px;line-height:1.5}.search-status{color:var(--muted);padding:16px 24px 10px;font-size:13px}.search-results{overscroll-behavior:contain;max-height:min(440px,100dvh - 260px);padding:0 12px 12px;overflow-y:auto}.search-results ul{margin:0;padding:0;list-style:none}.search-dialog .overlay-result{color:var(--text);white-space:normal;border-radius:9px;justify-content:space-between;align-items:center;gap:16px;padding:14px 12px;display:flex}.search-dialog .overlay-result:hover,.search-dialog .overlay-result:focus-visible{background:var(--selected);outline-offset:-2px;text-decoration:none}.overlay-result h3{color:var(--link);margin:4px 0 5px;font-size:16px;font-weight:600}.overlay-result p{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.65}.result-kind{color:var(--muted);font-size:12px}.result-arrow{color:var(--link);flex:none}.search-empty{text-align:center;padding:36px 16px 44px}.search-empty strong{font-weight:500}.search-empty p{color:var(--muted);margin:10px 0 0;font-size:14px}@media (max-width:480px){.search-dialog-heading{padding:18px 16px 14px}.search-input-wrap{margin:0 16px}.search-status{padding-left:16px}.search-dialog-heading h2{font-size:16px}.search-close kbd{display:none}}.book-card{--link:#16a34a;color:var(--text);border-radius:12px}html[data-theme=dark] .book-card{--link:#4ade80}.book-card .book-cover{border-radius:8px;margin:8px 8px 0;overflow:hidden}.book-card h2{letter-spacing:.02em;padding:12px 12px 0;line-height:1.6}.book-card p{overflow-wrap:anywhere;color:var(--muted);margin:8px 0 0;padding:0 12px 16px;line-height:1.75}.book-card:hover,.book-card:focus-visible{border-color:color-mix(in srgb,var(--link) 55%,var(--line))}.book-card:hover h2,.book-card:focus-visible h2{color:var(--link)}.site-name{align-items:center;gap:6px;display:inline-flex}.site-logo{object-fit:cover;border-radius:50%;flex:none;width:24px;height:24px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.admin-crop{outline-offset:4px;position:relative}.admin-crop.can-drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.admin-crop.is-dragging{cursor:grabbing}.admin-crop:focus-visible{outline:2px solid var(--link)}.admin-crop>img{pointer-events:none;-webkit-user-select:none;user-select:none}.admin-crop-badge{color:#fff;white-space:nowrap;pointer-events:none;background:#152230b8;border-radius:20px;padding:6px 12px;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.admin-crop-grid{pointer-events:none;background:linear-gradient(90deg,#0000 33.2%,#ffffff80 33.2% 33.5%,#0000 33.5% 66.5%,#ffffff80 66.5% 66.8%,#0000 66.8%),linear-gradient(#0000 33.2%,#ffffff80 33.2% 33.5%,#0000 33.5% 66.5%,#ffffff80 66.5% 66.8%,#0000 66.8%);position:absolute;inset:0}.admin-crop-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:10px;display:flex}.admin-crop-toolbar .admin-hint{margin:0}.admin-crop-toolbar button{flex:none;font-size:12px}.writing-top{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.writing-top h2{margin:0}.writing-top p{margin:8px 0 0}.writing-top .admin-actions{margin:0}.writing-layout{grid-template-columns:230px minmax(0,1fr);gap:24px;display:grid}.writing-layout .admin-library{align-self:start;position:sticky;top:80px}.writing-layout .admin-items{max-height:60vh;overflow:auto}.writing-main{min-width:0}.writing-fields{border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:20px;display:grid}.writing-fields legend{padding:0 8px;font-weight:600}.writing-fields label{gap:8px;min-width:0;font-size:13px;display:grid}.writing-fields input,.writing-fields textarea,.writing-fields select{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:6px;padding:9px 10px}.writing-wide{grid-column:1/-1}.writing-toolbar{background:var(--selected);border:1px solid var(--line);border-radius:10px 10px 0 0;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px;display:flex}.writing-toolbar>div{flex-wrap:wrap;gap:4px;display:flex}.writing-toolbar button{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:5px;padding:6px 9px;font-size:12px}.writing-toolbar button[aria-pressed=true]{color:var(--link);border-color:var(--link)}.writing-panes{border:1px solid var(--line);border-top:0;grid-template-columns:1fr 1fr;min-height:480px;display:grid}.writing-panes.write,.writing-panes.preview{grid-template-columns:1fr}.writing-body{resize:vertical;border:0;border-right:1px solid var(--line);background:var(--bg);width:100%;min-height:480px;color:var(--text);outline-offset:-2px;padding:18px;font:14px/1.9 ui-monospace,SFMono-Regular,monospace}.writing-preview{background:var(--bg);min-width:0;max-height:760px;padding:18px;font-size:14px;overflow:auto}.writing-preview h1{font-size:26px}.writing-preview h2{font-size:22px}.writing-preview h3{font-size:18px}.writing-save{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.writing-save small{overflow-wrap:anywhere;color:var(--muted)}.writing-save .admin-actions{margin:0}.writing-workspace button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:900px){.writing-layout{grid-template-columns:1fr}.writing-layout .admin-library{position:static}.writing-layout .admin-items{max-height:180px}.writing-top{flex-direction:column;align-items:flex-start}}@media (max-width:600px){.writing-fields,.writing-panes{grid-template-columns:1fr}.writing-body{min-height:340px}.writing-preview{max-height:440px}.writing-fields{padding:12px}}.editor-numbered-nav h3{margin:16px 8px 10px;font-size:14px}.editor-numbered-nav summary{cursor:pointer;overflow-wrap:anywhere;padding:9px 6px;font-size:13px}.editor-numbered-nav small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.editor-numbered-nav b{font-variant-numeric:tabular-nums;color:var(--link)}.editor-nav-children{border-left:1px solid var(--line);margin-left:7px}.admin-items .editor-nav-row{overflow-wrap:anywhere;width:100%;font-size:13px;line-height:1.5}.editor-numbered-nav .admin-hint{padding:0 8px}.editor-numbered-nav summary:focus-visible{outline:2px solid var(--link);outline-offset:-2px}.writing-document-title{margin:0 0 16px;font-size:24px;line-height:1.5}.writing-settings{margin-bottom:16px}.writing-settings>summary{cursor:pointer;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:12px 16px;font-size:14px}.writing-settings[open]>summary{margin-bottom:16px}.rich-editor-shell{border:1px solid var(--line);background:#fff;border-top:0;border-radius:0 0 12px 12px;min-height:480px}.rich-editor-shell>p{padding:12px 20px}.rich-editor .milkdown{--crepe-font-title:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;--crepe-font-default:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;--crepe-color-primary:#397da4;--crepe-color-selected:#e6f0f6;--crepe-color-on-background:#25313d;--crepe-color-background:#fff;--crepe-color-surface:#f7f9fa}.rich-editor .milkdown .ProseMirror{min-height:480px;padding:32px 52px 80px;line-height:1.85}.rich-editor .milkdown .ProseMirror h1{font-size:30px}.rich-editor .milkdown .ProseMirror h2{font-size:25px}.rich-editor .milkdown .ProseMirror h3{font-size:21px}.rich-editor .milkdown .ProseMirror img{max-width:100%}.rich-editor .milkdown button{font:inherit}.rich-editor .milkdown .milkdown-top-bar{flex-wrap:wrap}.writing-toolbar .admin-hint{margin:4px 0}.writing-preview img{max-width:100%;height:auto}@media (max-width:600px){.rich-editor .milkdown .ProseMirror{padding:24px 28px 60px}.writing-document-title{font-size:21px}}.admin-items .editor-nav-row{text-align:left;color:var(--text);background:0 0;border:0;border-radius:6px;margin:2px 0;padding:10px 8px;display:block}.admin-items .editor-nav-row:hover{background:var(--selected)}.admin-items .editor-nav-row.selected{background:color-mix(in srgb,var(--link) 12%,var(--bg));box-shadow:inset 3px 0 var(--link)}.admin-items .editor-nav-row small{text-align:left}.admin-heading>button{white-space:nowrap;flex-shrink:0}.rich-editor .milkdown-top-bar{top:58px!important}.course-picker-search{max-width:380px;color:var(--muted);gap:8px;margin-bottom:24px;font-size:14px;display:grid}.course-picker-search input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:11px 14px}.course-picker-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:20px;display:grid}.course-picker-card{text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:14px;flex-direction:column;align-items:flex-start;gap:16px;min-height:220px;padding:26px;transition:border-color .15s,box-shadow .15s;display:flex}.course-picker-card:hover{border-color:var(--link);box-shadow:0 6px 24px #172b4210}.course-picker-label{color:var(--link);background:color-mix(in srgb,var(--link) 9%,var(--bg));border-radius:5px;padding:4px 10px;font-size:12px}.course-picker-card strong{overflow-wrap:anywhere;font-size:22px;line-height:1.5}.course-picker-count{color:var(--muted);font-size:13px}.course-picker-enter{border-top:1px solid var(--line);width:100%;color:var(--link);justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;font-size:14px;display:flex}.course-editor-breadcrumb{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;display:flex}.course-editor-breadcrumb span{color:var(--muted);font-size:14px}.new-course-form{border:1px solid var(--line);background:color-mix(in srgb,var(--link) 3%,var(--bg));border-radius:12px;margin-bottom:28px;padding:24px}.new-course-form h3{margin:0 0 20px}.new-course-form .writing-fields{border:0;padding:0}.new-course-form .admin-actions{justify-content:flex-end}.course-picker-card:disabled{opacity:.5;cursor:not-allowed}.course-picker-item{min-width:0}.course-picker-item .course-picker-card{width:100%;height:calc(100% - 48px)}.course-order-controls{align-items:center;gap:8px;padding:10px 2px;display:flex}.course-order-controls small{color:var(--muted);margin-right:auto}.course-order-controls .admin-secondary{padding:5px 12px;font-size:13px}.course-order-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.course-order-toolbar .admin-actions{margin:0}.course-section-tabs{max-width:320px;margin:0 0 24px}.embedded-cover-workspace{max-width:820px}.site-header{--link:#16a34a}.site-header a:hover,.site-header button:hover{color:#15803d}.site-header a:focus-visible,.site-header button:focus-visible{outline-color:#16a34a}.tutorial-tree,.search-dialog{--link:#16a34a}html[data-theme=dark] .site-header,html[data-theme=dark] .tutorial-tree,html[data-theme=dark] .search-dialog{--link:#4ade80}.rich-editor .milkdown{--crepe-color-primary:#16a34a;--crepe-color-selected:#dcfce7}.admin-primary{background:#16a34a;border-color:#16a34a}.admin-primary:hover:not(:disabled){background:#15803d;border-color:#15803d}.site-header,.reading-sidebar{--nav-text:#18181b;--nav-accent:#16a34a;--nav-selected:color-mix(in srgb,var(--nav-accent) 9%,var(--bg))}html[data-theme=dark] .site-header,html[data-theme=dark] .reading-sidebar{--nav-text:#e5e7eb;--nav-accent:#4ade80}.site-header .site-name,.site-header .nav-links>a{color:var(--nav-text)}.site-header .nav-links>a:hover{color:var(--nav-text);background:var(--nav-selected);text-decoration:none}.site-header .nav-links>a[aria-current=page]{color:var(--nav-accent);border-bottom-color:var(--nav-accent)}.reading-sidebar nav>a,.reading-sidebar .tutorial-tree-row>a,.reading-sidebar .tutorial-group-toggle,.reading-sidebar .tutorial-branch-toggle{color:var(--nav-text)}.reading-sidebar nav>a:hover,.reading-sidebar .tutorial-tree-row:hover{background:var(--nav-selected);text-decoration:none}.reading-sidebar nav>a.selected,.reading-sidebar .tutorial-tree-row.selected{background:var(--nav-selected)}.reading-sidebar nav>a.selected,.reading-sidebar .tutorial-tree-row.selected>a,.reading-sidebar .tutorial-tree-row.selected>.tutorial-branch-toggle,.reading-sidebar .tutorial-tree-row.active-path>.tutorial-group-toggle{color:var(--nav-accent);font-weight:600}.reading-sidebar nav>a:focus-visible,.reading-sidebar .tutorial-tree :is(a,button):focus-visible{outline-color:var(--nav-accent)}body:has(.admin-signin) :is(.site-header,.site-footer,.skip-link){display:none}.admin-page:has(.admin-signin){place-items:center;width:100%;max-width:none;min-height:100dvh;margin:0;padding:24px;display:grid}.admin-page:has(.admin-signin){background:radial-gradient(at 12% 12%,#e6efe7 0,#0000 48%),radial-gradient(at 88% 90%,#eef0e4 0,#0000 45%),#f7f8f5}.admin-signin{flex-direction:column;align-items:center;gap:28px;width:100%;max-width:420px;padding-block:24px;display:flex}.signin-brand{color:#24372b;letter-spacing:.08em;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.signin-brand img{object-fit:cover;border-radius:50%}.signin-card{text-align:center;background:#ffffffed;border:1px solid #dfe6dc;border-radius:22px;width:100%;padding:40px 32px 28px;box-shadow:0 16px 50px #243e2910,0 2px 5px #243e2905}.signin-symbol{color:#15803d;background:#eff7ef;border:1px solid #e1eddf;border-radius:16px;place-items:center;width:52px;height:52px;margin:0 auto 24px;display:grid}.signin-card h1{letter-spacing:.03em;color:#1c2921;margin:0 0 12px;font-size:28px;font-weight:600}.signin-description{color:#778078;margin:0 0 30px;font-size:14px}.signin-google{border-radius:10px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:50px;font-size:15px;display:flex;box-shadow:0 4px 12px #16a34a18}.signin-google-mark{font:600 19px/1 Arial,sans-serif}.signin-button-arrow{opacity:.8;margin-left:auto}.signin-note{color:#879088;margin:20px 0 0;font-size:12px}.signin-home{color:#6b796e;border-radius:6px;padding:8px;font-size:13px}.signin-home:hover{color:#15803d;text-decoration:none}.admin-signin-error{color:#a53c31;text-align:left;margin:16px 0 0;font-size:13px;line-height:1.7}html[data-theme=dark] .admin-page:has(.admin-signin){background:radial-gradient(at 10% 10%,#1b3025 0,#0000 50%),#111a15}html[data-theme=dark] .signin-brand,html[data-theme=dark] .signin-card h1{color:#e4ece5}html[data-theme=dark] .signin-card{background:#19241f;border-color:#344239}html[data-theme=dark] .signin-symbol{color:#4ade80;background:#22372b;border-color:#36513e}html[data-theme=dark] :is(.signin-description,.signin-note,.signin-home){color:#a2b1a7}html[data-theme=dark] .admin-signin-error{color:#f5a69b}@media (max-width:480px){.admin-page:has(.admin-signin){padding:20px}.signin-card{padding:32px 24px 24px}.admin-signin{gap:24px}.signin-card h1{font-size:26px}}.exchange-card>p{white-space:pre-line;overflow-wrap:anywhere}.exchange-card>h2,.exchange-register{overflow-wrap:anywhere}.exchange-logo-placeholder{color:#1f2937;overflow-wrap:anywhere;font-size:24px;font-weight:700}.exchange-empty{color:var(--muted);text-align:center;padding:48px}.registration-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;display:grid}.registration-library{border:1px solid var(--line);border-radius:12px;min-width:0;padding:16px;position:sticky;top:80px}.registration-list-heading{gap:6px;margin:4px 0 14px;display:grid}.registration-list-heading small,.registration-preview-heading small{color:var(--muted);font-size:12px}.registration-list{max-height:65vh;margin:0;padding:0;list-style:none;overflow-y:auto}.registration-list li{align-items:center;gap:4px;margin:6px 0;display:flex}.registration-select{text-align:left;min-width:0;color:var(--text);overflow-wrap:anywhere;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:10px;padding:12px 8px;font-size:14px;display:flex}.registration-select>span:first-child{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.registration-select>span:last-child{min-width:0}.registration-select small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.registration-select[aria-pressed=true]{background:color-mix(in srgb,#16a34a 10%,var(--bg));box-shadow:inset 3px 0 #16a34a}.registration-order{flex-direction:column;gap:3px;display:flex}.registration-order button{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:5px;width:28px;min-height:28px}.registration-editor{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:24px;min-width:0;display:grid}.registration-editor .writing-fields{grid-template-columns:minmax(0,1fr);gap:18px;min-width:0;padding:20px}.registration-editor textarea{resize:vertical;line-height:1.8}.registration-editor input[type=file]{max-width:100%;font-size:12px}.registration-preview{min-width:0}.registration-preview-heading{justify-content:space-between;align-items:center;gap:12px;margin:10px 0 20px;font-size:14px;display:flex}.registration-preview .exchange-card{pointer-events:none;padding:24px}.registration-preview .admin-hint{margin-top:16px;line-height:1.8}.registration-delete{color:#b42318;border-color:#b4231840;margin-top:12px}.registration-empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:12px;padding:48px 24px}.registration-empty h3{color:var(--text)}@media (max-width:1100px){.registration-editor{grid-template-columns:minmax(0,1fr)}.registration-preview{justify-self:center;width:100%;max-width:360px}.registration-editor .writing-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.registration-layout{grid-template-columns:minmax(0,1fr)}.registration-library{position:static}.registration-list{max-height:250px}.registration-editor .writing-fields{grid-template-columns:minmax(0,1fr)}.registration-manager .admin-actions{gap:8px;width:100%}.registration-manager .admin-actions button{flex:1;padding:9px;font-size:13px}}.admin-page:has(.admin-dashboard){max-width:1480px}.admin-dashboard{grid-template-columns:184px minmax(0,1fr);align-items:start;gap:32px;display:grid}.admin-sidebar{border:1px solid var(--line);background:var(--bg);border-radius:14px;min-width:0;padding:20px 12px;position:sticky;top:88px}.admin-sidebar-title{color:var(--muted);margin:0 12px 16px;font-size:12px}.admin-mode-nav{flex-direction:column;gap:8px;display:flex}.admin-mode-nav button{width:100%;min-height:48px;color:var(--text);text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:12px 16px;font-size:15px;line-height:1.6;display:block}.admin-mode-nav button:hover:not(:disabled){background:var(--selected)}.admin-mode-nav button[aria-pressed=true],.admin-mode-nav button[aria-pressed=true]:hover:not(:disabled){background:color-mix(in srgb,#16a34a 10%,var(--bg));color:#15803d;font-weight:600;box-shadow:inset 3px 0 #16a34a}.admin-mode-nav button:focus-visible,.admin-menu-toggle:focus-visible{outline:2px solid var(--link);outline-offset:2px}.admin-mode-content{min-width:0;container-type:inline-size}.admin-menu-toggle{display:none}@container (max-width:900px){.registration-editor{grid-template-columns:minmax(0,1fr)}.registration-preview{justify-self:center;width:100%;max-width:360px}.writing-top{flex-direction:column;align-items:flex-start}}@container (max-width:650px){.registration-layout,.writing-layout,.admin-workspace{grid-template-columns:minmax(0,1fr)}.registration-library,.writing-layout .admin-library{position:static}.registration-list,.writing-layout .admin-items{max-height:240px}.writing-fields,.writing-panes,.registration-editor .writing-fields{grid-template-columns:minmax(0,1fr)}}@media (max-width:700px){.admin-dashboard{grid-template-columns:minmax(0,1fr);gap:24px}.admin-sidebar{padding:8px 12px;position:static}.admin-sidebar-title{display:none}.admin-menu-toggle{width:100%;min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:8px;font-size:14px;display:flex}.admin-menu-toggle>span:last-child{color:var(--muted);font-size:12px}.admin-mode-nav{display:none}.admin-mode-nav.is-open{margin:8px 0;display:flex}.admin-mode-nav button{min-height:44px;font-size:14px}}html[data-theme=dark] .admin-mode-nav button[aria-pressed=true]{color:#4ade80}.outline-manager,.lesson-placement{--link:#16a34a}.outline-heading,.outline-group-heading,.outline-chapter-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.outline-heading{flex-wrap:wrap;margin-bottom:20px}.outline-heading h3,.outline-heading .admin-actions{margin:0}.outline-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px;display:grid}.outline-legend>span{border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:16px;font-size:13px;line-height:1.8}.outline-legend b{color:var(--text);font-size:14px;display:block}.outline-intro{background:var(--selected);border-radius:10px;flex-wrap:wrap;gap:16px;margin-bottom:16px;padding:18px 20px;font-size:14px;display:flex}.outline-intro span{color:var(--muted)}.outline-group{border:1px solid var(--line);border-radius:12px;margin-bottom:20px;overflow:hidden}.outline-group-heading{background:color-mix(in srgb,#16a34a 5%,var(--bg));padding:16px 20px}.outline-group-heading>b{color:var(--link)}.outline-group-heading>label{flex:1;min-width:0}.outline-group input,.outline-group select,.lesson-placement input,.lesson-placement select{border:1px solid var(--line);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:7px;padding:9px 12px}.outline-group input{font-weight:600}.outline-actions{flex-shrink:0;gap:6px;display:flex}.outline-actions button{padding:6px 10px;font-size:13px}.outline-chapter{border-top:1px solid var(--line);border-left:2px solid var(--line);margin-left:20px;padding:18px 20px}.outline-chapter-heading>div:first-child{overflow-wrap:anywhere;min-width:0;font-size:14px}.outline-chapter small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.outline-move{color:var(--muted);align-items:center;gap:12px;margin-top:12px;font-size:12px;display:flex}.outline-move select{width:auto;max-width:320px}.outline-sections{margin-top:12px;font-size:13px}.outline-sections summary{cursor:pointer;color:var(--muted)}.outline-sections ol{border-left:1px solid var(--line);margin:10px 0;padding:0 0 0 16px;list-style:none}.outline-sections li{overflow-wrap:anywhere;padding:5px 0}.outline-sections li span{color:var(--muted);font-variant-numeric:tabular-nums}.lesson-placement{border:1px solid var(--line);background:color-mix(in srgb,#16a34a 4%,var(--bg));border-radius:10px;gap:14px;margin-bottom:20px;padding:16px 20px;display:grid}.lesson-placement .admin-hint{margin:4px 0 0}.lesson-placement label{gap:8px;font-size:13px;display:grid}.outline-manager button:disabled{opacity:.5;cursor:not-allowed}@container (max-width:650px){.outline-legend{grid-template-columns:1fr}.outline-chapter-heading{flex-direction:column;align-items:flex-start}.outline-group-heading{gap:8px;padding:12px}.outline-chapter{margin-left:10px;padding:14px}.outline-move{flex-wrap:wrap}.outline-move select{width:100%;max-width:100%}}
