.tutorial-breadcrumb{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#888;margin-bottom:25px}.tutorial-breadcrumb a{color:#888;text-decoration:none;transition:color .2s}.tutorial-breadcrumb a:hover{color:var(--primary)}.tutorial-breadcrumb .separator{color:#555;font-size:.75rem}.tutorial-breadcrumb .current{color:#ccc}.tutorial-header{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:30px;transition:all .3s}.tutorial-header:hover{box-shadow:0 8px 30px rgba(147,51,234,.1)}.tutorial-header-grid{display:grid;grid-template-columns:2fr 1fr}@media (max-width:1024px){.tutorial-header-grid{grid-template-columns:1fr}}.tutorial-header-info{padding:24px 32px}@media (min-width:768px){.tutorial-header-info{padding:32px 40px}}.tutorial-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.tutorial-badge{padding:5px 14px;border-radius:20px;font-size:.8rem;font-weight:500;display:inline-flex;align-items:center;gap:5px}.badge-hot{background:rgba(249,115,22,.15);color:#f97316}.badge-update{background:rgba(59,130,246,.15);color:#3b82f6}.badge-rating{background:rgba(34,197,94,.15);color:#22c55e}.badge-rating .fa-star{color:#facc15}.tutorial-title{font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:16px;line-height:1.4}@media (min-width:768px){.tutorial-title{font-size:1.875rem}}.tutorial-desc{color:#999;font-size:.95rem;line-height:1.7;margin-bottom:25px}.tutorial-author-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:25px}.tutorial-author{display:flex;align-items:center;gap:12px}.tutorial-author-avatar{-o-object-fit:cover;object-fit:cover}.tutorial-author-avatar,.tutorial-author-avatar-text{width:48px;height:48px;border-radius:50%;border:2px solid hsla(0,0%,100%,.1)}.tutorial-author-avatar-text{background:linear-gradient(135deg,var(--primary),#ec4899);display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff}.tutorial-author-info{display:flex;flex-direction:column;gap:2px}.tutorial-author-name{font-weight:600;color:#fff;font-size:1rem}.tutorial-author-title{color:#777;font-size:.85rem}.tutorial-actions{display:flex;gap:12px;margin-left:auto}.btn-bookmark{padding:10px 20px;border:1px solid var(--border);background:transparent;color:#999;border-radius:25px;font-size:.9rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:8px}.btn-bookmark:hover{border-color:var(--primary);color:var(--primary)}.btn-bookmark-active i{color:#fbbf24}.btn-start-learn{padding:10px 24px;background:var(--primary);color:#fff;border:none;border-radius:25px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:8px;text-decoration:none}.btn-start-learn:hover{background:var(--primary-dark);box-shadow:0 5px 20px rgba(147,51,234,.4)}.tutorial-stats-row{display:flex;flex-wrap:wrap;gap:25px;color:#888;font-size:.9rem}.tutorial-stat{display:flex;align-items:center;gap:8px}.tutorial-stat i{color:var(--primary)}.tutorial-cover{position:relative;min-height:280px;background:linear-gradient(135deg,#2e1065,#7e22ce);display:flex;align-items:center;justify-content:center}.tutorial-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.tutorial-cover-icon{font-size:5rem;color:hsla(0,0%,100%,.15)}@media (max-width:1024px){.tutorial-cover{min-height:200px;order:-1}}.tutorial-intro{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:40px;transition:all .3s}.tutorial-intro:hover{box-shadow:0 8px 24px rgba(147,51,234,.08)}.tutorial-intro-title{font-size:1.25rem;font-weight:700;color:#fff;margin-bottom:16px;display:flex;align-items:center;gap:8px}.tutorial-intro-title i{color:var(--primary)}.tutorial-intro-content{color:#9ca3af;line-height:1.75;font-size:.95rem}.tutorial-intro-content p{margin-bottom:16px}.tutorial-intro-content h4{color:#e5e7eb;font-size:1.125rem;font-weight:600;margin-top:24px;margin-bottom:12px}.tutorial-intro-content ul{list-style:disc;padding-left:20px;margin:0 0 16px}.tutorial-intro-content li{padding:2px 0;color:#9ca3af}.tutorial-intro-content li::marker{color:var(--primary)}.chapter-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:20px}.chapter-section-title{font-size:1.5rem;font-weight:700;color:#fff}.chapter-controls-right{display:flex;gap:15px;align-items:center}.chapter-sort-select{padding:10px 35px 10px 15px;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:#ccc;font-size:.9rem;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 fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.chapter-sort-select:focus{outline:none;border-color:var(--primary)}.chapter-search{position:relative}.chapter-search input{padding:10px 15px 10px 40px;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:#ccc;font-size:.9rem;width:220px}.chapter-search input:focus{outline:none;border-color:var(--primary)}.chapter-search input::-moz-placeholder{color:#666}.chapter-search input::placeholder{color:#666}.chapter-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#666}@media (max-width:768px){.chapter-search{display:none}}.chapter-list{display:flex;flex-direction:column;gap:16px;margin-bottom:48px}.chapter-card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .3s;box-shadow:0 4px 12px rgba(0,0,0,.15)}.chapter-completed-badge{position:absolute;top:-1px;right:-1px;padding:6px 16px 6px 12px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:.75rem;font-weight:600;z-index:10;border-radius:0 12px 0 12px;box-shadow:0 2px 8px rgba(34,197,94,.4);display:flex;align-items:center;gap:4px}.chapter-completed-badge i{font-size:.7rem}.chapter-card:hover{border-color:rgba(147,51,234,.4);box-shadow:0 8px 24px rgba(147,51,234,.15)}.chapter-card-grid{display:grid;grid-template-columns:minmax(60px,1fr) 3fr 6fr 2fr;grid-template-areas:"num cover content action";align-items:stretch}.chapter-number{grid-area:num}.chapter-thumb{grid-area:cover}.chapter-content{grid-area:content}.chapter-action{grid-area:action}@media (max-width:1024px){.chapter-card-grid{grid-template-columns:60px 1fr;grid-template-areas:"num cover" "content content" "action action"}.chapter-thumb{height:140px}.chapter-action{border-left:none;border-top:1px solid var(--border);justify-content:flex-end}}@media (max-width:768px){.chapter-card-grid{grid-template-columns:1fr;grid-template-areas:"num" "cover" "content" "action"}.chapter-number{padding:12px 16px;border-right:none;border-bottom:1px solid var(--border);justify-content:flex-start;font-size:1rem}.chapter-thumb{height:180px}.chapter-action{padding:16px 20px;border-top:1px solid var(--border)}.chapter-action a,.chapter-action button{width:100%;max-width:280px;justify-content:center}}.chapter-number{display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.05);border-right:2px solid var(--border);font-size:1.125rem;font-weight:700;color:var(--primary);padding:16px;min-width:60px}.chapter-thumb{position:relative;aspect-ratio:16/9;min-height:120px}.chapter-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.chapter-thumb-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#1a1a2e,#2d1b4e);display:flex;align-items:center;justify-content:center}.chapter-thumb-placeholder i{font-size:2.5rem;color:rgba(147,51,234,.3)}.chapter-thumb-badge{position:absolute;top:10px;left:10px;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:800;z-index:2;background:linear-gradient(90deg,gold,#f59e0b);color:#000;box-shadow:0 2px 5px rgba(0,0,0,.2)}.thumb-badge-coming{background:#6b7280;color:#fff}.chapter-thumb-completed{position:absolute;top:10px;right:10px;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;z-index:2;background:linear-gradient(90deg,#22c55e,#16a34a);color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2)}.chapter-content{padding:24px 20px;display:flex;flex-direction:column;justify-content:center}.chapter-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chapter-tag{padding:4px 8px;border-radius:9999px;font-size:.75rem;font-weight:500}.tag-level-easy{background:rgba(59,130,246,.15);color:#60a5fa}.tag-level-medium{background:rgba(234,179,8,.15);color:#fbbf24}.tag-level-hard{background:rgba(239,68,68,.15);color:#f87171}.tag-type{background:rgba(147,51,234,.15);color:#a78bfa}.chapter-name{font-size:1.125rem;font-weight:700;color:#fff;margin-bottom:8px;transition:color .2s;text-decoration:none;display:block}.chapter-name:hover{color:var(--primary)}.chapter-summary{color:#9ca3af;font-size:.875rem;line-height:1.5;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chapter-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.875rem;color:#6b7280;margin-top:auto}.chapter-meta span{display:flex;align-items:center;gap:4px}.chapter-meta .fa-star{color:#facc15}.chapter-action{display:flex;align-items:center;justify-content:center;padding:16px;border-left:1px solid var(--border)}@media (max-width:768px){.chapter-action{justify-content:flex-end;padding:16px 20px}}.btn-chapter-learn{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s;text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 4px 6px rgba(147,51,234,.25)}.btn-chapter-learn:hover{box-shadow:0 8px 15px rgba(147,51,234,.4);transform:translateY(-1px)}.btn-chapter-locked{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;box-shadow:0 4px 6px rgba(147,51,234,.25);transition:all .3s}.btn-chapter-locked:hover{box-shadow:0 8px 15px rgba(147,51,234,.4)}.btn-chapter-coming{padding:8px 16px;background:hsla(0,0%,100%,.05);color:#6b7280;border:none;border-radius:8px;font-size:.875rem;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:not-allowed}.chapter-pagination{gap:8px;margin-bottom:50px}.chapter-pagination,.page-btn{display:flex;justify-content:center}.page-btn{width:40px;height:40px;align-items:center;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:#888;font-size:.9rem;cursor:pointer;transition:all .3s;text-decoration:none}.page-btn:hover{border-color:var(--primary);color:var(--primary)}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-ellipsis{width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#666}.related-section{margin-bottom:50px}.related-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.related-title{font-size:1.5rem;font-weight:700;color:#fff}.related-more{color:var(--primary);text-decoration:none;font-size:.9rem;display:flex;align-items:center;gap:5px}.related-more:hover{text-decoration:underline}.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}@media (max-width:1200px){.related-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.related-grid{grid-template-columns:1fr}}.related-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .3s}.related-card:hover{border-color:rgba(147,51,234,.5);transform:translateY(-5px)}.related-card-cover{height:140px;position:relative;background:linear-gradient(135deg,#1a1a2e,#2d1b4e)}.related-card-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.related-card-badge{position:absolute;top:10px;right:10px;padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:600;background:rgba(147,51,234,.9);color:#fff}.related-card-body{padding:18px}.related-card-tags{display:flex;gap:8px;margin-bottom:12px}.related-card-tag{padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:500}.related-tag-level{background:rgba(168,85,247,.15);color:#a855f7}.related-tag-member{background:rgba(239,68,68,.15);color:#ef4444}.related-tag-free{background:rgba(34,197,94,.15);color:#22c55e}.related-tag-category{background:hsla(220,9%,46%,.15);color:#9ca3af}.related-card-title{font-size:1rem;font-weight:600;color:#fff;margin-bottom:8px;text-decoration:none;display:block;transition:color .2s}.related-card-title:hover{color:var(--primary)}.related-card-desc{color:#888;font-size:.85rem;line-height:1.5;margin-bottom:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-card-footer{display:flex;justify-content:space-between;align-items:center}.related-card-author{display:flex;align-items:center;gap:8px}.related-card-author img,.related-card-author-avatar{width:28px;height:28px;border-radius:50%}.related-card-author-avatar{background:linear-gradient(135deg,var(--primary),#ec4899);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff}.related-card-author span{font-size:.85rem;color:#999}.related-card-count{font-size:.85rem;color:#666}.member-cta{background:linear-gradient(135deg,var(--primary),#7e22ce);border-radius:20px;overflow:hidden;margin-bottom:50px}.member-cta-grid{display:grid;grid-template-columns:1fr 400px}@media (max-width:900px){.member-cta-grid{grid-template-columns:1fr}.member-cta-image{display:none}}.member-cta-content{padding:45px 50px;color:#fff}.member-cta-badge{display:inline-block;padding:6px 16px;background:hsla(0,0%,100%,.2);border-radius:20px;font-size:.85rem;margin-bottom:20px}.member-cta-title{font-size:2rem;font-weight:800;margin-bottom:15px}.member-cta-desc{font-size:1rem;opacity:.9;margin-bottom:25px;line-height:1.6}.member-cta-list{list-style:none;padding:0;margin:0 0 30px}.member-cta-list li{padding:8px 0;display:flex;align-items:center;gap:12px}.member-cta-list i{color:#86efac}.member-cta-buttons{display:flex;gap:15px;flex-wrap:wrap}.btn-cta-primary{padding:14px 32px;background:#fff;color:var(--primary);border:none;border-radius:30px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s;text-decoration:none}.btn-cta-primary:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.3)}.btn-cta-secondary{padding:14px 32px;background:hsla(0,0%,100%,.2);color:#fff;border:none;border-radius:30px;font-size:1rem;cursor:pointer;transition:all .3s;text-decoration:none}.btn-cta-secondary:hover{background:hsla(0,0%,100%,.3)}.member-cta-image{position:relative}.member-cta-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.tutorial-progress{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:20px 25px;margin-bottom:30px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-title{font-weight:600;color:#fff;display:flex;align-items:center;gap:8px}.progress-title i{color:var(--primary)}.progress-text{color:#888;font-size:.9rem}.progress-bar{width:100%;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),#ec4899);border-radius:4px;transition:width .5s ease}.empty-chapters{text-align:center;padding:60px 30px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;color:#888}.empty-chapters i{font-size:3rem;color:#555;margin-bottom:15px;display:block}.reviews-section{margin-bottom:50px}.reviews-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:25px}.reviews-title{font-size:1.5rem;font-weight:700;color:#fff}.reviews-summary{display:flex;align-items:center;gap:12px}.reviews-score{font-size:2rem;font-weight:800;color:#f59e0b}.reviews-stars{display:flex;gap:3px;color:#f59e0b}.reviews-count{color:#888;font-size:.9rem}.reviews-list{display:flex;flex-direction:column;gap:16px;margin-bottom:25px}.review-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:20px 25px;transition:all .3s}.review-card:hover{border-color:rgba(147,51,234,.3)}.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.review-author{gap:12px}.review-author,.review-avatar{display:flex;align-items:center}.review-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#ec4899);justify-content:center;font-size:1rem;font-weight:600;color:#fff}.review-author-info{display:flex;flex-direction:column;gap:3px}.review-author-name{font-weight:600;color:#fff;font-size:.95rem}.review-date{color:#666;font-size:.8rem}.review-rating{display:flex;gap:3px;color:#f59e0b;font-size:.85rem}.review-content{color:#999;font-size:.95rem;line-height:1.7}.reviews-more{text-align:center}.btn-load-more{padding:12px 32px;background:transparent;border:1px solid var(--border);color:#999;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .3s}.btn-load-more:hover{border-color:var(--primary);color:var(--primary)}.review-form-box{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:20px;margin-top:25px}.rating-select-v2{margin-bottom:12px;display:flex;align-items:center}.rating-select-v2 span{color:#888;margin-right:10px;font-size:.95rem}.rating-select-v2 i{color:#f59e0b;cursor:pointer;margin-right:6px;font-size:1.2rem;transition:transform .15s}.rating-select-v2 i:hover{transform:scale(1.2)}.rating-score-display{color:#f59e0b!important;font-weight:600;margin-left:4px}.review-form-box .review-textarea-v2{width:100%;min-height:100px;padding:15px;background:transparent;border:none;color:#fff;font-size:.95rem;resize:vertical;margin-bottom:15px;outline:none}.review-error{color:#ef4444;font-size:.85rem;margin-bottom:10px}.review-form-footer{display:flex;justify-content:flex-end}.btn-submit-comment{background:var(--primary);color:#fff;border:none;padding:8px 24px;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-submit-comment:hover{box-shadow:0 4px 12px rgba(147,51,234,.4)}.btn-submit-comment:disabled{opacity:.6;cursor:not-allowed}@media (max-width:600px){.tutorial-header-info{padding:20px}.tutorial-title{font-size:1.4rem}.tutorial-author-row{flex-direction:column;align-items:flex-start}.tutorial-actions{width:100%;margin-left:0}.tutorial-actions .btn-start-learn{flex:1;justify-content:center}.tutorial-stats-row{gap:15px}.chapter-content{padding:15px}.member-cta-content{padding:30px 25px}.member-cta-title{font-size:1.5rem}}