:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-color: #4F46E5;--primary-dark: #3730A3;--bg-color: #f5f5f5;--card-bg: #ffffff;--nav-bg: #ffffff;--text-color: #1a1a1a;--text-secondary: #666666;--border-color: #e0e0e0;--hover-bg: #f0f0f0}[data-theme=dark]{--primary-color: #6366F1;--primary-dark: #4F46E5;--bg-color: #1a1a1a;--card-bg: #2a2a2a;--nav-bg: #2a2a2a;--text-color: #e0e0e0;--text-secondary: #a0a0a0;--border-color: #404040;--hover-bg: #333333}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-color);color:var(--text-color)}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:1.2}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.navigation{background:var(--nav-bg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000001a}.nav-container{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center;height:64px}.nav-brand a{text-decoration:none;display:flex;align-items:center;gap:.75rem}.nav-logo{height:40px;width:auto}.nav-brand h1{font-size:1.5rem;margin:0;color:var(--primary-color)}.nav-menu{list-style:none;display:flex;gap:2rem;margin:0;padding:0}.nav-menu a{text-decoration:none;color:var(--text-color);font-weight:500;padding:.5rem 1rem;border-radius:4px;transition:all .2s}.nav-menu a:hover{background:var(--hover-bg);color:var(--primary-color)}.nav-menu a.active{background:var(--primary-color);color:#fff}@media(max-width:768px){.nav-container{padding:0 .5rem}.nav-logo{height:32px}.nav-brand h1{font-size:1.2rem}.nav-menu{gap:.5rem}.nav-menu a{padding:.5rem;font-size:.9rem}}.breadcrumb{background:var(--card-bg);border-bottom:1px solid var(--border-color);padding:.75rem 2rem}.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.9rem}.breadcrumb li{display:flex;align-items:center;gap:.5rem}.breadcrumb a{color:var(--text-secondary);text-decoration:none;transition:color .2s}.breadcrumb a:hover{color:var(--primary-color)}.breadcrumb-separator{color:var(--text-secondary);display:flex;align-items:center;opacity:.5}.breadcrumb-current{color:var(--text-color);font-weight:500}@media(max-width:768px){.breadcrumb{padding:.5rem 1rem}.breadcrumb ol{font-size:.85rem}}.footer{background:var(--nav-bg);border-top:1px solid var(--border-color);margin-top:auto;padding:1.5rem 0}.footer-container{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-copyright{margin:0;color:var(--text-secondary);font-size:.9rem}.footer-link{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .2s}.footer-link:hover{color:var(--primary-dark);text-decoration:underline}@media(max-width:768px){.footer-container{flex-direction:column;text-align:center;gap:.5rem}.footer-copyright{font-size:.85rem}}.course-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.course-card:hover{transform:translateY(-4px);box-shadow:0 4px 8px #00000026}.course-thumbnail{width:100%;height:180px;overflow:hidden;background:var(--hover-bg)}.course-thumbnail img{width:100%;height:100%;object-fit:cover}.course-content{padding:1.5rem}.course-content h3{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-color)}.course-description{color:var(--text-secondary);margin:0 0 1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-stats{display:flex;gap:.5rem;align-items:center;font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}.course-progress{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:8px;background:var(--hover-bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary-color);transition:width .3s}.progress-text{font-size:.9rem;font-weight:600;color:var(--primary-color);min-width:3rem;text-align:right}.import-button-container{display:flex;flex-direction:column;gap:1rem;align-items:center}.import-button{background:#fff;color:var(--primary-color);border:2px solid white;padding:.75rem 2rem;font-size:1rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;min-width:200px}.import-button:hover:not(:disabled){background:#ffffffe6;transform:scale(1.05)}.import-button:disabled{opacity:.7;cursor:not-allowed}.import-progress{width:300px;max-width:100%}.progress-bar{width:100%;height:8px;background:#ffffff4d;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:#fff;transition:width .3s ease}.import-error{background:#f44;color:#fff;padding:.75rem 1rem;border-radius:4px;font-size:.9rem;max-width:400px;text-align:center}.course-gallery{margin:3rem 0}.gallery-header{margin-bottom:1.5rem}.gallery-header h2{margin:0 0 .5rem;font-size:1.8rem}.gallery-header p{color:var(--text-secondary);margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.gallery-card{background:var(--card-bg);border:2px solid var(--border-color);border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .2s;position:relative}.gallery-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026;border-color:var(--primary-color)}.gallery-card.importing{opacity:.6;pointer-events:none}.gallery-badge{position:absolute;top:1rem;right:1rem;background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.gallery-icon{font-size:3rem;margin-bottom:1rem}.gallery-card h3{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-color)}.gallery-card p{color:var(--text-secondary);margin:0 0 1rem;line-height:1.5;font-size:.95rem}.gallery-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}.gallery-meta span{display:flex;align-items:center;gap:.25rem}.import-btn{width:100%;padding:.75rem;background:var(--primary-color);color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.import-btn:hover{background:var(--primary-dark)}.import-btn:disabled{opacity:.6;cursor:not-allowed}.import-progress-bar{width:100%;height:6px;background:var(--hover-bg);border-radius:3px;overflow:hidden;margin-top:.5rem}.import-progress-fill{height:100%;background:var(--primary-color);transition:width .3s}@media(max-width:768px){.gallery-grid{grid-template-columns:1fr}}.home{max-width:1200px;margin:0 auto;padding:2rem 1rem}.hero{text-align:center;padding:3rem 1rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;border-radius:12px;margin-bottom:3rem}.hero h1{font-size:2.5rem;margin:0 0 1rem}.hero .subtitle{font-size:1.2rem;margin:0 0 2rem;opacity:.9}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;font-size:1.8rem}.link-button{background:none;border:none;color:var(--primary-color);font-size:1rem;font-weight:600;cursor:pointer;padding:.5rem 1rem;border-radius:4px;transition:background .2s}.link-button:hover{background:var(--hover-bg)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-state p{font-size:1.1rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}@media(max-width:768px){.hero h1{font-size:2rem}.hero .subtitle{font-size:1rem}.course-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:1rem}}.courses{max-width:1200px;margin:0 auto;padding:2rem 1rem}.courses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.courses-header h1{margin:0;font-size:2rem}.search-bar{margin-bottom:2rem}.search-bar input{width:100%;max-width:500px;padding:.75rem 1rem;font-size:1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg);color:var(--text-color)}.search-bar input:focus{outline:none;border-color:var(--primary-color)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.courses.loading{display:flex;justify-content:center;align-items:center;min-height:400px;color:var(--text-secondary)}@media(max-width:768px){.courses-header{flex-direction:column;align-items:flex-start;gap:1rem}.course-grid{grid-template-columns:1fr}.search-bar input{max-width:100%}}.course-viewer{display:flex;height:calc(100vh - 64px);overflow:hidden}.sidebar{width:300px;background:var(--card-bg);border-right:1px solid var(--border-color);overflow-y:auto;transition:margin-left .3s ease;position:relative;flex-shrink:0}.sidebar.closed{margin-left:-300px}.sidebar-toggle{position:absolute;right:-40px;top:1rem;background:var(--primary-color);color:#fff;border:none;padding:.5rem .75rem;border-radius:0 4px 4px 0;cursor:pointer;z-index:10;box-shadow:2px 2px 4px #0000001a}.sidebar-content{padding:1.5rem}.sidebar-content h2{margin:0 0 1.5rem;font-size:1.25rem}.course-nav{list-style:none;padding:0;margin:0}.module-section{margin-bottom:1.5rem}.module-section h3{font-size:1rem;margin:0 0 .5rem;color:var(--primary-color)}.module-section ul{list-style:none;padding:0;margin:0}.module-section li{padding:.5rem .75rem;cursor:pointer;border-radius:4px;transition:background .2s}.module-section li:hover{background:var(--hover-bg)}.module-section li.active{background:var(--primary-color);color:#fff;font-weight:600}.lesson-content{flex:1;overflow-y:auto;padding:2rem;max-width:800px;margin:0 auto}.lesson-content h1{margin:0 0 1.5rem;font-size:2rem}.lesson-header-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.language-selector{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;background:var(--card-bg);border-radius:8px;border:1px solid var(--border-color);width:fit-content}.language-selector button{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-color);cursor:pointer;transition:all .2s;font-size:.9rem}.language-selector button:hover{background:var(--hover-bg)}.language-selector button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);font-weight:600}.content-body{line-height:1.8;font-size:1.1rem}.content-body h1,.content-body h2,.content-body h3,.content-body h4,.content-body h5,.content-body h6{margin-top:2rem;margin-bottom:1rem;line-height:1.3;color:var(--text-color)}.content-body h1{font-size:2.25rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.content-body h2{font-size:1.75rem;border-bottom:1px solid var(--border-color);padding-bottom:.3rem}.content-body h3{font-size:1.4rem;color:var(--primary-color)}.content-body h4{font-size:1.2rem;font-weight:600}.content-body h5{font-size:1.1rem;font-weight:600;color:var(--text-secondary)}.content-body p{margin-bottom:1rem}.content-body ul,.content-body ol{margin-bottom:1rem;padding-left:2rem}.content-body code{background:var(--hover-bg);padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace}.content-body pre{background:var(--hover-bg);padding:1rem;border-radius:4px;overflow-x:auto}.content-body blockquote{border-left:4px solid var(--primary-color);padding-left:1rem;margin:1rem 0;color:var(--text-secondary)}.lesson-actions{display:flex;gap:1rem;justify-content:center;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.lesson-actions button{padding:.75rem 1.5rem;font-size:1rem;border:1px solid var(--border-color);border-radius:4px;background:var(--card-bg);color:var(--text-color);cursor:pointer;transition:all .2s}.lesson-actions button:hover{background:var(--hover-bg)}.lesson-actions button.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.lesson-actions button.primary:hover{background:var(--primary-dark)}.toc-sidebar{width:250px;background:var(--bg-color);border-left:1px solid var(--border-color);overflow-y:auto;padding:1.5rem;flex-shrink:0}.toc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.toc-header h3{margin:0;font-size:1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.toc-close{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-color)}.toc-nav ul{list-style:none;padding:0;margin:0}.toc-item{cursor:pointer;color:var(--text-secondary);font-size:.9rem;border-left:2px solid transparent;padding:.5rem 0 .5rem 1rem;transition:all .2s}.toc-item:hover{color:var(--primary-color)}.toc-item.active{color:var(--primary-color);border-left-color:var(--primary-color);font-weight:500}.toc-item.level-2{padding-left:1.5rem}.toc-item.level-3{padding-left:2rem}.lesson-header-mobile{display:none;margin-bottom:1rem}.toc-toggle{background:var(--card-bg);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:4px;color:var(--text-color);font-size:.9rem;cursor:pointer}.course-viewer.loading,.course-viewer.error{display:flex;justify-content:center;align-items:center;height:100%;color:var(--text-secondary)}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary)}@media(max-width:768px){.sidebar{position:fixed;left:0;top:64px;bottom:0;height:auto;z-index:50;box-shadow:2px 0 8px #0000001a;margin-left:-300px}.sidebar.open{margin-left:0}.sidebar-toggle{top:50%;transform:translateY(-50%);border-radius:0 8px 8px 0;padding:1rem .5rem}.lesson-content{padding:1rem}.lesson-header-mobile{display:flex;justify-content:flex-end}.toc-sidebar{position:fixed;right:0;top:64px;bottom:0;width:280px;background:var(--card-bg);z-index:60;transform:translate(100%);transition:transform .3s ease;box-shadow:-2px 0 8px #0000001a;border-left:none}.toc-sidebar.open{transform:translate(0)}.toc-close{display:block}.lesson-actions{flex-direction:column}.lesson-actions button{width:100%}}.settings{max-width:800px;margin:0 auto;padding:2rem 1rem}.settings h1{margin:0 0 2rem;font-size:2rem}.save-notification{background:#4caf50;color:#fff;padding:1rem;border-radius:4px;margin-bottom:1rem;text-align:center;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.settings-section h2{margin:0 0 1rem;font-size:1.25rem;color:var(--primary-color)}.setting-control{display:flex;flex-direction:column;gap:.75rem}.setting-control select{padding:.5rem;font-size:1rem;border:1px solid var(--border-color);border-radius:4px;background:var(--card-bg);color:var(--text-color);max-width:200px}.setting-control label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background .2s}.setting-control label:hover{background:var(--hover-bg)}.setting-control input[type=radio]{width:18px;height:18px;cursor:pointer}.setting-info p{margin:0;color:var(--text-secondary)}.setting-actions{margin-top:1rem}.danger-button{background:#f44;color:#fff;border:none;padding:.75rem 1.5rem;font-size:1rem;border-radius:4px;cursor:pointer;transition:background .2s}.danger-button:hover{background:#c00}@media(max-width:768px){.settings{padding:1rem}.settings h1{font-size:1.5rem}.settings-section{padding:1rem}}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;background:var(--bg-color)}.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:var(--bg-color);color:var(--text-color)}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{margin-top:1rem;color:var(--text-secondary)}
