@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_2ae47f08-module__h69qWW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_2ae47f08-module__h69qWW__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_eb58308d-module__w_p2Lq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_eb58308d-module__w_p2Lq__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg-dark:#0f172a;--bg-card:#1e293bb3;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--glass-border:#ffffff1a;--gradient-text:linear-gradient(90deg, #60a5fa, #c084fc);--surface-color:#1e293bf2;--surface-light:#ffffff0d;--primary-color:var(--accent);--border-color:var(--glass-border)}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg-dark);color:var(--text-primary);min-height:100vh;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#475569}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:4rem 2rem}.home-header{text-align:center;margin-bottom:4rem}.home-header h1{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem;font-size:3rem}.home-header p{color:var(--text-secondary);font-size:1.2rem}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;display:grid}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;flex-direction:column;justify-content:center;padding:2rem;transition:all .3s;display:flex}.card:hover{border-color:#fff3;transform:translateY(-5px);box-shadow:0 10px 30px #0000004d}.card h2{margin:0 0 .5rem;font-size:1.5rem}.card p{color:var(--text-secondary);margin:0}.new-card{text-align:center;border:2px dashed var(--glass-border);background:#1e293b4d;align-items:center}.plus-icon{color:var(--text-secondary);margin-bottom:1rem;font-size:3rem;font-weight:200}.new-card:hover .plus-icon{color:var(--accent)}.back-btn{color:var(--text-secondary);margin-bottom:0;text-decoration:none;transition:color .2s;display:inline-block}.back-btn:hover{color:var(--text-primary)}.new-subject-form h1{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.new-subject-form p{color:var(--text-secondary);margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-group label{margin-bottom:.5rem;font-weight:500;display:block}.form-group input,.form-group textarea{border:1px solid var(--glass-border);width:100%;color:var(--text-primary);background:#0f172acc;border-radius:8px;padding:1rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);outline:none}.submit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:background .2s}.submit-btn:hover:not(:disabled){background:var(--accent-hover)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.viewer-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.viewer-body{flex:1;display:flex;overflow:hidden}.toc-sidebar{border-right:1px solid var(--glass-border);background:#0f172af2;flex-shrink:0;width:300px;padding:2rem 1.5rem;overflow-y:auto}.toc-sidebar h2{border-bottom:1px solid var(--glass-border);margin-bottom:1.5rem;padding-bottom:1rem;font-size:1.2rem}.edit-btn{background:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:all .2s}.edit-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.toc-sidebar nav ul{margin:0;padding:0;list-style:none}.toc-sidebar nav li{margin-bottom:1rem}.toc-sidebar nav a{color:var(--text-primary);opacity:.8;flex-direction:column;font-size:.95rem;transition:opacity .2s;display:flex}.toc-sidebar nav a:hover{opacity:1;color:var(--accent)}.form-group-row{gap:1.5rem;display:flex}.form-group-row .form-group{flex:1}.form-group-inline{align-items:center;gap:1rem;display:flex}.form-group-inline label{white-space:nowrap;margin-bottom:0}.form-group-inline select{flex:1}.mode-bilingual .toc-en{color:var(--text-secondary);margin-top:.2rem;font-size:.8rem}.viewer-main{scroll-behavior:smooth;flex-direction:column;flex-grow:1;display:flex;overflow-y:auto}.viewer-toolbar{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);z-index:10;background:#0f172acc;justify-content:flex-end;align-items:center;gap:1rem;padding:1rem 2rem;display:flex;position:sticky;top:0}.lang-toggle{background:#ffffff0d;border-radius:8px;padding:.25rem;display:flex}.lang-toggle button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.lang-toggle button.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 2px 5px #0003}.subject-content{width:100%;max-width:800px;margin:0 auto;padding:3rem 2rem 6rem}.subject-content h1{text-align:center;margin-bottom:3rem;font-size:2.5rem}.chapter-section{margin-bottom:4rem;scroll-margin-top:100px}.chapter-section h2{color:var(--accent);margin-top:0;margin-bottom:.5rem;font-size:1.8rem}.subject-header{margin-bottom:2.5rem}.subject-header h1{color:var(--primary-color);margin-bottom:.5rem;font-size:2.5rem}.mode-bilingual .subject-header .en-title{color:var(--text-secondary);margin-top:0;margin-bottom:1rem;font-size:1.5rem;font-weight:500}.subject-meta{gap:.8rem;margin-top:1rem;display:flex}.meta-tag{color:var(--accent);background:#6366f11a;border-radius:12px;padding:.3rem .8rem;font-size:.85rem;font-weight:500}.card-en-title{color:var(--text-secondary);margin-top:.3rem;margin-bottom:.8rem;font-size:1rem;font-weight:400}.card-meta{gap:.5rem;margin-bottom:1rem;display:flex}.chapter-count{color:var(--text-secondary);margin-top:auto;font-size:.9rem}.mode-bilingual .chapter-section h2.en-text{color:var(--text-secondary);margin-bottom:2rem;font-size:1.4rem;font-weight:500}.mode-en .chapter-section h2.en-text{color:var(--accent);margin-top:0;margin-bottom:.5rem;font-size:1.8rem}.block-group{margin-bottom:1.5rem}.block-group h3{margin-bottom:.3rem;font-size:1.3rem}.mode-bilingual .en-text{color:var(--text-secondary);margin-top:.4rem;font-size:.95em;font-style:italic}.mode-en .en-text{color:var(--text-primary);font-size:1rem;line-height:1.7}.cn-text{line-height:1.7}.list-block{padding-left:1.5rem;position:relative}.list-block:before{content:"•";color:var(--accent);position:absolute;left:0}.katex{font-size:1.1em}.block-item-container{border-radius:8px;margin-bottom:1rem;margin-left:-.5rem;margin-right:-.5rem;padding:.5rem;transition:background-color .2s;position:relative}.block-item-container.has-comment{background-color:#6366f10d}.block-item-container:hover,.block-item-container.selected{background-color:#ffffff0a}.block-item-container.has-comment:hover,.block-item-container.has-comment.selected{background-color:#6366f11a}.comment-toggle-btn{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:5px;font-size:1.2rem;transition:all .2s;display:flex;position:absolute;top:50%;right:-40px;transform:translateY(-50%)}.comment-toggle-btn:hover{opacity:1;transform:translateY(-50%)scale(1.1)}.block-item-container.has-comment .comment-toggle-btn{opacity:1;background-color:var(--primary-color);color:#fff;border-radius:14px;width:auto;min-width:28px;height:28px;padding:0 8px;font-size:.9rem}.comment-badge{margin-left:4px;font-size:.8rem;font-weight:700}.comment-ui-container{margin-top:.5rem}.comment-list-container{flex-direction:column;gap:.5rem;margin-bottom:.5rem;display:flex}.comment-item{border-left:3px solid var(--primary-color);color:var(--text-secondary);background-color:#6366f11a;border-radius:0 8px 8px 0;align-items:flex-start;padding:.8rem 1rem;font-size:.95rem;line-height:1.5;display:flex;position:relative}.comment-text{flex:1}.comment-delete-btn{color:var(--text-secondary);opacity:0;cursor:pointer;background:0 0;border:none;margin-left:8px;padding:4px;transition:opacity .2s}.comment-item:hover .comment-delete-btn{opacity:1}.comment-delete-btn:hover{color:#ef4444}.add-comment-btn{border:1px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;text-align:center;background:0 0;border-radius:4px;padding:.5rem;font-size:.9rem;transition:all .2s}.add-comment-btn:hover{background:var(--surface-light);color:var(--text-primary);border-color:var(--primary-color)}.comment-editor{background-color:var(--surface-light);border:1px solid var(--border-color);border-radius:8px;margin-top:.5rem;padding:1rem}.comment-editor textarea{box-sizing:border-box;background-color:var(--surface-color);border:1px solid var(--border-color);width:100%;min-height:80px;color:var(--text-primary);resize:vertical;border-radius:4px;margin-bottom:.8rem;padding:.8rem;font-family:inherit}.comment-editor textarea:focus{border-color:var(--primary-color);outline:none}.comment-actions{justify-content:flex-end;gap:.5rem;display:flex}.comment-actions button{cursor:pointer;background-color:var(--surface-color);color:var(--text-primary);border:none;border-radius:4px;padding:.5rem 1rem;transition:background-color .2s}.comment-actions button:hover{background-color:#444}.comment-actions button.btn-primary{background-color:var(--primary-color);color:#fff}.comment-actions button.btn-primary:hover{background-color:#5568f9}.comment-icon{margin-right:.5rem}.floating-chat{z-index:1000;position:fixed;bottom:2rem;right:2rem}.chat-fab{background:var(--primary-color);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.8rem;transition:transform .2s;display:flex;box-shadow:0 4px 12px #6366f166}.chat-fab:hover{transform:scale(1.1)}.chat-window{background:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;width:350px;height:500px;animation:.3s slideUp;display:flex;overflow:hidden;box-shadow:0 10px 25px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-header{background:var(--surface-light);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1rem;display:flex}.chat-header h4{color:var(--text-primary);margin:0}.chat-header button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.2rem}.chat-messages{flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.chat-bubble{border-radius:12px;max-width:80%;padding:.8rem 1rem;font-size:.95rem;line-height:1.5}.chat-bubble.user{background:var(--primary-color);color:#fff;border-bottom-right-radius:2px;align-self:flex-end}.chat-bubble.ai{background:var(--surface-light);color:var(--text-primary);border:1px solid var(--border-color);border-bottom-left-radius:2px;align-self:flex-start}.chat-bubble p{margin:0 0 .5rem}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble ul,.chat-bubble ol{margin:.5rem 0;padding-left:1.5rem}.chat-bubble li{margin-bottom:.2rem}.mobile-toc-toggle{display:none}@media (max-width:768px){.viewer-toolbar{flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.5rem 1rem}.lang-toggle button,.edit-btn{padding:.4rem .6rem;font-size:.85rem}.subject-content{width:100%;padding:1.5rem 1rem 6rem;overflow-x:hidden}.block-group{word-break:break-word;overflow-wrap:break-word}.block-item-container{padding-right:2.5rem}.comment-toggle-btn{right:0}.toc-sidebar{z-index:1000;background:var(--surface-color);width:250px;height:100vh;transition:left .3s;position:fixed;top:0;left:-100%;box-shadow:2px 0 15px #00000080}.toc-sidebar.open{left:0}.mobile-toc-backdrop{z-index:950;-webkit-backdrop-filter:blur(2px);background:#0006;width:100vw;height:100vh;position:fixed;top:0;left:0}.mobile-toc-toggle{background:var(--primary-color);color:#fff;z-index:999;cursor:pointer;border:none;border-radius:30px;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.8rem;transition:transform .2s;display:flex;position:fixed;bottom:2rem;left:2rem;box-shadow:0 4px 12px #0000004d}.mobile-toc-toggle:active{transform:scale(.9)}}.chat-welcome{text-align:center;color:var(--text-secondary);margin-top:2rem;font-size:.9rem}.chat-input-form{border-top:1px solid var(--border-color);gap:.5rem;padding:1rem;display:flex}.chat-input-form input{background:var(--surface-light);border:1px solid var(--border-color);color:var(--text-primary);border-radius:20px;outline:none;flex:1;padding:.5rem 1rem}.chat-input-form input:focus{border-color:var(--primary-color)}.chat-input-form button{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.chat-input-form button:disabled{opacity:.5;cursor:not-allowed}
