:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fb;--bg-tertiary: #eef0f4;--bg-hover: #e8eaef;--bg-active: #dde0e8;--text-primary: #1a1d23;--text-secondary: #5f6577;--text-muted: #8b90a0;--accent: #4f46e5;--accent-hover: #4338ca;--accent-light: #eef2ff;--border: #e2e5ed;--border-light: #eef0f4;--success: #16a34a;--success-light: #dcfce7;--warning: #d97706;--warning-light: #fef3c7;--error: #dc2626;--error-light: #fee2e2;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--header-height: 56px}@media(prefers-color-scheme:dark){:root{--bg-primary: #0f1117;--bg-secondary: #161922;--bg-tertiary: #1e2230;--bg-hover: #252a38;--bg-active: #2d3345;--text-primary: #e8eaf0;--text-secondary: #9ca3b8;--text-muted: #6b7290;--accent: #818cf8;--accent-hover: #6366f1;--accent-light: #1e1b4b;--border: #2a2f40;--border-light: #222738;--success: #4ade80;--success-light: #052e16;--warning: #fbbf24;--warning-light: #451a03;--error: #f87171;--error-light: #450a0a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f8f9fb;--bg-tertiary: #eef0f4;--bg-hover: #e8eaef;--bg-active: #dde0e8;--text-primary: #1a1d23;--text-secondary: #5f6577;--text-muted: #8b90a0;--accent: #4f46e5;--accent-hover: #4338ca;--accent-light: #eef2ff;--border: #e2e5ed;--border-light: #eef0f4;--success: #16a34a;--success-light: #dcfce7;--warning: #d97706;--warning-light: #fef3c7;--error: #dc2626;--error-light: #fee2e2;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12)}[data-theme=dark]{--bg-primary: #0f1117;--bg-secondary: #161922;--bg-tertiary: #1e2230;--bg-hover: #252a38;--bg-active: #2d3345;--text-primary: #e8eaf0;--text-secondary: #9ca3b8;--text-muted: #6b7290;--accent: #818cf8;--accent-hover: #6366f1;--accent-light: #1e1b4b;--border: #2a2f40;--border-light: #222738;--success: #4ade80;--success-light: #052e16;--warning: #fbbf24;--warning-light: #451a03;--error: #f87171;--error-light: #450a0a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-secondary);color:var(--text-primary);line-height:1.5;overflow:hidden;height:100vh}#root{height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.app-layout{display:flex;flex:1;overflow:hidden}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.header{height:var(--header-height);min-height:var(--header-height);display:flex;align-items:center;padding:0 20px;background:var(--bg-primary);border-bottom:1px solid var(--border);gap:12px}.header-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis}.header-title .logo{font-size:1.3rem}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.breadcrumbs{display:flex;align-items:center;gap:4px;font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.breadcrumb-item{color:var(--text-secondary);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:background .15s;white-space:nowrap}.breadcrumb-item:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.breadcrumb-item.active{color:var(--text-primary);font-weight:600;cursor:default}.breadcrumb-item.active:hover{background:transparent}.breadcrumb-sep{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.theme-toggle{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:background .15s}.theme-toggle:hover{background:var(--bg-hover)}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary)}.content-scroll{flex:1;overflow-y:auto;padding:24px}.card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);min-width:0;overflow:hidden}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.card-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);line-height:1.3}.card-subtitle{font-size:.85rem;color:var(--text-muted);margin-top:4px}.card-actions{display:flex;gap:8px;flex-shrink:0}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;min-width:0}.info-item{padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);min-width:0;overflow:hidden}.info-item .info-label{white-space:nowrap}.info-item .info-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px}.info-value{font-size:.9rem;color:var(--text-primary);word-break:break-word}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(260px,calc((100% - 48px)/4)),1fr));gap:16px}@media(max-width:350px){.course-grid{grid-template-columns:1fr;grid-template-columns:repeat(auto-fill,minmax(0,1fr));gap:12px}.card{min-width:0}}.course-card{cursor:pointer;transition:box-shadow .2s,transform .2s;min-width:0;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:12px;line-height:1.4;word-break:break-word;overflow-wrap:break-word}.course-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;min-width:0;overflow:hidden}.course-card-tags .tag{flex-shrink:0}.course-card-desc{margin-top:10px;font-size:.82rem;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.info-value.mono{font-family:SF Mono,Fira Code,monospace;font-size:.8rem}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.btn-icon:hover{background:var(--bg-hover)}.section-list{display:flex;flex-direction:column;gap:8px}.section-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow .15s}.section-card:hover{box-shadow:var(--shadow-md)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;transition:background .15s}.section-header:hover{background:var(--bg-hover)}.section-title{font-size:.95rem;font-weight:600;color:var(--text-primary);flex:1;min-width:0}.section-meta{font-size:.78rem;color:var(--text-muted);margin-left:12px;flex-shrink:0}.section-toggle{font-size:.8rem;color:var(--text-muted);margin-left:8px;transition:transform .2s;flex-shrink:0}.section-toggle.open{transform:rotate(90deg)}.section-body{border-top:1px solid var(--border-light)}.subsection-list{padding:4px 16px 12px}.subsection-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-secondary);transition:background .15s}.subsection-item:hover{background:var(--bg-hover)}.subsection-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}.subsection-icon.video{background:#dbeafe;color:#2563eb}[data-theme=dark] .subsection-icon.video{background:#1e3a5f;color:#60a5fa}.subsection-icon.pdf{background:#fee2e2;color:#dc2626}[data-theme=dark] .subsection-icon.pdf{background:#450a0a;color:#f87171}.subsection-icon.quiz{background:#fef3c7;color:#d97706}[data-theme=dark] .subsection-icon.quiz{background:#451a03;color:#fbbf24}.subsection-icon.default{background:var(--bg-tertiary);color:var(--text-muted)}.subsection-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subsection-duration{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.lesson-content{line-height:1.7}.lesson-content h3{font-size:1rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.lesson-content p{margin-bottom:12px;color:var(--text-secondary)}.lesson-content a{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-sm);font-weight:600;font-size:.85rem;text-decoration:none;transition:background .15s}.lesson-content a:hover{background:var(--accent);color:#fff;text-decoration:none}.video-container{width:100%;max-width:900px;margin:0 auto;border-radius:var(--radius-md);overflow:hidden;background:#000}.video-container video{width:100%;display:block}.pdf-block{padding:12px 16px;margin-bottom:8px;background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--accent)}.pdf-block-text{font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.pdf-block-text b,.pdf-block-text strong{font-weight:700}.pdf-file-link{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-weight:600;font-size:.85rem;text-decoration:none;transition:all .15s;margin:4px 0}.pdf-file-link:hover{border-color:var(--accent);background:var(--accent-light)}.quiz-container{display:flex;flex-direction:column;gap:20px}.quiz-question{padding:20px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.quiz-question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.quiz-question-title{font-size:.95rem;font-weight:700;color:var(--text-primary)}.quiz-question-badge{font-size:.7rem;padding:2px 8px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-muted);font-weight:600;flex-shrink:0}.quiz-question-media{margin-bottom:14px}.quiz-question-media img{max-width:100%;border-radius:var(--radius-sm)}.quiz-answer{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:6px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:all .15s;font-size:.88rem}.quiz-answer:hover{background:var(--bg-hover);border-color:var(--accent)}.quiz-answer.selected{border-color:var(--accent);background:var(--accent-light)}.quiz-answer.correct{border-color:var(--success);background:var(--success-light)}.quiz-answer.incorrect{border-color:var(--error);background:var(--error-light)}.quiz-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.quiz-answer.selected .quiz-radio{border-color:var(--accent);background:var(--accent)}.quiz-answer.selected .quiz-radio:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.quiz-answer-text{color:var(--text-primary);flex:1}.quiz-result{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600}.quiz-result.correct{background:var(--success-light);color:var(--success)}.quiz-result.incorrect{background:var(--error-light);color:var(--error)}.loading{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);font-size:.9rem}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-right:10px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);text-align:center}.empty-state-icon{font-size:3rem;margin-bottom:12px}.empty-state-text{font-size:.95rem;margin-bottom:16px}.error-banner{padding:12px 16px;background:var(--error-light);color:var(--error);border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px;display:flex;align-items:center;gap:8px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media(max-width:768px){.info-grid,.course-grid{grid-template-columns:1fr}.card{padding:16px}}@media(max-width:400px){.header{padding:0 12px}.header-title{font-size:.95rem}.course-grid{gap:12px}.card{padding:14px}.course-card-title{font-size:.95rem}}@media(max-width:320px){.header{padding:0 8px}.header-title{font-size:.85rem}.course-grid{gap:8px}.card{padding:12px}.course-card-title{font-size:.9rem}.info-grid{grid-template-columns:1fr}}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-secondary)}.login-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:360px}.login-card h1{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.login-subtitle{font-size:.85rem;color:var(--text-muted);margin-bottom:8px}.login-card form{width:100%;display:flex;flex-direction:column;gap:12px}.login-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .15s}.login-input:focus{border-color:var(--accent)}.login-input::placeholder{color:var(--text-muted)}.login-btn{width:100%;justify-content:center;padding:10px 16px}.login-error{font-size:.8rem;color:var(--error);text-align:center}
