*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.7;color:#1f2937}.gesp-code-block{position:relative}.gesp-copy{position:absolute;top:.5rem;right:.5rem;font-size:.8125rem}.gesp-code-row{display:flex;align-items:stretch}.gesp-gutter{flex:none;padding:.75rem .5rem .75rem .75rem;text-align:right;color:#9ca3af;-webkit-user-select:none;user-select:none;white-space:pre}.gesp-code{flex:1 1 auto;min-width:0;padding:.75rem 1rem;overflow-x:auto}.gesp-code-row{background:#fafafa}.gesp-code>code{display:block;background:transparent}.gesp-code--plain{background:#fafafa}.gesp-output{background:#f3f4f6;border-radius:6px;padding:.75rem 1rem;white-space:pre-wrap}.gesp-output:before{content:"▼ 输出";display:block;margin-bottom:.25rem;color:#6b7280;font-size:.8125rem;-webkit-user-select:none;user-select:none}.progress{background:#e5e7eb;border-radius:999px;height:.5rem;overflow:hidden}.progress__bar{background:#22c55e;height:100%;transition:width .2s}.lesson-layout{display:grid;grid-template-columns:16rem 1fr;gap:2rem}.lesson-nav a>span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gesp-figure__body:empty:after{content:"插图待补";color:#9ca3af}.gesp-figure__body:empty{border:1px dashed #d1d5db;border-radius:8px;min-height:8rem;display:grid;place-items:center}.page{max-width:56rem;margin:0 auto;padding:2rem 1rem 4rem}.lesson-layout{max-width:72rem;margin:0 auto;padding:2rem 1rem 4rem}.page h1,.lesson-body h1{font-size:1.75rem;margin:0 0 .25rem}.page__lead{color:#6b7280;margin:0 0 1.5rem}.back{display:inline-block;margin-bottom:1rem;color:#2563eb;text-decoration:none}.back:hover{text-decoration:underline}.notice{background:#f3f4f6;border-radius:6px;padding:.75rem 1rem;margin:0 0 1.5rem}.notice--error{background:#fef2f2;color:#b91c1c}.notice a{color:inherit}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;list-style:none;margin:0;padding:0}.card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:inherit;text-decoration:none}a.card:hover{border-color:#22c55e}.card>span{color:#6b7280;font-size:.875rem}.card--disabled{background:#f9fafb;color:#9ca3af}.card--disabled>span{color:#9ca3af}.lesson-list{list-style:none;margin:0;padding:0}.lesson-row{display:flex;align-items:baseline;gap:.625rem;padding:.75rem .5rem;border-bottom:1px solid #f3f4f6;color:inherit;text-decoration:none}.lesson-row:hover{background:#f9fafb}.lesson-row__mark{flex:none}.lesson-row__index{flex:none;color:#9ca3af}.lesson-row__title{flex:1 1 auto;min-width:0}.lesson-row__meta{flex:none;color:#6b7280;font-size:.875rem}.lesson-row__go{flex:none;color:#9ca3af}.lesson-nav p{margin:0 0 .5rem;font-weight:600}.lesson-nav ol{list-style:none;margin:0 0 1rem;padding:0}.lesson-nav a{display:flex;align-items:baseline;gap:.5rem;padding:.375rem .5rem;border-radius:6px;color:inherit;text-decoration:none}.lesson-nav__index{flex:none;color:#9ca3af}.lesson-nav a:hover{background:#f3f4f6}.lesson-nav a.is-current{background:#ecfdf5;color:#15803d;font-weight:600}.progress__label{margin:.5rem 0 0;color:#6b7280;font-size:.875rem}.lesson-body__meta{color:#6b7280;margin:0 0 1.5rem}.lesson-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.lesson-foot a{color:#2563eb;text-decoration:none}.lesson-foot a:hover{text-decoration:underline}.lesson-foot button{font:inherit;padding:.4rem 1rem;border:1px solid #d1d5db;border-radius:999px;background:#fff;cursor:pointer}.lesson-foot button:hover{border-color:#22c55e;color:#15803d}.article h2{font-size:1.25rem;margin:2rem 0 .5rem}.article h3{font-size:1.0625rem;margin:1.5rem 0 .5rem}.article p{margin:.75rem 0}.article ul,.article ol{padding-left:1.5rem}.article blockquote{margin:1rem 0;padding-left:1rem;border-left:3px solid #e5e7eb;color:#6b7280}.article a{color:#2563eb}.article table{border-collapse:collapse}.article th,.article td{border:1px solid #e5e7eb;padding:.25rem .5rem}.article pre{margin:0}.article :not(pre)>code{background:#f3f4f6;border-radius:4px;padding:.1em .35em;font-size:.9em}.article img{max-width:100%;height:auto}.gesp-code,.gesp-code>code,.gesp-gutter{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.875rem}.gesp-code{white-space:pre}.gesp-code>code.hljs{padding:0;overflow-x:visible}.gesp-code-block{margin:1rem 0}.gesp-copy{font:inherit;font-size:.8125rem;padding:.2rem .6rem;border:1px solid #e5e7eb;border-radius:6px;background:#ffffffe6;cursor:pointer}.gesp-copy:hover{border-color:#9ca3af}.gesp-output{margin:1rem 0}.gesp-output>code{font-family:inherit;font-size:1rem}.gesp-answer{margin:1rem 0;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem 1rem}.gesp-answer>summary{cursor:pointer;color:#2563eb}.gesp-answer__body{padding-top:.5rem}.gesp-figure{margin:1rem 0}.gesp-figure__caption{margin-top:.5rem;color:#6b7280;font-size:.875rem;text-align:center}@media (max-width: 900px){.lesson-layout{display:block}.lesson-nav{position:sticky;top:0;z-index:1;max-height:40vh;overflow-y:auto;background:#fff;border-bottom:1px solid #e5e7eb}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
