.el-page {
    background: #f7f9fb;
}

.el-main {
    min-height: 760px;
    padding-top: 79px;
}

.el-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 20px 0;
    color: #64748b;
    font-size: 13px;
}

.el-breadcrumb a:hover {
    color: #2563eb;
}

.el-breadcrumb i {
    color: #cbd5e1;
}

.el-course-hero .el-breadcrumb { color: rgba(255,255,255,.78); }
.el-course-hero .el-breadcrumb a { color: rgba(255,255,255,.84); }
.el-course-hero .el-breadcrumb a:hover { color: #fff; }
.el-course-hero .el-breadcrumb i { color: rgba(255,255,255,.58); }

.el-course-hero {
    color: #fff;
    background: linear-gradient(135deg,#0f766e 0%,#0c4f58 100%);
}

.el-course-hero-grid {
    display: grid;
    min-height: 420px;
    grid-template-columns: minmax(0,1fr) 410px;
    align-items: center;
    gap: 54px;
    padding-top: 42px;
    padding-bottom: 48px;
}

.el-course-kicker {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.el-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #dffcf8;
    background: rgba(255,255,255,.12);
    font-size: 10px;
    font-weight: 750;
}

.el-course-hero h1 {
    max-width: 790px;
    margin: 0 0 17px;
    font-size: 40px;
    font-weight: 900;
    line-height: 1.18;
    letter-spacing: -.9px;
}

.el-course-hero-copy > p {
    max-width: 760px;
    margin: 0 0 22px;
    color: #d8f7f4;
    font-size: 14px;
    line-height: 23px;
}

.el-course-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    color: #d8f7f4;
    font-size: 11px;
}

.el-course-meta img {
    width: 34px;
    height: 34px;
    border: 2px solid #fff;
    border-radius: 50%;
    object-fit: cover;
}

.el-course-rating {
    color: #fbbf24;
    font-weight: 800;
}

.el-course-rating small {
    color: #d8f7f4;
    font-weight: 500
}

.el-preview {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border: 5px solid rgba(255, 255, 255, .14);
    border-radius: 18px;
    background: #0f172a;
    box-shadow: 0 24px 45px rgba(3,28,35,.32);
}

.el-preview img,
.el-preview video,
.el-preview iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.el-preview iframe {
    position: absolute;
    inset: 0;
}

.el-preview::after,.el-preview span,.el-preview-play { transition: opacity .2s,transform .2s; }
.el-preview.is-playing::after,.el-preview.is-playing > span { opacity: 0; pointer-events: none; }
.el-preview.is-playing .el-preview-play { opacity: 0; pointer-events: none; transform: translate(-50%,-50%) scale(.86); }
.el-preview:hover.is-playing .el-preview-play { opacity: .92; pointer-events: auto; }

.el-preview::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg,transparent 45%,rgba(3,18,26,.58));
}

.el-preview:has(iframe)::after {
    display: none;
}

.el-preview-empty {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #94a3b8;
    font-size: 3rem;
}

.el-preview-play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    width: 62px;
    height: 62px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #2563eb;
    background: #fff;
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
    transform: translate(-50%,-50%);
    font-size: 23px;
}

.el-preview span {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 18px;
    left: 0;
    color: #fff;
    text-align: center;
    font-size: 11px;
    font-weight: 750;
}

.el-detail-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 350px;
    align-items: start;
    gap: 28px;
    padding: 42px 0 75px;
}

.el-tabs {
    display: flex;
    gap: 4px;
    padding: 8px;
    border-bottom: 1px solid #edf0f3;
    background: #fff;
}

.el-tab {
    padding: 10px 15px;
    border: 0;
    border-radius: 8px;
    color: #64748b;
    background: transparent;
    font-size: 12px;
    font-weight: 750;
}

.el-tab.active {
    color: #0f766e;
    background: #eafaf8;
}

.el-pane {
    display: none;
}

.el-pane.active {
    display: block
}

.el-section {
    padding: 28px;
}

.el-section + .el-section {
    border-top: 1px solid #edf0f3
}

.el-section h2 {
    margin: 0 0 15px;
    font-size: 21px;
    font-weight: 850;
}

.el-section h3 {
    margin: 22px 0 11px;
    font-size: 15px;
    font-weight: 800
}

.el-section p,.el-section li {
    color: #475569;
    font-size: 12px;
    line-height: 21px
}

.el-outcomes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.el-outcomes li {
    position: relative;
    padding-left: 25px
}

.el-outcomes i {
    position: absolute;
    top: 1px;
    left: 0;
    color: #16a34a;
    font-size: 15px
}

.el-curriculum {
    display: grid;
    gap: 11px;
}

.el-chapter {
    overflow: hidden;
    border: 1px solid #e7ecef;
    border-radius: 11px;
}

.el-chapter-button {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 17px;
    border: 0;
    color: #334155;
    background: #f8fafb;
    text-align: left;
    font-size: 12px;
    font-weight: 800;
}

.el-chapter-button small {
    color: #94a3b8;
    font-size: 9px;
    font-weight: 600;
}

.el-lessons {
    display: none;
    padding: 3px 17px;
    background: #fff;
}

.el-chapter.open .el-lessons {
    display: block
}

.el-chapter.open .el-chapter-button i {
    transform: rotate(180deg)
}

.el-lesson {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid #f0f2f4;
    color: #475569;
    font-size: 11px;
}

.el-lesson:last-child {
    border-bottom: 0
}

.el-lesson > i {
    color: #2563eb
}

.el-lesson span {
    flex: 1
}

.el-lesson small {
    color: #94a3b8
}

.el-lesson .bi-lock {
    color: #94a3b8
}

.el-instructor {
    display: flex;
    align-items: flex-start;
    gap: 17px;
}

.el-instructor img {
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
    border-radius: 50%;
    object-fit: cover
}

.el-instructor h3 {
    margin: 2px 0 6px
}

.el-instructor-stats {
    display: flex;
    gap: 17px;
    margin-bottom: 8px;
    color: #64748b;
    font-size: 10px
}

.el-review-summary {
    display: grid;
    grid-template-columns: 130px 1fr;
    align-items: center;
    gap: 30px;
}

.el-score {
    text-align: center
}

.el-score strong {
    display: block;
    font-size: 46px;
    font-weight: 900
}

.el-score span {
    color: #f59e0b
}

.el-score small {
    display: block;
    margin-top: 5px;
    color: #94a3b8;
    font-size: 9px
}

.el-rating-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 7px 0;
    color: #64748b;
    font-size: 10px
}

.el-rating-row .portal-progress {
    flex: 1
}

.el-rating-row .portal-progress span {
    background: #f59e0b
}

.el-enroll-card {
    position: sticky;
    top: 101px;
    overflow: hidden;
}

.el-enroll-card img {
    width: 100%;
    height: 188px;
    object-fit: cover
}

.el-enroll-body {
    padding: 23px
}

.el-price {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin-bottom: 17px
}

.el-price strong {
    font-size: 27px;
    font-weight: 900;
    color: #ea580c
}

.el-price del {
    color: #94a3b8;
    font-size: 12px
}

.el-discount {
    padding: 4px 7px;
    border-radius: 6px;
    color: #dc2626;
    background: #fef2f2;
    font-size: 9px;
    font-weight: 800
}

.el-enroll-body .portal-button {
    width: 100%;
    margin-bottom: 10px
}

.el-includes {
    display: grid;
    gap: 11px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #edf0f3
}

.el-includes span {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #475569;
    font-size: 11px
}

.el-includes i {
    width: 18px;
    color: #0f766e
}

/* My learning */
.el-dashboard-hero {
    padding: 48px 0;
    color: #fff;
    background: linear-gradient(130deg,#2563eb,#0f766e);
}

.el-dashboard-hero h1 {
    margin: 0 0 10px;
    font-size: 34px;
    font-weight: 900
}

.el-dashboard-hero p {
    margin: 0;
    color: #e4f8ff;
    font-size: 13px
}

.el-library-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 24px;
}

.el-library-tabs {
    display: flex;
    gap: 8px
}

.el-library-tab {
    padding: 9px 13px;
    border: 1px solid #dfe5e8;
    border-radius: 8px;
    color: #64748b;
    background: #fff;
    font-size: 11px;
    font-weight: 750
}

.el-library-tab.active {
    border-color: #95d8d3;
    color: #0f766e;
    background: #ecfbf9
}

.el-library-search {
    display: flex;
    width: 260px;
    height: 40px;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid #dfe5e8;
    border-radius: 9px;
    background: #fff
}

.el-library-search input {
    min-width: 0;
    flex: 1;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #1f2937;
    font-size: 11px;
    color-scheme: light;
    -webkit-appearance: none;
    appearance: none
}

.el-library-search input::placeholder {
    color: #94a3b8
}

.el-library-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px;
}

.el-library-card {
    overflow: hidden;
}

.el-library-image {
    position: relative;
    height: 158px
}

.el-library-image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.el-library-status {
    position: absolute;
    top: 11px;
    left: 11px;
    padding: 5px 9px;
    border-radius: 99px;
    color: #fff;
    background: #2563eb;
    font-size: 9px;
    font-weight: 800
}

.el-library-body {
    padding: 18px
}

.el-library-body h2 {
    height: 44px;
    margin: 0 0 7px;
    overflow: hidden;
    font-size: 14px;
    font-weight: 800;
    line-height: 21px
}

.el-library-body p {
    margin: 0 0 14px;
    color: #64748b;
    font-size: 10px
}

.el-library-progress-head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 7px;
    color: #64748b;
    font-size: 9px
}

.el-library-body .portal-button {
    width: 100%;
    margin-top: 15px
}

/* Learning player */
.el-player-page {
    background: #eef2f5;
}

/* Blazor MainLayout: header sticky (trong luồng), KHÔNG fixed-top — bỏ chừa 79px */
.el-player-main {
    padding-top: 0
}

.el-player-top {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 14px 24px;
    color: #fff;
    background: #0f172a
}

.el-player-top a {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 8px;
    background: rgba(255,255,255,.08)
}

.el-player-title {
    min-width: 0;
    flex: 1
}

.el-player-title h1 {
    overflow: hidden;
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap
}

.el-player-title p {
    margin: 0;
    color: #94a3b8;
    font-size: 11px
}

.el-player-progress {
    width: 220px
}

.el-player-progress-head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
    color: #cbd5e1;
    font-size: 9px
}

.el-player-layout {
    display: grid;
    height: calc(100vh - 143px);
    min-height: 0;
    grid-template-columns: minmax(0,1fr) 360px;
    overflow: hidden;
}

.el-player-content {
    overflow-y: auto;
    padding: 18px 22px
}

.el-video {
    position: relative;
    display: grid;
    height: clamp(300px, 55vh, 531px);
    place-items: center;
    overflow: hidden;
    border-radius: 14px;
    background: #111827;
    box-shadow: 0 16px 35px rgba(15,23,42,.18)
}

.el-video > img,.el-video > video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .82;
    object-fit: cover
}

/* Video.js v10 default skin — player DOM do JS quản lý, Blazor chỉ giữ host. */
.el-video .el-video-player-host {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #000
}

.el-video .el-vjs10-player,
.el-video .el-vjs10-skin,
.el-video .el-vjs10-media {
    width: 100%;
    height: 100%
}

.el-video .el-vjs10-skin {
    display: block;
    --media-object-fit: contain;
    --media-video-border-radius: 14px;
    font-family: "Be Vietnam Pro", system-ui, sans-serif
}

.el-video .el-vjs10-media {
    display: block;
    object-fit: contain;
    background: #000
}

/* Fullscreen trên video-skin / player — phủ hết màn hình, thoát được bằng nút trên control bar. */
.el-vjs10-skin:fullscreen,
.el-vjs10-skin:-webkit-full-screen,
.el-vjs10-player:fullscreen,
.el-vjs10-player:-webkit-full-screen,
.el-video:fullscreen,
.el-video:-webkit-full-screen {
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: #000
}

.el-vjs10-skin:fullscreen .el-vjs10-media,
.el-vjs10-skin:-webkit-full-screen .el-vjs10-media,
.el-vjs10-player:fullscreen .el-vjs10-media,
.el-vjs10-player:-webkit-full-screen .el-vjs10-media {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.el-video-hls-hint {
    position: absolute;
    z-index: 4;
    right: 10px;
    bottom: 10px;
    padding: 4px 8px;
    border-radius: 6px;
    color: rgba(255, 255, 255, .85);
    background: rgba(15, 23, 42, .55);
    font-size: 11px;
    pointer-events: none
}

.el-video > button {
    position: relative;
    z-index: 2;
    display: grid;
    width: 68px;
    height: 68px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #2563eb;
    background: #fff;
    font-size: 26px;
    transition: opacity .2s,transform .2s
}

.el-video.is-playing > button { opacity: 0; pointer-events: none; transform: scale(.86); }
.el-video:hover.is-playing > button { opacity: .92; pointer-events: auto; }

.el-lesson-content {
    margin-top: 16px
}

.el-lesson-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px
}

.el-lesson-title h2 {
    margin: 0 0 5px;
    font-size: 22px;
    font-weight: 850
}

.el-lesson-title p {
    margin: 0;
    color: #64748b;
    font-size: 12px
}

.el-learning-tabs {
    display: flex;
    gap: 5px;
    border-bottom: 1px solid #dfe5e8
}

.el-learning-tab {
    padding: 11px 14px;
    border: 0;
    border-bottom: 2px solid transparent;
    color: #64748b;
    background: transparent;
    font-size: 13px;
    font-weight: 750
}

.el-learning-tab.active {
    border-bottom-color: #2563eb;
    color: #2563eb
}

.el-learning-pane {
    display: none;
    padding: 20px 3px
}

.el-learning-pane.active {
    display: block
}

.el-learning-pane p {
    color: #475569;
    font-size: 14px;
    line-height: 24px
}

.el-note {
    width: 100%;
    min-height: 150px;
    padding: 14px;
    border: 1px solid #dfe5e8;
    border-radius: 10px;
    outline: 0;
    font-size: 14px;
    resize: vertical
}

.el-note-meta {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    color: #94a3b8;
    font-size: 11px
}

.el-player-sidebar {
    overflow-y: auto;
    border-left: 1px solid #dfe5e8;
    background: #fff
}

.el-sidebar-head {
    position: sticky;
    z-index: 2;
    top: 0;
    padding: 18px;
    border-bottom: 1px solid #edf0f3;
    background: #fff
}

.el-sidebar-head h2 {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 850
}

.el-player-chapter h3 {
    margin: 0;
    padding: 14px 17px;
    color: #475569;
    background: #f8fafb;
    font-size: 13px;
    font-weight: 800
}

.el-player-lesson {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid #f0f2f4;
    font-size: 12px
}

.el-player-lesson.active {
    background: #eff8ff
}

.el-player-lesson input {
    margin-top: 2px
}

.el-player-lesson div {
    min-width: 0;
    flex: 1
}

.el-player-lesson strong {
    display: block;
    margin-bottom: 4px;
    color: #334155;
    font-weight: 700;
    line-height: 18px
}

.el-player-lesson span {
    color: #94a3b8
}

.el-player-lesson.active strong {
    color: #2563eb
}

.el-question-thread {
    display: grid;
    gap: 14px
}

.el-question {
    display: flex;
    gap: 11px
}

.el-question img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    object-fit: cover
}

.el-question-body {
    flex: 1;
    padding: 12px;
    border-radius: 10px;
    background: #f8fafb
}

.el-question-body strong {
    display: block;
    margin-bottom: 5px;
    font-size: 13px
}

.el-question-body p {
    margin: 0;
    font-size: 13px;
    line-height: 21px
}

.el-question-body small {
    display: block;
    margin-top: 7px;
    color: #94a3b8;
    font-size: 9px
}

/* Assessment */
.el-assessment-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 280px;
    align-items: start;
    gap: 25px
}

.el-assessment-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 25px;
    border-bottom: 1px solid #edf0f3
}

.el-assessment-head h1 {
    margin: 0 0 5px;
    font-size: 20px;
    font-weight: 850
}

.el-assessment-head p {
    margin: 0;
    color: #64748b;
    font-size: 10px
}

.el-timer {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 9px;
    color: #dc2626;
    background: #fef2f2;
    font-size: 12px;
    font-weight: 850
}

.el-question-card {
    padding: 28px
}

.el-question-number {
    display: inline-flex;
    margin-bottom: 14px;
    padding: 5px 9px;
    border-radius: 99px;
    color: #2563eb;
    background: #eff6ff;
    font-size: 9px;
    font-weight: 800
}

.el-question-card h2 {
    margin: 0 0 22px;
    font-size: 17px;
    font-weight: 800;
    line-height: 26px
}

.el-answer-list {
    display: grid;
    gap: 10px
}

.el-answer {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border: 1px solid #dfe5e8;
    border-radius: 10px;
    color: #475569;
    cursor: pointer;
    font-size: 11px
}

.el-answer:hover {
    border-color: #9ec4ff;
    background: #f8fbff
}

.el-answer:has(input:checked) {
    border-color: #2563eb;
    color: #1d4ed8;
    background: #eff6ff
}

.el-answer input {
    accent-color: #2563eb
}

.el-question-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 24px
}

.el-assessment-sidebar {
    position: sticky;
    top: 103px
}

.el-question-map {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 8px
}

.el-question-map button {
    display: grid;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid #dfe5e8;
    border-radius: 8px;
    color: #64748b;
    background: #fff;
    font-size: 10px;
    font-weight: 750
}

.el-question-map button.active {
    color: #fff;
    border-color: #2563eb;
    background: #2563eb
}

.el-question-map button.done {
    color: #0f766e;
    border-color: #9cded8;
    background: #e9faf8
}

.el-result-pane {
    display: none;
    text-align: center
}

.el-result-pane.active {
    display: block
}

.el-result-icon {
    display: grid;
    width: 82px;
    height: 82px;
    place-items: center;
    margin: 0 auto 18px;
    border-radius: 50%;
    color: #16a34a;
    background: #ecfdf3;
    font-size: 36px
}

.el-result-score {
    font-size: 50px;
    font-weight: 900;
    color: #0f766e
}

.el-result-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
    margin: 25px 0
}

.el-result-stats div {
    padding: 15px;
    border-radius: 10px;
    background: #f8fafb
}

.el-result-stats strong,.el-result-stats span {
    display: block
}

.el-result-stats strong {
    font-size: 18px
}

.el-result-stats span {
    margin-top: 4px;
    color: #64748b;
    font-size: 9px
}

/* Certificate */
.el-certificate-stage {
    padding: 55px 0 75px;
    background: radial-gradient(circle at 50% 0,rgba(30,166,158,.12),transparent 42%),#f7f9fb
}

.el-certificate-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 25px
}

.el-certificate {
    position: relative;
    width: min(980px,100%);
    min-height: 620px;
    margin: 0 auto;
    padding: 28px;
    border: 1px solid #d8dfdf;
    background: #fff;
    box-shadow: 0 25px 60px rgba(15,23,42,.15)
}

.el-certificate-border {
    display: flex;
    min-height: 560px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 50px;
    border: 4px double #168f87;
    text-align: center
}

.el-certificate-logo {
    width: 130px;
    margin-bottom: 28px
}

.el-certificate-label {
    color: #0f766e;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase
}

.el-certificate h1 {
    margin: 12px 0 8px;
    color: #0d5b57;
    font-family: Georgia,serif;
    font-size: 45px;
    font-weight: 700
}

.el-certificate > * {
    position: relative
}

.el-certificate-name {
    margin: 20px 0 14px;
    font-family: Georgia,serif;
    font-size: 34px;
    font-style: italic;
    font-weight: 700
}

.el-certificate-course {
    max-width: 650px;
    margin: 10px auto 28px;
    color: #1e293b;
    font-size: 21px;
    font-weight: 800;
    line-height: 31px
}

.el-certificate-meta {
    display: flex;
    gap: 70px;
    margin-top: 20px
}

.el-certificate-meta div {
    min-width: 180px;
    padding-top: 8px;
    border-top: 1px solid #94a3b8
}

.el-certificate-meta strong,.el-certificate-meta span {
    display: block
}

.el-certificate-meta strong {
    font-size: 12px
}

.el-certificate-meta span {
    margin-top: 4px;
    color: #64748b;
    font-size: 9px
}

.el-certificate-code {
    position: absolute;
    right: 45px;
    bottom: 38px;
    text-align: right;
    color: #64748b;
    font-size: 9px
}

.el-qr {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    margin-left: auto;
    margin-bottom: 5px;
    border: 4px dotted #0f172a;
    font-size: 8px;
    font-weight: 800;
    overflow: hidden
}

.el-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border: 0
}

/* Instructor */
.el-instructor-stats-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 18px;
    margin-bottom: 25px
}

.el-instructor-metric {
    padding: 20px
}

.el-instructor-metric i {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    margin-bottom: 13px;
    border-radius: 10px;
    color: #2563eb;
    background: #eff6ff
}

.el-instructor-metric strong {
    display: block;
    margin-bottom: 4px;
    font-size: 22px;
    font-weight: 900
}

.el-instructor-metric span {
    color: #64748b;
    font-size: 10px
}

.el-management-table {
    width: 100%;
    border-collapse: collapse
}

.el-management-table th {
    padding: 12px 15px;
    color: #64748b;
    background: #f8fafb;
    font-size: 9px;
    font-weight: 800;
    text-align: left;
    text-transform: uppercase
}

.el-management-table td {
    padding: 14px 15px;
    border-top: 1px solid #edf0f3;
    color: #475569;
    font-size: 10px;
    vertical-align: middle
}

.el-management-course {
    display: flex;
    align-items: center;
    gap: 11px
}

.el-management-course img {
    width: 72px;
    height: 46px;
    border-radius: 7px;
    object-fit: cover
}

.el-management-course strong {
    display: block;
    max-width: 260px;
    color: #334155;
    font-size: 11px;
    line-height: 16px
}

.el-status {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 99px;
    font-size: 8px;
    font-weight: 800
}

.el-status.public {
    color: #15803d;
    background: #ecfdf3
}

.el-status.review {
    color: #c2410c;
    background: #fff7ed
}

.el-status.draft {
    color: #64748b;
    background: #f1f5f9
}

.el-row-actions {
    display: flex;
    gap: 6px
}

.el-row-actions a,.el-row-actions button {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #dfe5e8;
    border-radius: 7px;
    color: #64748b;
    background: #fff
}

.el-campaign-toolbar {
    align-items: flex-start;
    gap: 16px
}

.el-campaign-toolbar-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    flex-shrink: 0
}

.el-campaign-toolbar-actions .portal-select-wrap,
.el-campaign-filter {
    width: 220px;
    flex: 0 0 220px
}

.el-campaign-toolbar-actions .portal-button {
    flex: 0 0 auto;
    white-space: nowrap
}

.el-campaign-body {
    padding-top: 8px
}

.el-campaign-picker {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 22px;
    padding: 18px 20px;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    background: linear-gradient(135deg,#eff6ff 0%,#f8fafc 55%,#fff 100%)
}

.el-campaign-picker-icon {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    color: #1d4ed8;
    background: #dbeafe;
    font-size: 20px
}

.el-campaign-picker-main {
    flex: 1;
    min-width: 0
}

.el-campaign-picker-main > strong {
    display: block;
    margin-bottom: 4px;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800
}

.el-campaign-picker-main > p {
    margin: 0 0 14px;
    color: #64748b;
    font-size: 12px;
    line-height: 18px
}

.el-campaign-picker-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center
}

.el-campaign-picker-row .portal-select {
    flex: 1 1 240px;
    min-width: 200px
}

.el-campaign-empty {
    display: grid;
    justify-items: center;
    gap: 8px;
    padding: 48px 24px;
    border: 1px dashed #d5dde5;
    border-radius: 16px;
    background: #fbfcfd;
    text-align: center
}

.el-campaign-empty > i {
    display: grid;
    width: 56px;
    height: 56px;
    place-items: center;
    margin-bottom: 6px;
    border-radius: 16px;
    color: #2563eb;
    background: #eff6ff;
    font-size: 24px
}

.el-campaign-empty h3 {
    margin: 0;
    color: #0f172a;
    font-size: 16px;
    font-weight: 800
}

.el-campaign-empty p {
    max-width: 420px;
    margin: 0 0 12px;
    color: #64748b;
    font-size: 13px;
    line-height: 20px
}

.el-campaign-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(280px,1fr));
    gap: 18px
}

.el-campaign-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e8edf2;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15,23,42,.04);
    color: inherit;
    text-decoration: none;
    transition: border-color .18s ease,box-shadow .18s ease,transform .18s ease
}

.el-campaign-card:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 28px rgba(37,99,235,.10);
    transform: translateY(-2px);
    color: inherit
}

.el-campaign-media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #e2e8f0
}

.el-campaign-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .28s ease
}

.el-campaign-card:hover .el-campaign-media img {
    transform: scale(1.04)
}

.el-campaign-media .el-status {
    position: absolute;
    top: 12px;
    right: 12px;
    box-shadow: 0 1px 4px rgba(15,23,42,.12)
}

.el-campaign-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    padding: 16px 18px 18px
}

.el-campaign-course {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #2563eb;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35
}

.el-campaign-course i {
    font-size: 12px;
    opacity: .85
}

.el-campaign-card h3 {
    margin: 0;
    color: #0f172a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -.2px
}

.el-campaign-meta {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0;
    color: #64748b;
    font-size: 12px;
    line-height: 18px
}

.el-campaign-meta i {
    margin-top: 2px;
    color: #94a3b8;
    font-size: 12px
}

.el-campaign-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
    color: #2563eb;
    font-size: 12px;
    font-weight: 750
}

.el-campaign-card:hover .el-campaign-cta {
    color: #1d4ed8
}

/* Editor */
.el-editor-layout {
    display: grid;
    grid-template-columns: 250px minmax(0,1fr);
    align-items: start;
    gap: 25px
}

.el-editor-sidebar {
    position: sticky;
    top: 102px;
    overflow: hidden
}

.el-editor-title {
    padding: 20px;
    border-bottom: 1px solid #edf0f3
}

.el-editor-title h2 {
    margin: 0 0 5px;
    font-size: 14px;
    font-weight: 850
}

.el-editor-title p {
    margin: 0;
    color: #64748b;
    font-size: 9px
}

.el-editor-nav {
    padding: 8px
}

.el-editor-step {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border: 0;
    border-radius: 9px;
    color: #64748b;
    background: transparent;
    text-align: left;
    font-size: 10px;
    font-weight: 750
}

.el-editor-step span {
    display: grid;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    place-items: center;
    border-radius: 8px;
    background: #f1f5f9
}

.el-editor-step.active {
    color: #0f766e;
    background: #eafaf8
}

.el-editor-step.active span {
    color: #fff;
    background: var(--teal)
}

.el-editor-pane {
    display: none
}

.el-editor-pane.active {
    display: block
}

.el-editor-footer {
    display: flex;
    justify-content: space-between;
    padding: 19px 24px;
    border-top: 1px solid #edf0f3
}

.el-editor-section {
    padding: 24px
}

.el-editor-section + .el-editor-section {
    border-top: 1px solid #edf0f3
}

.el-editor-section h2 {
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 850
}

.el-editor-section>p {
    margin: 0 0 20px;
    color: #64748b;
    font-size: 10px
}

.el-upload-zone {
    display: grid;
    min-height: 175px;
    place-items: center;
    padding: 20px;
    border: 1.5px dashed #b9c9cf;
    border-radius: 12px;
    color: #64748b;
    background: #fafcfc;
    text-align: center
}

.el-upload-zone i {
    display: block;
    margin-bottom: 8px;
    color: #0f766e;
    font-size: 28px
}

.el-upload-zone strong {
    display: block;
    margin-bottom: 4px;
    font-size: 11px
}

.el-upload-zone small {
    font-size: 9px
}

.el-radio-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px
}

.el-radio-card input {
    position: absolute;
    opacity: 0
}

.el-radio-card span {
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #dfe5e8;
    border-radius: 10px;
    color: #64748b;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700
}

.el-radio-card input:checked+span {
    border-color: var(--teal);
    color: #0f766e;
    background: #eafaf8
}

.el-builder-list {
    display: grid;
    gap: 12px
}

.el-builder-chapter {
    border: 1px solid #dfe5e8;
    border-radius: 11px;
    background: #fff
}

.el-builder-chapter-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px
}

.el-drag {
    color: #94a3b8
}

.el-builder-chapter-head input {
    height: 37px;
    flex: 1;
    border: 1px solid #dfe5e8;
    border-radius: 8px;
    padding: 0 10px;
    font-size: 11px
}

.el-builder-lessons {
    padding: 0 13px 13px 43px
}

.el-builder-lesson {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    border-radius: 8px;
    background: #f8fafb;
    font-size: 10px
}

.el-builder-lesson span {
    flex: 1
}

.el-answer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px
}

.el-answer-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 13px;
    line-height: 1.4
}

.el-answer-icon {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 20px !important
}

.el-answer-icon.is-correct {
    color: #16a34a
}

.el-lesson-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    background: rgba(15, 23, 42, .48)
}

.el-lesson-modal {
    display: flex;
    flex-direction: column;
    width: min(760px, 100%);
    max-height: min(90vh, 820px);
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .22)
}

.el-lesson-editor-host {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
    background: #fff
}

.el-lesson-editor-host .rz-html-editor {
    border: 0 !important
}

.el-lesson-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid #eef2f6
}

.el-lesson-modal-head h3 {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a
}

.el-lesson-modal-head p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45
}

.el-lesson-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 18px 20px
}

.el-lesson-modal-foot {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid #eef2f6;
    background: #f8fafc
}

@media (max-width: 640px) {
    .el-lesson-modal-overlay { padding: 12px; align-items: flex-end }
    .el-lesson-modal { max-height: 92vh; border-radius: 14px 14px 10px 10px }
}

.el-icon-button {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #dfe5e8;
    border-radius: 7px;
    color: #64748b;
    background: #fff
}

.el-question-builder {
    padding: 16px;
    border: 1px solid #dfe5e8;
    border-radius: 11px
}

.el-question-builder + .el-question-builder {
    margin-top: 12px
}

.el-answer-editor {
    display: grid;
    grid-template-columns: 26px 1fr 30px;
    align-items: center;
    gap: 8px;
    margin-top: 8px
}

.el-answer-editor input[type="text"] {
    height: 37px;
    border: 1px solid #dfe5e8;
    border-radius: 8px;
    padding: 0 10px;
    font-size: 10px
}

.el-publish-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 19px;
    border-radius: 12px;
    color: #fff;
    background: #0f766e
}

.el-publish-bar p {
    margin: 3px 0 0;
    color: #c9fff9;
    font-size: 9px
}

/* Readability pass for all E-Learning content */
.el-page .portal-button { font-size: 13px; }
.el-pill { font-size: 12px; }
.el-course-meta { font-size: 13px; }
.el-tab,.el-library-tab { font-size: 14px; }
.el-section h2 { font-size: 23px; }
.el-section h3 { font-size: 17px; }
.el-section p,.el-section li { font-size: 14px; line-height: 24px; }
.el-chapter-button { font-size: 14px; }
.el-chapter-button small { font-size: 11px; }
.el-lesson { font-size: 13px; line-height: 20px; }
.el-instructor-stats,.el-rating-row { font-size: 12px; }
.el-includes span { font-size: 13px; }
.el-enroll-body p[style] { font-size: 11px !important; }
.el-library-body h2 { height: 50px; font-size: 17px; line-height: 24px; }
.el-library-body p { font-size: 13px; line-height: 20px; }
.el-library-progress-head,.el-player-progress-head { font-size: 11px; }
.el-library-status { font-size: 11px; }
.el-learning-pane .small { font-size: 13px !important; }
.el-sidebar-head h2 { font-size: 16px; }
.el-player-lesson span { font-size: 11px; }
.el-question-body small { font-size: 11px; }
.el-assessment-head p,.el-question-number { font-size: 12px; }
.el-answer { font-size: 14px; line-height: 21px; }
.el-assessment-sidebar .small { font-size: 12px; }
.el-management-table td { font-size: 12px; }
.el-management-table th { font-size: 10px; }
.el-management-course strong { font-size: 13px; line-height: 19px; }
.el-status { font-size: 10px; }
.el-campaign-card h3 { font-size: 16px; }
.el-campaign-meta { font-size: 12px; line-height: 18px; }
.el-editor-title h2 { font-size: 16px; }
.el-editor-title p,.el-editor-section > p { font-size: 12px; line-height: 19px; }
.el-editor-step { font-size: 12px; }
.el-editor-section h2 { font-size: 20px; }
.el-page .portal-field label { font-size: 13px; }
.el-page .portal-input,.el-page .portal-select,.el-page .portal-textarea { font-size: 14px; }
.el-builder-chapter-head input,.el-builder-lesson,.el-answer-editor input[type="text"] { font-size: 12px; }

@media(max-width: 1199.98px) {
    .el-course-hero-grid {
        grid-template-columns:minmax(0,1fr) 350px
    }

    .el-detail-layout {
        grid-template-columns: minmax(0,1fr) 310px
    }

    .el-library-grid {
        grid-template-columns: repeat(2,1fr)
    }

    .el-player-layout {
        grid-template-columns: minmax(0,1fr) 320px
    }
}

@media(max-width: 991.98px) {
    .el-main {
        padding-top:72px
    }

    .el-player-main {
        padding-top: 0
    }

    .el-course-hero-grid {
        grid-template-columns: 1fr
    }

    .el-preview {
        max-width: 620px
    }

    .el-detail-layout,.el-assessment-layout,.el-editor-layout {
        grid-template-columns: 1fr
    }

    .el-enroll-card,.el-assessment-sidebar,.el-editor-sidebar {
        position: static
    }

    .el-player-layout {
        height: auto;
        min-height: 0;
        grid-template-columns: 1fr;
        overflow: visible
    }

    .el-player-content { overflow: visible; }

    .el-player-sidebar {
        max-height: 520px;
        border-top: 1px solid #dfe5e8;
        border-left: 0
    }

    .el-instructor-stats-grid {
        grid-template-columns: repeat(2,1fr)
    }

    .el-editor-nav {
        display: flex;
        overflow-x: auto
    }

    .el-editor-step {
        min-width: 150px
    }

    .el-management-table {
        min-width: 780px
    }

    .el-table-wrap {
        overflow-x: auto
    }
}

@media(max-width: 767.98px) {
    .el-course-hero-grid {
        padding-top:28px
    }

    .el-course-hero h1 {
        font-size: 31px
    }

    .el-course-meta {
        align-items: flex-start;
        flex-direction: column
    }

    .el-detail-layout {
        padding: 28px 0 50px
    }

    .el-tabs {
        overflow-x: auto
    }

    .el-tab {
        white-space: nowrap
    }

    .el-section {
        padding: 20px
    }

    .el-outcomes {
        grid-template-columns: 1fr
    }

    .el-library-toolbar {
        align-items: stretch;
        flex-direction: column
    }

    .el-library-tabs {
        overflow-x: auto
    }

    .el-library-tab {
        white-space: nowrap
    }

    .el-library-search {
        width: 100%
    }

    .el-library-grid {
        grid-template-columns: 1fr
    }

    .el-player-content {
        padding: 14px
    }

    .el-player-top {
        padding: 12px
    }

    .el-player-progress {
        display: none
    }

    .el-lesson-title {
        flex-direction: column
    }

    .el-assessment-head {
        align-items: flex-start;
        flex-direction: column
    }

    .el-question-card {
        padding: 20px
    }

    .el-result-stats,.el-instructor-stats-grid {
        grid-template-columns: 1fr
    }

    .el-certificate {
        padding: 12px
    }

    .el-certificate-border {
        min-height: 520px;
        padding: 30px 18px
    }

    .el-certificate h1 {
        font-size: 32px
    }

    .el-certificate-name {
        font-size: 27px
    }

    .el-certificate-course {
        font-size: 17px
    }

    .el-certificate-meta {
        gap: 20px;
        flex-direction: column
    }

    .el-certificate-code {
        position: static;
        margin-top: 25px;
        text-align: center
    }

    .el-campaign-grid {
        grid-template-columns: 1fr
    }

    .el-campaign-toolbar {
        flex-direction: column
    }

    .el-campaign-toolbar-actions {
        width: 100%;
        flex-wrap: nowrap
    }

    .el-campaign-toolbar-actions .portal-select-wrap,
    .el-campaign-filter {
        width: auto;
        flex: 1 1 auto;
        min-width: 0
    }

    .el-campaign-picker {
        flex-direction: column
    }

    .el-radio-grid {
        grid-template-columns: 1fr
    }

    .el-editor-footer,.el-publish-bar {
        align-items: stretch;
        flex-direction: column
    }

    .portal-notification-dropdown {
        width: min(355px,calc(100vw - 24px))
    }
}

@media print {
    .site-header,.site-footer,.el-certificate-actions,.el-breadcrumb,#backToTop {
        display: none!important
    }

    .el-main {
        padding: 0
    }

    .el-certificate-stage {
        padding: 0;
        background: #fff
    }

    .el-certificate {
        width: 100%;
        box-shadow: none;
        page-break-inside: avoid
    }
}

/* Blazor MainLayout: header sticky — không cần chừa 79px như mockup fixed-top */
.el-page .el-main,
.el-main {
    padding-top: 0;
    min-height: 0;
}

.el-instructor-fallback {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #e2e8f0;
    color: #0f172a;
    font-weight: 700;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.el-richtext {
    line-height: 1.7;
    color: #334155;
}

.el-richtext img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.el-richtext p {
    margin-bottom: .85rem;
}

.el-course-meta img {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: .35rem;
    vertical-align: -5px;
}

/* Course payment checkout — port từ E-Start-Backup/course-payment.html */
.course-payment-main { background: #f6f8fb; }
.course-payment-heading { border-bottom: 1px solid #e5eaf0; background: #fff; }
.course-payment-title { display: flex; align-items: center; gap: 14px; padding: 12px 0 24px; }
.course-payment-title > span { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 13px; color: #fff; background: #0f766e; font-size: 22px; }
.course-payment-title h1 { margin: 0 0 5px; font-size: 28px; font-weight: 900; letter-spacing: -.4px; }
.course-payment-title p { margin: 0; color: #64748b; font-size: 13px; }
.course-payment-steps { display: grid; max-width: 680px; grid-template-columns: repeat(3,1fr); margin: 0 auto; padding: 0 0 26px; list-style: none; }
.course-payment-steps li { position: relative; display: flex; align-items: center; flex-direction: column; gap: 7px; color: #94a3b8; font-size: 11px; text-align: center; }
.course-payment-steps li::before { position: absolute; z-index: 0; top: 16px; right: 50%; left: -50%; height: 2px; content: ""; background: #dbe3e9; }
.course-payment-steps li:first-child::before { display: none; }
.course-payment-steps li > span { position: relative; z-index: 1; display: grid; width: 32px; height: 32px; place-items: center; border: 2px solid #dbe3e9; border-radius: 50%; background: #fff; font-size: 11px; font-weight: 900; }
.course-payment-steps li.active,.course-payment-steps li.done { color: #0f766e; }
.course-payment-steps li.active > span { color: #fff; border-color: #0f766e; background: #0f766e; }
.course-payment-steps li.done > span { color: #fff; border-color: #14b8a6; background: #14b8a6; }
.course-payment-steps li.done::before,.course-payment-steps li.active::before { background: #14b8a6; }
.course-payment-section { min-height: 650px; padding: 38px 0 70px; }
.course-payment-layout { display: grid; grid-template-columns: minmax(0,1fr) 370px; align-items: start; gap: 26px; }
.course-payment-panel { overflow: hidden; padding: 28px; }
.course-payment-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.course-payment-panel-head h2,.course-order-summary h2 { margin: 0 0 5px; font-size: 19px; font-weight: 900; }
.course-payment-panel-head p { margin: 0; color: #64748b; font-size: 12px; }
.course-payment-panel-head > i { color: #0f766e; font-size: 20px; }
.course-payment-methods { display: grid; gap: 11px; }
.course-payment-method { position: relative; display: grid; min-height: 74px; grid-template-columns: 46px minmax(0,1fr) 22px; align-items: center; gap: 13px; padding: 12px 15px; border: 1px solid #dfe6eb; border-radius: 11px; cursor: pointer; transition: .2s; }
.course-payment-method:hover { border-color: #99d5cd; }
.course-payment-method.active { border-color: #0f766e; background: #f0fdfa; box-shadow: 0 0 0 3px rgba(15,118,110,.08); }
.course-payment-method.is-disabled { opacity: .55; cursor: not-allowed; }
.course-payment-method.is-disabled:hover { border-color: #dfe6eb; }
.course-payment-method input { position: absolute; opacity: 0; pointer-events: none; }
.course-payment-method > span:nth-of-type(2) { display: flex; min-width: 0; flex-direction: column; }
.course-payment-method strong { font-size: 13px; font-weight: 850; }
.course-payment-method small { margin-top: 3px; color: #64748b; font-size: 11px; }
.course-payment-method > i { color: #cbd5e1; font-size: 18px; }
.course-payment-method.active > i { color: #0f766e; }
.course-payment-method-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 10px; color: #fff; font-size: 19px; }
.course-payment-method-icon.vnpay { background: #2563eb; }
.course-payment-method-icon.momo { background: #a50064; }
.course-payment-method-icon.bank { background: #0f766e; }
.course-payment-method-icon.cash { background: #ea580c; }
.course-payment-coupon { margin-top: 22px; }
.course-payment-coupon > label { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 800; }
.course-payment-coupon > div { display: flex; gap: 8px; }
.course-payment-coupon small { display: block; min-height: 18px; margin-top: 5px; color: #0f766e; font-size: 10px; }
.course-payment-coupon small.is-error { color: #dc2626; }
.course-payment-agreement { display: flex; align-items: flex-start; gap: 9px; margin: 15px 0; color: #475569; font-size: 11px; line-height: 17px; }
.course-payment-agreement input { margin-top: 2px; accent-color: #0f766e; }
.course-payment-agreement a { color: #0f766e; font-weight: 800; }
.course-payment-notice { display: flex; gap: 9px; padding: 11px 12px; border-radius: 9px; color: #475569; background: #f1f5f9; font-size: 10px; line-height: 16px; }
.course-payment-notice i { color: #0f766e; font-size: 15px; }
.course-payment-submit { width: 100%; justify-content: center; margin-top: 18px; gap: 8px; }
.course-payment-submit:disabled { opacity: .55; cursor: not-allowed; }
.course-payment-status { margin-bottom: 18px; padding: 14px 16px; border-radius: 10px; font-size: 13px; }
.course-payment-status.is-pending { color: #92400e; background: #fffbeb; border: 1px solid #fcd34d; }
.course-payment-status.is-ok { color: #166534; background: #f0fdf4; border: 1px solid #bbf7d0; }
.course-payment-bankinfo { padding: 18px; border-radius: 10px; background: #f8fafc; border: 1px solid #e2e8f0; margin-bottom: 18px; }
.course-payment-bankinfo h3 { margin: 0 0 4px; font-size: 14px; font-weight: 800; color: #0f172a; }
.course-payment-bankinfo-list { display: grid; gap: 8px; margin: 0; }
.course-payment-bankinfo-list > div { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; padding: 4px 0; border-bottom: 1px dashed #e2e8f0; }
.course-payment-bankinfo-list > div:last-child { border-bottom: none; }
.course-payment-bankinfo-list dt { color: #64748b; }
.course-payment-bankinfo-list dd { margin: 0; color: #0f172a; text-align: right; }
.course-order-summary { position: sticky; top: 101px; padding: 23px; }
.course-order-item { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 13px; padding: 16px 0 18px; border-bottom: 1px solid #e7ecef; }
.course-order-item img { width: 110px; height: 74px; border-radius: 8px; object-fit: cover; background: #e2e8f0; }
.course-order-item .course-order-thumb-fallback { display: grid; width: 110px; height: 74px; place-items: center; border-radius: 8px; color: #94a3b8; background: #e2e8f0; font-size: 28px; }
.course-order-item div { display: flex; min-width: 0; flex-direction: column; }
.course-order-item span { color: #0f766e; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.course-order-item strong { margin: 4px 0; font-size: 12px; line-height: 17px; }
.course-order-item small { color: #64748b; font-size: 10px; }
.course-order-prices { margin: 0; padding: 15px 0; }
.course-order-prices div { display: flex; justify-content: space-between; gap: 15px; padding: 6px 0; color: #64748b; font-size: 11px; }
.course-order-prices dt { font-weight: 500; }
.course-order-prices dd { margin: 0; color: #334155; font-weight: 800; }
.course-order-prices dd.discount { color: #16a34a; }
.course-order-prices .total { align-items: end; margin-top: 8px; padding-top: 13px; border-top: 1px solid #e7ecef; color: #0f172a; font-size: 13px; font-weight: 850; }
.course-order-prices .total dd { color: #ea580c; font-size: 21px; font-weight: 900; }
.course-order-benefits { display: grid; gap: 8px; padding: 14px; border-radius: 9px; background: #f8fafc; color: #475569; font-size: 10px; }
.course-order-benefits span { display: flex; align-items: center; gap: 8px; }
.course-order-benefits i { color: #0f766e; font-size: 14px; }
.course-order-back { display: block; margin-top: 16px; color: #64748b; font-size: 10px; font-weight: 750; text-align: center; }
.course-payment-success { max-width: 720px; margin: 20px auto 0; padding: 48px; text-align: center; }
.course-payment-success-icon { display: grid; width: 78px; height: 78px; margin: 0 auto 17px; place-items: center; border-radius: 50%; color: #fff; background: #16a34a; box-shadow: 0 12px 25px rgba(22,163,74,.2); font-size: 38px; }
.course-payment-success-label { display: inline-block; padding: 5px 10px; border-radius: 99px; color: #166534; background: #dcfce7; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.course-payment-success h2 { margin: 15px 0 8px; font-size: 25px; font-weight: 900; }
.course-payment-success > p { max-width: 560px; margin: 0 auto; color: #64748b; font-size: 13px; line-height: 21px; }
.course-payment-success-course { display: flex; max-width: 510px; align-items: center; gap: 13px; margin: 24px auto; padding: 12px; border: 1px solid #e4e9ed; border-radius: 11px; text-align: left; }
.course-payment-success-course img { width: 96px; height: 62px; border-radius: 7px; object-fit: cover; background: #e2e8f0; }
.course-payment-success-course div { display: flex; flex-direction: column; }
.course-payment-success-course strong { font-size: 12px; line-height: 17px; }
.course-payment-success-course span { margin-top: 4px; color: #64748b; font-size: 10px; }
.course-payment-success-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }

@media (max-width: 991.98px) {
    .course-payment-layout { grid-template-columns: 1fr; }
    .course-order-summary { position: static; }
}

@media (max-width: 575.98px) {
    .course-payment-title h1 { font-size: 23px; }
    .course-payment-steps strong { font-size: 9px; }
    .course-payment-panel,.course-order-summary,.course-payment-success { padding: 20px; }
    .course-payment-method { grid-template-columns: 42px minmax(0,1fr) 18px; padding: 10px; }
    .course-payment-coupon > div,.course-payment-success-actions { flex-direction: column; }
    .course-order-item { grid-template-columns: 88px minmax(0,1fr); }
    .course-order-item img,.course-order-item .course-order-thumb-fallback { width: 88px; height: 64px; }
    .course-payment-success-course { align-items: flex-start; }
}


.portal-library-image-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
