*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:#fafbfd;color:#1e293b;line-height:1.5}.container{max-width:1280px;margin:0 auto;padding:0 24px}.site-header{background:#fff;border-bottom:1px solid #eef2f6;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#ffffffeb}.header-inner{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;padding:8px 0}.logo-area{display:flex;align-items:center;cursor:pointer;text-decoration:none;flex-shrink:0}.logo-img{height:50px;width:50px}.nav-links{display:flex;align-items:center;gap:24px;font-weight:500;margin-left:12px;flex:1}.nav-item{position:relative}.nav-item>a{text-decoration:none;color:#334155;transition:.2s;display:flex;align-items:center;gap:4px;padding:8px 0}.nav-item>a i{font-size:.7rem;transition:transform .2s}.nav-item:hover>a i.fa-chevron-down{transform:rotate(180deg)}.nav-item>a:hover,.nav-item>a.active{color:#3b82f6}.dropdown-menu{position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(8px);background:#fff;border-radius:16px;box-shadow:0 20px 40px -8px #00000026,0 4px 12px #0000000d;border:1px solid #eef2f6;min-width:480px;opacity:0;visibility:hidden;transition:all .25s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:1000;padding:20px 0}.nav-item:hover .dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%) translateY(4px);pointer-events:auto}.dropdown-menu:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid white;filter:drop-shadow(0 -2px 2px rgba(0,0,0,.02))}.dropdown-content{display:flex;gap:20px;padding:0 20px}.primary-categories{flex:1;border-right:1px solid #f1f5f9;padding-right:20px;max-height:360px;overflow-y:auto}.primary-category-item{padding:12px 16px;border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between;color:#334155;font-weight:500;font-size:.9rem;margin-bottom:4px}.primary-category-item i{font-size:.7rem;color:#94a3b8;opacity:0;transition:opacity .2s}.primary-category-item:hover{background:#f8fafc;color:#3b82f6}.primary-category-item:hover i{opacity:1;color:#3b82f6}.primary-category-item.active{background:linear-gradient(135deg,#eff6ff,#f8fafc);color:#3b82f6;border-left:3px solid #3b82f6}.primary-category-item.active i{opacity:1;color:#3b82f6}.secondary-categories{flex:1.2;padding-left:4px;max-height:360px;overflow-y:auto}.secondary-category-item{padding:10px 16px;border-radius:8px;cursor:pointer;transition:all .2s;color:#475569;font-size:.85rem;margin-bottom:2px}.secondary-category-item:hover{background:#f8fafc;color:#3b82f6}.secondary-category-item.all-item{font-weight:600;color:#1e293b;border-bottom:1px solid #f1f5f9;margin-bottom:8px;padding-bottom:12px}.secondary-category-item.all-item i{margin-right:6px;color:#3b82f6}.home-hero{background:linear-gradient(135deg,#0f172a,#1e293b 30%,#1e3a5f 70%,#0f172a);padding:60px 0 50px;position:relative;overflow:hidden}.home-hero:before{content:"";position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(59,130,246,.15) 0%,transparent 70%);border-radius:50%;pointer-events:none}.home-hero:after{content:"";position:absolute;bottom:-30%;left:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(139,92,246,.12) 0%,transparent 70%);border-radius:50%;pointer-events:none}.home-hero-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;position:relative;z-index:1}.home-hero-left{flex:1}.home-hero-title{font-size:2.8rem;font-weight:800;color:#f1f5f9;line-height:1.25;margin-bottom:16px;letter-spacing:-.5px}.home-hero-sub{font-size:1.05rem;color:#94a3b8;max-width:520px;line-height:1.6;margin-bottom:28px}.home-hero-actions{display:flex;gap:14px;margin-bottom:36px}.hero-btn{padding:12px 28px;border-radius:12px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.hero-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 16px #3b82f659}.hero-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f673}.hero-btn-ghost{background:#ffffff14;color:#e2e8f0;border:1px solid rgba(255,255,255,.15)}.hero-btn-ghost:hover{background:#ffffff24;border-color:#ffffff40}.home-hero-stats{display:flex;gap:36px}.hero-stat{display:flex;flex-direction:column}.hero-stat-val{font-size:1.6rem;font-weight:700;color:#e2e8f0}.hero-stat-label{font-size:.78rem;color:#64748b;margin-top:2px}.home-hero-right{flex-shrink:0;display:none}@media (min-width: 900px){.home-hero-right{display:block;width:320px;height:320px}}.hero-visual{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.hero-visual-center{width:100px;height:100px;position:relative;display:flex;align-items:center;justify-content:center}.hero-visual-ring{position:absolute;border-radius:50%;border:1px solid rgba(59,130,246,.2);animation:ringPulse 3s ease-in-out infinite}.hero-visual-ring:nth-child(1){width:100px;height:100px;animation-delay:0s}.hero-visual-ring:nth-child(2){width:180px;height:180px;animation-delay:1s;border-color:#8b5cf626}.hero-visual-ring:nth-child(3){width:260px;height:260px;animation-delay:2s;border-color:#3b82f61a}@keyframes ringPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.05);opacity:1}}.hero-visual-icon{font-size:2.2rem;color:#3b82f6;position:relative;z-index:2}.hero-visual-card{position:absolute;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 16px;display:flex;align-items:center;gap:8px;font-size:.82rem;color:#cbd5e1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.hero-visual-card i{color:#3b82f6}.card-1{top:10px;right:10px}.card-2{bottom:40px;right:0}.card-3{bottom:10px;left:30px}.card-4{top:50px;left:10px}.home-section{padding:56px 0}.home-section-alt{background:#f8fafc}.section-header{display:flex;flex-direction:column;margin-bottom:32px}.section-title{font-size:1.6rem;font-weight:700;color:#0f172a;margin-bottom:8px}.section-subtitle{font-size:.95rem;color:#64748b}.section-more{display:inline-flex;align-items:center;gap:6px;color:#3b82f6;font-size:.9rem;font-weight:500;text-decoration:none;margin-top:8px;transition:gap .2s}.section-more:hover{gap:10px}.loading-inline{text-align:center;padding:40px;color:#3b82f6;font-size:1rem}.learning-paths{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.path-card{background:#fff;border-radius:20px;padding:28px 24px;border:1px solid #edf2f7;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.path-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px -8px #0000001a;border-color:#cbd5e1}.path-card-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.path-card-icon i{font-size:1.4rem;color:#fff}.path-card-title{font-size:1.1rem;font-weight:700;color:#0f172a;margin-bottom:10px}.path-card-desc{font-size:.85rem;color:#64748b;line-height:1.5;margin-bottom:16px;flex:1}.path-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.path-tag{background:#f1f5f9;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:500;color:#475569}.path-card-link{display:inline-flex;align-items:center;gap:6px;color:#3b82f6;font-weight:600;font-size:.88rem;text-decoration:none;transition:gap .2s}.path-card-link:hover{gap:10px}.featured-courses-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px}.featured-courses-scroll::-webkit-scrollbar{height:4px}.featured-courses-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.featured-courses-track{display:flex;gap:20px;padding-bottom:8px}.featured-course-card{min-width:260px;max-width:260px;background:#fff;border-radius:16px;overflow:hidden;border:1px solid #edf2f7;cursor:pointer;transition:transform .2s,box-shadow .2s;flex-shrink:0}.featured-course-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px -8px #0000001a}.fc-thumb{width:100%;height:140px;background:linear-gradient(135deg,#eff6ff,#e0e7ff);display:flex;align-items:center;justify-content:center;overflow:hidden}.fc-thumb img{width:100%;height:100%;object-fit:cover}.fc-thumb i{font-size:2.2rem;color:#3b82f6}.fc-body{padding:16px}.fc-body h4{font-size:.95rem;font-weight:700;color:#0f172a;margin:8px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.fc-body p{font-size:.78rem;color:#64748b;line-height:1.4;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fc-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#94a3b8;border-top:1px solid #f1f5f9;padding-top:10px}.fc-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.68rem;font-weight:600}.fc-badge.required{background:#fef2f2;color:#dc2626}.fc-badge.elective{background:#f0fdf4;color:#16a34a}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.tech-item{background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:20px 12px;text-align:center;transition:transform .2s,box-shadow .2s;cursor:default}.tech-item:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0000000f}.tech-icon{font-size:1.6rem;margin-bottom:10px}.tech-name{font-size:.82rem;font-weight:600;color:#334155}.community-cta{background:linear-gradient(135deg,#1e293b,#1e3a5f);border-radius:24px;padding:48px 40px;text-align:center;position:relative;overflow:hidden}.community-cta:before{content:"";position:absolute;top:-30%;left:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(59,130,246,.12) 0%,transparent 70%);border-radius:50%;pointer-events:none}.community-cta-content{position:relative;z-index:1}.community-cta-content h2{font-size:1.8rem;font-weight:700;color:#f1f5f9;margin-bottom:12px}.community-cta-content p{font-size:1rem;color:#94a3b8;line-height:1.6;margin-bottom:28px}.community-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.community-link-btn{padding:10px 22px;border-radius:10px;background:#ffffff14;color:#e2e8f0;text-decoration:none;font-size:.9rem;font-weight:500;border:1px solid rgba(255,255,255,.12);transition:all .2s;display:inline-flex;align-items:center;gap:8px}.community-link-btn:hover{background:#ffffff26;border-color:#ffffff40;transform:translateY(-2px)}@media (max-width: 720px){.container{padding:0 12px}.nav-links{gap:14px;font-size:.85rem}.header-inner{padding:12px 0}.logo-text{font-size:1.3rem}.home-hero-inner{flex-direction:column;text-align:center}.home-hero-title{font-size:1.8rem}.home-hero-sub{margin:0 auto 24px}.home-hero-actions{justify-content:center}.home-hero-stats{justify-content:center;gap:24px}.learning-paths{grid-template-columns:1fr}.tech-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.community-links{gap:8px}.community-link-btn{padding:8px 16px;font-size:.82rem}}.categories-bar{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0 24px;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.cat-btn{background:transparent;border:none;padding:8px 20px;font-size:.95rem;font-weight:500;border-radius:40px;cursor:pointer;transition:all .2s;color:#475569;font-family:inherit}.cat-btn:hover{background:#eef2ff;color:#1e40af}.cat-btn.active{background:#3b82f6;color:#fff;box-shadow:0 4px 8px #3b82f633}.sort-tabs{display:flex;gap:8px;margin-bottom:28px;border-bottom:1px solid #eef2f6;padding-bottom:10px}.sort-item{padding:6px 18px;font-size:.9rem;font-weight:500;border-radius:30px;cursor:pointer;transition:.2s;background:#f8fafc;color:#334155}.sort-item.active{background:#1e293b;color:#fff}.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:28px;margin:28px 0 40px}.article-card{background:#fff;border-radius:24px;box-shadow:0 8px 20px #00000005,0 2px 6px #0000000d;transition:transform .2s,box-shadow .2s;overflow:hidden;border:1px solid #edf2f7;display:flex;flex-direction:column;cursor:pointer}.article-card:hover{transform:translateY(-4px);box-shadow:0 20px 30px -12px #0000001f;border-color:#cbd5e1}.card-content{padding:24px 24px 20px;flex:1}.article-title{font-size:1.3rem;font-weight:700;line-height:1.4;margin-bottom:12px;color:#0f172a}.article-summary{color:#475569;font-size:.9rem;line-height:1.5;margin-bottom:20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.meta-info{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#64748b;border-top:1px solid #f1f5f9;padding-top:16px;margin-top:8px}.tag-group{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tag{background:#f1f5f9;padding:4px 10px;border-radius:30px;font-size:.7rem;font-weight:500;color:#334155}.read-stats{display:flex;align-items:center;gap:6px}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin:40px 0 70px;flex-wrap:wrap}.page-btn{background:#fff;border:1px solid #cbd5e1;padding:8px 16px;border-radius:40px;font-weight:500;cursor:pointer;transition:.2s;font-family:inherit}.page-btn.active-page{background:#3b82f6;border-color:#3b82f6;color:#fff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-numbers{display:flex;gap:8px}.number-btn{background:transparent;border:none;width:40px;height:40px;border-radius:40px;font-weight:500;cursor:pointer;transition:.2s}.number-btn.active-page{background:#3b82f6;color:#fff}.loading{text-align:center;padding:60px;color:#3b82f6;font-size:1.2rem}.error-msg{background:#fee2e2;padding:24px;border-radius:20px;text-align:center;color:#b91c1c;margin:30px 0}.coming-soon-container{background:#fff;border-radius:28px;box-shadow:0 8px 30px #0000000a;margin:24px 0 48px;padding:80px 40px;text-align:center;border:1px solid #edf2f7;position:relative;overflow:hidden}.coming-soon-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3b82f6,#8b5cf6,#ec4899,#3b82f6);background-size:300% 100%;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.coming-soon-badge{display:inline-block;background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:#3b82f6;font-weight:600;font-size:.85rem;padding:6px 18px;border-radius:40px;margin-bottom:24px;letter-spacing:1px;border:1px solid #bfdbfe}.coming-soon-icon{font-size:5rem;color:#3b82f6;margin-bottom:24px;opacity:.8}.coming-soon-title{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#0f172a,#2563eb);background-clip:text;-webkit-background-clip:text;color:transparent;margin-bottom:16px}.coming-soon-subtitle{font-size:1.1rem;color:#64748b;margin-bottom:12px}.coming-soon-status{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;color:#f59e0b;font-weight:500}.coming-soon-status i{font-size:1rem}.pulse-dot{width:8px;height:8px;background:#f59e0b;border-radius:50%;animation:pulse 1.5s ease infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.coming-soon-features{display:flex;justify-content:center;gap:40px;margin-top:48px;flex-wrap:wrap}.feature-item{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 24px;background:#fafbfd;border-radius:20px;min-width:140px;transition:transform .2s}.feature-item:hover{transform:translateY(-4px);background:#f1f5f9}.feature-icon{width:60px;height:60px;background:linear-gradient(135deg,#eff6ff,#e0e7ff);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#3b82f6}.feature-text{font-weight:600;color:#334155;font-size:.9rem}.feature-desc{font-size:.75rem;color:#94a3b8;margin-top:-4px}footer{border-top:1px solid #eef2f6;background:#fff;padding:28px 0;text-align:center;color:#5b6e8c;font-size:.85rem}.footer-beian{margin-top:8px;font-size:.75rem}.footer-beian a{color:#94a3b8;text-decoration:none;transition:color .2s}.footer-beian a:hover{color:#3b82f6}.footer-beian-sep{margin:0 8px;color:#cbd5e1}.copyright-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px 24px;margin:24px 0;font-size:.9rem;color:#334155;line-height:1.8}.copyright-info p{margin-bottom:6px}.copyright-info p:last-child{margin-bottom:0}.license-image-box{display:flex;justify-content:center;margin:24px 0}.license-image-box img{width:100%;max-width:560px;height:auto;border-radius:12px;box-shadow:0 4px 24px #00000014;border:1px solid #edf2f7}.breadcrumb-nav{display:flex;align-items:center;gap:8px;padding:16px 0;font-size:.85rem;color:#64748b;border-bottom:1px solid #eef2f6;margin-bottom:20px}.breadcrumb-nav a{color:#3b82f6;text-decoration:none;cursor:pointer}.breadcrumb-nav a:hover{text-decoration:underline}.breadcrumb-nav i{font-size:.6rem;color:#cbd5e1}.detail-full-container{background:#fff;border-radius:28px;box-shadow:0 8px 30px #0000000a;margin:24px 0 48px;overflow:hidden;border:1px solid #edf2f7}.detail-header{padding:32px 36px 20px;border-bottom:1px solid #eef2f6;background:#fff}.detail-header h1{font-size:2rem;font-weight:800;color:#0f172a;margin-bottom:16px;line-height:1.3}.detail-meta{display:flex;flex-wrap:wrap;gap:24px;font-size:.85rem;color:#5b6e8c;margin:12px 0 8px}.detail-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.detail-tag{background:#f1f5f9;padding:4px 14px;border-radius:30px;font-size:.75rem;font-weight:500;color:#334155}.detail-header-main{position:relative;margin-top:4px;padding-right:228px;min-height:160px}.detail-body{padding:24px 36px 48px;background:#fefefe}.article-summary-box{background:#f0f7ff;border-left:4px solid #3b82f6;border-radius:8px;padding:16px 20px;margin-bottom:24px;font-size:.95rem;color:#475569;line-height:1.8}.markdown-body{font-size:1rem;line-height:1.7;color:#1e293b}.markdown-body img{width:100%;height:auto;border-radius:8px}.markdown-body pre{background:#0f172a;border-radius:16px;padding:1rem;overflow-x:auto}.markdown-body code{font-family:Monaco,monospace;font-size:.85rem}.detail-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.back-to-list-btn{display:inline-flex;align-items:center;gap:8px;background:#f1f5f9;border:none;padding:8px 20px;border-radius:40px;font-weight:500;font-size:.85rem;cursor:pointer;transition:.2s;color:#1e293b}.back-to-list-btn:hover{background:#e2e8f0;transform:translate(-2px)}.author-card{position:absolute;right:0;top:0;width:200px;background:#f8fafc;border-radius:16px;padding:16px;border:1px solid #eef2f6;z-index:1}.author-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.author-avatar{width:44px;height:44px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;flex-shrink:0}.author-details{text-align:left;line-height:1.6}.author-details h4{display:inline;font-size:.9rem;font-weight:700;margin-right:6px}.author-details p{display:inline;font-size:.7rem;color:#5b6e8c;margin:0}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin:28px 0 40px}.course-card{background:#fff;border-radius:20px;box-shadow:0 8px 20px #00000005,0 2px 6px #0000000d;transition:transform .2s,box-shadow .2s;overflow:hidden;border:1px solid #edf2f7;cursor:pointer;display:flex;flex-direction:column}.course-card:hover{transform:translateY(-4px);box-shadow:0 20px 30px -12px #0000001f;border-color:#cbd5e1}.course-thumb{width:100%;height:160px;object-fit:cover;background:linear-gradient(135deg,#eff6ff,#e0e7ff)}.course-thumb-placeholder{width:100%;height:160px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eff6ff,#e0e7ff);font-size:3rem;color:#3b82f6}.course-card-body{padding:20px;flex:1;display:flex;flex-direction:column}.course-card-title{font-size:1.05rem;font-weight:700;color:#0f172a;margin-bottom:10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-card-desc{font-size:.82rem;color:#64748b;line-height:1.5;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:14px}.course-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:#94a3b8;border-top:1px solid #f1f5f9;padding-top:12px}.course-badge{display:inline-block;padding:2px 10px;border-radius:30px;font-size:.7rem;font-weight:600}.course-badge.required{background:#fef2f2;color:#dc2626}.course-badge.elective{background:#f0fdf4;color:#16a34a}.course-filter-tabs{display:flex;gap:8px;margin-bottom:8px}.course-filter-tab{padding:6px 18px;font-size:.9rem;font-weight:500;border-radius:30px;cursor:pointer;transition:.2s;background:#f8fafc;color:#334155;border:none;font-family:inherit}.course-filter-tab.active{background:#1e293b;color:#fff}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a99;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-dialog{background:#fff;border-radius:16px;padding:32px 28px 24px;width:400px;max-width:90vw;box-shadow:0 20px 60px #00000026;text-align:center}.modal-dialog h3{margin-bottom:8px;font-size:1.2rem;color:#0f172a}.modal-dialog p{margin-bottom:20px;color:#64748b;font-size:.9rem}.modal-dialog .form-group{margin-bottom:14px;text-align:left}.modal-dialog .form-group label{display:block;font-size:.8rem;font-weight:600;color:#334155;margin-bottom:4px}.modal-dialog .form-group input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-family:inherit;outline:none;transition:.2s}.modal-dialog .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-btn{width:100%;padding:11px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:.2s}.modal-btn-primary{background:#3b82f6;color:#fff;margin-bottom:8px}.modal-btn-primary:hover{background:#2563eb}.modal-btn-ghost{background:transparent;color:#64748b;font-size:.85rem}.modal-btn-ghost:hover{color:#334155}.modal-error{color:#ef4444;font-size:.8rem;margin-bottom:8px;min-height:20px}.course-hour-row{cursor:pointer;transition:.15s;border-radius:6px;padding:6px 8px;margin:0 -8px}.course-hour-row:hover{background:#eef2ff}.chapter-body{display:flex;gap:20px;align-items:flex-start;padding:4px 20px 16px}.chapter-hours-col{flex:1;min-width:0}.chapter-attach-col{width:38%;min-width:0}.chapter-attach-col .attach-item{padding:8px 12px}.chapter-header{display:flex;align-items:center;gap:8px;padding:14px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:1rem}.chapter-header:hover{background:#eef2ff}.chapter-caret{display:inline-flex;align-items:center;justify-content:center;width:18px;color:#64748b;font-size:.8rem;transition:transform .2s}.chapter-caret.open{transform:rotate(90deg)}.attach-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f8fafc;border-radius:12px;border:1px solid #eef2f6;margin-bottom:8px}.attach-left{display:flex;align-items:center;gap:8px}.attach-left i{color:#6366f1;font-size:1.1rem;width:20px;text-align:center}.attach-label{font-size:.75rem;color:#6366f1;background:#eef2ff;padding:2px 6px;border-radius:4px}.attach-title{color:#334155;font-size:.9rem}.attach-download{padding:6px 16px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s}.attach-download:hover{background:#2563eb}.nav-item-user{margin-left:auto}.user-panel{padding:20px 24px;min-width:280px}.user-panel-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;font-weight:700;margin:0 auto 10px}.user-panel-name{text-align:center;font-size:.95rem;font-weight:600;color:#0f172a;margin-bottom:14px}.user-panel-stats{display:flex;gap:12px;margin-bottom:16px}.user-panel-stat{flex:1;background:#f8fafc;border-radius:10px;padding:12px 8px;text-align:center}.user-panel-stat-val{font-size:1.1rem;font-weight:700;color:#0f172a}.user-panel-stat-label{font-size:.7rem;color:#94a3b8;margin-top:2px}.user-panel-actions{display:flex;gap:8px}.user-panel-btn{flex:1;padding:9px 0;border-radius:8px;border:none;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:.2s;text-align:center;text-decoration:none}.user-panel-btn-primary{background:#3b82f6;color:#fff}.user-panel-btn-primary:hover{background:#2563eb}.user-panel-btn-ghost{background:#f1f5f9;color:#334155}.user-panel-btn-ghost:hover{background:#e2e8f0}.user-panel-btn-danger{background:transparent;color:#94a3b8;font-size:.8rem;padding:6px 0}.user-panel-btn-danger:hover{color:#ef4444}.user-panel-login-hint{text-align:center;color:#64748b;font-size:.85rem;margin-bottom:14px}.auth-page{display:flex;justify-content:center;padding:40px 0 60px}.auth-card{background:#fff;border-radius:24px;box-shadow:0 8px 30px #0000000a;border:1px solid #edf2f7;padding:40px 36px;width:440px;max-width:90vw}.auth-icon{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#e0e7ff);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.auth-icon i{font-size:1.6rem;color:#3b82f6}.auth-header h2{font-size:1.3rem;font-weight:700;color:#0f172a;margin-bottom:8px}.auth-header p{font-size:.88rem;color:#64748b}.auth-error{background:#fef2f2;color:#dc2626;padding:10px 16px;border-radius:10px;font-size:.85rem;margin-bottom:18px;text-align:center}.auth-success{background:#f0fdf4;color:#16a34a;padding:10px 16px;border-radius:10px;font-size:.85rem;margin-bottom:18px;text-align:center}.auth-card .form-group{margin-bottom:16px}.auth-card .form-group label{display:block;font-size:.82rem;font-weight:600;color:#334155;margin-bottom:6px}.auth-card .form-group input{width:100%;padding:11px 14px;border:1px solid #d1d5db;border-radius:10px;font-size:.92rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.auth-card .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.input-with-btn{display:flex;gap:8px}.input-with-btn input{flex:1}.send-code-btn{padding:0 14px;border:1px solid #3b82f6;border-radius:10px;background:#eff6ff;color:#3b82f6;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;font-family:inherit;transition:all .2s}.send-code-btn:hover:not(:disabled){background:#dbeafe}.send-code-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn{width:100%;padding:12px;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s,transform .1s;margin-top:4px}.auth-btn:active{transform:scale(.98)}.auth-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 14px #3b82f64d}.auth-btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.auth-btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;margin-top:22px;padding-top:18px;border-top:1px solid #f1f5f9;font-size:.88rem;color:#64748b}.auth-link{color:#3b82f6;font-weight:600;text-decoration:none;margin-left:4px}.auth-link:hover{text-decoration:underline}.code-row{display:flex;gap:10px;align-items:center}.code-btn{flex-shrink:0;padding:11px 16px;background:#f1f5f9;border:1px solid #d1d5db;border-radius:10px;font-size:.82rem;font-weight:500;color:#334155;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .2s}.code-btn:hover:not(:disabled){background:#e2e8f0}.code-btn:disabled{opacity:.6;cursor:not-allowed}.video-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000eb;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center}.video-close-btn{position:absolute;top:20px;right:28px;z-index:1001;width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:#00000080;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.video-close-btn:hover{background:#ef4444e6;border-color:#ef4444}.video-player-wrapper{width:90%;max-width:1100px;max-height:85vh}.video-player-container{width:100%;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden}.video-info-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;color:#e2e8f0;font-size:.9rem}.video-next-btn{background:#3b82f6;color:#fff;border:none;padding:8px 18px;border-radius:8px;cursor:pointer;font-size:.85rem;transition:background .2s}.video-next-btn:hover{background:#2563eb}.video-next-btn:disabled{background:#475569;cursor:default;opacity:.6}.course-hour-row.playing{background:#dbeafe;font-weight:600}@media (max-width: 720px){.chapter-body{flex-direction:column}.chapter-attach-col{width:100%}.articles-grid{grid-template-columns:1fr}.hero-title{font-size:1.8rem}.dropdown-menu{min-width:300px;left:0;transform:translate(0) translateY(8px)}.nav-item:hover .dropdown-menu{transform:translate(0) translateY(4px)}.dropdown-menu:before{left:30px}.dropdown-content{flex-direction:column}.primary-categories{border-right:none;border-bottom:1px solid #f1f5f9;padding-right:0;padding-bottom:12px}.coming-soon-title{font-size:1.8rem}.coming-soon-features{gap:16px}.feature-item{min-width:120px;padding:16px}}.about-hero{background:linear-gradient(135deg,#0f172a,#1e3a5f);padding:48px 0;text-align:center}.about-hero h1{font-size:2.2rem;font-weight:800;color:#f1f5f9;margin-bottom:8px}.about-hero p{font-size:1rem;color:#94a3b8}.about-section{padding:48px 0}.about-section+.about-section{border-top:1px solid #eef2f6}.about-intro h2{font-size:1.4rem;font-weight:700;color:#0f172a;margin-bottom:16px}.about-intro p{font-size:1rem;color:#475569;line-height:1.8;max-width:800px}.about-section-title{font-size:1.4rem;font-weight:700;color:#0f172a;margin-bottom:8px}.about-section-desc{font-size:.9rem;color:#94a3b8;margin-bottom:32px}.pain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}.pain-card{background:#fff;border:1px solid #edf2f7;border-radius:16px;padding:24px;display:flex;gap:18px;transition:transform .2s,box-shadow .2s}.pain-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.pain-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pain-icon i{color:#fff;font-size:1.1rem}.pain-content{flex:1;min-width:0}.pain-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ef4444;margin-bottom:4px}.pain-label.solution-label{color:#10b981;margin-top:12px}.pain-text{font-size:.85rem;color:#475569;line-height:1.5;margin-bottom:4px}.pain-solution{font-size:.85rem;color:#334155;line-height:1.5;background:#f0fdf4;padding:10px 12px;border-radius:10px}.mentor-box{background:linear-gradient(135deg,#1e293b,#1e3a5f);border-radius:20px;padding:40px;display:flex;gap:36px;align-items:flex-start}.mentor-left{flex-shrink:0}.mentor-icon{width:80px;height:80px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:24px;display:flex;align-items:center;justify-content:center}.mentor-icon i{font-size:2rem;color:#fff}.mentor-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.mentor-feature{display:flex;gap:14px;align-items:flex-start}.mf-icon{width:40px;height:40px;background:#ffffff1a;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mf-icon i{color:#60a5fa;font-size:1rem}.mf-content h4{font-size:.9rem;font-weight:600;color:#e2e8f0;margin-bottom:4px}.mf-content p{font-size:.8rem;color:#94a3b8;line-height:1.5}.timeline{position:relative;padding:20px 0}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#3b82f6,#8b5cf6,transparent);transform:translate(-50%)}.timeline-item{display:flex;align-items:flex-start;margin-bottom:36px;position:relative}.timeline-dot{position:absolute;left:50%;top:8px;width:14px;height:14px;background:#3b82f6;border:3px solid #fff;border-radius:50%;transform:translate(-50%);box-shadow:0 0 0 4px #3b82f626;z-index:1}.timeline-left{justify-content:flex-start}.timeline-right{justify-content:flex-end}.timeline-card{width:45%;background:#fff;border:1px solid #edf2f7;border-radius:14px;padding:22px 24px;transition:transform .2s,box-shadow .2s}.timeline-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.timeline-date{display:inline-block;background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:#3b82f6;font-size:.75rem;font-weight:700;padding:3px 12px;border-radius:20px;margin-bottom:10px}.timeline-card h3{font-size:1rem;font-weight:700;color:#0f172a;margin-bottom:8px}.timeline-card p{font-size:.85rem;color:#64748b;line-height:1.6}.values-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.value-card{background:#fff;border:1px solid #edf2f7;border-radius:16px;padding:28px 24px;text-align:center;transition:transform .2s,box-shadow .2s}.value-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #0000000f}.value-card i{font-size:2rem;color:#3b82f6;margin-bottom:14px}.value-card h3{font-size:1rem;font-weight:700;color:#0f172a;margin-bottom:8px}.value-card p{font-size:.82rem;color:#64748b;line-height:1.5}@media (max-width: 720px){.about-hero h1{font-size:1.6rem}.pain-grid{grid-template-columns:1fr}.mentor-box{flex-direction:column;padding:24px}.mentor-features{grid-template-columns:1fr}.timeline:before{left:20px}.timeline-dot{left:20px}.timeline-left,.timeline-right{justify-content:flex-start;padding-left:48px}.timeline-card{width:100%}.values-grid{grid-template-columns:1fr}}.auth-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:48px 24px;background:#f8fafc}.auth-card{background:#fff;border-radius:24px;box-shadow:0 4px 24px #0000000f;width:420px;max-width:100%;padding:40px 36px;border:1px solid #edf2f7}.auth-header{text-align:center;margin-bottom:28px}.auth-header h2{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:8px}.auth-header p{font-size:.9rem;color:#64748b}.auth-error{background:#fef2f2;color:#dc2626;padding:10px 16px;border-radius:10px;font-size:.85rem;margin-bottom:16px;text-align:center;min-height:20px}.auth-form .form-group{margin-bottom:16px}.auth-form .form-group label{display:block;font-size:.82rem;font-weight:600;color:#334155;margin-bottom:6px}.auth-form .form-group input{width:100%;padding:11px 14px;border:1px solid #d1d5db;border-radius:10px;font-size:.92rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.auth-form .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.auth-btn{width:100%;padding:12px;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;margin-top:4px}.auth-btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f640}.auth-btn-primary:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 6px 16px #3b82f659}.auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-switch{text-align:center;margin-top:20px;font-size:.85rem;color:#64748b}.auth-switch a{color:#3b82f6;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-agreement{margin:16px 0 0;font-size:.82rem;color:#94a3b8;text-align:center}.auth-agreement a{color:#3b82f6;text-decoration:none}.auth-agreement a:hover{text-decoration:underline}.privacy-page{padding:40px 24px 60px}.privacy-card{background:#fff;border-radius:20px;box-shadow:0 4px 24px #0000000f;padding:48px 40px;border:1px solid #edf2f7;max-width:860px;margin:0 auto}.privacy-card h1{font-size:1.6rem;font-weight:800;color:#0f172a;margin-bottom:8px;text-align:center}.privacy-important{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:20px 24px;margin:24px 0;font-size:.88rem;color:#92400e;line-height:1.7}.privacy-important p{margin-bottom:8px}.privacy-important p:last-child{margin-bottom:0}.privacy-part-title{font-size:1.2rem;font-weight:700;color:#0f172a;margin:32px 0 20px;padding-top:24px;border-top:2px solid #edf2f7;text-align:center}.privacy-card section{margin-bottom:24px}.privacy-card section h2{font-size:1.05rem;font-weight:700;color:#1e293b;margin-bottom:12px}.privacy-card section p{font-size:.9rem;color:#475569;line-height:1.8;margin-bottom:6px}.privacy-card section ul{margin:8px 0 12px 20px}.privacy-card section li{font-size:.9rem;color:#475569;line-height:1.8}@media (max-width: 640px){.privacy-card{padding:28px 20px}.privacy-card h1{font-size:1.3rem}}@media (max-width: 480px){.auth-card{padding:28px 20px}}.action-bar{display:flex;align-items:center;gap:12px;flex-shrink:0}.comment-content-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.comment-actions-inline{display:flex;gap:2px;flex-shrink:0}.action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;font-size:.875rem;cursor:pointer;transition:all .2s}.action-btn:hover{border-color:#3b82f6;color:#3b82f6}.favorite-btn.favorited{background:#fef2f2;border-color:#fca5a5;color:#ef4444}.favorite-btn.favorited:hover{background:#fecaca}.fav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#ef4444;color:#fff;border-radius:10px;font-size:.7rem;font-weight:600}.share-btns{display:flex;gap:8px}.share-btn{padding:8px 12px}.like-btn.liked{background:#eff6ff;border-color:#93c5fd;color:#3b82f6}.like-btn.liked:hover{background:#dbeafe}.like-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#3b82f6;color:#fff;border-radius:10px;font-size:.7rem;font-weight:600}.follow-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1px solid #e2e8f0;border-radius:40px;background:#fff;color:#475569;font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.follow-btn:hover{border-color:#3b82f6;color:#3b82f6}.follow-btn.following{background:#eff6ff;border-color:#93c5fd;color:#3b82f6}.follow-btn.following:hover{background:#dbeafe}.follower-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#3b82f6;color:#fff;border-radius:9px;font-size:.7rem;font-weight:600}.copy-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:12px 24px;border-radius:8px;font-size:.9rem;z-index:9999;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:8px}.copy-toast i{color:#22c55e}.toast-fade-enter-active,.toast-fade-leave-active{transition:all .3s ease}.toast-fade-enter-from,.toast-fade-leave-to{opacity:0;transform:translate(-50%) translateY(10px)}.comments-section{clear:both;margin-top:40px;padding-top:24px;border-top:1px solid #e2e8f0}.comments-section h3{font-size:1.1rem;color:#1e293b;margin-bottom:20px}.comment-input-box{margin-bottom:24px}.comment-textarea{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s;box-sizing:border-box}.comment-textarea:focus{border-color:#3b82f6}.comment-input-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.reply-hint{font-size:.8rem;color:#64748b}.cancel-reply{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.8rem}.comment-submit-btn{padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;cursor:pointer;transition:background .2s}.comment-submit-btn:hover:not(:disabled){background:#2563eb}.comment-submit-btn:disabled{background:#94a3b8;cursor:not-allowed}.comment-login-hint{padding:16px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;cursor:pointer;font-size:.9rem;margin-bottom:24px}.comment-login-hint:hover{background:#f1f5f9}.comment-list{margin-top:16px}.comment-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid #f1f5f9}.comment-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.comment-body{flex:1}.comment-header{display:flex;gap:12px;align-items:baseline;margin-bottom:4px}.comment-author{font-weight:600;font-size:.875rem;color:#1e293b}.author-badge{display:inline-block;background:#eef2ff;color:#4f46e5;font-size:.7rem;font-weight:600;padding:1px 8px;border-radius:10px;margin-left:6px;vertical-align:middle}.comment-time{font-size:.75rem;color:#94a3b8}.comment-content{font-size:.9rem;color:#334155;line-height:1.6}.comment-actions{margin-top:6px}.comment-action-btn{background:none;border:none;color:#64748b;font-size:.78rem;cursor:pointer;padding:2px 8px;border-radius:4px;margin-right:4px}.comment-action-btn:hover{color:#3b82f6;background:#f1f5f9}.comment-action-btn.danger:hover{color:#ef4444}.comment-replies{margin-top:12px;padding-left:12px;border-left:2px solid #e2e8f0}.reply-item{display:flex;gap:10px;padding:10px 0}.reply-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0}.reply-body{flex:1}.load-more{text-align:center;margin-top:16px}.btn-load-more{padding:8px 24px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#475569;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-load-more:hover{border-color:#3b82f6;color:#3b82f6}.publish-form{max-width:800px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.9rem;font-weight:600;color:#334155;margin-bottom:6px}.required{color:#ef4444}.form-input{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .2s;box-sizing:border-box;background:#fff}.form-input:focus{border-color:#3b82f6}.form-textarea{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s;box-sizing:border-box;background:#fff}.form-textarea:focus{border-color:#3b82f6}.cover-preview{max-width:320px;max-height:180px;border-radius:8px;margin-top:8px;object-fit:cover}.md-tabs{display:flex;gap:4px;margin-bottom:6px}.md-tab{padding:6px 16px;border:1px solid #e2e8f0;border-radius:6px 6px 0 0;background:#f8fafc;color:#64748b;font-size:.85rem;cursor:pointer;border-bottom:none}.md-tab.active{background:#fff;color:#3b82f6;border-color:#cbd5e1}.md-tabs-spacer{flex:1}.md-upload-btn{padding:6px 14px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.md-upload-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.md-upload-btn:disabled{opacity:.6;cursor:not-allowed}.md-editor{font-family:SF Mono,Fira Code,monospace;font-size:.85rem;line-height:1.7;border-radius:0 6px 6px}.markdown-preview{min-height:200px;padding:16px;border:1px solid #e2e8f0;border-radius:0 6px 6px;background:#fff}.form-actions{display:flex;gap:12px;margin-top:24px}.btn-submit{padding:10px 28px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-submit:hover:not(:disabled){background:#2563eb}.btn-submit:disabled{background:#94a3b8;cursor:not-allowed}.btn-cancel{padding:10px 28px;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem;cursor:pointer}.btn-cancel:hover{background:#f8fafc}.form-message{margin-top:16px;padding:12px 16px;border-radius:8px;font-size:.9rem}.form-message.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.form-message.error{background:#fef2f2;border:1px solid #fecaca;color:#ef4444}.publish-article-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s}.publish-article-btn:hover{opacity:.9}.member-tabs{display:flex;gap:4px;margin:0 32px 16px;background:#f1f5f9;border-radius:10px;padding:4px}.member-tab-btn{flex:1;padding:10px 20px;border:none;background:transparent;border-radius:8px;font-size:.9rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.member-tab-btn.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001a}.member-tab-btn:hover:not(.active){color:#334155}.articles-mini-list{display:flex;flex-direction:column;gap:8px}.article-mini-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.article-mini-title{flex:1;color:#1e293b;font-size:.9rem;font-weight:500;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-mini-title:hover{color:#3b82f6}.article-mini-status{font-size:.75rem;padding:2px 8px;border-radius:12px;font-weight:500}.article-mini-status.published{background:#dcfce7;color:#16a34a}.article-mini-status.rejected{background:#fef2f2;color:#ef4444}.article-mini-status.reviewing{background:#fef3c7;color:#d97706}.article-mini-reject-reason{font-size:.75rem;color:#ef4444;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-mini-time{font-size:.78rem;color:#94a3b8}.article-mini-actions{display:flex;gap:6px}.article-mini-btn{padding:4px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:.78rem;cursor:pointer;transition:all .2s}.article-mini-btn:hover{border-color:#3b82f6;color:#3b82f6}.article-mini-btn.danger:hover{border-color:#ef4444;color:#ef4444}.dropdown-divider{height:1px;background:#e2e8f0;margin:8px 0}.live-nav-entry{color:#dc2626!important;font-weight:600!important}.live-nav-entry i{color:#dc2626}.live-nav-badge{display:inline-block;background:#dc2626;color:#fff;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:3px;margin-left:6px;line-height:1.4;animation:livePulse 2s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.5}}.live-card{position:relative}.live-card-cover{width:100%;height:160px;position:relative;overflow:hidden;background:linear-gradient(135deg,#1e293b,#334155)}.live-card-cover img{width:100%;height:100%;object-fit:cover}.live-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.live-card-placeholder i{font-size:3rem;color:#ffffff4d}.live-status-tag{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;color:#fff;display:flex;align-items:center;gap:5px}.live-status-tag.live{background:#dc2626}.live-status-tag.ended{background:#64748b}.live-status-tag.upcoming{background:#f59e0b;color:#000}.live-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:livePulse 1.5s ease-in-out infinite}.live-lock-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:8px}.live-lock-overlay i{font-size:2rem}.live-lock-overlay span{font-size:.85rem}.empty-live{text-align:center;padding:80px 20px;color:#64748b}.empty-live-icon{font-size:4rem;color:#94a3b8;margin-bottom:16px}.empty-live p{font-size:1.1rem;font-weight:600;margin-bottom:8px}.empty-live span{font-size:.88rem}.live-room-page{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background:#0f172a;display:flex;flex-direction:column;color:#e2e8f0}.live-navbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0f172af2;z-index:10;flex-shrink:0}.live-nav-back{background:none;border:none;color:#e2e8f0;font-size:1.2rem;cursor:pointer;padding:4px 8px}.live-nav-title{flex:1;font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-nav-count{font-size:.8rem;color:#94a3b8}.live-video-area{position:relative;width:100%;aspect-ratio:16/9;background:#000;flex-shrink:0}.live-video{width:100%;height:100%;object-fit:contain}.live-latency-tag{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;pointer-events:none;z-index:10}.live-latency-tag.ws-flv{background:#10b981;color:#fff}.live-latency-tag.webrtc{background:#06b6d4;color:#fff}.live-latency-tag.http-flv,.live-latency-tag.hls{background:#f59e0b;color:#000}.live-video-error,.live-video-ended,.live-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;color:#94a3b8;gap:8px}.live-video-error i{font-size:2.5rem;color:#f59e0b}.live-video-ended i{font-size:2.5rem;color:#64748b}.live-loading-overlay i{font-size:2rem;color:#3b82f6}.live-no-access{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#94a3b8}.live-no-access i{font-size:4rem}.live-no-access p{font-size:1rem}.live-back-btn{background:#3b82f6;color:#fff;border:none;padding:10px 28px;border-radius:8px;font-size:.9rem;cursor:pointer;font-family:inherit}.live-chat-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#1e293b}.live-chat-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid #334155;font-size:.85rem;font-weight:600;flex-shrink:0}.live-chat-count{font-weight:400;color:#94a3b8;font-size:.75rem}.live-chat-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.live-chat-empty{text-align:center;color:#64748b;padding:40px 0;font-size:.85rem}.live-chat-msg{font-size:.85rem;line-height:1.5}.live-chat-msg.system{text-align:center}.live-chat-msg.me{text-align:right}.live-chat-msg.me .msg-user{color:#34d399;margin-right:0;margin-left:6px}.live-chat-msg .me-user{color:#34d399;font-weight:600;margin-left:6px}.msg-system-text{color:#64748b;font-size:.75rem}.msg-user{color:#3b82f6;font-weight:600;margin-right:6px}.msg-text{color:#e2e8f0;word-break:break-word}.live-chat-input{display:flex;gap:8px;padding:10px 16px;border-top:1px solid #334155;flex-shrink:0}.live-chat-input input{flex:1;background:#0f172a;border:1px solid #334155;border-radius:20px;padding:8px 14px;color:#e2e8f0;font-size:.85rem;font-family:inherit;outline:none}.live-chat-input input:focus{border-color:#3b82f6}.live-chat-input button{background:#3b82f6;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;flex-shrink:0}.live-chat-input button:disabled{opacity:.4;cursor:not-allowed}@media (min-width: 768px){.live-room-page{flex-direction:row}.live-video-area{flex:1;aspect-ratio:auto;height:100%}.live-chat-area{width:340px;flex-shrink:0}.live-navbar{position:absolute;top:0;left:0;right:0;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent)}.live-navbar{padding:10px 20px}}.bootcamp-hero{text-align:center;padding:60px 20px 48px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;margin-bottom:40px}.bootcamp-hero-title{font-size:36px;font-weight:700;margin-bottom:16px}.bootcamp-hero-subtitle{font-size:18px;opacity:.9;max-width:700px;margin:0 auto 32px;line-height:1.6}.bootcamp-hero-stats{display:flex;justify-content:center;gap:48px;flex-wrap:wrap}.bootcamp-stat-item{text-align:center}.bootcamp-stat-num{display:block;font-size:32px;font-weight:700}.bootcamp-stat-label{font-size:14px;opacity:.8}.bootcamp-category-tabs{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap;justify-content:center}.bootcamp-category-tab{padding:10px 22px;border-radius:24px;border:1.5px solid #e0e0e0;background:#fff;color:#666;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s;white-space:nowrap}.bootcamp-category-tab:hover{border-color:#667eea;color:#667eea}.bootcamp-category-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff}.bootcamp-category-tab i{margin-right:6px}@media (max-width: 640px){.bootcamp-category-tabs{gap:8px}.bootcamp-category-tab{padding:8px 16px;font-size:13px}}.bootcamp-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px;margin-bottom:40px}.bootcamp-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px #0000000f;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.bootcamp-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.bootcamp-card-cover{position:relative;height:180px;background:#f0f2ff;overflow:hidden}.bootcamp-card-cover img{width:100%;height:100%;object-fit:cover}.bootcamp-card-cover-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:48px;color:#667eea;background:linear-gradient(135deg,#e8ecff,#f0f2ff);gap:8px}.bootcamp-card-cover-placeholder i{font-size:44px}.bootcamp-card-cover-placeholder .cover-category-label{font-size:14px;font-weight:600;color:#667eea}.cover-contract{background:linear-gradient(135deg,#fce4ec,#f8bbd0);color:#c62828}.cover-contract i,.cover-contract .cover-category-label{color:#c62828}.cover-go-backend{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0}.cover-go-backend i,.cover-go-backend .cover-category-label{color:#1565c0}.cover-java-backend{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32}.cover-java-backend i,.cover-java-backend .cover-category-label{color:#2e7d32}.cover-fullstack{background:linear-gradient(135deg,#ede7f6,#d1c4e9);color:#4527a0}.cover-fullstack i,.cover-fullstack .cover-category-label{color:#4527a0}.bootcamp-card-price-tag{position:absolute;bottom:12px;right:12px;background:#000000b3;color:#fff;padding:4px 12px;border-radius:20px;font-size:14px}.bootcamp-card-price-tag .original-price{text-decoration:line-through;opacity:.6;margin-right:6px;font-size:12px}.bootcamp-card-price-tag .free-price{color:#4ade80;font-weight:600}.bootcamp-card-body{padding:20px;flex:1}.bootcamp-card-title{font-size:20px;font-weight:700;margin-bottom:8px;color:#1a1a2e}.bootcamp-card-desc{font-size:14px;color:#666;margin-bottom:12px;line-height:1.5}.bootcamp-card-features{display:flex;flex-wrap:wrap;gap:6px}.bootcamp-card-feature-tag{font-size:12px;padding:2px 10px;background:#f0f2ff;color:#667eea;border-radius:12px}.bootcamp-card-footer{padding:0 20px 20px}.bootcamp-card-btn{display:block;text-align:center;padding:10px;background:#667eea;color:#fff;border-radius:8px;font-weight:600;font-size:15px;transition:background .2s}.bootcamp-card-btn:hover{background:#5a6fd6;color:#fff}.bc-direction-tabs{display:flex;gap:4px;margin:20px 0 24px;background:#f1f5f9;padding:4px;border-radius:12px;overflow-x:auto}.bc-direction-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:500;color:#64748b;text-decoration:none;white-space:nowrap;transition:all .2s}.bc-direction-tab:hover{color:#334155;background:#e2e8f0}.bc-direction-tab.active{background:#fff;color:#2563eb;box-shadow:0 1px 3px #00000014}.bc-direction-tab i{font-size:13px;width:16px;text-align:center}.bc-detail-hero{display:flex;gap:48px;align-items:center;margin-bottom:48px;padding:40px;background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f}.bc-detail-hero-content{flex:1}.bc-detail-hero-content h1{font-size:32px;font-weight:700;margin-bottom:12px;color:#1a1a2e}.bc-detail-subtitle{font-size:16px;color:#666;line-height:1.6;margin-bottom:20px}.bc-detail-price{margin-bottom:24px}.bc-current-price{font-size:36px;font-weight:700;color:#e74c3c}.bc-original-price{font-size:20px;color:#999;text-decoration:line-through;margin-right:12px}.bc-free-price{font-size:28px;font-weight:700;color:#27ae60}.bc-hero-enroll-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:12px;cursor:pointer;box-shadow:0 4px 20px #2563eb59;transition:all .25s ease;letter-spacing:.5px}.bc-hero-enroll-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 6px 28px #2563eb73;transform:translateY(-2px)}.bc-hero-enroll-btn:active{transform:translateY(0)}.bc-hero-enroll-btn i{font-size:16px;transition:transform .2s}.bc-hero-enroll-btn:hover i{transform:translate(4px)}.enroll-page{max-width:1020px;margin:0 auto 48px}.enroll-summary{display:flex;gap:32px;background:#fff;border:1px solid #eef2f6;border-radius:16px;padding:32px;margin-bottom:28px}.enroll-summary-left{display:flex;gap:20px;flex:1;min-width:0}.enroll-summary-cover{width:120px;height:120px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f1f5f9}.enroll-summary-cover img{width:100%;height:100%;object-fit:cover}.enroll-summary-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:36px;color:#667eea;background:#eff6ff}.enroll-summary-info{flex:1;min-width:0}.enroll-summary-cat{display:inline-block;padding:2px 10px;background:#eff6ff;color:#2563eb;border-radius:4px;font-size:12px;font-weight:500;margin-bottom:8px}.enroll-summary-info h1{font-size:22px;font-weight:700;color:#1e293b;margin-bottom:6px}.enroll-summary-subtitle{font-size:14px;color:#64748b;margin-bottom:14px}.enroll-summary-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.enroll-summary-meta-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.enroll-summary-meta-item i{color:#2563eb}.enroll-summary-price{margin-left:auto;display:flex;align-items:baseline;gap:8px}.enroll-original{font-size:16px;color:#94a3b8;text-decoration:line-through}.enroll-current{font-size:28px;font-weight:700;color:#dc2626}.enroll-summary-right{width:260px;flex-shrink:0}.enroll-feature-list{display:flex;flex-direction:column;gap:8px}.enroll-feature-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.enroll-feature-item i{color:#22c55e;font-size:12px}.enroll-content{display:flex;gap:28px;align-items:flex-start}.enroll-main{flex:1;min-width:0}.enroll-sidebar{width:300px;flex-shrink:0;position:sticky;top:80px}.enroll-card{background:#fff;border:1px solid #eef2f6;border-radius:14px;padding:28px;margin-bottom:20px}.enroll-card-title{font-size:17px;font-weight:600;color:#1e293b;margin-bottom:6px;display:flex;align-items:center;gap:8px}.enroll-card-title i{color:#2563eb}.enroll-card-desc{font-size:13px;color:#94a3b8;margin-bottom:18px}.enroll-phases{display:flex;flex-direction:column;gap:12px}.enroll-phase-option{border:2px solid #e2e8f0;border-radius:12px;padding:18px 20px;cursor:pointer;transition:all .2s;position:relative}.enroll-phase-option:hover{border-color:#93c5fd;background:#f8fafc}.enroll-phase-option.selected{border-color:#2563eb;background:#eff6ff}.enroll-phase-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.enroll-phase-num{font-weight:700;color:#1e293b;font-size:15px}.enroll-phase-latest{display:inline-block;padding:1px 8px;background:#dc2626;color:#fff;border-radius:4px;font-size:11px;font-weight:600}.enroll-phase-info{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:#64748b}.enroll-phase-info i{color:#94a3b8;margin-right:4px}.enroll-phase-check{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#2563eb;font-size:22px}.enroll-form-row{display:flex;gap:14px;margin-bottom:14px}.enroll-form-group{flex:1;margin-bottom:14px}.enroll-form-group label{display:block;font-size:13px;font-weight:600;color:#475569;margin-bottom:6px}.required{color:#dc2626}.enroll-input,.enroll-textarea{width:100%;padding:10px 14px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;color:#334155;background:#f8fafc;transition:border .15s;outline:none;font-family:inherit}.enroll-input:focus,.enroll-textarea:focus{border-color:#2563eb;background:#fff}.enroll-textarea{resize:vertical;min-height:80px}.enroll-submit-area{text-align:center;padding:10px 0 32px}.enroll-agreement{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#64748b;margin-bottom:16px}.enroll-agreement a{color:#2563eb;text-decoration:none}.enroll-submit-btn{display:inline-flex;align-items:center;gap:8px;padding:16px 56px;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:12px;cursor:pointer;box-shadow:0 4px 20px #2563eb4d;transition:all .25s;letter-spacing:.5px}.enroll-submit-btn:hover:not(:disabled){box-shadow:0 6px 28px #2563eb73;transform:translateY(-2px)}.enroll-submit-btn:disabled{background:#cbd5e1;color:#94a3b8;cursor:not-allowed;box-shadow:none}.enroll-sidebar-card{background:#fff;border:1px solid #eef2f6;border-radius:14px;padding:24px;margin-bottom:16px}.enroll-sidebar-card h3{font-size:15px;font-weight:600;color:#1e293b;margin-bottom:16px;display:flex;align-items:center;gap:8px}.enroll-sidebar-card h3 i{color:#2563eb}.enroll-qr-box{width:180px;height:180px;margin:0 auto 12px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center}.enroll-qr-box img{width:100%;height:100%;object-fit:contain}.enroll-qr-placeholder{flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px}.enroll-qr-placeholder p{font-size:13px;color:#64748b}.enroll-qr-id{font-size:14px}.enroll-qr-tip{font-size:13px;color:#475569;text-align:center;margin-bottom:4px}.enroll-qr-desc{font-size:12px;color:#94a3b8;text-align:center}.enroll-perks{list-style:none;display:flex;flex-direction:column;gap:10px}.enroll-perks li{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.enroll-perks li i{color:#22c55e;font-size:12px;width:16px;text-align:center}.enroll-timeline{display:flex;flex-direction:column;gap:0}.enroll-timeline-item{display:flex;gap:14px;padding-bottom:18px;position:relative}.enroll-timeline-item:not(:last-child):after{content:"";position:absolute;left:6px;top:22px;width:1.5px;height:calc(100% - 4px);background:#e2e8f0}.enroll-timeline-dot{width:14px;height:14px;border-radius:50%;background:#2563eb;border:3px solid #dbeafe;flex-shrink:0;margin-top:2px}.enroll-timeline-content strong{display:block;font-size:13px;color:#1e293b}.enroll-timeline-content p{font-size:12px;color:#94a3b8;margin:2px 0 0}.enroll-success-modal{text-align:center;padding:32px!important}.enroll-success-icon{font-size:56px;color:#22c55e;margin-bottom:16px}.enroll-success-modal h2{font-size:22px;color:#1e293b;margin-bottom:8px}.enroll-success-modal p{font-size:15px;color:#64748b;margin-bottom:24px}.enroll-success-actions{display:flex;gap:12px;justify-content:center}.enroll-success-btn{padding:10px 28px;border-radius:8px;font-size:14px;font-weight:600;border:1px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer}.enroll-success-btn.primary{background:#2563eb;color:#fff;border-color:#2563eb}.bc-detail-hero-cover{width:360px;height:240px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f0f2ff}.bc-detail-hero-cover img{width:100%;height:100%;object-fit:cover}.bc-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:64px;color:#667eea}.bc-section{margin-bottom:48px}.bc-section-title{font-size:24px;font-weight:700;margin-bottom:24px;color:#1a1a2e;padding-bottom:12px;border-bottom:2px solid #667eea;display:inline-block}.bc-features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.bc-feature-card{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000a}.bc-feature-card i{color:#27ae60;font-size:20px}.bc-audience-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.bc-audience-card{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#f8f9ff;border-radius:10px;border-left:4px solid #667eea}.bc-audience-card i{color:#667eea;font-size:20px}.bc-syllabus{border-radius:12px;overflow:hidden}.bc-syllabus-module{background:#fff;border:1px solid #eee;margin-bottom:8px;border-radius:8px;overflow:hidden}.bc-syllabus-module-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;transition:background .2s}.bc-syllabus-module-header:hover{background:#f8f9ff}.bc-syllabus-module-info{display:flex;align-items:flex-start;gap:16px}.bc-syllabus-module-num{font-size:20px;font-weight:700;color:#667eea;min-width:36px}.bc-syllabus-module-info h3{font-size:16px;font-weight:600;margin-bottom:4px}.bc-syllabus-module-info p{font-size:13px;color:#888}.bc-syllabus-topics{padding:0 20px 16px 72px}.bc-syllabus-topic{display:flex;align-items:center;padding:8px 0;border-bottom:1px dashed #f0f0f0}.bc-syllabus-topic i{font-size:6px;color:#667eea;margin-right:12px}.bc-topic-title{flex:1;font-size:14px;color:#333}.bc-topic-duration{font-size:13px;color:#999;margin-left:12px}.bc-instructors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.bc-instructor-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000a;display:flex;gap:16px;align-items:flex-start}.bc-instructor-avatar{width:64px;height:64px;border-radius:50%;background:#f0f2ff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.bc-instructor-avatar img{width:100%;height:100%;object-fit:cover}.bc-instructor-avatar i{font-size:28px;color:#667eea}.bc-instructor-info h3{font-size:17px;font-weight:600;margin-bottom:4px}.bc-instructor-title{display:block;font-size:13px;color:#667eea;margin-bottom:8px}.bc-instructor-bio{font-size:13px;color:#666;line-height:1.5}.bc-enroll-section{background:#f8f9ff;padding:32px;border-radius:16px}.bc-phases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.bc-phase-card{background:#fff;border-radius:12px;padding:24px;border:2px solid #eee;transition:border-color .2s}.bc-phase-card.bc-phase-featured{border-color:#667eea}.bc-phase-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.bc-phase-num{font-size:14px;font-weight:600;color:#667eea;background:#f0f2ff;padding:2px 10px;border-radius:12px}.bc-phase-latest{font-size:12px;color:#fff;background:#667eea;padding:1px 8px;border-radius:10px}.bc-phase-card h3{font-size:20px;font-weight:700;margin-bottom:16px}.bc-phase-details{margin-bottom:20px}.bc-phase-detail-item{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:14px;color:#555}.bc-phase-detail-item i{color:#667eea;width:16px}.bc-enroll-btn{width:100%;padding:12px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;background:#667eea;color:#fff;transition:background .2s}.bc-enroll-btn:hover{background:#5a6fd6}.bc-enroll-btn:disabled{background:#ccc;cursor:not-allowed}.bc-description{background:#fff;padding:32px;border-radius:12px}.bc-intro h2,.bc-highlights h2,.bc-why h2{font-size:20px;font-weight:700;color:#1a1a2e;margin-bottom:16px}.bc-intro p{font-size:15px;color:#475569;line-height:1.9;margin-bottom:12px}.bc-intro strong{color:#2563eb}.bc-learn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.bc-learn-item{display:flex;gap:12px;padding:16px;background:#f8fafc;border-radius:10px;border:1px solid #f1f5f9}.bc-learn-item i{color:#2563eb;font-size:18px;margin-top:2px;flex-shrink:0}.bc-learn-item strong{display:block;font-size:15px;color:#1e293b;margin-bottom:4px}.bc-learn-item p{font-size:13px;color:#64748b;line-height:1.6;margin:0}.bc-why{margin-top:24px}.bc-why-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.bc-why-item{display:flex;gap:12px;padding:20px;background:linear-gradient(135deg,#f8fafc,#eff6ff);border-radius:10px;border:1px solid #e0e7ff}.bc-why-item i{color:#2563eb;font-size:24px;flex-shrink:0;margin-top:2px}.bc-why-item strong{display:block;font-size:15px;color:#1e293b;margin-bottom:4px}.bc-why-item p{font-size:13px;color:#64748b;line-height:1.6;margin:0}@media (max-width: 768px){.bc-learn-grid,.bc-why-list{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.modal-card{background:#fff;border-radius:12px;max-width:480px;width:90%;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.modal-header h3{font-size:18px;font-weight:700}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#999}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:12px}.enroll-confirm-info{background:#f8f9ff;padding:16px;border-radius:8px;margin-bottom:16px}.enroll-confirm-info p{margin-bottom:6px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:600;font-size:14px}.form-group .optional{font-weight:400;color:#999;font-size:12px}.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;resize:vertical;font-family:inherit}.form-group textarea:focus{outline:none;border-color:#667eea}.bootcamp-category-intro{margin-bottom:32px}.category-intro-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.category-intro-content{padding:32px}.category-intro-content h2{font-size:24px;font-weight:700;color:#1a1a2e;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f0f2ff}.category-intro-desc{font-size:15px;line-height:1.8;color:#444}.category-intro-desc h3{font-size:17px;font-weight:600;margin:20px 0 10px;color:#333}.category-intro-desc ul{margin:8px 0;padding-left:20px}.category-intro-desc li{margin-bottom:6px}.category-intro-desc strong{color:#1a1a2e}.bootcamp-card-phase{margin-top:16px;padding-top:14px;border-top:1px solid #f0f0f0}.phase-badge{display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3px 14px;border-radius:12px;font-size:13px;font-weight:600;margin-bottom:10px}.phase-info-grid{display:flex;flex-direction:column;gap:6px}.phase-info-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#666}.phase-info-item i{width:16px;text-align:center;color:#667eea;font-size:12px}.phase-info-item strong{color:#333;font-weight:600}.cover-ai-frontend{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#1b5e20}.cover-ai-frontend i,.cover-ai-frontend .cover-category-label{color:#1b5e20}.job-hero{text-align:center;padding:48px 16px 32px;background:linear-gradient(135deg,#eff6ff,#f0f9ff);border-radius:12px;margin:20px 0 24px}.job-hero-title{font-size:32px;font-weight:700;color:#1e293b;margin-bottom:8px}.job-hero-subtitle{color:#64748b;font-size:16px;margin-bottom:20px}.job-hero-actions{display:flex;justify-content:center;gap:12px}.job-post-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;transition:background .2s}.job-post-btn:hover{background:#1d4ed8;color:#fff}.job-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.job-filter-left{display:flex;gap:12px}.job-filter-select{padding:8px 32px 8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:14px;color:#334155;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%2394a3b8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.job-filter-select:focus{outline:none;border-color:#2563eb}.job-search-input-wrap{display:flex;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:0 12px;width:280px}.job-search-input-wrap i{color:#94a3b8;margin-right:8px}.job-search-input{border:none;outline:none;padding:8px 0;font-size:14px;width:100%;background:transparent}.job-list{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.job-card{background:#fff;border:1px solid #eef2f6;border-radius:12px;padding:20px 24px;transition:box-shadow .2s,border-color .2s;cursor:default}.job-card:hover{box-shadow:0 4px 12px #0000000f;border-color:#dde4ef}.job-card-main{display:flex;align-items:flex-start;gap:16px}.job-card-logo{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#f1f5f9}.job-card-logo img{width:100%;height:100%;object-fit:cover}.job-card-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#2563eb;background:#eff6ff}.job-card-info{flex:1;min-width:0}.job-card-title{font-size:16px;font-weight:600;color:#1e293b;margin-bottom:8px}.job-card-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:#64748b;margin-bottom:8px}.job-card-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.job-card-meta i{width:14px;text-align:center}.job-card-salary{color:#e03131;font-weight:600}.job-card-tags{display:flex;flex-wrap:wrap;gap:6px}.job-card-tag{display:inline-block;padding:2px 10px;background:#f1f5f9;color:#475569;border-radius:4px;font-size:12px}.job-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.job-cat-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:500}.cat-dev{background:#eff6ff;color:#2563eb}.cat-product{background:#fef3c7;color:#d97706}.cat-design{background:#fce7f3;color:#db2777}.cat-marketing{background:#ecfdf5;color:#059669}.cat-operation{background:#fef2f2;color:#dc2626}.cat-other{background:#f1f5f9;color:#64748b}.job-card-date{font-size:12px;color:#94a3b8;text-align:right}.form-row{display:flex;gap:16px}.form-half{flex:1}.job-empty{text-align:center;padding:80px 24px;background:#fff;border:1px solid #eef2f6;border-radius:12px;margin-bottom:32px}.job-empty-icon{width:80px;height:80px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.job-empty-icon i{font-size:32px;color:#94a3b8}.job-empty-title{font-size:18px;font-weight:600;color:#334155;margin-bottom:8px}.job-empty-desc{font-size:14px;color:#94a3b8;margin-bottom:24px}.job-empty-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;transition:background .2s}.job-empty-btn:hover{background:#1d4ed8;color:#fff}.job-post-btn-login{background:#e2e8f0;color:#475569}.job-post-btn-login:hover{background:#cbd5e1;color:#334155}.job-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px 0 48px;flex-wrap:wrap}.job-pagination-total{font-size:14px;color:#64748b}.job-pagination-total strong{color:#334155}.job-pagination-info{font-size:13px;color:#94a3b8}.job-pagination-btns{display:flex;align-items:center;gap:4px}.job-pagination-btn{width:36px;height:36px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .15s}.job-pagination-btn:hover:not(:disabled){border-color:#2563eb;color:#2563eb}.job-pagination-btn:disabled{color:#cbd5e1;cursor:not-allowed;background:#f8fafc}.job-pagination-num{min-width:36px;height:36px;padding:0 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;cursor:pointer;font-size:14px;font-weight:500;transition:all .15s}.job-pagination-num:hover{border-color:#2563eb;color:#2563eb}.job-pagination-num.active{background:#2563eb;color:#fff;border-color:#2563eb}.job-pagination-ellipsis{padding:0 4px;color:#94a3b8}a.job-card{text-decoration:none;color:inherit;display:block}a.job-card:hover{color:inherit}.job-detail{max-width:860px;margin:0 auto 48px}.jd-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:#fff;border:1px solid #eef2f6;border-radius:12px;padding:32px;margin-bottom:20px}.jd-header-left{display:flex;gap:20px;flex:1;min-width:0}.jd-company-logo{width:64px;height:64px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f1f5f9}.jd-company-logo img{width:100%;height:100%;object-fit:cover}.jd-company-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#2563eb;background:#eff6ff}.jd-header-info{flex:1;min-width:0}.jd-title{font-size:24px;font-weight:700;color:#1e293b;line-height:1.3;margin-bottom:8px}.jd-company-name{font-size:16px;color:#64748b;margin-bottom:12px}.jd-meta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.jd-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:14px;color:#64748b}.jd-meta-item i{width:14px;text-align:center;color:#94a3b8}.jd-salary{color:#e03131;font-weight:600}.jd-tags{display:flex;flex-wrap:wrap;gap:6px}.jd-tag{display:inline-block;padding:3px 12px;background:#f1f5f9;color:#475569;border-radius:6px;font-size:13px}.jd-header-right{flex-shrink:0}.jd-cat-badge{display:inline-block;padding:6px 16px;border-radius:8px;font-size:14px;font-weight:600}.jd-body{display:flex;flex-direction:column;gap:16px}.jd-section{background:#fff;border:1px solid #eef2f6;border-radius:12px;padding:28px 32px}.jd-section-title{font-size:18px;font-weight:600;color:#1e293b;margin-bottom:16px;display:flex;align-items:center;gap:8px}.jd-section-title i{color:#2563eb;width:20px;text-align:center}.jd-section-content{font-size:15px;color:#475569;line-height:1.8}.jd-section-content ul,.jd-section-content ol{padding-left:20px;margin:8px 0}.jd-section-content li{margin-bottom:6px}.jd-section-content h1,.jd-section-content h2,.jd-section-content h3{margin-top:16px;margin-bottom:8px;color:#1e293b}.jd-contact-list{display:flex;flex-direction:column;gap:10px}.jd-contact-item{display:inline-flex;align-items:center;gap:8px;font-size:15px}.jd-contact-item i{color:#2563eb;width:18px;text-align:center}.jd-contact-item a{color:#2563eb;text-decoration:none}.jd-contact-item a:hover{text-decoration:underline}.jd-footer{text-align:center;padding:32px 0}.jd-back-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border:1px solid #e2e8f0;border-radius:8px;color:#475569;text-decoration:none;font-size:14px;transition:all .15s}.jd-back-btn:hover{border-color:#2563eb;color:#2563eb;background:#f8fafc}@media (max-width: 768px){.jd-header{flex-direction:column;padding:20px}.jd-header-left{flex-direction:column;align-items:center;text-align:center}.jd-meta,.jd-tags{justify-content:center}.jd-header-right{align-self:center}.jd-section{padding:20px}.job-pagination{flex-direction:column;gap:8px}.jd-title{font-size:20px}.bootcamp-hero{padding:40px 16px 32px}.bootcamp-hero-title{font-size:26px}.bootcamp-hero-stats{gap:24px}.bootcamp-stat-num{font-size:24px}.bc-detail-hero{flex-direction:column;padding:24px;gap:24px}.bc-detail-hero-cover{width:100%;height:200px}.bootcamp-cards-grid,.bc-phases-grid,.bc-instructors-grid,.bc-features-grid,.bc-audience-grid{grid-template-columns:1fr}.job-card-main{flex-wrap:wrap}.job-card-right{flex-direction:row;align-items:center;width:100%}.job-filter-bar{flex-direction:column}.job-search-input-wrap{width:100%}}
