.courses-page{padding-bottom:48px}.courses-head{margin:20px 0 16px}.courses-title{color:var(--color-dark);font-size:24px;font-weight:800;margin-bottom:6px}.courses-lead{color:var(--color-text-muted);margin-bottom:0}.courses-layout{align-items:start;display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:992px){.courses-layout{grid-template-columns:270px minmax(0,1fr)}.courses-sidebar{position:sticky;top:16px}}.courses-toolbar{margin-bottom:12px}.courses-toolbar-btn{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text);display:inline-flex;font-size:14px;gap:8px;padding:8px 16px}.courses-toolbar-badge{background:var(--color-primary);border-radius:var(--radius-pill);color:var(--color-white);font-size:12px;min-width:20px;padding:0 6px;text-align:center}.courses-filters{background:var(--color-white);border:1px solid var(--color-border-card);border-radius:var(--radius-md);padding:4px 16px 16px}.courses-filter-block{border-bottom:1px solid var(--color-line);padding:14px 0}.courses-filter-title{color:var(--color-dark);display:block;font-size:14px;font-weight:800;margin-bottom:10px}.courses-filter-list{list-style:none;margin:0;max-height:220px;overflow-y:auto;padding:0}.courses-check{align-items:center;color:var(--color-text);cursor:pointer;display:flex;font-size:14px;gap:8px;padding:5px 0}.courses-check input{accent-color:var(--color-primary);flex:none;height:16px;width:16px}.courses-price-range{display:flex;gap:8px}.courses-price-range label{color:var(--color-text-muted);flex:1;font-size:13px;min-width:0}.courses-price-range .form-control{font-size:13px;margin-top:4px}.courses-filter-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.courses-filter-actions .btn{flex:1;white-space:nowrap}.courses-sortbar{align-items:center;background:var(--color-white);border:1px solid var(--color-border-card);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;font-size:14px;gap:6px 14px;margin-bottom:16px;padding:10px 16px}.courses-sortbar-label{color:var(--color-dark);font-weight:700}.courses-sort{color:var(--color-text-muted);text-decoration:none;transition:var(--transition-base)}.courses-sort.is-active,.courses-sort:hover{color:var(--color-primary)}.courses-sort.is-active{font-weight:700}.courses-sortbar-count{color:var(--color-text-muted);font-size:13px;margin-inline-start:auto}.courses-empty{border-radius:var(--radius-md);color:var(--color-text-muted);padding:48px 16px;text-align:center}.course-card,.courses-empty{background:var(--color-white)}.course-card{border:1px solid var(--color-border-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:inherit;display:flex;flex-direction:column;height:100%;overflow:hidden;text-decoration:none;transition:var(--transition-base)}.course-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.course-card-media{aspect-ratio:16/9;background:var(--color-primary-soft);position:relative}.course-card-media img{height:100%;object-fit:cover;width:100%}.course-card-placeholder{align-items:center;color:var(--color-primary);display:flex;font-size:44px;height:100%;justify-content:center}.course-card-subject{background:var(--color-white);border-radius:var(--radius-pill);color:var(--color-primary);font-size:12px;font-weight:700;padding:2px 10px;position:absolute;right:10px;top:10px}.course-card-body{display:flex;flex:1;flex-direction:column;gap:8px;padding:14px 16px 16px}.course-card-title{color:var(--color-dark);font-size:16px;font-weight:800;line-height:1.7;margin:0}.course-card-meta,.course-card-teacher{color:var(--color-text-muted);font-size:13px}.course-card-meta{display:flex;flex-wrap:wrap;gap:12px}.course-card-price{border-top:1px dashed var(--color-line);color:var(--color-text-soft);font-size:13px;margin-top:auto;padding-top:8px;text-align:left}.course-card-price strong,.course-side-price strong{color:var(--color-dark);font-size:17px}.course-card-price del,.course-side-price del{color:var(--color-text-muted);display:block;font-size:12px}.course-price-free{color:var(--color-success-text);font-weight:800}.course-player-box{background:var(--color-black);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden}.course-player{aspect-ratio:16/9;background:var(--color-black);display:block;width:100%}.course-player-embed{aspect-ratio:16/9;position:relative}.course-player-embed iframe{border:0;height:100%;inset:0;position:absolute;width:100%}.course-player-locked{align-items:center;aspect-ratio:16/9;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-dark) 100%);color:var(--color-white);display:flex;flex-direction:column;gap:12px;justify-content:center;padding:16px;text-align:center}.course-player-locked i{font-size:44px;opacity:.85}.course-player-locked p{margin:0}.course-player-placeholder{aspect-ratio:16/9;position:relative}.course-player-placeholder img{display:block;height:100%;object-fit:cover;width:100%}.course-player-placeholder p{background:linear-gradient(transparent,rgba(0,0,0,.65));inset-inline:0;bottom:0;color:var(--color-white,#fff);margin:0;padding:12px 16px;position:absolute;text-align:center}.course-info,.course-side-box{background:var(--color-white);border:1px solid var(--color-border-card);border-radius:var(--radius-md);margin-top:16px;padding:20px}.course-side-box:first-child{margin-top:0}.course-info-title{color:var(--color-dark);font-size:20px;font-weight:800;margin-bottom:4px}.course-info-sub{color:var(--color-text-muted);font-size:14px}.course-info-text{color:var(--color-text);line-height:2;margin-top:12px;text-align:justify}.course-section-title{color:var(--color-dark);font-size:16px;font-weight:800;margin:24px 0 8px}.course-side-row{border-bottom:1px solid var(--color-line);display:flex;font-size:14px;gap:8px;justify-content:space-between;padding:8px 0}.course-side-row span{color:var(--color-text-muted)}.course-side-price{font-size:14px;margin:16px 0 12px;text-align:center}.course-access-ok{background:var(--color-success-soft);border-radius:var(--radius-sm);color:var(--color-success-text);font-weight:700;padding:10px;text-align:center}.course-lessons{list-style:none;margin:0;padding:0}.course-lesson{align-items:center;border-radius:var(--radius-sm);color:var(--color-text);display:flex;font-size:14px;gap:10px;padding:10px 8px;text-decoration:none;transition:var(--transition-base)}.course-lesson:hover{background:var(--color-gray-50);color:var(--color-primary)}.course-lesson.is-current{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.course-lesson.is-locked{color:var(--color-text-muted)}.course-lesson-num{background:var(--color-gray-100);border-radius:50%;flex:none;font-size:12px;height:26px;line-height:26px;text-align:center;width:26px}.course-lesson-title{flex:1;min-width:0}.course-lesson-badge{background:var(--color-success-soft);border-radius:var(--radius-pill);color:var(--color-success-text);font-size:11px;padding:1px 8px}.course-lesson-time{color:var(--color-text-muted);font-size:12px}.course-progress{background:var(--color-gray-50);border-radius:var(--radius-sm);margin-bottom:12px;padding:12px}.course-progress-head{align-items:center;color:var(--color-text-muted);display:flex;font-size:14px;justify-content:space-between;margin-bottom:8px}.course-progress-head strong{color:var(--color-success-text);font-size:15px}.course-progress-bar{background:var(--color-gray-100);border-radius:var(--radius-pill);height:8px;overflow:hidden}.course-progress-bar span{background:var(--color-success,#22a06b);border-radius:inherit;display:block;height:100%;transition:width .3s ease}.course-progress-note{color:var(--color-text-muted);display:block;font-size:12px;margin-top:6px}.course-lesson-row{align-items:center;display:flex;gap:4px}.course-lesson-row .course-lesson{flex:1;min-width:0}.course-lesson.is-watched .course-lesson-num{background:var(--color-success-soft);color:var(--color-success-text)}.course-lesson-check{background:transparent;border:0;border-radius:50%;color:var(--color-text-muted);flex:none;font-size:18px;height:34px;padding:0;transition:var(--transition-base);width:34px}.course-lesson-check:hover{background:var(--color-gray-50)}.course-lesson-check.is-checked,.course-lesson-check:hover{color:var(--color-success-text)}.course-watched{margin-top:12px}.course-card-progress{margin-top:10px}.course-card-progress .course-progress-head{font-size:12px;margin-bottom:4px}.course-card-progress .course-progress-bar{height:6px}