:root {
    --ecea-primary: #4f46e5;
    --ecea-primary-dark: #312e81;
    --ecea-secondary: #ec4899;
    --ecea-accent: #ff5b5b;
    --ecea-soft: #eef2ff;
    --ecea-soft-2: #f8faff;
    --ecea-border: #e6e9f5;
    --ecea-text: #111827;
    --ecea-muted: #6b7280;
    --ecea-card-shadow: 0 18px 38px rgba(15, 23, 42, 0.10);
    --ecea-card-shadow-hover: 0 26px 60px rgba(79, 70, 229, 0.18);
    --ecea-radius-lg: 28px;
    --ecea-radius-md: 20px;
    --ecea-radius-sm: 14px;
}

html {
    scroll-behavior: smooth;
}

body.ecea-body {
    font-family: "Euclid Circular A", sans-serif;
    background: linear-gradient(180deg, #f8faff 0%, #f4f6fb 100%);
    color: var(--ecea-text);
}

p,
.description,
li,
small,
span {
    color: var(--ecea-muted);
}

a {
    text-decoration: none;
}

.ecea-main {
    min-height: calc(100vh - 180px);
}

.container {
    max-width: 1200px;
}

.ecea-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ecea-secondary);
    margin-bottom: 14px;
}

.ecea-kicker::before {
    content: "";
    width: 26px;
    height: 2px;
    background: linear-gradient(90deg, var(--ecea-primary), var(--ecea-secondary));
    border-radius: 99px;
}

.ecea-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    transition: all 0.25s ease;
    border: 1px solid transparent;
}

.ecea-btn:hover {
    transform: translateY(-1px);
}

.ecea-btn-primary {
    background: linear-gradient(135deg, var(--ecea-primary) 0%, #7c3aed 100%);
    color: #fff;
    box-shadow: 0 16px 36px rgba(79, 70, 229, 0.22);
}

.ecea-btn-primary:hover {
    color: #fff;
    box-shadow: 0 20px 40px rgba(79, 70, 229, 0.28);
}

.ecea-btn-outline {
    background: #fff;
    color: var(--ecea-primary-dark);
    border-color: #d6daf2;
}

.ecea-btn-outline:hover {
    color: var(--ecea-primary-dark);
    border-color: var(--ecea-primary);
    background: #fff;
}

.ecea-btn-outline-gradient {
    position: relative;
    color: var(--ecea-primary-dark);
    background:
      linear-gradient(#ffffff, #ffffff) padding-box,
      linear-gradient(135deg, #4ea2ff 0%, #7b61ff 100%) border-box;
    border: 1.8px solid transparent;
    box-shadow: 0 10px 24px rgba(79, 70, 229, 0.10);
}

.ecea-btn-outline-gradient:hover {
    color: var(--ecea-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(79, 70, 229, 0.14);
    background:
      linear-gradient(#ffffff, #ffffff) padding-box,
      linear-gradient(135deg, #469cff 0%, #7b61ff 100%) border-box;
}

.ecea-btn-soft {
    background: rgba(79, 70, 229, 0.1);
    color: var(--ecea-primary);
    border-color: transparent;
}

.ecea-btn-soft:hover {
    color: var(--ecea-primary-dark);
    background: rgba(79, 70, 229, 0.16);
}

.ecea-pill,
.ecea-price-chip,
.ecea-recommended-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.ecea-pill {
    background: rgba(79, 70, 229, 0.1);
    color: var(--ecea-primary);
    padding: 8px 12px;
}

.ecea-price-chip {
    background: #fff;
    color: var(--ecea-primary-dark);
    border: 1px solid var(--ecea-border);
    padding: 14px 18px;
    box-shadow: var(--ecea-card-shadow);
}

.ecea-navbar-wrap {
    padding-top: 12px;
}

.ecea-navbar {
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px);
    border-top: 1px solid rgba(230, 233, 245, 0.9);
    border-bottom: 1px solid rgba(230, 233, 245, 0.9);
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    box-shadow: 0 10px 32px rgba(15, 23, 42, 0.05);
}

.ecea-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.ecea-brand-logo {
    height: 38px;
    width: auto;
    object-fit: contain;
}

.ecea-brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.ecea-brand-copy strong {
    color: var(--ecea-text);
    font-size: 17px;
}

.ecea-brand-copy small {
    font-size: 12px;
    color: var(--ecea-muted);
}

.ecea-nav-links .nav-link {
    font-size: 15px;
    font-weight: 600;
    color: #334155;
    padding: 10px 14px !important;
    border-radius: 999px;
}

.ecea-nav-links .nav-link:hover,
.ecea-nav-links .nav-link:focus {
    color: var(--ecea-primary);
    background: rgba(79, 70, 229, 0.08);
}

.ecea-nav-toggle {
    border: 1px solid var(--ecea-border);
    border-radius: 14px;
    padding: 8px 10px;
}

.ecea-nav-toggle .navbar-toggler-icon {
    background-image: none;
    width: 24px;
    height: 2px;
    background: var(--ecea-primary-dark);
    box-shadow: 0 7px 0 var(--ecea-primary-dark), 0 -7px 0 var(--ecea-primary-dark);
}

.ecea-hero-section,
.ecea-page-hero {
    padding: 88px 0 72px;
}

.ecea-hero-title,
.ecea-page-hero h1 {
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1.06;
    color: var(--ecea-text);
    margin-bottom: 20px;
    letter-spacing: -0.03em;
}

.ecea-page-hero h1 {
    margin-bottom: 16px;
}

.ecea-hero-title span,
.ecea-page-hero span.highlight {
    background: linear-gradient(135deg, var(--ecea-primary) 0%, var(--ecea-secondary) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.ecea-hero-text,
.ecea-page-hero p {
    font-size: 18px;
    line-height: 1.8;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.ecea-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 30px 0 26px;
}

.ecea-check-list,
.ecea-feature-list {
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.ecea-check-list li,
.ecea-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    line-height: 1.45;
}

.ecea-check-list i,
.ecea-feature-list i {
    color: var(--ecea-primary);
    margin-top: 3px;
}

.ecea-mini-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.ecea-stat-chip {
    min-width: 150px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(230, 233, 245, 0.95);
    border-radius: 18px;
    padding: 16px 18px;
    box-shadow: var(--ecea-card-shadow);
}

.ecea-stat-chip strong {
    display: block;
    font-size: 22px;
    color: var(--ecea-primary-dark);
    margin-bottom: 3px;
}

.ecea-stat-chip.highlighted {
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.08), rgba(236, 72, 153, 0.1));
}

.ecea-hero-preview {
    background: linear-gradient(160deg, #ffffff 0%, #f4f6ff 100%);
    border: 1px solid rgba(230, 233, 245, 0.95);
    border-radius: 32px;
    box-shadow: 0 24px 50px rgba(79, 70, 229, 0.14);
    overflow: hidden;
}

.ecea-window-bar {
    display: flex;
    gap: 8px;
    padding: 20px 22px 0;
}

.ecea-window-bar span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.15);
}

.ecea-window-bar span:first-child { background: #fb7185; }
.ecea-window-bar span:nth-child(2) { background: #facc15; }
.ecea-window-bar span:last-child { background: #34d399; }

.ecea-preview-body {
    display: grid;
    grid-template-columns: 180px 1fr;
    min-height: 450px;
}

.ecea-preview-sidebar {
    padding: 26px 20px;
    border-right: 1px solid rgba(230, 233, 245, 0.95);
    background: rgba(79, 70, 229, 0.04);
}

.ecea-preview-brand img {
    width: 100%;
    max-width: 128px;
    height: auto;
    object-fit: contain;
}

.ecea-preview-menu {
    margin-top: 28px;
    display: grid;
    gap: 12px;
}

.ecea-preview-menu div {
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    background: #fff;
}

.ecea-preview-menu div.active {
    background: linear-gradient(135deg, var(--ecea-primary), #7c3aed);
    color: #fff;
    box-shadow: 0 14px 30px rgba(79, 70, 229, 0.2);
}

.ecea-preview-main {
    padding: 24px;
}

.ecea-preview-card {
    background: #fff;
    border: 1px solid rgba(230, 233, 245, 0.95);
    border-radius: 22px;
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.05);
}

.ecea-preview-card.hero {
    padding: 24px;
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.1), rgba(236, 72, 153, 0.08));
    border-color: rgba(79, 70, 229, 0.14);
}

.small-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ecea-primary);
    margin-bottom: 8px;
}

.ecea-preview-card.hero h4 {
    color: var(--ecea-text);
    margin-bottom: 10px;
}

.ecea-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.ecea-preview-card.metric,
.ecea-preview-card.lesson-card {
    padding: 18px 20px;
}

.ecea-preview-card.metric strong {
    display: block;
    font-size: 28px;
    color: var(--ecea-primary-dark);
}

.ecea-preview-card.lesson-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 16px;
}

.ecea-preview-card.lesson-card h5 {
    margin-bottom: 0;
    color: var(--ecea-text);
}

.ecea-progress-wrap {
    margin-top: 16px;
}

.ecea-progress-line {
    width: 100%;
    height: 10px;
    background: #e7ecfb;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 10px;
}

.ecea-progress-line span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ecea-primary) 0%, var(--ecea-secondary) 100%);
}

.ecea-section {
    padding: 86px 0;
}

.ecea-section-heading {
    max-width: 760px;
    margin: 0 auto 44px;
}

.ecea-section-heading h2 {
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.15;
    color: var(--ecea-text);
    margin-bottom: 14px;
}

.ecea-section-heading p {
    font-size: 17px;
    line-height: 1.75;
}

.ecea-process-card,
.ecea-level-card,
.ecea-pricing-card,
.ecea-note-card,
.ecea-contact-card,
.ecea-auth-card,
.ecea-form-shell,
.ecea-preview-panel,
.ecea-faq-item {
    background: #fff;
    border: 1px solid rgba(230, 233, 245, 0.95);
    border-radius: var(--ecea-radius-lg);
    box-shadow: var(--ecea-card-shadow);
}

.ecea-process-card {
    padding: 30px;
    height: 100%;
    transition: all 0.28s ease;
}

.ecea-process-card:hover,
.ecea-level-card:hover,
.ecea-pricing-card:hover,
.ecea-note-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px rgba(79, 70, 229, 0.14);
}

.ecea-process-card.featured {
    background: linear-gradient(180deg, #ffffff 0%, #f6f7ff 100%);
    border-color: rgba(79, 70, 229, 0.16);
}

.ecea-process-icon {
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    font-size: 26px;
    color: var(--ecea-primary);
    background: rgba(79, 70, 229, 0.1);
    margin-bottom: 18px;
}

.ecea-step {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    color: var(--ecea-secondary);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.ecea-process-card h4,
.ecea-level-card h4,
.ecea-pricing-top h3,
.ecea-preview-panel h3,
.ecea-form-head h3,
.ecea-auth-card h2,
.ecea-note-card h4,
.ecea-contact-card h4 {
    color: var(--ecea-text);
}

.ecea-levels-section {
    background: linear-gradient(180deg, #f4f6fb 0%, #eff3ff 100%);
}

.ecea-level-card {
    padding: 24px;
    height: 100%;
}

.ecea-level-card h4 {
    margin-top: 18px;
    margin-bottom: 8px;
}

.ecea-level-card h5 {
    color: var(--ecea-primary-dark);
    font-size: 18px;
    margin-bottom: 12px;
}

.ecea-level-card.compact .ecea-level-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
    font-size: 14px;
}

.ecea-level-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ecea-pricing-card {
    position: relative;
    padding: 28px;
    height: 100%;
}

.ecea-pricing-card.recommended {
    border-color: rgba(79, 70, 229, 0.24);
    background: linear-gradient(180deg, #ffffff 0%, #f7f7ff 100%);
}

.ecea-recommended-badge {
    position: absolute;
    top: 18px;
    right: 18px;
    padding: 8px 12px;
    background: linear-gradient(135deg, var(--ecea-primary), #7c3aed);
    color: #fff;
}

.ecea-pricing-top p {
    font-size: 14px;
    font-weight: 700;
    color: var(--ecea-primary);
    margin-bottom: 6px;
}

.ecea-pricing-top h3 {
    font-size: 42px;
    margin-bottom: 0;
}

.ecea-pricing-top span {
    font-size: 14px;
}

.ecea-pricing-desc {
    margin: 16px 0 18px;
    line-height: 1.75;
}

.ecea-note-card,
.ecea-preview-panel {
    padding: 26px;
    height: 100%;
}

.ecea-note-card.recommended-lite {
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.08), rgba(236, 72, 153, 0.08));
    border-color: rgba(79, 70, 229, 0.18);
}

.ecea-cta-strip {
    padding-top: 0;
}

.ecea-cta-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 34px;
    border-radius: var(--ecea-radius-lg);
    background: linear-gradient(135deg, #fff 0%, #f5f7ff 100%);
    border: 1px solid rgba(230, 233, 245, 0.95);
    box-shadow: var(--ecea-card-shadow);
}

.ecea-footer {
    padding: 44px 0 28px;
    background: #fff;
    border-top: 1px solid rgba(230, 233, 245, 0.95);
}

.ecea-footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.ecea-footer-logo {
    height: 42px;
    width: auto;
}

.ecea-footer-brand strong {
    display: block;
    color: var(--ecea-text);
}

.ecea-footer-brand small {
    color: var(--ecea-muted);
}

.ecea-footer-text {
    max-width: 430px;
    line-height: 1.8;
    margin-bottom: 0;
}

.ecea-footer-title {
    font-size: 18px;
    color: var(--ecea-text);
    margin-bottom: 10px;
}

.ecea-footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 4px;
}

.ecea-footer-links li {
    margin: 0;
    line-height: 1.8;
}

.ecea-footer-links a {
    color: var(--ecea-muted);
}

.ecea-footer-links a:hover,
.ecea-footer-social a:hover {
    color: var(--ecea-primary);
}

.ecea-footer-social {
    display: flex;
    gap: 12px;
    margin-top: 22px;
}

.ecea-footer-social a {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--ecea-border);
    color: #475569;
}

.ecea-footer-bottom {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(230, 233, 245, 0.95);
    text-align: center;
}

.ecea-form-shell,
.ecea-auth-card {
    padding: 34px;
}

.ecea-form-shell.slim {
    max-width: 860px;
}

.ecea-form-head,
.ecea-auth-meta {
    margin-bottom: 22px;
}

.ecea-form-control {
    min-height: 52px;
    border-radius: 16px;
    border: 1px solid #dbe1f2;
    background: #fff;
    color: var(--ecea-text);
    padding: 12px 16px;
    box-shadow: none !important;
}

textarea.ecea-form-control {
    min-height: 130px;
}

.ecea-form-control:focus {
    border-color: rgba(79, 70, 229, 0.48);
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.08) !important;
}

.ecea-auth-section {
    padding: 86px 0;
}

.ecea-auth-card {
    max-width: 860px;
    margin: 0 auto;
}

.ecea-auth-card.large {
    padding: 38px;
}

.ecea-auth-logo {
    height: 54px;
    width: auto;
    object-fit: contain;
}

.ecea-auth-meta {
    text-align: center;
    margin-top: 20px;
}

.ecea-auth-meta a {
    color: var(--ecea-primary);
    font-weight: 700;
}

.ecea-contact-card {
    padding: 24px;
    display: grid;
    gap: 14px;
}

.ecea-contact-card a {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ecea-text);
    font-weight: 600;
}

.ecea-faq-wrap {
    display: grid;
    gap: 16px;
    max-width: 920px;
    margin: 0 auto;
}

.ecea-faq-item {
    overflow: hidden;
}

.ecea-faq-item .accordion-button {
    background: #fff;
    font-weight: 700;
    color: var(--ecea-text);
    box-shadow: none !important;
    padding: 24px 26px;
}

.ecea-faq-item .accordion-button:not(.collapsed) {
    color: var(--ecea-primary-dark);
    background: rgba(79, 70, 229, 0.05);
}

.ecea-faq-item .accordion-body {
    padding: 0 26px 24px;
    color: var(--ecea-muted);
    line-height: 1.8;
}

.alert {
    border-radius: 18px;
    border: none;
    box-shadow: var(--ecea-card-shadow);
}

.ecea-progress {
    height: 10px;
    border-radius: 999px;
    background: #eef3ff;
}

.ecea-progress .progress-bar {
    border-radius: 999px;
    background: linear-gradient(90deg, #2f57ef 0%, #b966e7 100%);
}

.badge.bg-success-soft {
    background: rgba(40, 167, 69, 0.12);
    color: #198754;
}

.notice-box {
    background: #f6f8ff;
    border: 1px solid #e3e8ff;
    border-radius: 16px;
    padding: 16px 18px;
}

.ecea-card,
.table td,
.table th {
    vertical-align: middle;
}

@media (max-width: 1199.98px) {
    .ecea-nav-actions {
        margin-top: 18px;
    }
}

@media (max-width: 991.98px) {
    .ecea-preview-body {
        grid-template-columns: 1fr;
    }

    .ecea-preview-sidebar {
        border-right: none;
        border-bottom: 1px solid rgba(230, 233, 245, 0.95);
    }

    .ecea-cta-box {
        flex-direction: column;
        align-items: flex-start;
    }

    .ecea-hero-section,
    .ecea-page-hero,
    .ecea-section,
    .ecea-auth-section {
        padding-top: 72px;
        padding-bottom: 72px;
    }
}

@media (max-width: 767.98px) {
    .ecea-navbar-wrap {
        padding-top: 8px;
    }

    .ecea-brand-logo {
        height: 34px;
    }

    .ecea-brand-copy strong {
        font-size: 15px;
    }

    .ecea-brand-copy small {
        font-size: 11px;
    }

    .ecea-hero-title,
    .ecea-page-hero h1 {
        font-size: 36px;
    }

    .ecea-hero-text,
    .ecea-page-hero p {
        font-size: 16px;
    }

    .ecea-form-shell,
    .ecea-auth-card,
    .ecea-pricing-card,
    .ecea-level-card,
    .ecea-process-card,
    .ecea-note-card,
    .ecea-preview-panel,
    .ecea-contact-card {
        padding: 22px;
        border-radius: 22px;
    }

    .ecea-preview-grid {
        grid-template-columns: 1fr;
    }

    .ecea-preview-card.lesson-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .ecea-mini-stats {
        flex-direction: column;
    }

    .ecea-stat-chip {
        width: 100%;
    }
}


/* ===== E'CEA UI refinement v3 ===== */
:root {
    --ecea-navbar-height: 102px;
}

.ecea-page-bg {
    position: fixed;
    inset: 0;
    background: linear-gradient(180deg, #f7f8fe 0%, #f4f6fb 100%);
    z-index: -2;
}

body.ecea-body {
    background: transparent;
}

.ecea-navbar-wrap {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1040;
    padding: 18px 0 12px;
    background: linear-gradient(180deg, rgba(247, 248, 254, 0.98) 0%, rgba(247, 248, 254, 0.92) 70%, rgba(247, 248, 254, 0) 100%);
}

.ecea-main {
    padding-top: calc(var(--ecea-navbar-height) + 24px);
}

.ecea-navbar {
    min-height: 84px;
    padding: 0;
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(221, 226, 244, 0.95);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
}

.ecea-brand {
    gap: 0;
}

.ecea-brand-logo {
    height: 42px;
    width: auto;
    object-fit: contain;
}

.ecea-brand-copy {
    display: none !important;
}

.ecea-navbar .container {
    min-height: 84px;
}

.ecea-hero-section,
.ecea-page-hero {
    padding-top: 34px;
}

.ecea-hero-section .row {
    align-items: center;
}

.ecea-hero-preview {
    position: relative;
    z-index: 1;
    box-shadow: 0 28px 60px rgba(54, 65, 135, 0.14);
}

.ecea-preview-card,
.ecea-process-card,
.ecea-level-card,
.ecea-pricing-card,
.ecea-note-card,
.ecea-contact-card,
.ecea-auth-card,
.ecea-form-shell,
.ecea-preview-panel,
.ecea-faq-item,
.ecea-cta-box,
.ecea-stat-chip {
    background: rgba(255,255,255,0.98);
    border: 1px solid rgba(214, 220, 242, 0.98);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.ecea-process-card,
.ecea-level-card,
.ecea-pricing-card,
.ecea-note-card {
    overflow: hidden;
}

.ecea-process-card:hover,
.ecea-level-card:hover,
.ecea-pricing-card:hover,
.ecea-note-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 44px rgba(79, 70, 229, 0.12);
}

.ecea-level-card,
.ecea-process-card {
    min-height: 100%;
}

.ecea-pricing-card {
    padding: 30px;
    border-radius: 26px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.ecea-pricing-card .ecea-feature-list {
    margin-bottom: 24px;
}

.ecea-pricing-card .ecea-btn {
    margin-top: auto;
}

.ecea-pricing-card.recommended {
    border: 1px solid rgba(92, 77, 255, 0.34);
    background: linear-gradient(180deg, #ffffff 0%, #f7f5ff 100%);
    box-shadow: 0 26px 52px rgba(92, 77, 255, 0.16);
}

.ecea-recommended-badge {
    top: 16px;
    right: 16px;
    padding: 7px 11px;
    font-size: 11px;
    box-shadow: 0 12px 24px rgba(79, 70, 229, 0.18);
}

.ecea-pricing-top h3 {
    font-size: clamp(36px, 3.2vw, 50px);
    line-height: 1;
}

.ecea-pricing-desc,
.ecea-pricing-card .ecea-feature-list li {
    color: #5f6b80;
}

.ecea-cta-box {
    position: relative;
    overflow: hidden;
}

.ecea-cta-box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(79, 70, 229, 0.12), transparent 35%);
    pointer-events: none;
}

.ecea-footer {
    background: rgba(255,255,255,0.9);
    backdrop-filter: blur(8px);
}

@media (max-width: 1199.98px) {
    :root {
        --ecea-navbar-height: 92px;
    }

    .ecea-navbar-wrap {
        padding: 12px 0 10px;
    }

    .ecea-navbar,
    .ecea-navbar .container {
        min-height: 76px;
    }

    .ecea-nav-actions {
        padding: 8px 0 10px;
    }
}

@media (max-width: 991.98px) {
    .ecea-main {
        padding-top: calc(var(--ecea-navbar-height) + 18px);
    }

    .ecea-preview-body {
        grid-template-columns: 1fr;
    }

    .ecea-preview-sidebar {
        border-right: 0;
        border-bottom: 1px solid rgba(230, 233, 245, 0.95);
    }
}

@media (max-width: 767.98px) {
    :root {
        --ecea-navbar-height: 84px;
    }

    .ecea-navbar-wrap {
        padding: 10px 0 8px;
    }

    .ecea-brand-logo {
        height: 34px;
    }

    .ecea-navbar,
    .ecea-navbar .container {
        min-height: 68px;
        border-radius: 20px;
    }

    .ecea-section,
    .ecea-hero-section,
    .ecea-page-hero,
    .ecea-auth-section {
        padding-left: 0;
        padding-right: 0;
    }
}


.ecea-check-list { gap: 8px; }
.ecea-check-list-compact { gap: 4px; }
.ecea-check-list-compact li { margin-bottom: 0; }
.ecea-check-list li { display:flex; align-items:center; gap:10px; }
.ecea-check-list li i { flex:0 0 auto; }

.ecea-process-card,
.ecea-level-card,
.ecea-pricing-card,
.ecea-note-card,
.ecea-stat-chip,
.ecea-preview-card,
.ecea-cta-box {
    border: 2px solid #d4daf3;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.ecea-process-card:hover,
.ecea-level-card:hover,
.ecea-pricing-card:hover,
.ecea-note-card:hover {
    box-shadow: 0 24px 50px rgba(79, 70, 229, 0.14);
}

.ecea-pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ecea-pricing-grid .ecea-pricing-card {
    height: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: 24px 20px;
}

.ecea-pricing-grid .ecea-pricing-card .ecea-feature-list {
    margin-top: 10px;
    margin-bottom: 18px;
}

.ecea-pricing-grid .ecea-pricing-card .ecea-btn {
    margin-top: auto;
}

.ecea-pricing-grid .ecea-pricing-card .ecea-pricing-top h3 {
    font-size: clamp(24px, 2vw, 38px);
}

.ecea-pricing-card {
    border-width: 1.5px;
}

.ecea-pricing-card.recommended {
    border-color: rgba(79, 70, 229, 0.45);
    box-shadow: 0 24px 54px rgba(79, 70, 229, 0.18);
}

.ecea-footer-brand--logoonly {
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.ecea-footer-logo {
    height: 40px;
    width: auto;
}


.ecea-process-card,
.ecea-level-card,
.ecea-note-card {
    min-height: 100%;
}

.ecea-level-card {
    padding: 26px 22px;
}

.ecea-process-card {
    padding: 28px 24px;
}

.ecea-pricing-card .ecea-pricing-desc {
    min-height: 70px;
}

.ecea-pricing-card .ecea-feature-list li {
    margin-bottom: 2px;
}

.ecea-footer-links a {
    display: inline-flex;
    align-items: center;
}
@media (max-width: 1399.98px) {
    .ecea-pricing-grid,
    .ecea-pricing-grid-page {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    }
}

@media (max-width: 991.98px) {
    .ecea-pricing-grid,
    .ecea-pricing-grid-page {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    }
}

@media (max-width: 767.98px) {
    .ecea-pricing-grid,
    .ecea-pricing-grid-page {
        grid-template-columns: 1fr;
    }
}


/* ===== E'CEA v6 polish ===== */
.ecea-brand-logo {
    max-width: 96px;
}

.ecea-pricing-top h3,
.ecea-pricing-grid .ecea-pricing-card .ecea-pricing-top h3 {
    font-size: clamp(30px, 2.2vw, 40px);
    line-height: 1.05;
    letter-spacing: -0.02em;
}

.ecea-pricing-card {
    overflow: visible;
}

.ecea-pricing-card.recommended {
    position: relative;
    margin-top: 18px;
    border: 1px solid transparent;
    background:
      linear-gradient(#ffffff, #ffffff) padding-box,
      linear-gradient(135deg, var(--ecea-primary) 0%, var(--ecea-secondary) 100%) border-box;
    box-shadow: 0 18px 40px rgba(79, 70, 229, 0.16);
}

.ecea-pricing-card.recommended::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, var(--ecea-primary) 0%, var(--ecea-secondary) 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
}

.ecea-recommended-badge {
    position: absolute;
    top: -14px;
    left: 22px;
    z-index: 2;
    min-height: 30px;
    padding: 0 16px;
    border: 1px solid rgba(255,255,255,0.7);
    background: linear-gradient(135deg, var(--ecea-primary) 0%, var(--ecea-secondary) 100%);
    color: #fff;
    box-shadow: 0 14px 28px rgba(79, 70, 229, 0.22);
}

.ecea-pricing-card.recommended .ecea-pricing-top {
    padding-top: 8px;
}

@media (max-width: 991.98px) {
    .ecea-brand-logo {
        height: 30px;
        max-width: 88px;
    }

    .ecea-recommended-badge {
        left: 18px;
    }
}


/* Starter Class v7 refinement */
.ecea-starter-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(79, 70, 229, 0.14), transparent 34%),
        linear-gradient(180deg, #f5f7ff 0%, #eef2ff 100%);
}

.ecea-starter-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url('../images/bg/starter-english-pattern.svg') right center / min(760px, 58%) no-repeat;
    opacity: 0.42;
    pointer-events: none;
}

.ecea-starter-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-starter-info-card {
    padding: 34px 30px;
    border-width: 1.5px;
}

.ecea-starter-form-shell {
    padding: 34px 34px 30px;
    border-radius: 24px;
    border: 1.5px solid rgba(230, 233, 245, 1);
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.10);
}

.ecea-starter-form-shell .ecea-form-head h3 {
    margin-bottom: 10px;
}

.ecea-starter-form-shell .ecea-form-head p {
    font-size: 15px;
    line-height: 1.65;
}

.ecea-form-control {
    min-height: 52px;
    border-radius: 12px;
    border: 1.5px solid #dbe3f3;
    background: #fff;
    color: var(--ecea-text);
    font-size: 15px;
    box-shadow: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.ecea-form-control:focus {
    border-color: rgba(99, 102, 241, 0.55);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.10);
}

.ecea-form-control::placeholder,
.ecea-form-control option[disabled],
.ecea-form-control option:first-child {
    color: #9aa3b2;
    font-size: 15px;
}

.ecea-form-textarea {
    min-height: 118px;
    resize: vertical;
    padding-top: 14px;
}

.ecea-form-select {
    color: #6b7280;
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #76839b 50%), linear-gradient(135deg, #76839b 50%, transparent 50%);
    background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    padding-right: 42px;
}

.ecea-form-shell .form-label {
    color: #475569;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.ecea-btn-starter-submit {
    min-height: 56px;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 18px 36px rgba(79, 70, 229, 0.24);
}

.ecea-btn-starter-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 42px rgba(79, 70, 229, 0.28);
}

@media (max-width: 991.98px) {
    .ecea-starter-hero::before {
        background-size: 520px auto;
        background-position: right -80px top;
        opacity: 0.28;
    }

    .ecea-starter-form-shell,
    .ecea-starter-info-card {
        padding: 28px 24px;
    }
}

@media (max-width: 575.98px) {
    .ecea-starter-hero {
        padding-top: 76px;
    }

    .ecea-starter-form-shell,
    .ecea-starter-info-card {
        padding: 24px 18px;
        border-radius: 20px;
    }

    .ecea-form-control,
    .ecea-btn-starter-submit {
        min-height: 50px;
        font-size: 14px;
    }
}

/* Starter Class v7.1 refinement */
.ecea-starter-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, rgba(125, 92, 246, 0.16), transparent 34%),
        linear-gradient(180deg, #f4f6ff 0%, #eef2ff 100%);
}

.ecea-starter-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(244, 246, 255, 0.94) 0%, rgba(244, 246, 255, 0.90) 38%, rgba(244, 246, 255, 0.68) 62%, rgba(244, 246, 255, 0.22) 100%),
        url('../images/bg/bgecea.jpg') right center / clamp(420px, 44vw, 720px) auto no-repeat;
    opacity: 1;
    pointer-events: none;
}

.ecea-starter-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-starter-info-card {
    padding: 34px 30px;
    border: 1.8px solid #d8def0;
    box-shadow: 0 22px 48px rgba(15, 23, 42, 0.08);
}

.ecea-starter-form-shell {
    padding: 34px 34px 30px;
    border-radius: 24px;
    border: 1.8px solid #d8def0;
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.10);
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(8px);
}

.ecea-starter-form-shell .ecea-form-head h3 {
    margin-bottom: 10px;
}

.ecea-starter-form-shell .ecea-form-head p {
    font-size: 15px;
    line-height: 1.65;
}

.ecea-starter-form-shell .form-group {
    margin-bottom: 0;
}

.ecea-form-control {
    min-height: 54px;
    border-radius: 14px;
    border: 1.6px solid #d7deef;
    background: #fff;
    color: var(--ecea-text);
    font-size: 14px;
    font-weight: 500;
    padding: 14px 16px;
    box-shadow: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.ecea-form-control:hover {
    border-color: #c7d0e6;
}

.ecea-form-control:focus {
    border-color: rgba(99, 102, 241, 0.60);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.10);
    background: #fff;
}

.ecea-form-control::placeholder,
.ecea-form-textarea::placeholder {
    color: #98a2b3;
    font-size: 14px;
    font-weight: 400;
    opacity: 1;
}

.ecea-form-control::-webkit-input-placeholder,
.ecea-form-textarea::-webkit-input-placeholder {
    color: #98a2b3;
}

.ecea-form-textarea {
    min-height: 132px;
    resize: vertical;
    padding-top: 15px;
}

.ecea-form-select {
    color: #98a2b3;
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #7c87a3 50%), linear-gradient(135deg, #7c87a3 50%, transparent 50%);
    background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    padding-right: 42px;
}

.ecea-form-select:valid {
    color: var(--ecea-text);
}

.ecea-form-shell .form-label {
    display: none;
}

.ecea-btn-starter-submit {
    min-height: 56px;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.01em;
    border: none;
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    box-shadow: 0 18px 36px rgba(79, 70, 229, 0.24);
}

.ecea-btn-starter-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 42px rgba(79, 70, 229, 0.28);
}

@media (max-width: 991.98px) {
    .ecea-starter-hero::before {
        background:
            linear-gradient(180deg, rgba(244, 246, 255, 0.90) 0%, rgba(244, 246, 255, 0.74) 52%, rgba(244, 246, 255, 0.94) 100%),
            url('../images/bg/bgecea.jpg') center bottom / cover no-repeat;
    }

    .ecea-starter-form-shell,
    .ecea-starter-info-card {
        padding: 28px 24px;
    }
}

@media (max-width: 575.98px) {
    .ecea-starter-hero {
        padding-top: 76px;
    }

    .ecea-starter-form-shell,
    .ecea-starter-info-card {
        padding: 24px 18px;
        border-radius: 20px;
    }

    .ecea-form-control,
    .ecea-btn-starter-submit {
        min-height: 50px;
        font-size: 14px;
    }
}

/* v7.3 navbar + starter hero refinement */
:root {
    --ecea-navbar-height: 78px;
}

.ecea-navbar-wrap {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1040;
    padding: 0;
    background: #ffffff;
    border-bottom: 1px solid rgba(221, 226, 244, 0.95);
    box-shadow: none;
}

.ecea-main {
    padding-top: var(--ecea-navbar-height);
}

.ecea-navbar {
    min-height: var(--ecea-navbar-height);
    padding: 0;
    border-radius: 0 !important;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.ecea-navbar .container {
    min-height: var(--ecea-navbar-height);
}

.ecea-brand-logo {
    height: 46px;
    width: auto;
    object-fit: contain;
}

.ecea-starter-hero {
    position: relative;
    overflow: hidden;
    padding: 72px 0 78px;
    background: #0d111b;
}

.ecea-starter-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(7, 11, 24, 0.82) 0%, rgba(7, 11, 24, 0.66) 34%, rgba(7, 11, 24, 0.38) 58%, rgba(7, 11, 24, 0.26) 100%),
        url('../images/bg/bgecea.jpg') center center / cover no-repeat;
    opacity: 1;
    pointer-events: none;
}

.ecea-starter-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-starter-hero .ecea-kicker {
    color: #ff6bb7;
}

.ecea-starter-hero h1,
.ecea-starter-hero p {
    color: #ffffff;
}

.ecea-starter-hero h1 {
    max-width: 720px;
    text-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
}

.ecea-starter-hero p {
    max-width: 640px;
    color: rgba(255, 255, 255, 0.88);
}

@media (max-width: 1199.98px) {
    :root {
        --ecea-navbar-height: 74px;
    }

    .ecea-brand-logo {
        height: 42px;
    }
}

@media (max-width: 767.98px) {
    :root {
        --ecea-navbar-height: 68px;
    }

    .ecea-navbar-wrap {
        padding: 0;
    }

    .ecea-navbar,
    .ecea-navbar .container {
        min-height: var(--ecea-navbar-height);
        border-radius: 0 !important;
    }

    .ecea-brand-logo {
        height: 36px;
    }

    .ecea-starter-hero {
        padding: 56px 0 60px;
    }

    .ecea-starter-hero::before {
        background:
            linear-gradient(180deg, rgba(7, 11, 24, 0.76) 0%, rgba(7, 11, 24, 0.56) 38%, rgba(7, 11, 24, 0.76) 100%),
            url('../images/bg/bgecea.jpg') center center / cover no-repeat;
    }
}


/* v7.4 home hero + starter spacing refinements */
.ecea-home-hero {
    position: relative;
    overflow: hidden;
    padding: 84px 0 86px;
    background: #0b1020;
}

.ecea-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 9, 18, 0.84) 0%, rgba(5, 9, 18, 0.76) 34%, rgba(5, 9, 18, 0.52) 58%, rgba(5, 9, 18, 0.34) 100%),
        url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    opacity: 1;
    pointer-events: none;
}

.ecea-home-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-hero-title-on-dark,
.ecea-hero-text-on-dark,
.ecea-home-hero .ecea-kicker,
.ecea-home-hero .ecea-kicker::before {
    position: relative;
    z-index: 1;
}

.ecea-home-hero .ecea-kicker {
    color: #ff6bb7;
}

.ecea-hero-title-on-dark {
    color: #ffffff;
    text-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}

.ecea-hero-text-on-dark,
.ecea-hero-text-on-dark strong {
    color: rgba(255, 255, 255, 0.92);
}

.ecea-btn-on-dark-outline {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.24);
    color: #ffffff;
    backdrop-filter: blur(8px);
}

.ecea-btn-on-dark-outline:hover {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.38);
    color: #ffffff;
}

.ecea-check-list-on-dark li,
.ecea-check-list-on-dark li i {
    color: rgba(255, 255, 255, 0.88);
}

.ecea-home-hero .ecea-stat-chip {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
}

.ecea-home-hero .ecea-stat-chip strong,
.ecea-home-hero .ecea-stat-chip span {
    color: #ffffff;
}

.ecea-home-hero .ecea-stat-chip.highlighted {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.24);
}

.ecea-starter-hero {
    padding: 82px 0 94px;
}

.ecea-starter-hero::before {
    background:
        linear-gradient(90deg, rgba(7, 11, 24, 0.82) 0%, rgba(7, 11, 24, 0.68) 34%, rgba(7, 11, 24, 0.48) 56%, rgba(7, 11, 24, 0.28) 100%),
        url('../images/bg/bgecea.jpg') right center / contain no-repeat,
        #0d111b;
}

.ecea-starter-body {
    margin-top: 30px;
}

@media (max-width: 991.98px) {
    .ecea-home-hero {
        padding: 72px 0 74px;
    }

    .ecea-home-hero::before {
        background:
            linear-gradient(180deg, rgba(5, 9, 18, 0.82) 0%, rgba(5, 9, 18, 0.70) 40%, rgba(5, 9, 18, 0.56) 100%),
            url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    }

    .ecea-starter-hero::before {
        background:
            linear-gradient(180deg, rgba(7, 11, 24, 0.82) 0%, rgba(7, 11, 24, 0.66) 44%, rgba(7, 11, 24, 0.42) 100%),
            url('../images/bg/bgecea.jpg') center center / cover no-repeat;
    }
}

@media (max-width: 767.98px) {
    .ecea-home-hero {
        padding: 62px 0 64px;
    }

    .ecea-starter-body {
        margin-top: 18px;
    }
}


/* v7.5 home hero figure refinement */
.ecea-home-hero-row {
    min-height: 560px;
}

.ecea-home-hero .ecea-hero-title {
    max-width: 640px;
}

.ecea-home-hero .ecea-hero-text {
    max-width: 600px;
}

.ecea-hero-figure-wrap {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    height: 100%;
    margin-bottom: -86px;
    position: relative;
    z-index: 1;
}

.ecea-hero-figure {
    width: min(100%, 440px);
    max-height: 720px;
    object-fit: contain;
    object-position: bottom right;
    filter: drop-shadow(0 18px 42px rgba(0, 0, 0, 0.20));
}

@media (max-width: 1199.98px) {
    .ecea-home-hero-row {
        min-height: 520px;
    }

    .ecea-hero-figure-wrap {
        margin-bottom: -74px;
    }

    .ecea-hero-figure {
        width: min(100%, 390px);
    }
}

@media (max-width: 991.98px) {
    .ecea-home-hero-row {
        min-height: auto;
    }
}

@media (max-width: 767.98px) {
    .ecea-home-hero .ecea-hero-title {
        max-width: 100%;
    }
}



/* v7.6 program page hero and card refinements */
.ecea-program-hero {
    position: relative;
    overflow: hidden;
    padding: 82px 0 88px;
    background: #0b1020;
}

.ecea-program-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(7, 11, 24, 0.72) 0%, rgba(7, 11, 24, 0.68) 42%, rgba(7, 11, 24, 0.62) 100%),
        url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    opacity: 1;
    pointer-events: none;
}

.ecea-program-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-program-hero .ecea-kicker {
    color: #ff6bb7;
}

.ecea-program-hero h1 {
    color: #ffffff;
    text-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}

.ecea-program-hero p {
    max-width: 760px;
    color: rgba(255, 255, 255, 0.90);
    text-align: center;
}

.ecea-program-body {
    margin-top: 34px;
}

.ecea-program-card-shadow {
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    border-color: rgba(223, 228, 248, 0.98);
}

.ecea-program-card-shadow:hover {
    box-shadow: 0 16px 32px rgba(79, 70, 229, 0.12);
}

@media (max-width: 991.98px) {
    .ecea-program-hero {
        padding: 68px 0 74px;
    }

    .ecea-program-hero::before {
        background:
            linear-gradient(180deg, rgba(7, 11, 24, 0.78) 0%, rgba(7, 11, 24, 0.70) 46%, rgba(7, 11, 24, 0.64) 100%),
            url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    }

    .ecea-program-body {
        margin-top: 26px;
    }
}


/* ===== E'CEA UI refinement v7.7 ===== */
.ecea-dark-page-hero {
    position: relative;
    overflow: hidden;
    padding: 82px 0 88px;
    background: #0b1020;
}

.ecea-dark-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(7, 11, 24, 0.72) 0%, rgba(7, 11, 24, 0.68) 42%, rgba(7, 11, 24, 0.62) 100%),
        url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    opacity: 1;
    pointer-events: none;
}

.ecea-dark-page-hero > .container {
    position: relative;
    z-index: 1;
}

.ecea-dark-page-hero .ecea-kicker {
    color: #ff6bb7;
}

.ecea-dark-page-hero h1 {
    color: #ffffff;
    text-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}

.ecea-dark-page-hero p {
    max-width: 760px;
    color: rgba(255, 255, 255, 0.90);
    text-align: center;
}

.ecea-page-body-gap {
    margin-top: 34px;
}

.ecea-subsection-gap {
    padding-top: 34px;
}

.ecea-soft-shadow {
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    border-color: rgba(223, 228, 248, 0.98);
}

.ecea-soft-shadow:hover {
    box-shadow: 0 16px 32px rgba(79, 70, 229, 0.12);
}

.ecea-pricing-grid-page .ecea-pricing-card {
    transition: all 0.28s ease;
}

.ecea-pricing-grid-page .ecea-pricing-card:hover {
    transform: translateY(-4px);
}

.ecea-faq-item .accordion-button {
    font-size: 18px;
    line-height: 1.7;
}

.ecea-faq-item .accordion-body {
    font-size: 18px;
    line-height: 1.8;
}

.ecea-contact-hero-card {
    max-width: 520px;
    padding: 22px 24px;
    gap: 16px;
}

.ecea-contact-hero-card a {
    justify-content: flex-start;
    font-size: 18px;
    font-weight: 700;
    color: #111827;
}

.ecea-contact-hero-card i {
    color: var(--ecea-primary);
}

.ecea-form-shell-contact {
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.ecea-form-shell-contact .ecea-form-head {
    margin-bottom: 28px;
}

.ecea-form-shell-contact .ecea-form-head p {
    font-size: 16px;
    color: var(--ecea-muted);
    max-width: 560px;
    margin: 10px auto 0;
}

.ecea-form-shell-contact .form-label {
    font-size: 14px;
    font-weight: 700;
    color: #334155;
}

.ecea-form-shell-contact .ecea-form-control {
    min-height: 54px;
    border: 1px solid #d7def2;
    background: #ffffff;
    border-radius: 16px;
    padding: 13px 16px;
}

.ecea-form-shell-contact textarea.ecea-form-control {
    min-height: 150px;
}

.ecea-form-shell-contact .ecea-form-control::placeholder {
    color: #94a3b8;
    opacity: 1;
}

.ecea-form-shell-contact .ecea-form-control:focus {
    background: #ffffff;
    border-color: rgba(79, 70, 229, 0.50);
}

@media (max-width: 991.98px) {
    .ecea-dark-page-hero {
        padding: 68px 0 74px;
    }

    .ecea-dark-page-hero::before {
        background:
            linear-gradient(180deg, rgba(7, 11, 24, 0.78) 0%, rgba(7, 11, 24, 0.70) 46%, rgba(7, 11, 24, 0.64) 100%),
            url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    }

    .ecea-page-body-gap {
        margin-top: 26px;
    }

    .ecea-subsection-gap {
        padding-top: 26px;
    }

    .ecea-contact-hero-card a {
        font-size: 17px;
    }

    .ecea-faq-item .accordion-button,
    .ecea-faq-item .accordion-body {
        font-size: 17px;
    }
}

@media (max-width: 767.98px) {
    .ecea-contact-hero-card {
        padding: 20px 18px;
    }

    .ecea-contact-hero-card a {
        font-size: 16px;
    }

    .ecea-faq-item .accordion-button {
        padding: 22px 20px;
        font-size: 16px;
    }

    .ecea-faq-item .accordion-body {
        padding: 0 20px 22px;
        font-size: 16px;
    }
}


/* v7.8 pricing, contact, navbar localization refinements */
.ecea-brand-logo {
    height: 40px;
}

.ecea-page-body-gap.ecea-pricing-main-gap {
    margin-top: 102px;
}

.ecea-subsection-gap.ecea-pricing-note-gap {
    padding-top: 102px;
    padding-bottom: 10px;
}

.ecea-section-head-tight {
    max-width: 760px;
    margin: 0 auto 40px;
}

.ecea-section-head-tight h3 {
    font-size: clamp(32px, 3.2vw, 44px);
    line-height: 1.12;
    margin-bottom: 12px;
}

.ecea-section-head-tight p {
    max-width: 720px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.75;
    color: var(--ecea-muted);
}

.ecea-pricing-card-strong,
.ecea-note-card-strong {
    border-width: 2px;
    border-color: #d8def1;
}

.ecea-contact-hero-card {
    max-width: 680px;
    padding: 26px 28px;
    display: grid;
    grid-template-columns: 190px 1fr;
    align-items: center;
    gap: 20px;
}

.ecea-contact-hero-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 128px;
    border-right: 1px solid #e4e9f7;
    padding-right: 18px;
}

.ecea-contact-hero-logo img {
    max-width: 126px;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.ecea-contact-hero-list {
    display: grid;
    gap: 14px;
}

.ecea-form-control-strong,
.ecea-form-shell-contact .ecea-form-control.ecea-form-control-strong {
    border: 2px solid #cdd6ee;
    background: #ffffff;
}

.ecea-form-control-strong::placeholder {
    color: #9aa4bf;
    opacity: 1;
}

.ecea-form-control-strong:focus,
.ecea-form-shell-contact .ecea-form-control.ecea-form-control-strong:focus {
    border-color: #6d5ef0;
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.10) !important;
}

@media (max-width: 991.98px) {
    .ecea-page-body-gap.ecea-pricing-main-gap {
        margin-top: 72px;
    }

    .ecea-subsection-gap.ecea-pricing-note-gap {
        padding-top: 72px;
    }

    .ecea-contact-hero-card {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .ecea-contact-hero-logo {
        border-right: 0;
        border-bottom: 1px solid #e4e9f7;
        padding-right: 0;
        padding-bottom: 18px;
    }
}


/* v7.9 content alignment, spacing, and card refinements */
.ecea-home-hero .ecea-hero-text.ecea-home-hero-copy {
    margin-left: 0;
    margin-right: 0;
    max-width: 620px;
}

.ecea-page-hero-copy-left {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 720px;
    text-align: left;
}

.ecea-page-body-gap {
    margin-top: 56px;
}

.ecea-subsection-gap {
    padding-top: 56px;
}

.ecea-page-body-gap-wide {
    margin-top: 64px;
}

.ecea-subsection-gap-wide {
    padding-top: 64px;
}

.ecea-starter-body {
    margin-top: 56px;
}

.ecea-program-body {
    margin-top: 56px;
}

.ecea-pricing-main-gap {
    margin-top: 180px;
}

.ecea-pricing-note-gap {
    padding-top: 180px;
    padding-bottom: 10px;
}

.ecea-starter-form-shell,
.ecea-starter-info-card,
.ecea-pricing-card-strong,
.ecea-note-card-strong,
.ecea-faq-item,
.ecea-contact-hero-card,
.ecea-form-shell-contact {
    border-width: 2px;
    border-color: #d1d8ef;
}

.ecea-pricing-card-strong,
.ecea-note-card-strong {
    border-color: #cfd7f2;
}

.ecea-contact-hero-card {
    max-width: 560px;
}

.ecea-contact-hero-card-compact {
    grid-template-columns: 130px 1fr;
    gap: 18px;
    padding: 18px 22px;
}

.ecea-contact-hero-logo {
    min-height: 100px;
    padding-right: 16px;
}

.ecea-contact-hero-logo img {
    max-width: 110px;
}

.ecea-contact-hero-list {
    gap: 10px;
}

.ecea-contact-hero-card a {
    font-size: 16px;
    line-height: 1.45;
}

.ecea-form-shell-contact .ecea-form-control,
.ecea-form-control-strong,
.ecea-form-shell-contact .ecea-form-control.ecea-form-control-strong {
    border-width: 2px;
    border-color: #c7d2ee;
}

.ecea-form-shell-contact .ecea-form-control:focus,
.ecea-form-control-strong:focus,
.ecea-form-shell-contact .ecea-form-control.ecea-form-control-strong:focus {
    border-color: #6d5ef0;
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.10) !important;
}

.ecea-btn-home-match {
    min-height: 52px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 999px;
    box-shadow: 0 16px 36px rgba(79, 70, 229, 0.22);
}

.ecea-btn-home-match:hover {
    box-shadow: 0 20px 40px rgba(79, 70, 229, 0.28);
}

.ecea-faq-section-head {
    margin-bottom: 32px;
}

.ecea-faq-item .accordion-button {
    font-size: 18px;
    line-height: 1.5;
}

.ecea-footer {
    margin-top: 76px;
    padding: 52px 0 28px;
}

@media (max-width: 991.98px) {
    .ecea-page-body-gap,
    .ecea-page-body-gap-wide,
    .ecea-starter-body,
    .ecea-program-body {
        margin-top: 44px;
    }

    .ecea-subsection-gap,
    .ecea-subsection-gap-wide {
        padding-top: 44px;
    }

    .ecea-pricing-main-gap {
        margin-top: 112px;
    }

    .ecea-pricing-note-gap {
        padding-top: 112px;
    }

    .ecea-contact-hero-card,
    .ecea-contact-hero-card-compact {
        grid-template-columns: 1fr;
        max-width: 100%;
    }

    .ecea-contact-hero-logo {
        border-right: 0;
        border-bottom: 1px solid #e4e9f7;
        padding-right: 0;
        padding-bottom: 16px;
        min-height: auto;
    }

    .ecea-footer {
        margin-top: 56px;
    }
}

.ecea-faq-item .accordion-body { font-size: 18px; }


/* ===== E'CEA Auth redesign v8 ===== */
.ecea-auth-landing {
    padding: 42px 0 34px;
}

.ecea-auth-panel {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(135deg, #a6dde1 0%, #74baf0 35%, #7a7cf5 68%, #ef61c8 100%);
    box-shadow: 0 28px 70px rgba(15, 23, 42, 0.18);
    min-height: 640px;
}

.ecea-auth-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 16% 18%, rgba(255,255,255,0.34), transparent 28%),
                radial-gradient(circle at 84% 12%, rgba(255,255,255,0.18), transparent 22%),
                radial-gradient(circle at 78% 80%, rgba(255,255,255,0.16), transparent 25%);
    pointer-events: none;
}

.ecea-auth-panel::after {
    content: "";
    position: absolute;
    top: 13%;
    bottom: 24%;
    left: 58.1%;
    width: 1px;
    background: rgba(255, 255, 255, 0.68);
    display: none;
}

.ecea-auth-panel-register {
    min-height: 720px;
}

.ecea-auth-pane {
    position: relative;
    z-index: 1;
    padding: 86px 58px 92px;
    height: 100%;
}

.ecea-auth-pane-form {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ecea-auth-pane-form.wide {
    padding-right: 42px;
}

.ecea-auth-pane-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #ffffff;
}

.ecea-auth-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    letter-spacing: 0.22em;
    font-weight: 700;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 26px;
}

.ecea-auth-kicker::before {
    content: "";
    width: 34px;
    height: 2px;
    border-radius: 999px;
    background: rgba(255,255,255,0.9);
}

.ecea-auth-pane-copy h1 {
    font-size: clamp(48px, 5vw, 76px);
    line-height: 0.98;
    letter-spacing: -0.03em;
    color: #fff;
    margin: 0 0 24px;
}

.ecea-auth-pane-copy h1 strong {
    display: block;
    color: rgba(255,255,255,0.95);
    font-weight: 400;
}

.ecea-auth-pane-copy p {
    max-width: 420px;
    font-size: 18px;
    line-height: 1.75;
    color: rgba(255,255,255,0.88);
    margin-bottom: 30px;
}

.ecea-auth-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 156px;
    padding: 14px 24px;
    border-radius: 999px;
    background: rgba(48, 173, 136, 0.96);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 18px 28px rgba(22, 163, 74, 0.18);
}

.ecea-auth-more:hover {
    color: #fff;
    transform: translateY(-1px);
}

.ecea-auth-avatar {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    margin: 0 auto 34px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,0.88);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5);
}

.ecea-auth-avatar span {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(148, 163, 184, 0.25);
    color: rgba(99, 115, 129, 0.92);
    font-size: 26px;
}

.ecea-auth-avatar.register span {
    font-size: 24px;
}

.ecea-auth-form-grid {
    display: grid;
    gap: 18px;
}

.ecea-auth-form-grid.two-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 14px;
}

.ecea-auth-form-grid .span-2 {
    grid-column: 1 / -1;
}

.ecea-auth-field {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 0 20px 0 18px;
    border-radius: 999px;
    background: rgba(255,255,255,0.96);
    box-shadow: 0 18px 34px rgba(99, 102, 241, 0.12);
    border: 1px solid rgba(255,255,255,0.45);
}

.ecea-auth-field.select {
    padding-right: 14px;
}

.ecea-auth-field.has-error {
    border-color: rgba(239, 68, 68, 0.7);
    box-shadow: 0 14px 30px rgba(239, 68, 68, 0.14);
}

.ecea-auth-field-icon {
    width: 32px;
    flex: 0 0 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #7fa0a8;
    font-size: 18px;
}

.ecea-auth-input {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    min-height: 58px;
    padding: 0 0 0 4px !important;
    color: #6f8790 !important;
    font-size: 16px !important;
    font-weight: 600;
}

.ecea-auth-input::placeholder {
    color: #7fa0a8 !important;
    opacity: 1;
    font-weight: 600;
}

.ecea-auth-input.form-select {
    cursor: pointer;
    background-position: right 0.85rem center;
    padding-right: 2rem !important;
}

.ecea-auth-input option {
    color: #243449;
}

.ecea-auth-remember {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 2px;
    color: #fff;
    font-weight: 600;
    min-height: 28px;
}

.ecea-switch {
    position: relative;
    display: inline-flex;
    width: 46px;
    height: 26px;
}

.ecea-switch-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    margin: 0;
}

.ecea-switch-slider {
    width: 100%;
    border-radius: 999px;
    background: rgba(255,255,255,0.4);
    position: relative;
    transition: .25s ease;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25);
}

.ecea-switch-slider::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: .25s ease;
}

.ecea-switch-input:checked + .ecea-switch-slider {
    background: rgba(39, 176, 136, 0.95);
}

.ecea-switch-input:checked + .ecea-switch-slider::after {
    transform: translateX(20px);
}

.ecea-auth-actions {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 8px;
}

.ecea-auth-actions.two-up > * {
    flex: 1 1 0;
}

.ecea-auth-action {
    border: 0;
    min-height: 54px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: all .25s ease;
}

.ecea-auth-action.primary {
    background: rgba(48, 173, 136, 0.96);
    color: #fff;
    box-shadow: 0 18px 28px rgba(22, 163, 74, 0.18);
}

.ecea-auth-action.secondary {
    background: rgba(48, 173, 136, 0.96);
    color: #fff;
    box-shadow: 0 18px 28px rgba(22, 163, 74, 0.14);
}

.ecea-auth-action:hover {
    color: #fff;
    transform: translateY(-1px);
}

.ecea-auth-bottom-note {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 26px;
    text-align: center;
    color: rgba(255,255,255,0.92);
    font-size: 18px;
    font-weight: 500;
    z-index: 1;
}

.ecea-auth-error {
    color: #fff;
    font-size: 13px;
    line-height: 1.5;
    margin-top: -10px;
    padding-left: 10px;
}

@media (min-width: 992px) {
    .ecea-auth-panel::after {
        display: block;
    }
}

@media (max-width: 1199.98px) {
    .ecea-auth-pane {
        padding: 72px 42px 86px;
    }

    .ecea-auth-pane-copy h1 {
        font-size: clamp(42px, 4.8vw, 62px);
    }
}

@media (max-width: 991.98px) {
    .ecea-auth-landing {
        padding-top: 28px;
    }

    .ecea-auth-panel,
    .ecea-auth-panel-register {
        min-height: unset;
    }

    .ecea-auth-pane,
    .ecea-auth-pane-form.wide {
        padding: 42px 26px;
    }

    .ecea-auth-pane-copy {
        padding-top: 6px;
        text-align: center;
        align-items: center;
    }

    .ecea-auth-pane-copy p {
        max-width: 100%;
    }

    .ecea-auth-bottom-note {
        position: relative;
        bottom: auto;
        padding: 0 20px 26px;
    }
}

@media (max-width: 767.98px) {
    .ecea-auth-panel {
        border-radius: 18px;
    }

    .ecea-auth-form-grid.two-column {
        grid-template-columns: 1fr;
    }

    .ecea-auth-form-grid .span-2 {
        grid-column: auto;
    }

    .ecea-auth-actions {
        flex-direction: column;
    }

    .ecea-auth-actions.two-up > * {
        width: 100%;
    }

    .ecea-auth-pane-copy h1 {
        font-size: 42px;
    }

    .ecea-auth-pane-copy h1 strong {
        display: inline;
    }

    .ecea-auth-more,
    .ecea-auth-action {
        width: 100%;
    }
}


/* Auth page refresh v8.1 */
body.auth-page.ecea-body {
    background: linear-gradient(135deg, #b6e6e7 0%, #7db9f3 28%, #7b7cf7 58%, #d06ce4 78%, #f15cb9 100%);
    min-height: 100vh;
}

body.auth-page .ecea-page-bg {
    display: none;
}

body.auth-page .ecea-main {
    min-height: 0;
}

body.auth-page .ecea-navbar-wrap {
    padding-top: 0;
    position: relative;
    z-index: 20;
}

body.auth-page .ecea-navbar,
body.auth-page .ecea-navbar-auth {
    background: transparent;
    box-shadow: none;
    border: 0;
}

body.auth-page .ecea-nav-links .nav-link,
body.auth-page .ecea-nav-links .nav-link.auth-link,
body.auth-page .ecea-nav-links .nav-link.auth-link:hover,
body.auth-page .ecea-nav-links .nav-link.auth-link:focus {
    color: rgba(255,255,255,0.96) !important;
    background: transparent !important;
}

body.auth-page .ecea-nav-links .nav-link:hover,
body.auth-page .ecea-nav-links .nav-link:focus {
    opacity: .86;
}

body.auth-page .ecea-nav-toggle,
body.auth-page .ecea-nav-toggle:focus {
    border-color: rgba(255,255,255,0.65);
    box-shadow: none;
}

body.auth-page .ecea-nav-toggle .navbar-toggler-icon {
    filter: invert(1);
}

body.auth-page .ecea-auth-landing {
    padding: 0 0 12px;
}

body.auth-page .ecea-auth-landing .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

body.auth-page .ecea-auth-panel {
    border-radius: 0;
    min-height: calc(100vh - 124px);
    box-shadow: none;
    background: linear-gradient(135deg, #b5e6e7 0%, #7ab8f3 26%, #7b7cf7 54%, #c671eb 76%, #f05cb9 100%);
}

body.auth-page .ecea-auth-panel-register {
    min-height: calc(100vh - 124px);
}

body.auth-page .ecea-auth-panel::before {
    background:
        radial-gradient(circle at 15% 22%, rgba(255,255,255,0.26), transparent 26%),
        radial-gradient(circle at 86% 16%, rgba(255,255,255,0.15), transparent 22%),
        radial-gradient(circle at 82% 84%, rgba(255,255,255,0.17), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));
}

body.auth-page .ecea-auth-panel::after {
    left: 50%;
    top: 16%;
    bottom: 16%;
    width: 1px;
    background: rgba(255,255,255,0.70);
}

body.auth-page .ecea-auth-pane {
    padding: 90px 88px 96px;
}

body.auth-page .ecea-auth-pane-form {
    justify-content: center;
}

body.auth-page .ecea-auth-pane-copy {
    padding-left: 88px;
}

body.auth-page .ecea-auth-pane-copy h1 {
    font-size: clamp(58px, 5vw, 88px);
    margin-bottom: 22px;
}

body.auth-page .ecea-auth-pane-copy p {
    max-width: 470px;
}

body.auth-page .ecea-auth-avatar {
    width: 96px;
    height: 96px;
    margin-bottom: 30px;
}

body.auth-page .ecea-auth-field {
    min-height: 64px;
    border-color: rgba(255,255,255,0.42);
}

body.auth-page .ecea-auth-actions {
    margin-top: 16px;
}

body.auth-page .ecea-auth-action,
body.auth-page .ecea-auth-action:focus,
body.auth-page .ecea-auth-action:active {
    outline: none !important;
    box-shadow: 0 18px 28px rgba(22, 163, 74, 0.18) !important;
}

body.auth-page .ecea-auth-action.primary,
body.auth-page .ecea-auth-action.secondary,
body.auth-page .ecea-auth-more {
    background: rgba(48, 173, 136, 0.97);
    color: #fff;
    border: 0;
}

body.auth-page .ecea-auth-action.primary:hover,
body.auth-page .ecea-auth-action.secondary:hover,
body.auth-page .ecea-auth-more:hover {
    color: #fff;
    background: rgba(43, 161, 127, 0.98);
}

body.auth-page .ecea-footer-authonly {
    background: transparent;
    padding-top: 0;
    padding-bottom: 18px;
}

body.auth-page .ecea-footer-authonly .ecea-footer-bottom.only {
    margin-top: 0;
    padding-top: 8px;
    border-top: 0;
}

body.auth-page .ecea-footer-authonly p {
    color: rgba(255,255,255,0.92);
    text-align: center;
    margin: 0;
}

@media (max-width: 1199.98px) {
    body.auth-page .ecea-auth-pane,
    body.auth-page .ecea-auth-pane-copy {
        padding: 72px 48px 80px;
    }

    body.auth-page .ecea-auth-pane-copy h1 {
        font-size: clamp(50px, 5vw, 72px);
    }
}

@media (max-width: 991.98px) {
    body.auth-page .ecea-auth-panel,
    body.auth-page .ecea-auth-panel-register {
        min-height: auto;
    }

    body.auth-page .ecea-auth-pane,
    body.auth-page .ecea-auth-pane-copy,
    body.auth-page .ecea-auth-pane-form.wide {
        padding: 44px 24px;
    }

    body.auth-page .ecea-auth-pane-copy {
        padding-top: 0;
        text-align: center;
        align-items: center;
    }

    body.auth-page .ecea-auth-panel::after {
        display: none;
    }
}



/* ===== E'CEA Auth refinement v8.2 ===== */
body.auth-page.ecea-body {
    background: linear-gradient(135deg, #b6e6e7 0%, #79baf2 30%, #7b80f5 58%, #c978ea 78%, #f164bf 100%);
    min-height: 100vh;
}

body.auth-page .ecea-navbar-wrap-auth {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 30;
    padding-top: 0;
    background: transparent;
}

body.auth-page .ecea-navbar,
body.auth-page .ecea-navbar-auth {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    backdrop-filter: none !important;
    padding-top: 18px;
    padding-bottom: 18px;
}

body.auth-page .ecea-navbar .container {
    max-width: 1240px;
}

body.auth-page .ecea-nav-links .nav-link,
body.auth-page .ecea-nav-links .nav-link.auth-link,
body.auth-page .ecea-nav-links .nav-link.auth-link:hover,
body.auth-page .ecea-nav-links .nav-link.auth-link:focus {
    color: #ffffff !important;
    background: transparent !important;
}

body.auth-page .ecea-nav-links .nav-link:hover,
body.auth-page .ecea-nav-links .nav-link:focus {
    color: rgba(255,255,255,0.88) !important;
    opacity: 1;
}

body.auth-page .ecea-auth-landing {
    padding: 0;
}

body.auth-page .ecea-auth-landing .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

body.auth-page .ecea-auth-panel,
body.auth-page .ecea-auth-panel-register {
    background: transparent !important;
    border-radius: 0;
    min-height: calc(100vh - 104px);
    box-shadow: none;
}

body.auth-page .ecea-auth-panel::before {
    content: none !important;
    background: none !important;
}

body.auth-page .ecea-auth-panel::after {
    left: 50% !important;
    transform: translateX(-50%);
    top: 23%;
    bottom: 23%;
    width: 1px;
    background: rgba(255, 255, 255, 0.74);
}

body.auth-page .ecea-auth-pane {
    padding: 122px 92px 88px;
}

body.auth-page .ecea-auth-pane-copy {
    padding-left: 92px;
}

body.auth-page .ecea-auth-kicker,
body.auth-page .ecea-auth-kicker::before {
    color: #ffb24d;
    background: #ffb24d;
}

body.auth-page .ecea-auth-kicker {
    background: none;
}

body.auth-page .ecea-auth-kicker::before {
    content: "";
}

body.auth-page .ecea-auth-field {
    min-height: 54px;
    height: 54px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.54);
    background: rgba(255,255,255,0.96);
}

body.auth-page .ecea-auth-input,
body.auth-page .ecea-auth-input.form-control,
body.auth-page .ecea-auth-input.form-select {
    height: 52px !important;
    min-height: 52px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    font-size: 15px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.auth-page .ecea-auth-field-icon {
    font-size: 19px;
}

body.auth-page .ecea-auth-actions {
    margin-top: 14px;
}

body.auth-page .ecea-auth-action,
body.auth-page .ecea-auth-action.primary,
body.auth-page .ecea-auth-action.secondary,
body.auth-page input.ecea-auth-action,
body.auth-page input.ecea-auth-action.primary,
body.auth-page input.ecea-auth-action.secondary {
    -webkit-appearance: none;
    appearance: none;
    min-height: 58px;
    height: 58px;
    border: 0 !important;
    outline: none !important;
    border-radius: 999px;
    background: rgba(48, 173, 136, 0.98) !important;
    color: #fff !important;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    box-shadow: 0 18px 28px rgba(22, 163, 74, 0.18) !important;
}

body.auth-page .ecea-auth-action:hover,
body.auth-page input.ecea-auth-action:hover {
    transform: translateY(-1px);
    background: rgba(43, 161, 127, 0.98) !important;
    color: #fff !important;
}

body.auth-page .ecea-auth-more {
    min-height: 60px;
}

body.auth-page .ecea-footer-authonly {
    background: transparent;
    margin-top: 0;
}

body.auth-page .ecea-footer-authonly .container {
    max-width: 100%;
}

body.auth-page .ecea-footer-bottom.only {
    border-top: 1px solid rgba(255,255,255,0.5);
    padding: 10px 24px 14px;
}

body.auth-page .ecea-footer-bottom.only p {
    color: rgba(255,255,255,0.92);
    margin: 0;
    text-align: center;
}

@media (max-width: 1199.98px) {
    body.auth-page .ecea-auth-pane {
        padding: 110px 52px 80px;
    }

    body.auth-page .ecea-auth-pane-copy {
        padding-left: 52px;
    }
}

@media (max-width: 991.98px) {
    body.auth-page .ecea-navbar-wrap-auth {
        position: relative;
    }

    body.auth-page .ecea-auth-panel::after {
        display: none;
    }

    body.auth-page .ecea-auth-pane,
    body.auth-page .ecea-auth-pane-form.wide {
        padding: 42px 26px;
    }

    body.auth-page .ecea-footer-bottom.only {
        padding-top: 14px;
    }
}


/* ===== E'CEA Auth refinement v8.3 ===== */
body.auth-page .ecea-navbar-wrap-auth {
    border-bottom: 0 !important;
    background: transparent !important;
}

body.auth-page .ecea-navbar-wrap-auth::after,
body.auth-page .ecea-navbar-wrap-auth::before {
    content: none !important;
}

body.auth-page .ecea-navbar,
body.auth-page .ecea-navbar-auth {
    padding-top: 22px;
    padding-bottom: 10px;
}

body.auth-page .ecea-navbar .container {
    align-items: center;
}

body.auth-page .ecea-nav-links {
    gap: 8px;
}

body.auth-page .ecea-auth-landing {
    padding: 0;
}

body.auth-page .ecea-auth-panel,
body.auth-page .ecea-auth-panel-register {
    min-height: calc(100vh - 90px);
    background: linear-gradient(135deg, #b6e6e7 0%, #79baf2 26%, #7887f2 52%, #b97cea 76%, #f06bbb 100%) !important;
}

body.auth-page .ecea-auth-panel::before {
    background: none !important;
}

body.auth-page .ecea-auth-panel::after {
    top: 21%;
    bottom: 20%;
    background: rgba(255,255,255,0.58) !important;
}

body.auth-page .ecea-auth-panel-register::after {
    left: 60.2% !important;
    transform: translateX(-50%);
}

body.auth-page .ecea-auth-pane {
    padding: 86px 72px 82px;
}

body.auth-page .ecea-auth-pane-form.wide {
    padding-right: 52px;
}

body.auth-page .ecea-auth-pane-copy,
body.auth-page .ecea-auth-pane-copy.register-copy {
    padding-left: 56px;
    padding-right: 56px;
}

body.auth-page .ecea-auth-title-soft {
    font-size: clamp(44px, 4.8vw, 66px) !important;
    font-weight: 500 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.02em;
    margin-bottom: 18px !important;
    color: #ffffff;
}

body.auth-page .ecea-auth-title-soft strong,
body.auth-page .ecea-auth-title-soft span {
    font-weight: 500 !important;
    color: #ffffff;
}

body.auth-page .ecea-auth-pane-copy p {
    max-width: 455px;
    font-size: 15px;
    line-height: 1.75;
}

body.auth-page .ecea-auth-kicker {
    color: #ffb24d !important;
}

body.auth-page .ecea-auth-kicker::before {
    background: #ffb24d !important;
}

body.auth-page .ecea-auth-field {
    min-height: 52px;
    height: 52px;
    border-radius: 999px;
}

body.auth-page .ecea-auth-input,
body.auth-page .ecea-auth-input.form-control,
body.auth-page .ecea-auth-input.form-select {
    height: 50px !important;
    min-height: 50px !important;
    font-size: 14px !important;
}

body.auth-page .ecea-auth-field-icon {
    font-size: 18px;
}

body.auth-page .ecea-auth-form-stack .row + .row {
    margin-top: 0;
}

body.auth-page .auth-actions-compact {
    margin-top: 18px;
    justify-content: flex-start;
    gap: 18px;
}

body.auth-page .auth-actions-compact > * {
    flex: 0 0 auto !important;
    width: 220px;
    max-width: 100%;
}

body.auth-page .ecea-auth-action,
body.auth-page .ecea-auth-action.primary,
body.auth-page .ecea-auth-action.secondary,
body.auth-page input.ecea-auth-action,
body.auth-page input.ecea-auth-action.primary,
body.auth-page input.ecea-auth-action.secondary,
body.auth-page .ecea-auth-more {
    min-height: 56px !important;
    height: 56px !important;
    border-radius: 999px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 34px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

body.auth-page .ecea-auth-more {
    width: 300px;
    max-width: 100%;
}

body.auth-page .ecea-auth-bottom-note {
    padding-top: 20px;
    font-size: 13px;
}

body.auth-page .ecea-footer-bottom.only {
    padding-top: 12px;
    padding-bottom: 12px;
}

@media (max-width: 1199.98px) {
    body.auth-page .ecea-auth-pane {
        padding: 78px 46px 74px;
    }

    body.auth-page .ecea-auth-pane-form.wide {
        padding-right: 30px;
    }

    body.auth-page .ecea-auth-pane-copy,
    body.auth-page .ecea-auth-pane-copy.register-copy {
        padding-left: 36px;
        padding-right: 36px;
    }

    body.auth-page .auth-actions-compact > * {
        width: 200px;
    }

    body.auth-page .ecea-auth-more {
        width: 260px;
    }
}

@media (max-width: 991.98px) {
    body.auth-page .ecea-auth-panel,
    body.auth-page .ecea-auth-panel-register {
        min-height: auto;
    }

    body.auth-page .ecea-auth-panel::after,
    body.auth-page .ecea-auth-panel-register::after {
        display: none !important;
    }

    body.auth-page .ecea-auth-pane,
    body.auth-page .ecea-auth-pane-copy,
    body.auth-page .ecea-auth-pane-form.wide,
    body.auth-page .ecea-auth-pane-copy.register-copy {
        padding: 38px 24px;
    }

    body.auth-page .ecea-auth-pane-copy,
    body.auth-page .ecea-auth-pane-copy.register-copy {
        text-align: center;
        align-items: center;
    }

    body.auth-page .ecea-auth-pane-copy p {
        max-width: 100%;
    }

    body.auth-page .auth-actions-compact {
        justify-content: center;
    }
}



/* ===== E'CEA Auth refinement v8.4 ===== */
body.auth-page .ecea-auth-title-login,
body.auth-page .ecea-auth-title-register {
    font-size: clamp(38px, 4vw, 64px) !important;
    line-height: 1.04 !important;
    font-weight: 500 !important;
    letter-spacing: -0.02em;
}

body.auth-page .ecea-auth-title-register {
    max-width: 380px;
}

body.auth-page .auth-register-row .ecea-auth-pane-copy p,
body.auth-page .auth-login-row .ecea-auth-pane-copy p {
    font-size: 15px;
    line-height: 1.85;
    max-width: 430px;
}

body.auth-page .ecea-auth-actions.auth-actions-inline {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 18px;
}

body.auth-page .auth-actions-login-single {
    justify-content: flex-start;
}

body.auth-page .auth-actions-register-single {
    justify-content: flex-start;
}

body.auth-page .auth-actions-login-single .ecea-auth-action,
body.auth-page .auth-actions-register-single .ecea-auth-action {
    flex: 0 0 220px;
    width: 220px;
    min-height: 54px !important;
    height: 54px !important;
    font-size: 14px !important;
}

body.auth-page .ecea-auth-more {
    min-height: 54px !important;
    height: 54px !important;
    width: 300px;
    max-width: 100%;
    font-size: 14px !important;
}

body.auth-page .ecea-auth-inline-link {
    margin: 0;
    color: rgba(255,255,255,0.92);
    font-size: 15px;
    line-height: 1.7;
}

body.auth-page .ecea-auth-inline-link a {
    color: #ffffff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}


body.auth-page .auth-actions-inline {
    align-items: center;
    flex-wrap: wrap;
}

body.auth-page .auth-actions-inline .ecea-auth-inline-link {
    display: inline-flex;
    align-items: center;
    min-height: 54px;
    line-height: 1.2;
    margin: 0;
}

body.auth-page .auth-actions-inline .ecea-auth-inline-link a {
    display: inline-flex;
    align-items: center;
}

body.auth-page .ecea-auth-inline-link.muted {
    margin-top: 10px;
    font-size: 14px;
    color: rgba(255,255,255,0.88);
}

body.auth-page .ecea-auth-policy {
    margin: 18px 0 0;
    max-width: 700px;
    color: rgba(255,255,255,0.86);
    font-size: 12.5px;
    line-height: 1.8;
}

body.auth-page .ecea-auth-policy a {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

body.auth-page .ecea-auth-form-stack .row {
    --bs-gutter-y: 1.35rem;
    margin-bottom: 4px;
}

body.auth-page .ecea-auth-pane-recover {
    justify-content: center;
}

body.auth-page .ecea-auth-recover-box {
    max-width: 520px;
}

body.auth-page .ecea-auth-recover-title {
    font-size: 30px;
    line-height: 1.2;
    color: #fff;
    margin-bottom: 14px;
    font-weight: 600;
}

body.auth-page .ecea-auth-recover-text {
    color: rgba(255,255,255,0.88);
    line-height: 1.8;
    margin-bottom: 22px;
    max-width: 480px;
}

body.auth-page .ecea-auth-recover-actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}

body.auth-page .ecea-auth-recover-actions .ecea-auth-action {
    flex: 0 0 220px;
    width: 220px;
    min-height: 54px !important;
    height: 54px !important;
}

body.auth-page .ecea-auth-recover-links {
    color: rgba(255,255,255,0.88);
    font-size: 13px;
    line-height: 1.8;
    max-width: 520px;
}

body.auth-page .ecea-auth-recover-links strong {
    display: block;
    color: #fff;
    font-size: 14px;
    margin: 12px 0 4px;
}

@media (max-width: 1199.98px) {
    body.auth-page .auth-actions-login-single .ecea-auth-action,
    body.auth-page .auth-actions-register-single .ecea-auth-action,
    body.auth-page .ecea-auth-recover-actions .ecea-auth-action {
        width: 200px;
        flex-basis: 200px;
    }

    body.auth-page .ecea-auth-more {
        width: 260px;
    }
}

@media (max-width: 991.98px) {
    body.auth-page .ecea-auth-title-login,
    body.auth-page .ecea-auth-title-register {
        font-size: clamp(34px, 8vw, 48px) !important;
        text-align: center;
        max-width: none;
    }

    body.auth-page .ecea-auth-policy,
    body.auth-page .ecea-auth-inline-link,
    
body.auth-page .auth-actions-inline {
    align-items: center;
    flex-wrap: wrap;
}

body.auth-page .auth-actions-inline .ecea-auth-inline-link {
    display: inline-flex;
    align-items: center;
    min-height: 54px;
    line-height: 1.2;
    margin: 0;
}

body.auth-page .auth-actions-inline .ecea-auth-inline-link a {
    display: inline-flex;
    align-items: center;
}

body.auth-page .ecea-auth-inline-link.muted {
        text-align: center;
    }

    body.auth-page .ecea-auth-actions.auth-actions-inline,
    body.auth-page .ecea-auth-recover-actions {
        justify-content: center;
    }
}

@media (max-width: 767.98px) {
    body.auth-page .auth-actions-login-single,
    body.auth-page .auth-actions-register-single {
        flex-direction: column;
        align-items: stretch;
    }

    body.auth-page .auth-actions-login-single .ecea-auth-action,
    body.auth-page .auth-actions-register-single .ecea-auth-action,
    body.auth-page .ecea-auth-more,
    body.auth-page .ecea-auth-recover-actions .ecea-auth-action {
        width: 100%;
        flex-basis: auto;
    }
}


/* Home loader */
body.ecea-loader-active {
    overflow: hidden;
}

.ecea-home-loader {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition: opacity 0.7s ease, visibility 0.7s ease;
}

.ecea-home-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.ecea-home-loader__bg,
.ecea-home-loader__overlay {
    position: absolute;
    inset: 0;
}

.ecea-home-loader__bg {
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0) 32%),
        radial-gradient(circle at 80% 72%, rgba(236,72,153,0.22) 0%, rgba(236,72,153,0) 34%),
        linear-gradient(135deg, #5fb0ff 0%, #6e6cff 55%, #f064b3 100%);
    transform: scale(1.03);
}

.ecea-home-loader__overlay {
    background: rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(3px);
}

.ecea-home-loader__content {
    position: relative;
    z-index: 2;
    width: min(90vw, 420px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 22px;
    text-align: center;
}

.ecea-home-loader__halo {
    position: absolute;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.08) 38%, rgba(255,255,255,0) 72%);
    filter: blur(4px);
    animation: eceaLoaderHalo 2.8s ease-in-out infinite;
}

.ecea-home-loader__halo::before,
.ecea-home-loader__halo::after {
    content: "";
    position: absolute;
    inset: 24px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.18);
    animation: eceaLoaderRing 2.6s linear infinite;
}

.ecea-home-loader__halo::after {
    inset: 0;
    border-color: rgba(255,255,255,0.10);
    animation-duration: 3.8s;
    animation-direction: reverse;
}

.ecea-home-loader__logo {
    position: relative;
    z-index: 2;
    width: min(44vw, 180px);
    max-width: 180px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 14px 26px rgba(0, 0, 0, 0.30));
    animation: eceaLoaderLogo 2.2s ease-in-out infinite;
}

.ecea-home-loader__dots {
    position: relative;
    z-index: 2;
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
}

.ecea-home-loader__dots span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.58) 100%);
    box-shadow: 0 6px 18px rgba(255,255,255,0.18);
    animation: eceaLoaderDot 1.2s ease-in-out infinite;
}

.ecea-home-loader__dots span:nth-child(2) {
    animation-delay: 0.2s;
}

.ecea-home-loader__dots span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes eceaLoaderLogo {
    0%, 100% {
        transform: translateY(0) scale(1);
        opacity: 0.96;
    }
    50% {
        transform: translateY(-10px) scale(1.04);
        opacity: 1;
    }
}

@keyframes eceaLoaderHalo {
    0%, 100% {
        transform: scale(0.92);
        opacity: 0.9;
    }
    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes eceaLoaderRing {
    0% {
        transform: scale(0.92) rotate(0deg);
        opacity: 0.38;
    }
    50% {
        opacity: 0.18;
    }
    100% {
        transform: scale(1.06) rotate(360deg);
        opacity: 0.38;
    }
}

@keyframes eceaLoaderDot {
    0%, 100% {
        transform: translateY(0);
        opacity: 0.48;
    }
    50% {
        transform: translateY(-8px);
        opacity: 1;
    }
}

@media (max-width: 767.98px) {
    .ecea-home-loader__content {
        gap: 18px;
    }

    .ecea-home-loader__halo {
        width: 190px;
        height: 190px;
    }

    .ecea-home-loader__logo {
        width: min(52vw, 150px);
    }
}


/* ===== E'CEA v8.9 loader + footer white theme ===== */
.ecea-home-loader__logo {
    height: 38px;
    width: auto;
    max-width: none;
}

@media (max-width: 767.98px) {
    .ecea-home-loader__logo {
        height: 38px;
        width: auto;
    }
}

.ecea-footer:not(.ecea-footer-authonly) {
    position: relative;
    overflow: hidden;
    margin-top: 88px;
    padding: 56px 0 28px;
    background: #0b1020;
}

.ecea-footer:not(.ecea-footer-authonly)::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 9, 18, 0.86) 0%, rgba(5, 9, 18, 0.80) 34%, rgba(5, 9, 18, 0.60) 58%, rgba(5, 9, 18, 0.48) 100%),
        url('../images/bg/bgecea2.jpg') center center / cover no-repeat;
    pointer-events: none;
}

.ecea-footer:not(.ecea-footer-authonly) > .container {
    position: relative;
    z-index: 1;
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-logo {
    height: 38px;
    width: auto;
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-text,
.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-title,
.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-links a,
.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-bottom p {
    color: rgba(255, 255, 255, 0.92);
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-title {
    color: #ffffff;
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-links a:hover,
.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-social a:hover {
    color: #ffffff;
    opacity: 0.88;
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-social a {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.22);
    color: #ffffff;
}

.ecea-footer:not(.ecea-footer-authonly) .ecea-footer-bottom {
    border-top-color: rgba(255, 255, 255, 0.18);
}


/* ===== E'CEA v9.0 preloader video ===== */
.ecea-home-loader__content {
    gap: 0;
}

.ecea-home-loader__halo,
.ecea-home-loader__dots,
.ecea-home-loader__logo {
    display: none !important;
}

.ecea-home-loader__video {
    position: relative;
    z-index: 2;
    display: block;
    height: 46px;
    width: auto;
    max-width: min(82vw, 156px);
    object-fit: contain;
    filter: drop-shadow(0 14px 28px rgba(0, 0, 0, 0.22));
    background: transparent;
    border: 0;
    outline: 0;
}

.ecea-home-loader__video::-webkit-media-controls {
    display: none !important;
}

@media (max-width: 767.98px) {
    .ecea-home-loader__video {
        height: 38px;
        max-width: min(78vw, 128px);
    }
}


/* Student dashboard refresh */

.ecea-student-shell {
    padding: 72px 0 96px;
    background: #f4f7ff;
}

.ecea-student-panel {
    background: #fff;
    border: 1.5px solid rgba(72, 104, 255, 0.14);
    border-radius: 28px;
    box-shadow: 0 18px 45px rgba(31, 41, 55, 0.06);
    padding: 30px;
}

.ecea-student-hero {
    margin-bottom: 26px;
    background: linear-gradient(135deg, rgba(47, 87, 239, 0.06) 0%, rgba(185, 102, 231, 0.10) 100%), #fff;
}

.ecea-student-hero h1,
.ecea-page-head h1,
.ecea-level-header h1 {
    font-size: 44px;
    line-height: 1.1;
    margin: 12px 0 16px;
    color: var(--ecea-text);
}

.ecea-student-lead,
.ecea-page-head p,
.ecea-level-header p {
    max-width: 700px;
    font-size: 18px;
    line-height: 1.8;
    color: var(--ecea-muted);
    margin-bottom: 0;
}

.ecea-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #ff6b3d;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ecea-eyebrow::before {
    content: "";
    width: 34px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #2f57ef 0%, #b966e7 100%);
}

.ecea-hero-actions,
.ecea-panel-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
}

.ecea-hero-actions {
    margin-top: 24px;
}

.ecea-btn-main,
.ecea-btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 24px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.25s ease;
    border: none;
}

.ecea-btn-main {
    background: linear-gradient(90deg, #2f57ef 0%, #7a5cff 55%, #b966e7 100%);
    color: #fff;
    box-shadow: 0 12px 24px rgba(92, 78, 255, 0.24);
}

.ecea-btn-main:hover {
    transform: translateY(-1px);
    color: #fff;
}

.ecea-btn-main.is-disabled,
.ecea-btn-main:disabled {
    opacity: 0.68;
    pointer-events: none;
}

.ecea-btn-ghost {
    background: #fff;
    color: var(--ecea-primary-dark);
    border: 1.5px solid rgba(79, 70, 229, 0.18);
}

.ecea-btn-ghost:hover {
    color: var(--ecea-primary-dark);
    background: rgba(79, 70, 229, 0.04);
}

.ecea-inline-link,
.ecea-card-link {
    color: var(--ecea-primary-dark);
    font-weight: 700;
}

.ecea-inline-link:hover,
.ecea-card-link:hover {
    color: #7a5cff;
}

.ecea-student-plan-card {
    background: #fff;
    border: 1px solid rgba(47, 87, 239, 0.12);
    border-radius: 24px;
    padding: 24px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.65);
}

.ecea-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(47, 87, 239, 0.08);
    color: var(--ecea-primary-dark);
    font-size: 13px;
    font-weight: 700;
}

.ecea-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #eef2ff;
    color: #556070;
    font-size: 12px;
    font-weight: 700;
}

.ecea-pill.is-open {
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
}

.ecea-pill.is-locked {
    background: rgba(108, 117, 125, 0.12);
    color: #6c757d;
}

.ecea-status-dot {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

.ecea-status-dot::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #cbd5e1;
}

.ecea-status-dot.is-active::before { background: #22c55e; }
.ecea-status-dot.is-inactive::before { background: #94a3b8; }

.ecea-meta-list,
.ecea-mini-list,
.ecea-task-status,
.ecea-task-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ecea-meta-list li {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px dashed rgba(100, 116, 139, 0.2);
}

.ecea-meta-list li:last-child { border-bottom: none; }
.ecea-meta-list span { color: var(--ecea-muted); }
.ecea-meta-list strong { color: var(--ecea-text); text-align: right; }

.ecea-stat-card h3 {
    font-size: 42px;
    margin: 10px 0 8px;
    color: var(--ecea-text);
}

.ecea-stat-label {
    color: var(--ecea-muted);
    font-size: 14px;
    font-weight: 700;
}

.ecea-stat-card p,
.ecea-level-overview p,
.ecea-level-page-card p,
.ecea-lesson-card p,
.ecea-task-item p,
.ecea-side-note p,
.ecea-speaking-form small {
    color: var(--ecea-muted);
    line-height: 1.8;
    margin-bottom: 0;
}

.ecea-level-overview,
.ecea-level-page-card,
.ecea-lesson-card,
.ecea-progress-section,
.ecea-side-note,
.ecea-lesson-sidebar {
    border: 1.5px solid rgba(72, 104, 255, 0.12);
    border-radius: 24px;
    padding: 24px;
    background: #fff;
    height: 100%;
}

.ecea-level-overview.is-current {
    border-color: rgba(185, 102, 231, 0.35);
    box-shadow: 0 18px 40px rgba(185, 102, 231, 0.12);
}

.ecea-level-overview.is-locked,
.ecea-level-page-card.is-locked,
.ecea-progress-section.is-locked {
    opacity: 0.82;
}

.ecea-level-overview h4,
.ecea-level-page-card h3,
.ecea-lesson-card h3,
.ecea-panel-head h3,
.ecea-side-note strong,
.ecea-student-plan-card h4 {
    color: var(--ecea-text);
}

.ecea-level-overview h4,
.ecea-level-page-card h3,
.ecea-lesson-card h3,
.ecea-panel-head h3 {
    margin: 14px 0 12px;
    font-size: 28px;
    line-height: 1.2;
}

.ecea-certificate-box {
    margin-top: 24px;
    padding: 20px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(47, 87, 239, 0.05) 0%, rgba(185, 102, 231, 0.10) 100%);
}

.ecea-mini-list li + li { margin-top: 10px; }
.ecea-mini-list a { display: flex; flex-direction: column; gap: 3px; color: var(--ecea-text); }
.ecea-mini-list small { color: var(--ecea-muted); }

.ecea-task-item + .ecea-task-item {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed rgba(100, 116, 139, 0.2);
}

.ecea-mini-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ecea-mini-checks span {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f3f6ff;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.ecea-mini-checks span.done,
.ecea-task-status li.done,
.ecea-check.done {
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
}

.ecea-task-status li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    background: #f6f8ff;
    color: #556070;
    font-weight: 600;
}

.ecea-task-status li + li { margin-top: 10px; }
.ecea-task-status li::after { content: "○"; }
.ecea-task-status li.done::after { content: "✓"; }

.ecea-progress-table {
    margin-bottom: 0;
}

.ecea-progress-table thead th {
    font-size: 13px;
    color: var(--ecea-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom-color: rgba(100, 116, 139, 0.16);
}

.ecea-progress-table tbody td {
    padding-top: 16px;
    padding-bottom: 16px;
    border-bottom-color: rgba(100, 116, 139, 0.10);
}

.ecea-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #eef2ff;
    color: #64748b;
    font-weight: 800;
}

.ecea-speaking-form .form-control {
    min-height: 54px;
    border-radius: 18px;
    border: 1.5px solid rgba(72, 104, 255, 0.18);
    padding: 12px 16px;
}

.ecea-speaking-form textarea.form-control {
    min-height: 140px;
}

.ecea-form-field label {
    display: block;
    margin-bottom: 10px;
    color: var(--ecea-text);
    font-weight: 700;
}

.ecea-page-head {
    margin-bottom: 26px;
}

@media (max-width: 991.98px) {
    .ecea-student-shell {
        padding: 52px 0 72px;
    }

    .ecea-student-panel,
    .ecea-level-overview,
    .ecea-level-page-card,
    .ecea-lesson-card,
    .ecea-progress-section,
    .ecea-side-note,
    .ecea-lesson-sidebar {
        padding: 22px;
        border-radius: 22px;
    }

    .ecea-student-hero h1,
    .ecea-page-head h1,
    .ecea-level-header h1 {
        font-size: 34px;
    }
}

@media (max-width: 767.98px) {
    .ecea-student-lead,
    .ecea-page-head p,
    .ecea-level-header p {
        font-size: 16px;
    }

    .ecea-stat-card h3 {
        font-size: 34px;
    }

    .ecea-level-overview h4,
    .ecea-level-page-card h3,
    .ecea-lesson-card h3,
    .ecea-panel-head h3 {
        font-size: 24px;
    }
}



/* ===== Student dashboard redesign v9.4 ===== */
body.ecea-dashboard-page {
    background: linear-gradient(180deg, #090a15 0%, #06070f 100%);
    color: #f8fafc;
}

body.ecea-dashboard-page .ecea-page-bg,
body.ecea-dashboard-page .ecea-navbar-wrap,
body.ecea-dashboard-page .ecea-footer,
body.ecea-dashboard-page .ecea-footer-authonly {
    display: none !important;
}

body.ecea-dashboard-page .ecea-main {
    padding-top: 0;
    min-height: 100vh;
}

body.ecea-dashboard-page p,
body.ecea-dashboard-page span,
body.ecea-dashboard-page small,
body.ecea-dashboard-page li {
    color: #c7cbe7;
}

body.ecea-dashboard-page.ecea-dashboard-menu-open {
    overflow: hidden;
}

.ecea-dashboard-app {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    min-height: 100vh;
    background: #05060d;
}

.ecea-dashboard-mobilebar,
.ecea-dashboard-overlay,
.ecea-dashboard-sidebar-close {
    display: none;
}

.ecea-dashboard-sidebar {
    background: linear-gradient(180deg, #191628 0%, #141223 100%);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    padding: 24px 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ecea-dashboard-brandrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.ecea-dashboard-brand {
    padding: 8px 8px 12px;
}

.ecea-dashboard-brand-logo,
.ecea-dashboard-mobile-logo {
    height: 34px;
    width: auto;
    object-fit: contain;
}

.ecea-dashboard-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ecea-dashboard-nav a,
.ecea-dashboard-help-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    padding: 0 15px;
    border-radius: 10px;
    color: #d8d9e8;
    font-size: 15px;
    font-weight: 600;
    background: transparent;
    border: 1px solid transparent;
    transition: all .25s ease;
}

.ecea-dashboard-nav a:hover,
.ecea-dashboard-help-link:hover {
    color: #fff;
    border-color: rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
}

.ecea-dashboard-nav a.is-active {
    background: linear-gradient(135deg, #d9ccff 0%, #bba8ff 45%, #9f86ff 100%);
    color: #111111;
    box-shadow: 0 12px 30px rgba(111, 94, 245, 0.22);
}

.ecea-dashboard-nav a.is-active span,
.ecea-dashboard-nav a.is-active i {
    color: #111111;
}

.ecea-dashboard-nav i,
.ecea-dashboard-help-link i {
    font-size: 17px;
    color: #f4c62d;
}

.ecea-dashboard-help {
    display: grid;
    gap: 10px;
    padding-top: 18px;
    margin-top: 2px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.ecea-dashboard-help-link {
    justify-content: center;
    border-color: rgba(255,255,255,.14);
    background: rgba(255,255,255,.02);
}

.ecea-dashboard-main {
    padding: 22px 24px 28px;
}

.ecea-dashboard-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    background: linear-gradient(90deg, rgba(26,22,42,.92) 0%, rgba(15,16,30,.92) 100%);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    padding: 14px 18px;
}

.ecea-dashboard-topbar-copy {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ecea-dashboard-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 14px;
    border-radius: 10px;
    background: linear-gradient(135deg, #ddd2ff 0%, #b39cff 100%);
    color: #111111 !important;
    font-size: 13px;
    font-weight: 700;
}

.ecea-dashboard-topbar-copy strong {
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
}

.ecea-dashboard-userbox,
.ecea-dashboard-mobile-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ecea-dashboard-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #6f5ef5 0%, #ef58b8 100%);
    color: #fff;
    font-weight: 700;
    font-size: 17px;
}

.ecea-dashboard-notify {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    color: #ffffff;
}

.ecea-dashboard-notify i {
    font-size: 18px;
}

.ecea-dashboard-notify-dot {
    position: absolute;
    top: 9px;
    right: 9px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff5775;
    border: 2px solid #17172a;
}

.ecea-dashboard-userbox strong {
    display: block;
    color: #fff;
    font-size: 14px;
}

.ecea-dashboard-userbox small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
}

.ecea-dashboard-panel {
    background: #0f1020;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 13px;
    padding: 22px;
    box-shadow: 0 20px 50px rgba(0,0,0,.24);
    margin-bottom: 24px;
}

.ecea-dashboard-sectionhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.ecea-dashboard-sectionhead h2 {
    margin: 0;
    color: #fff;
    font-size: 22px;
    line-height: 1.2;
}

.ecea-dashboard-sectionhead a {
    color: #f4c62d;
    font-weight: 700;
    font-size: 14px;
}

.ecea-continue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ecea-continue-card {
    background: #18182b;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 16px;
    min-height: 154px;
}

.ecea-continue-card.is-locked {
    opacity: .72;
}

.ecea-continue-card-top {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.ecea-level-badge,
.ecea-continue-state {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 11px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 700;
}

.ecea-level-badge {
    background: linear-gradient(135deg, rgba(223,211,255,.95) 0%, rgba(181,158,255,.95) 100%);
    color: #1a1630 !important;
}

.ecea-continue-state {
    background: linear-gradient(135deg, rgba(232,221,255,.95) 0%, rgba(195,170,255,.95) 100%);
    color: #201633 !important;
}

.ecea-continue-card h3 {
    color: #fff;
    font-size: 22px;
    line-height: 1.2;
    margin-bottom: 10px;
}

.ecea-continue-card p {
    min-height: 48px;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.45;
}

.ecea-dark-progress {
    height: 8px;
    border-radius: 10px;
    background: #0b0c16;
    overflow: hidden;
    margin-bottom: 10px;
}

.ecea-dark-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #6f5ef5 0%, #d568ff 100%);
}

.ecea-continue-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    margin-bottom: 12px;
}

.ecea-continue-meta strong {
    color: #ffffff;
}

.ecea-continue-link {
    color: #ffffff;
    font-weight: 700;
    font-size: 14px;
}

.ecea-continue-link.alt {
    color: #d7bcff;
}

.ecea-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ecea-summary-card {
    position: relative;
    border-radius: 12px;
    padding: 18px 18px 20px;
    min-height: 150px;
    overflow: hidden;
}

.ecea-summary-card strong {
    display: block;
    color: #fff;
    font-size: 48px;
    line-height: 1;
    margin-bottom: 12px;
}

.ecea-summary-card span {
    color: rgba(255,255,255,.92) !important;
    font-size: 20px;
}

.ecea-summary-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(255,255,255,.16);
    margin-bottom: 18px;
}

.ecea-summary-icon i {
    font-size: 22px;
    color: #fff;
}

.ecea-summary-card::after {
    content: "";
    position: absolute;
    right: -10px;
    bottom: -12px;
    width: 110px;
    height: 110px;
    border-radius: 20px;
    background: rgba(255,255,255,.12);
    transform: rotate(18deg);
}

.ecea-summary-card.is-yellow { background: linear-gradient(135deg, #f4c62d 0%, #e9b908 100%); }
.ecea-summary-card.is-cyan { background: linear-gradient(135deg, #23b3d0 0%, #1c8fa9 100%); }
.ecea-summary-card.is-green { background: linear-gradient(135deg, #30b555 0%, #239346 100%); }
.ecea-summary-card.is-red { background: linear-gradient(135deg, #e74859 0%, #c92d47 100%); }

.ecea-program-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .9fr);
    gap: 18px;
}

.ecea-program-card {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    background: #17172a;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 16px;
}

.ecea-program-thumb {
    width: 110px;
    height: 84px;
    border-radius: 12px;
    background: linear-gradient(135deg, #1f7bc3 0%, #161637 100%);
    display: grid;
    place-items: center;
    text-align: center;
    padding: 12px;
}

.ecea-program-thumb span {
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
}

.ecea-program-copy h3 {
    color: #fff;
    font-size: 24px;
    margin-bottom: 8px;
}

.ecea-program-copy p {
    margin-bottom: 12px;
    line-height: 1.5;
}

.ecea-program-brandline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ecea-program-brandline span {
    color: #f4c62d !important;
    font-weight: 700;
}

.ecea-program-brandline small {
    color: #d3d7ef;
}

.ecea-program-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 116px;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 12px;
    background: #f4c62d;
    color: #111827;
    font-weight: 700;
}

.ecea-focus-card {
    background: #17172a;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 18px;
}

.ecea-focus-card h3 {
    color: #fff;
    font-size: 20px;
    margin-bottom: 14px;
}

.ecea-focus-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ecea-focus-card li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.ecea-focus-card li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.ecea-focus-card strong {
    color: #fff;
    font-size: 14px;
}

.ecea-chart-panel {
    background: #17172a;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    padding: 18px;
}

.ecea-chart-alert {
    background: #f2e5bf;
    color: #6d4a00;
    border-radius: 10px;
    padding: 12px 16px;
    font-weight: 600;
    margin-bottom: 18px;
}

.ecea-chart-grid {
    height: 280px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.06);
    background:
        linear-gradient(to top, rgba(255,255,255,.06) 1px, transparent 1px) 0 0 / 100% 20%,
        linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px) 0 0 / 25% 100%,
        #111221;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: end;
    padding: 22px 18px 18px;
}

.ecea-chart-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    height: 100%;
    justify-content: end;
}

.ecea-chart-bar {
    width: 56px;
    height: 100%;
    border-radius: 14px 14px 6px 6px;
    background: rgba(255,255,255,.04);
    display: flex;
    align-items: end;
    padding: 8px;
}

.ecea-chart-bar span {
    width: 100%;
    border-radius: 10px 10px 5px 5px;
    background: linear-gradient(180deg, #5fe0f9 0%, #6f5ef5 58%, #f15cb9 100%);
    box-shadow: 0 14px 30px rgba(111, 94, 245, 0.22);
}

.ecea-chart-col small {
    color: #fff;
    font-weight: 700;
}

.ecea-dashboard-copyfoot {
    color: #ffffff;
    text-align: center;
    padding: 8px 0 2px;
    font-size: 15px;
}

@media (max-width: 1399.98px) {
    .ecea-continue-grid {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    }
    .ecea-summary-grid {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    }
}

@media (max-width: 991.98px) {
    .ecea-dashboard-app {
        grid-template-columns: 1fr;
    }

    .ecea-dashboard-mobilebar {
        position: sticky;
        top: 0;
        z-index: 1001;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 14px 12px;
        background: linear-gradient(90deg, #1b182b 0%, #12111f 100%);
        border-bottom: 1px solid rgba(255,255,255,.08);
    }

    .ecea-dashboard-mobile-toggle,
    .ecea-dashboard-sidebar-close {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        border: 1px solid rgba(255,255,255,.1);
        background: rgba(255,255,255,.03);
        color: #f4c62d;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .ecea-dashboard-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(84vw, 320px);
        z-index: 1100;
        transform: translateX(-105%);
        transition: transform .28s ease;
        overflow-y: auto;
        padding-bottom: 20px;
        gap: 18px;
    }

    body.ecea-dashboard-menu-open .ecea-dashboard-sidebar {
        transform: translateX(0);
    }

    .ecea-dashboard-sidebar-close {
        display: inline-flex;
        flex: 0 0 auto;
    }

    .ecea-dashboard-overlay {
        position: fixed;
        inset: 0;
        z-index: 1050;
        background: rgba(3, 4, 10, 0.62);
        opacity: 0;
        visibility: hidden;
        transition: all .25s ease;
        display: block;
    }

    body.ecea-dashboard-menu-open .ecea-dashboard-overlay {
        opacity: 1;
        visibility: visible;
    }

    .ecea-dashboard-main {
        padding: 18px 12px 22px;
    }

    .ecea-dashboard-topbar {
        display: none;
    }

    .ecea-program-grid,
    .ecea-continue-grid,
    .ecea-summary-grid {
        grid-template-columns: 1fr;
    }

    .ecea-program-card {
        grid-template-columns: 84px minmax(0, 1fr);
    }

    .ecea-program-action {
        grid-column: 1 / -1;
    }

    .ecea-program-btn {
        width: 100%;
    }

    .ecea-dashboard-panel,
    .ecea-chart-panel {
        padding: 16px;
        border-radius: 14px;
    }

    .ecea-summary-card span {
        font-size: 18px;
    }

    .ecea-summary-card strong {
        font-size: 44px;
    }

    .ecea-chart-grid {
        height: 250px;
        gap: 12px;
        padding: 18px 12px 12px;
    }

    .ecea-chart-bar {
        width: 44px;
    }
}

@media (max-width: 767.98px) {
    .ecea-dashboard-brand-logo,
    .ecea-dashboard-mobile-logo {
        height: 30px;
    }

    .ecea-dashboard-mobilebar {
        padding: 12px 10px;
    }

    .ecea-dashboard-mobile-actions {
        gap: 10px;
    }

    .ecea-dashboard-avatar {
        width: 40px;
        height: 40px;
        font-size: 15px;
    }

    .ecea-dashboard-sectionhead {
        display: block;
    }

    .ecea-dashboard-sectionhead a {
        display: inline-block;
        margin-top: 8px;
    }

    .ecea-program-card {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .ecea-program-thumb {
        width: 100%;
        height: 74px;
    }

    .ecea-chart-alert {
        font-size: 14px;
    }

    .ecea-chart-grid {
        height: 210px;
    }

    .ecea-chart-bar {
        width: 100%;
    }

    .ecea-dashboard-copyfoot {
        font-size: 13px;
        line-height: 1.5;
        padding-bottom: 8px;
    }
}


/* v9.5b dashboard badge refinements */
.ecea-level-badge.is-level-1 {
    background: linear-gradient(135deg, #d9ccff 0%, #bda8ff 100%);
    color: #19132a !important;
}
.ecea-level-badge.is-level-2 {
    background: linear-gradient(135deg, #c7dcff 0%, #9ec2ff 100%);
    color: #15223b !important;
}
.ecea-level-badge.is-level-3 {
    background: linear-gradient(135deg, #ffd0ea 0%, #ff9ccc 100%);
    color: #3b1530 !important;
}
.ecea-level-badge.is-level-4 {
    background: linear-gradient(135deg, #cffff1 0%, #98efcb 100%);
    color: #123226 !important;
}

.ecea-continue-state.is-open {
    background: linear-gradient(135deg, #c8ffd8 0%, #8be6a7 100%);
    color: #10351f !important;
}
.ecea-continue-state.is-waiting {
    background: linear-gradient(135deg, #ffe7b8 0%, #f4c65d 100%);
    color: #4a3300 !important;
}
.ecea-continue-state.is-locked {
    background: linear-gradient(135deg, #d4d4dc 0%, #b7b8c4 100%);
    color: #202330 !important;
}

.ecea-continue-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 10px;
    width: fit-content;
    max-width: 100%;
}
.ecea-continue-link.is-enter {
    background: linear-gradient(135deg, #b86dff 0%, #7b61ff 55%, #f05ec9 100%);
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(184, 109, 255, 0.24);
}
.ecea-continue-link.is-enter:hover {
    color: #ffffff !important;
    filter: brightness(1.03);
}
.ecea-continue-link.is-waiting,
.ecea-continue-link.is-disabled.is-waiting {
    background: linear-gradient(135deg, #ffe7b8 0%, #f4c65d 100%);
    color: #4a3300 !important;
    opacity: 1;
}
.ecea-continue-link.alt {
    background: linear-gradient(135deg, #d8dae2 0%, #bfc5d6 100%);
    color: #1b1f2d !important;
}

.ecea-continue-meta.is-no-progress {
    justify-content: flex-start;
}


.ecea-btn-sm {
    min-height: 42px;
    padding: 0 18px;
    font-size: 14px;
}

.ecea-install-bar {
    position: sticky;
    top: 0;
    z-index: 1200;
    display: none;
    padding: 12px 0 0;
}

.ecea-install-bar.show {
    display: block;
}

.ecea-install-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: rgba(17, 24, 39, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.2);
    border-radius: 18px;
    padding: 14px 18px;
    backdrop-filter: blur(12px);
}

.ecea-install-bar__copy {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ecea-install-bar__copy strong,
.ecea-install-bar__copy p {
    color: #fff;
    margin: 0;
}

.ecea-install-bar__copy strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
}

.ecea-install-bar__copy p {
    font-size: 12px;
    opacity: 0.78;
    margin-top: 2px;
}

.ecea-install-bar__icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    flex-shrink: 0;
}

.ecea-install-bar__actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.ecea-install-dismiss {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 22px;
    line-height: 1;
}

@media (max-width: 767px) {
    .ecea-install-bar {
        padding-top: 10px;
    }
    .ecea-install-bar__inner {
        padding: 12px 14px;
        gap: 12px;
        border-radius: 16px;
        align-items: flex-start;
    }
    .ecea-install-bar__copy {
        align-items: flex-start;
    }
    .ecea-install-bar__copy strong {
        font-size: 13px;
    }
    .ecea-install-bar__copy p {
        font-size: 11px;
    }
    .ecea-install-bar__icon {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }
    .ecea-install-bar__actions {
        width: 100%;
        justify-content: flex-end;
    }
}


/* E'CEA v9.6 UI and PWA refinements */
.ecea-dashboard-nav a.is-active {
    background: #ff5757 !important;
    color: #111111 !important;
    box-shadow: 0 14px 30px rgba(255, 87, 87, 0.25) !important;
}
.ecea-dashboard-nav a.is-active span,
.ecea-dashboard-nav a.is-active i {
    color: #111111 !important;
}

.ecea-level-badge.is-level-1 {
    background: linear-gradient(135deg, #d9ccff 0%, #b39cff 100%) !important;
    color: #1a1630 !important;
}
.ecea-level-badge.is-level-2 {
    background: linear-gradient(135deg, #cfd8ff 0%, #9bb0ff 100%) !important;
    color: #102043 !important;
}
.ecea-level-badge.is-level-3 {
    background: linear-gradient(135deg, #ffd1e9 0%, #ff9fc8 100%) !important;
    color: #3d1230 !important;
}
.ecea-level-badge.is-level-4 {
    background: linear-gradient(135deg, #ffe1b8 0%, #ffc56f 100%) !important;
    color: #3a2500 !important;
}

.ecea-continue-state.is-open {
    background: linear-gradient(135deg, #d8ffe0 0%, #9bf0ad 100%) !important;
    color: #0d4d1c !important;
}
.ecea-continue-state.is-waiting {
    background: linear-gradient(135deg, #ffe9b8 0%, #ffd86a 100%) !important;
    color: #5b4300 !important;
}
.ecea-continue-state.is-locked {
    background: linear-gradient(135deg, rgba(232,221,255,.95) 0%, rgba(195,170,255,.95) 100%) !important;
    color: #201633 !important;
}

.ecea-continue-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 10px;
    line-height: 1;
}

.ecea-continue-link.is-enter {
    background: #05c009 !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(5, 192, 9, 0.28);
}
.ecea-continue-link.is-enter:hover {
    color: #ffffff !important;
    transform: translateY(-1px);
}
.ecea-continue-link.is-waiting,
.ecea-continue-link.is-waiting.is-disabled {
    background: linear-gradient(135deg, #ffe9b8 0%, #ffd86a 100%) !important;
    color: #5b4300 !important;
}
.ecea-continue-link.alt {
    background: rgba(255,255,255,.08);
    color: #d7bcff !important;
}

.ecea-dashboard-version {
    margin: 2px 0 0;
    text-align: center;
    font-size: 12px;
    color: rgba(255,255,255,.56) !important;
    letter-spacing: .02em;
}

.ecea-dashboard-brand-logo-mobile {
    display: none;
}
.ecea-install-bar__icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    object-fit: contain;
    background: transparent;
}

@media (max-width: 767.98px) {
    .ecea-home-loader {
        display: none !important;
    }
    .ecea-dashboard-mobile-logo {
        height: 34px;
        width: auto;
        object-fit: contain;
    }
    .ecea-dashboard-brand-logo-desktop {
        display: none;
    }
    .ecea-dashboard-brand-logo-mobile {
        display: block;
        height: 34px;
        width: auto;
        object-fit: contain;
    }
}


/* ===== E'CEA v9.7 student shell + instant navigation ===== */
.ecea-home-loader__halo,
.ecea-home-loader__dots {
    display: inline-flex;
}
.ecea-home-loader__logo {
    display: block !important;
}
.ecea-home-loader__video {
    display: none !important;
}
@media (max-width: 767.98px) {
    .ecea-home-loader {
        display: none !important;
    }
}

.ecea-dashboard-nav a.is-active {
    background: #ff5757;
    box-shadow: 0 10px 26px rgba(255, 87, 87, 0.26);
}
.ecea-dashboard-nav a.is-active,
.ecea-dashboard-nav a.is-active span,
.ecea-dashboard-nav a.is-active i {
    color: #111111 !important;
}

.ecea-continue-link.is-enter {
    background: #05c009 !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(5, 192, 9, 0.24);
}

.ecea-level-badge.is-level-1 {
    background: linear-gradient(135deg, #ded5ff 0%, #bca7ff 100%);
    color: #24154a !important;
}
.ecea-level-badge.is-level-2 {
    background: linear-gradient(135deg, #d7f6ff 0%, #8edfff 100%);
    color: #0a3950 !important;
}
.ecea-level-badge.is-level-3 {
    background: linear-gradient(135deg, #ffe5bd 0%, #ffbd62 100%);
    color: #5a3200 !important;
}
.ecea-level-badge.is-level-4 {
    background: linear-gradient(135deg, #ffd8e6 0%, #ff9dbf 100%);
    color: #5a1733 !important;
}

.ecea-dashboard-main {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.ecea-dashboard-bottomcopy {
    text-align: center;
    color: rgba(255,255,255,.88);
    font-size: 14px;
    padding: 10px 0 4px;
}
.ecea-dashboard-herohead {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 20px;
}
.ecea-dashboard-herohead h1 {
    color: #fff;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.08;
    margin: 6px 0 10px;
}
.ecea-dashboard-herohead p {
    max-width: 760px;
    margin: 0;
    font-size: 15px;
    line-height: 1.8;
}
.ecea-dashboard-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #ffb13b;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 800;
    font-size: 12px;
}
.ecea-dashboard-kicker::before {
    content: "";
    width: 34px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ffb13b 0%, #ff5757 100%);
}
.ecea-hero-mini-note {
    width: min(100%, 320px);
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    padding: 18px;
}
.ecea-hero-mini-note strong {
    display:block;
    color:#fff;
    margin-bottom: 12px;
    font-size:16px;
}
.ecea-hero-mini-note p {
    margin:0;
}
.ecea-level-grid-full,
.ecea-progress-dark-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.ecea-lesson-dark-card,
.ecea-progress-dark-card {
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    padding: 18px;
}
.ecea-lesson-dark-card h3,
.ecea-progress-dark-card strong,
.ecea-certificate-dark h1,
.ecea-certificate-dark h2 {
    color: #fff;
}
.ecea-lesson-dark-card p,
.ecea-progress-dark-card p {
    margin-bottom: 12px;
}
.ecea-lesson-dark-meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top: 14px;
}
.ecea-lesson-dark-meta span {
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:0 10px;
    border-radius:10px;
    background: rgba(255,255,255,.05);
    color:#cfd3eb;
    font-size:12px;
    font-weight:700;
}
.ecea-lesson-dark-meta span.is-done {
    background: rgba(5,192,9,.18);
    color: #b9ffbc;
}
.ecea-dashboard-content-grid,
.ecea-program-grid {
    display:grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr);
    gap: 18px;
}
.ecea-dashboard-form-grid {
    display:grid;
    gap: 16px;
}
.ecea-dashboard-field label {
    display:block;
    margin-bottom: 10px;
    color:#fff;
    font-weight:700;
}
.ecea-dashboard-field .form-control,
.ecea-quiz-option {
    border-radius: 14px;
}
.ecea-dashboard-field .form-control {
    min-height: 52px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    color: #fff;
}
.ecea-dashboard-field textarea.form-control {
    min-height: 150px;
}
.ecea-dashboard-field small {
    display:block;
    margin-top:8px;
    color:#aab0d1;
}
.ecea-quiz-form {
    display:grid;
    gap: 16px;
}
.ecea-quiz-question-card {
    padding: 22px;
}
.ecea-quiz-question-card h3 {
    font-size: 19px;
    margin-bottom: 18px;
}
.ecea-quiz-option {
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding: 14px 16px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    color: #d9def7;
    margin-bottom: 10px;
}
.ecea-quiz-option input {
    margin-top: 4px;
}
.ecea-program-side ul {
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap: 18px;
}
.ecea-program-side li {
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.ecea-program-side li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.ecea-program-side li span {
    display:block;
    color:#b6bbd9;
    font-size: 13px;
    margin-bottom: 8px;
}
.ecea-program-side li strong {
    color:#fff;
    font-size: 17px;
}
.ecea-certificate-dark {
    border-radius: 24px;
    padding: 54px 36px;
    text-align:center;
    background: radial-gradient(circle at top, rgba(123,97,255,.2), rgba(5,6,13,0) 42%), linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    border: 1px solid rgba(255,255,255,.08);
}
.ecea-certificate-dark-logo {
    height: 44px;
    width: auto;
    margin-bottom: 18px;
}
.ecea-certificate-dark-kicker {
    text-transform: uppercase;
    letter-spacing: .18em;
    font-weight: 700;
    font-size: 12px;
    color: #ffb13b;
    margin-bottom: 12px;
}
.ecea-progress-dark-card .ecea-continue-link {
    margin-top: 14px;
}
.ecea-dashboard-panel form {
    margin: 0;
}
.ecea-dashboard-app {
    view-transition-name: ecea-student-shell;
}
@media (max-width: 991.98px) {
    .ecea-dashboard-herohead,
    .ecea-dashboard-content-grid,
    .ecea-program-grid,
    .ecea-level-grid-full,
    .ecea-progress-dark-grid {
        grid-template-columns: 1fr;
    }
    .ecea-hero-mini-note {
        width: 100%;
    }
}


/* ===== E'CEA v9.8 dashboard and PWA refinements ===== */
.ecea-install-bar__copy p {
    display: none !important;
}
.ecea-install-bar__icon {
    object-fit: cover !important;
    border-radius: 12px;
}

.ecea-dashboard-topbar {
    position: sticky;
    top: 12px;
    z-index: 980;
    backdrop-filter: blur(10px);
}

.ecea-dashboard-nav a.is-active {
    background: #ffcb30 !important;
    box-shadow: 0 14px 28px rgba(255, 203, 48, 0.24) !important;
}
.ecea-dashboard-nav a.is-active,
.ecea-dashboard-nav a.is-active span,
.ecea-dashboard-nav a.is-active i {
    color: #111111 !important;
}

.ecea-dashboard-mobile-logo,
.ecea-dashboard-brand-logo-mobile {
    height: 26px !important;
    width: auto !important;
    object-fit: contain !important;
}

.ecea-dashboard-notify-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.ecea-dashboard-notify-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    width: min(360px, 88vw);
    background: linear-gradient(180deg, #171629 0%, #111120 100%);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    box-shadow: 0 20px 44px rgba(0,0,0,.34);
    padding: 12px;
    display: none;
    z-index: 1300;
}
.ecea-dashboard-notify-panel.is-open {
    display: block;
}
.ecea-dashboard-notify-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 2px 4px 10px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 6px;
}
.ecea-dashboard-notify-head strong {
    font-size: 14px;
    color: #ffffff;
}
.ecea-dashboard-notify-head span {
    font-size: 12px;
    color: #ffcb30;
    font-weight: 700;
}
.ecea-dashboard-notify-item {
    display: block;
    padding: 10px 8px;
    border-radius: 12px;
    transition: background .2s ease;
}
.ecea-dashboard-notify-item:hover {
    background: rgba(255,255,255,.04);
}
.ecea-dashboard-notify-item strong {
    display: block;
    color: #ffffff;
    font-size: 13px;
    margin-bottom: 3px;
}
.ecea-dashboard-notify-item p {
    margin: 0 0 4px;
    color: #c7cbe7;
    font-size: 12px;
    line-height: 1.55;
}
.ecea-dashboard-notify-item small {
    color: #8e95bf;
    font-size: 11px;
}

.ecea-dashboard-overlay {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

@media (max-width: 991.98px) {
    .ecea-dashboard-mobilebar {
        position: fixed !important;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1200;
    }
    .ecea-dashboard-app {
        padding-top: 74px;
    }
    .ecea-dashboard-main {
        padding-top: 8px;
    }
    .ecea-dashboard-topbar {
        position: static;
        top: auto;
    }
    .ecea-dashboard-sidebar {
        z-index: 1400;
    }
    .ecea-dashboard-notify-panel {
        right: -6px;
        width: min(340px, 92vw);
    }
    .ecea-dashboard-mobile-logo,
    .ecea-dashboard-brand-logo-mobile {
        height: 24px !important;
    }
}

.ecea-home-loader__logo {
    height: 42px !important;
    width: auto !important;
    max-width: none !important;
    display: block !important;
}
.ecea-home-loader__video {
    display: none !important;
}



/* ===== E'CEA v9.8b dashboard fixes ===== */
.ecea-dashboard-brandrow {
    position: relative;
    z-index: 2;
}

.ecea-dashboard-sidebar-close {
    position: relative;
    z-index: 3;
}

.ecea-stat-card {
    background: #17172a;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    padding: 18px;
}

.ecea-stat-note {
    background: #f2e5bf;
    color: #6d4a00;
    border-radius: 10px;
    padding: 12px 16px;
    font-weight: 600;
    margin-bottom: 16px;
}

.ecea-stat-bars {
    height: 280px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.06);
    background:
        linear-gradient(to top, rgba(255,255,255,.06) 1px, transparent 1px) 0 0 / 100% 20%,
        linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px) 0 0 / 25% 100%,
        #111221;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: end;
    padding: 22px 18px 18px;
}

.ecea-stat-bar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    height: 100%;
    justify-content: end;
}

.ecea-stat-bar-track {
    width: 56px;
    height: 100%;
    border-radius: 14px 14px 6px 6px;
    background: rgba(255,255,255,.04);
    display: flex;
    align-items: end;
    padding: 8px;
}

.ecea-stat-bar-track span {
    width: 100%;
    min-height: 10px;
    border-radius: 10px 10px 5px 5px;
    background: linear-gradient(180deg, #5fe0f9 0%, #6f5ef5 58%, #f15cb9 100%);
    box-shadow: 0 14px 30px rgba(111, 94, 245, 0.22);
}

.ecea-stat-bar-wrap strong {
    color: #fff;
    font-weight: 700;
    letter-spacing: .02em;
}

@media (max-width: 991.98px) {
    .ecea-dashboard-notify-panel {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        top: 78px !important;
        width: auto !important;
        max-width: none !important;
        max-height: calc(100vh - 96px) !important;
        overflow: auto !important;
        z-index: 1600 !important;
    }

    .ecea-dashboard-sidebar {
        padding-top: 20px;
    }

    .ecea-stat-bars {
        height: 220px;
        gap: 12px;
        padding: 16px 12px 12px;
    }

    .ecea-stat-bar-track {
        width: 100%;
        max-width: 52px;
    }
}


/* ===== E'CEA v9.9 dashboard refinement fixes ===== */
.ecea-toast-stack {
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3000;
  display: grid;
  gap: 10px;
  width: min(92vw, 460px);
}
.ecea-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(18, 20, 34, 0.94);
  border: 1px solid rgba(255,255,255,.1);
  color: #eef2ff;
  box-shadow: 0 20px 44px rgba(0,0,0,.28);
  backdrop-filter: blur(12px);
  font-size: 14px;
  line-height: 1.45;
  animation: eceaToastOut .35s ease forwards;
  animation-delay: 2.65s;
}
.ecea-toast-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.14); }
.ecea-toast-warning .ecea-toast-dot { background: #ffcb30; box-shadow: 0 0 0 4px rgba(255,203,48,.14); }
.ecea-toast-danger .ecea-toast-dot { background: #ff5757; box-shadow: 0 0 0 4px rgba(255,87,87,.14); }
.ecea-toast-text { color: #eef2ff !important; font-weight: 500; }
@keyframes eceaToastOut { to { opacity: 0; transform: translateY(-10px); visibility: hidden; } }

body.ecea-dashboard-page .ecea-main {
  overflow: hidden;
}
@media (min-width: 992px) {
  body.ecea-dashboard-page {
    overflow: hidden;
  }
  .ecea-dashboard-app {
    min-height: 100vh;
    display: block;
  }
  .ecea-dashboard-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 250px;
    padding-top: 18px;
    z-index: 40;
  }
  .ecea-dashboard-main {
    margin-left: 250px;
    height: 100vh;
    overflow-y: auto;
    padding: 0 20px 28px;
    scroll-padding-top: 84px;
  }
  .ecea-dashboard-topbar {
    position: sticky;
    top: 0;
    z-index: 35;
    border-radius: 0 0 14px 14px;
    margin-bottom: 20px;
  }
  .ecea-dashboard-bottomcopy {
    padding: 14px 0 20px;
  }
}
.ecea-dashboard-nav a.is-active,
.ecea-dashboard-nav a.is-active span,
.ecea-dashboard-nav a.is-active i {
  background: #ffcb30 !important;
  color: #111111 !important;
  box-shadow: 0 10px 26px rgba(255,203,48,.26) !important;
}
.ecea-continue-link.is-enter {
  background: #05c009 !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(5, 192, 9, 0.24);
}
.ecea-level-badge,
.ecea-continue-state {
  color: inherit !important;
}
.ecea-continue-state.is-open { color: #0d4d1c !important; }
.ecea-continue-state.is-waiting { color: #5b4300 !important; }
.ecea-continue-state.is-locked { color: #202330 !important; }

.ecea-program-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) 320px;
  gap: 18px;
}
.ecea-program-main { min-width: 0; }
.ecea-program-cardgrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.ecea-program-cardgrid.is-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ecea-program-cardgrid.is-count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ecea-program-card.is-grid {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  background: #18182b;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 22px;
  min-height: 154px;
}
.ecea-program-card.is-grid .ecea-program-copy h3 {
  color: #fff; margin: 0 0 10px; font-size: 20px; line-height: 1.2;
}
.ecea-program-card.is-grid .ecea-program-copy p {
  margin: 0 0 10px; color: #c7cbe7; font-size: 14px; line-height: 1.6;
}
.ecea-program-thumb {
  width: 84px; height: 84px; border-radius: 16px; background: linear-gradient(135deg, #2890ff 0%, #1f376e 100%); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 24px;
}
.ecea-program-action {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; border-radius: 14px; background: #ffcb30; color: #111 !important; font-weight: 800; white-space: nowrap;
}
.ecea-program-action.is-disabled { opacity: .6; pointer-events: none; }
.ecea-program-side h3 { color: #fff; margin-bottom: 16px; }
.ecea-program-side ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.ecea-program-side li { display: flex; flex-direction: column; gap: 8px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.ecea-program-side li:last-child { border-bottom: 0; }
.ecea-program-side span { font-size: 13px; color: #c7cbe7 !important; }
.ecea-program-side strong { color: #fff; font-size: 14px; }

.ecea-progress-state-note {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.03); margin-bottom: 16px;
}
.ecea-progress-state-note strong { color: #fff; }
.ecea-progress-state-note span { color: #ffcb30 !important; font-weight: 700; }
.ecea-progress-dark-card.is-disabled { opacity: .82; }

.ecea-dashboard-notify-wrap { position: relative; }
.ecea-dashboard-notify-panel {
  width: 360px;
  max-width: calc(100vw - 32px);
}
.ecea-dashboard-notify-dot.is-hidden { display: none !important; }
@media (max-width: 991.98px) {
  .ecea-dashboard-sidebar {
    top: 76px !important;
    height: calc(100vh - 76px);
    padding-top: 14px;
    z-index: 1500;
  }
  .ecea-dashboard-brandrow {
    position: sticky;
    top: 0;
    background: linear-gradient(180deg, #191628 0%, #141223 100%);
    padding-bottom: 10px;
    z-index: 5;
  }
  .ecea-dashboard-sidebar-close {
    position: relative;
    z-index: 6;
  }
  .ecea-dashboard-notify-panel {
    position: fixed !important;
    top: 84px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100vh - 108px) !important;
    overflow: auto !important;
    z-index: 1600 !important;
  }
  .ecea-dashboard-mobilebar {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 1400;
    padding: 12px 12px;
    backdrop-filter: blur(10px);
  }
  .ecea-dashboard-app {
    padding-top: 76px !important;
  }
  .ecea-dashboard-main {
    padding-top: 12px;
  }
  .ecea-program-grid { grid-template-columns: 1fr; }
  .ecea-program-cardgrid,
  .ecea-program-cardgrid.is-count-2,
  .ecea-program-cardgrid.is-count-3 { grid-template-columns: 1fr; }
  .ecea-program-card.is-grid {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .ecea-program-thumb {
    width: 100%; height: 72px; font-size: 20px;
  }
  .ecea-toast-stack {
    top: 12px;
    width: calc(100vw - 24px);
  }
  .ecea-stat-note { font-size: 14px; }
}


/* ===== E'CEA v10 level cover cards ===== */
.ecea-level-cover {
  position: relative;
  height: 168px;
  overflow: hidden;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(135deg, rgba(83,74,255,.22), rgba(255,90,147,.18));
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ecea-level-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ecea-continue-card {
  overflow: hidden;
  padding: 0;
}
.ecea-continue-card-body {
  padding: 18px;
}
.ecea-continue-card .ecea-continue-card-top {
  margin-bottom: 14px;
}
.ecea-program-thumb.is-cover {
  width: 100%;
  height: 188px;
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
  background: #11152b;
}
.ecea-program-thumb.is-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ecea-program-card.is-grid {
  grid-template-columns: 220px minmax(0, 1fr) auto;
  align-items: stretch;
}
@media (max-width: 991.98px) {
  .ecea-level-cover { height: 148px; }
  .ecea-program-thumb.is-cover { height: 148px; }
  .ecea-continue-card-body { padding: 16px; }
  .ecea-program-card.is-grid { grid-template-columns: 1fr; }
}


/* ===== E'CEA v10c mobile notification + custom thumbnails ===== */
.ecea-dashboard-notify-overlay {
  position: fixed;
  inset: 0;
  background: rgba(3, 4, 10, 0.48);
  opacity: 0;
  visibility: hidden;
  transition: all .22s ease;
  z-index: 1540;
  display: block;
}

.ecea-dashboard-notify-sheet {
  position: fixed;
  top: 104px;
  right: 24px;
  width: min(360px, calc(100vw - 32px));
  max-height: min(70vh, 560px);
  overflow: auto;
  background: linear-gradient(180deg, #171629 0%, #111120 100%);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  box-shadow: 0 24px 48px rgba(0,0,0,.42);
  padding: 12px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px) scale(.98);
  transition: all .22s ease;
  z-index: 1550;
}

body.ecea-dashboard-notify-open .ecea-dashboard-notify-overlay {
  opacity: 1;
  visibility: visible;
}

body.ecea-dashboard-notify-open .ecea-dashboard-notify-sheet {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.ecea-dashboard-notify,
.ecea-dashboard-mobile-toggle,
.ecea-dashboard-sidebar-close {
  cursor: pointer;
  pointer-events: auto;
}

.ecea-level-cover,
.ecea-program-thumb.is-cover {
  background: linear-gradient(135deg, rgba(83,74,255,.16), rgba(255,90,147,.12));
}

.ecea-level-cover img,
.ecea-program-thumb.is-cover img {
  image-rendering: auto;
}

@media (max-width: 991.98px) {
  .ecea-dashboard-notify-sheet {
    top: 84px;
    left: 12px;
    right: 12px;
    width: auto;
    max-height: calc(100vh - 108px);
    border-radius: 16px;
  }
}


/* ===== E'CEA v10d mobile interaction fixes ===== */
.ecea-nav-toggle,
.ecea-dashboard-mobile-toggle,
.ecea-dashboard-notify,
.ecea-dashboard-mobile-actions,
.ecea-dashboard-sidebar-close {
  position: relative;
  z-index: 1702;
  pointer-events: auto;
  touch-action: manipulation;
}

@media (max-width: 1199.98px) {
  .ecea-navbar .container {
    position: relative;
  }
  #eceaNavbar {
    position: absolute;
    top: calc(100% + 10px);
    left: 12px;
    right: 12px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.14);
    padding: 14px;
    z-index: 1600;
  }
  #eceaNavbar:not(.show) {
    display: none;
  }
  #eceaNavbar.show {
    display: block;
  }
}

@media (max-width: 991.98px) {
  .ecea-dashboard-sidebar {
    pointer-events: none;
  }
  body.ecea-dashboard-menu-open .ecea-dashboard-sidebar {
    pointer-events: auto;
  }
  .ecea-dashboard-notify-sheet,
  .ecea-dashboard-notify-overlay {
    pointer-events: none;
  }
  body.ecea-dashboard-notify-open .ecea-dashboard-notify-sheet,
  body.ecea-dashboard-notify-open .ecea-dashboard-notify-overlay {
    pointer-events: auto;
  }
  .ecea-dashboard-mobilebar {
    z-index: 1700 !important;
  }
}


/* ===== E'CEA v10e dashboard mobile direct tap fix ===== */
.ecea-dashboard-mobilebar, .ecea-dashboard-mobilebar * { pointer-events: auto; }
.ecea-dashboard-mobile-toggle, .ecea-dashboard-notify, .ecea-dashboard-sidebar-close { -webkit-tap-highlight-color: transparent; }
@media (max-width: 991.98px) { .ecea-dashboard-overlay { pointer-events: none; } body.ecea-dashboard-menu-open .ecea-dashboard-overlay { pointer-events: auto; } }
@media (max-width: 991.98px) { .ecea-dashboard-mobile-toggle, .ecea-dashboard-notify { min-width: 42px; min-height: 42px; } }


/* v10c bootstrap badges and buttons for student templates */
.ecea-level-badge.badge,
.ecea-continue-state.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  padding: .48rem .8rem;
  font-size: 12px;
  font-weight: 700;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.08);
}

.ecea-dashboard-chip.badge {
  font-size: 12px;
  font-weight: 700;
}

.ecea-dashboard-help-link.btn,
.ecea-dashboard-mobile-toggle.btn,
.ecea-dashboard-notify.btn,
.ecea-dashboard-sidebar-close.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ecea-continue-link.btn,
.ecea-program-action.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 42px;
  padding: .625rem 1rem;
  border-radius: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s ease;
}

.ecea-continue-link.btn.is-enter,
.ecea-continue-link.btn.alt {
  background: transparent !important;
  color: #29a644 !important;
  border: 1px solid #29a644 !important;
  box-shadow: none !important;
}

.ecea-continue-link.btn.is-enter:hover,
.ecea-continue-link.btn.is-enter:focus,
.ecea-continue-link.btn.alt:hover,
.ecea-continue-link.btn.alt:focus {
  background: #29a644 !important;
  border-color: #29a644 !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(41,166,68,.24) !important;
}

.ecea-continue-link.btn.is-enter:active,
.ecea-continue-link.btn.alt:active {
  background: #238d39 !important;
  border-color: #238d39 !important;
  color: #ffffff !important;
}

.ecea-continue-link.btn.is-disabled,
.ecea-continue-link.btn.disabled,
.ecea-program-action.btn.is-disabled,
.ecea-program-action.btn.disabled {
  opacity: .72;
  pointer-events: none;
}

.ecea-program-action.btn {
  background: #ffcb30;
  border: 1px solid #ffcb30;
  color: #111111 !important;
}

.ecea-program-action.btn:hover,
.ecea-program-action.btn:focus {
  background: #ffd657;
  border-color: #ffd657;
  color: #111111 !important;
}

.ecea-dashboard-help-link.btn {
  width: 100%;
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.02);
  color: #e9ebff !important;
}

.ecea-dashboard-help-link.btn:hover,
.ecea-dashboard-help-link.btn:focus {
  border-color: rgba(255,203,48,.45);
  color: #ffcb30 !important;
  background: rgba(255,203,48,.08);
}

.ecea-dashboard-mobile-toggle.btn,
.ecea-dashboard-notify.btn,
.ecea-dashboard-sidebar-close.btn {
  min-height: 44px;
  min-width: 44px;
  border-radius: 14px;
}

/* ===== E'CEA v10f dashboard mobile/header/install/account spacing fixes ===== */
@media (min-width: 992px) {
  .ecea-dashboard-sidebar-close {
    display: none !important;
  }
}

@media (max-width: 991.98px) {
  .ecea-dashboard-sidebar-close {
    display: inline-flex !important;
  }

  body.ecea-dashboard-page .ecea-install-bar {
    position: sticky !important;
    top: 74px !important;
    z-index: 1300 !important;
    padding-top: 8px !important;
  }

  body.ecea-dashboard-page .ecea-install-bar .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  body.ecea-dashboard-page .ecea-install-bar__inner {
    margin-top: 0 !important;
  }

  .ecea-dashboard-mobilebar {
    z-index: 1800 !important;
  }

  .ecea-dashboard-mobile-toggle,
  .ecea-dashboard-notify,
  #eceaDashboardToggle,
  #eceaDashboardNotifyToggleMobile {
    position: relative !important;
    z-index: 1810 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  .ecea-dashboard-overlay {
    display: block !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 1750 !important;
  }

  body.ecea-dashboard-menu-open .ecea-dashboard-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .ecea-dashboard-sidebar {
    z-index: 1760 !important;
  }

  .ecea-dashboard-notify-overlay {
    z-index: 1765 !important;
  }

  .ecea-dashboard-notify-sheet {
    z-index: 1770 !important;
  }
}

.ecea-program-side ul {
  gap: 8px !important;
}

.ecea-program-side li {
  gap: 4px !important;
  padding: 10px 0 !important;
}

.ecea-program-side li span {
  margin-bottom: 4px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.ecea-program-side li strong {
  font-size: 14px !important;
  line-height: 1.35 !important;
}


/* ===== E'CEA v10g mobile dashboard interaction final fix ===== */
@media (max-width: 991.98px) {
  body.ecea-dashboard-page .ecea-dashboard-mobilebar,
  body.ecea-dashboard-page .ecea-dashboard-mobilebar * {
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-mobilebar {
    z-index: 1900 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-mobile-toggle,
  body.ecea-dashboard-page .ecea-dashboard-notify,
  body.ecea-dashboard-page #eceaDashboardToggle,
  body.ecea-dashboard-page #eceaDashboardNotifyToggleMobile {
    position: relative !important;
    z-index: 1910 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.42) !important;
    z-index: 1860 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    display: block !important;
  }

  body.ecea-dashboard-page.ecea-dashboard-menu-open .ecea-dashboard-overlay,
  body.ecea-dashboard-page body.ecea-dashboard-menu-open .ecea-dashboard-overlay,
  body.ecea-dashboard-menu-open .ecea-dashboard-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-sidebar {
    position: fixed !important;
    top: 76px !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(270px, calc(100vw - 40px)) !important;
    max-width: calc(100vw - 40px) !important;
    z-index: 1870 !important;
    pointer-events: none !important;
  }

  body.ecea-dashboard-menu-open .ecea-dashboard-sidebar {
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-sidebar,
  body.ecea-dashboard-page .ecea-dashboard-sidebar * {
    pointer-events: auto;
  }

  body.ecea-dashboard-page .ecea-dashboard-nav,
  body.ecea-dashboard-page .ecea-dashboard-nav a,
  body.ecea-dashboard-page .ecea-dashboard-help,
  body.ecea-dashboard-page .ecea-dashboard-help a {
    position: relative !important;
    z-index: 1880 !important;
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-notify-overlay {
    z-index: 1920 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-notify-sheet {
    z-index: 1930 !important;
  }
}


/* ===== E'CEA v10h mobile sidebar links clickable final fix ===== */
@media (max-width: 991.98px) {
  body.ecea-dashboard-page .ecea-dashboard-sidebar {
    width: min(270px, calc(100vw - 40px)) !important;
    max-width: calc(100vw - 40px) !important;
    z-index: 2200 !important;
    pointer-events: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-menu-open .ecea-dashboard-sidebar {
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-brandrow,
  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-nav,
  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-nav a,
  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-help,
  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-help a,
  body.ecea-dashboard-page .ecea-dashboard-sidebar .ecea-dashboard-sidebar-close {
    position: relative !important;
    z-index: 2210 !important;
    pointer-events: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-overlay {
    left: min(270px, calc(100vw - 40px)) !important;
    right: 0 !important;
    width: auto !important;
    z-index: 2190 !important;
  }
}



/* ===== E'CEA v1.1.4 mobile lesson detail refinements ===== */

.ecea-lesson-mobile-video-actions-card {
    display: none;
}

.ecea-lesson-mobile-video-desc,
.ecea-lesson-mobile-video-actions,
.ecea-lesson-mobile-rich-desc {
    display: none;
}

.ecea-lesson-mobile-video-panel,
.ecea-lesson-mobile-description-panel {
    position: static;
}

@media (max-width: 991.98px) {
    .ecea-lesson-mobile-herohead {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }

    .ecea-lesson-mobile-hero-copy,
    .ecea-lesson-mobile-progressnote {
        width: 100%;
        max-width: 100%;
    }

    .ecea-lesson-mobile-progressnote {
        padding: 16px 16px 14px;
        border-radius: 18px;
    }

    .ecea-lesson-mobile-layout-refine {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
        overflow: visible !important;
    }

    .ecea-lesson-mobile-layout-refine > div {
        overflow: visible !important;
    }

    .ecea-lesson-mobile-sticky-shell {
        position: relative;
        overflow: visible !important;
    }

    .ecea-lesson-mobile-video-panel {
        position: relative;
        top: auto;
        left: auto;
        width: auto;
        z-index: 60;
        align-self: start;
        overflow: visible !important;
        will-change: transform;
    }

    .ecea-lesson-mobile-video-panel.is-fixed {
        z-index: 1600;
        box-shadow: 0 22px 40px rgba(0, 0, 0, 0.28);
    }

    .ecea-lesson-mobile-video-panel.is-bottom {
        position: absolute;
        left: 0;
        width: 100%;
    }

    .ecea-lesson-mobile-sticky-spacer {
        display: none;
        width: 100%;
    }

    .ecea-lesson-mobile-description-panel {
        margin-top: 0;
    }

    .ecea-mobile-video-embed-wrap {
        background: #151515;
    }

    .ecea-lesson-mobile-rich-desc.is-open {
        display: block;
        margin-top: 0;
        margin-bottom: 0;
    }

    .ecea-lesson-mobile-video-desc {
        display: block;
        margin-top: -4px;
        margin-bottom: 14px;
    }

    .ecea-lesson-mobile-video-desc p {
        margin: 0;
        color: #c9d0f1;
        font-size: 14px;
        line-height: 1.75;
    }
    .ecea-lesson-mobile-rich-desc {
        display: block;
        margin-top: -4px;
        margin-bottom: 14px;
    }

    .ecea-mobile-rich-copy {
        color: #d8defc;
        font-size: 14px;
        line-height: 1.8;
    }

    .ecea-mobile-rich-copy p,
    .ecea-mobile-rich-copy ul,
    .ecea-mobile-rich-copy ol,
    .ecea-mobile-rich-copy table,
    .ecea-mobile-rich-copy figure,
    .ecea-mobile-rich-copy .ecea-mobile-rich-callout {
        margin: 0 0 14px;
    }

    .ecea-mobile-rich-copy .is-colored {
        color: #7ed8ff;
        font-weight: 700;
    }

    .ecea-mobile-rich-callout {
        padding: 12px 14px;
        border-radius: 14px;
        background: rgba(255, 203, 48, 0.12);
        border: 1px solid rgba(255, 203, 48, 0.24);
        color: #ffe08b;
        font-weight: 700;
    }

    .ecea-mobile-rich-media {
        overflow: hidden;
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.03);
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .ecea-mobile-rich-media img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .ecea-mobile-rich-media figcaption {
        padding: 10px 12px 12px;
        color: #b8c0ea;
        font-size: 12px;
        line-height: 1.6;
    }

    .ecea-mobile-rich-copy ul,
    .ecea-mobile-rich-copy ol {
        padding-left: 18px;
    }

    .ecea-mobile-rich-copy li {
        margin-bottom: 8px;
    }

    .ecea-mobile-rich-table {
        width: 100%;
        overflow: hidden;
        border-collapse: separate;
        border-spacing: 0;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 14px;
        background: rgba(255, 255, 255, 0.02);
    }

    .ecea-mobile-rich-table th,
    .ecea-mobile-rich-table td {
        padding: 10px 10px;
        vertical-align: top;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
        text-align: left;
        font-size: 12px;
        line-height: 1.6;
    }

    .ecea-mobile-rich-table th {
        color: #ffffff;
        background: rgba(255, 255, 255, 0.04);
        font-weight: 800;
    }

    .ecea-mobile-rich-table tr:last-child td {
        border-bottom: 0;
    }

    .ecea-lesson-mobile-video-actions-card {
        display: block;
        padding: 16px !important;
        margin-top: -2px;
        margin-bottom: 4px;
    }

    .ecea-lesson-mobile-video-actions {
        display: grid;
        grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr);
        gap: 12px;
        margin: 0;
    }

    .ecea-lesson-mobile-video-actions form {
        margin: 0;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link {
        width: 100%;
        min-height: 46px;
        border-radius: 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 0 14px;
        font-size: 13px;
        font-weight: 800;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link i {
        font-size: 14px;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download {
        max-width: 152px;
        justify-self: start;
        background: #b8860b !important;
        border-color: #b8860b !important;
        color: #ffffff !important;
        box-shadow: 0 12px 24px rgba(184, 134, 11, 0.28);
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download i,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download span {
        color: #ffffff !important;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download:hover,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download:focus {
        background: #8c6508 !important;
        border-color: #8c6508 !important;
        color: #ffffff !important;
        box-shadow: 0 12px 24px rgba(140, 101, 8, 0.30);
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood {
        width: 100%;
        background: #29a644 !important;
        border-color: #29a644 !important;
        color: #ffffff !important;
        box-shadow: 0 12px 24px rgba(41, 166, 68, 0.24) !important;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood i,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood span {
        color: #ffffff !important;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood:hover,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood:focus {
        background: #238d39 !important;
        border-color: #238d39 !important;
        color: #ffffff !important;
        box-shadow: 0 12px 24px rgba(35, 141, 57, 0.28) !important;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood:active {
        background: #1f7a31 !important;
        border-color: #1f7a31 !important;
        color: #ffffff !important;
    }

    .ecea-lesson-mobile-layout-refine > .ecea-dashboard-panel:last-child .ecea-dashboard-sectionhead {
        margin-bottom: 14px;
    }
}

@media (max-width: 575.98px) {
    .ecea-lesson-mobile-video-panel {
        z-index: 60;
    }

    .ecea-lesson-mobile-video-actions-card {
        padding: 16px !important;
    }

    .ecea-lesson-mobile-video-actions {
        grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
        gap: 10px;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link {
        min-height: 44px;
        padding: 0 10px;
        font-size: 11px;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download {
        max-width: 142px;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood {
        color: #ffffff !important;
    }

    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download i,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-download span,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood i,
    .ecea-lesson-mobile-video-actions .ecea-continue-link.is-understood span {
        color: #ffffff !important;
    }
}


/* Worksheet upload page */
.ecea-worksheet-page {
  max-width: 880px;
}
.ecea-worksheet-shell {
  background: linear-gradient(180deg, rgba(10,14,44,0.98), rgba(8,10,32,0.98));
  border: 1px solid rgba(123, 97, 255, 0.18);
  border-radius: 24px;
  padding: 20px;
  box-shadow: 0 28px 60px rgba(0, 0, 0, 0.28);
}
.ecea-worksheet-head h1 {
  font-size: clamp(28px, 4vw, 42px);
  color: #fff;
  margin: 8px 0 10px;
  font-weight: 800;
}
.ecea-worksheet-head p {
  color: rgba(255,255,255,.82);
  margin: 0;
  line-height: 1.7;
}
.ecea-worksheet-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #cfd5ff;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
  font-size: 12px;
}
.ecea-worksheet-kicker::before {
  content: '';
  width: 34px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff8b4d, #ff5c86);
}
.ecea-worksheet-note-wrap, .ecea-worksheet-upload-card, .ecea-worksheet-status {
  margin-top: 18px;
  background: rgba(17, 20, 52, 0.94);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 18px;
}
.ecea-worksheet-note, .ecea-worksheet-note-wrap p, .ecea-worksheet-note-wrap li {
  color: rgba(255,255,255,.86);
  line-height: 1.8;
}
.ecea-worksheet-note-wrap ul {
  margin: 8px 0 0 18px;
}
.ecea-worksheet-status {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.ecea-worksheet-upload-card .form-label,
.ecea-worksheet-upload-card .form-text {
  color: rgba(255,255,255,.85);
}
.ecea-worksheet-upload-card .form-control {
  background: rgba(10, 12, 34, 0.92);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
}
.ecea-worksheet-upload-card .form-control:focus {
  border-color: rgba(41,166,68,.8);
  box-shadow: 0 0 0 .2rem rgba(41,166,68,.18);
  background: rgba(10, 12, 34, 0.98);
  color: #fff;
}

.ecea-file-picker {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}
.ecea-file-picker-btn {
  flex: 0 0 auto;
  min-width: 88px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-weight: 700;
  padding: 0 14px;
  font-size: 13px;
  white-space: nowrap;
}
.ecea-file-picker-name {
  flex: 1 1 auto;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px !important;
  border-radius: 10px;
  background: rgba(10, 12, 34, 0.92) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.56) !important;
  font-size: 14px;
  line-height: 1.4;
  box-shadow: none !important;
}
.ecea-file-picker-name.has-file {
  color: rgba(255,255,255,.94) !important;
}
.ecea-worksheet-action-btn {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  border-radius: 10px;
}
.ecea-worksheet-upload-card textarea::placeholder {
  color: rgba(255,255,255,.56);
  font-size: 15px;
}

@media (max-width: 768px) {
  .ecea-worksheet-shell { padding: 16px; border-radius: 20px; }
  .ecea-worksheet-head h1 { font-size: 30px; }
  .ecea-worksheet-note-wrap, .ecea-worksheet-upload-card, .ecea-worksheet-status { padding: 16px; border-radius: 18px; }
  .ecea-worksheet-status { flex-direction: column; }
  .ecea-file-picker { align-items: stretch; }
  .ecea-file-picker-btn { min-width: 82px; }
}


.ecea-worksheet-alert {
  border-radius: 16px;
  border: 1px solid rgba(255, 107, 107, 0.35);
  background: rgba(122, 20, 30, 0.22);
  color: #ffd2d2;
}

.ecea-flow-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(3, 5, 20, 0.62);
  z-index: 1200;
}
.ecea-flow-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  z-index: 1201;
}
.ecea-flow-modal-dialog {
  width: min(100%, 420px);
}
.ecea-flow-modal-content {
  background: linear-gradient(180deg, rgba(17, 20, 52, 0.98), rgba(10, 12, 34, 0.98));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  padding: 24px 20px;
  box-shadow: 0 32px 60px rgba(0,0,0,.35);
}
.ecea-flow-modal-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 14px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
.ecea-flow-modal-icon.is-success {
  color: #fff;
  background: linear-gradient(135deg, #29a644, #1f7a32);
}
.ecea-flow-modal-content h3 {
  color: #fff;
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 10px;
}
.ecea-flow-modal-content p {
  color: rgba(255,255,255,.84);
  line-height: 1.7;
  margin-bottom: 18px;
}
.ecea-flow-modal-btn {
  min-width: 140px;
  border-radius: 12px;
  font-weight: 700;
  padding: 10px 18px;
}

.ecea-task-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.ecea-task-chip {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.86);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}
.ecea-task-chip.is-strong {
  background: rgba(41,166,68,.18);
  border-color: rgba(41,166,68,.42);
  color: #d5ffe0;
}
.ecea-task-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.ecea-task-grid.is-secondary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ecea-task-mini-card,
.ecea-task-detail-card {
  background: rgba(17, 20, 52, 0.94);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 18px;
}
.ecea-task-mini-label {
  display: block;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(207, 213, 255, .78);
}
.ecea-task-mini-card strong,
.ecea-task-detail-card h3 {
  color: #fff;
  font-weight: 800;
}
.ecea-task-detail-card h3 {
  font-size: 18px;
  margin: 0 0 12px;
}
.ecea-task-detail-card p,
.ecea-task-detail-card li,
.ecea-task-mini-card {
  color: rgba(255,255,255,.86);
}
.ecea-task-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.ecea-task-checklist li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.7;
}
.ecea-task-checklist i {
  width: 18px;
  flex: 0 0 18px;
  color: #8ad9ff;
  margin-top: 4px;
}
.ecea-rich-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.ecea-rich-tag {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(41,166,68,.16);
  border: 1px solid rgba(41,166,68,.28);
  color: #d6ffe0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}

@media (max-width: 768px) {
  .ecea-task-grid,
  .ecea-task-grid.is-secondary {
    grid-template-columns: 1fr;
  }
  .ecea-task-mini-card,
  .ecea-task-detail-card {
    border-radius: 18px;
    padding: 16px;
  }
  .ecea-task-chip-row {
    margin-top: 14px;
    gap: 8px;
  }
  .ecea-task-chip {
    font-size: 11px;
    min-height: 32px;
    padding: 5px 12px;
  }
}


.ecea-auth-note {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(255,255,255,.76);
}
.ecea-continue-repeat {
  border-radius: 999px;
}
.ecea-resume-panel {
  padding-bottom: 0;
}
.ecea-resume-note {
  margin-bottom: 18px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(20, 25, 67, 0.88);
  color: rgba(255,255,255,.88);
}
.ecea-resume-note strong {
  display: block;
  color: #fff;
  margin-bottom: 6px;
}
.ecea-resume-note p {
  margin: 0;
  color: rgba(255,255,255,.74);
}
.ecea-resume-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.ecea-resume-actions .btn {
  border-radius: 999px;
}

/* ===== E'CEA v2.10.3 Lesson 1 desktop focus mode ===== */
.ecea-dashboard-sidebar-peek-toggle {
  display: none;
}

@media (min-width: 992px) {
  .ecea-dashboard-app.ecea-dashboard-lesson-focus {
    position: relative;
    grid-template-columns: 0 minmax(0, 1fr);
    transition: grid-template-columns .28s ease;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar {
    width: 250px;
    min-width: 250px;
    transform: translateX(-100%);
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
    padding-left: 0;
    padding-right: 0;
    border-right-color: transparent;
    transition: transform .28s ease, opacity .22s ease, padding .28s ease, border-color .28s ease;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-main {
    min-width: 0;
    padding-left: clamp(18px, 2.2vw, 34px);
    padding-right: clamp(18px, 2.2vw, 34px);
    transition: padding .28s ease;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible {
    grid-template-columns: 250px minmax(0, 1fr);
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible .ecea-dashboard-sidebar {
    width: auto;
    min-width: 0;
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
    overflow: visible;
    padding: 24px 16px 18px;
    border-right-color: rgba(255, 255, 255, 0.08);
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar-peek-toggle {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1250;
    width: 42px;
    height: 74px;
    border-radius: 0 999px 999px 0;
    border: 1px solid rgba(255,255,255,.14);
    border-left: 0;
    background: linear-gradient(180deg, rgba(255,203,48,.98), rgba(255,177,59,.96));
    color: #111111;
    box-shadow: 0 14px 30px rgba(0,0,0,.34);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-right: 0;
    cursor: pointer;
    transition: left .28s ease, transform .28s ease, box-shadow .22s ease, background .22s ease;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar-peek-toggle:hover,
  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar-peek-toggle:focus-visible {
    box-shadow: 0 18px 38px rgba(255,203,48,.24), 0 14px 30px rgba(0,0,0,.34);
    outline: none;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar-peek-toggle i,
  .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-sidebar-peek-toggle svg {
    width: 22px;
    height: 22px;
    color: #111111 !important;
    stroke-width: 2.6;
    transition: transform .28s ease;
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible .ecea-dashboard-sidebar-peek-toggle {
    left: 250px;
    transform: translate(-50%, -50%);
  }

  .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible .ecea-dashboard-sidebar-peek-toggle i,
  .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible .ecea-dashboard-sidebar-peek-toggle svg {
    transform: rotate(180deg);
  }
}

@media (max-width: 991.98px) {
  .ecea-dashboard-sidebar-peek-toggle {
    display: none !important;
  }
}

/* ===== E'CEA v2.10.4 Lesson 1 full-width focus mode after sidebar autohide ===== */
@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus {
    width: 100vw !important;
    max-width: 100vw !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-main {
    margin-left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    padding-left: clamp(22px, 3vw, 46px) !important;
    padding-right: clamp(22px, 3vw, 46px) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-sidebar-visible .ecea-dashboard-main {
    margin-left: 250px !important;
    width: calc(100vw - 250px) !important;
    max-width: calc(100vw - 250px) !important;
    padding-left: clamp(18px, 2.2vw, 34px) !important;
    padding-right: clamp(18px, 2.2vw, 34px) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-topbar,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-content-grid,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-bottomcopy {
    max-width: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-content-grid.ecea-lesson-mobile-layout-refine {
    grid-template-columns: minmax(0, 1.45fr) minmax(330px, .85fr) !important;
    width: 100% !important;
  }
}



/* ===== E'CEA v2.10.5 Lesson 1 desktop sticky learning focus ===== */
.ecea-dashboard-lesson-focus-title {
  display: none;
  color: #ffffff;
  font-size: clamp(15px, 1.35vw, 18px);
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.25;
}

@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus {
    --ecea-lesson-desktop-sticky-top: 98px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-plan-meta {
    display: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-lesson-focus-title {
    display: block !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-layout-refine {
    align-items: start;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-shell,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    position: sticky;
    top: var(--ecea-lesson-desktop-sticky-top);
    align-self: start;
    z-index: 30;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.18);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    display: flex !important;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy {
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.035);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy p {
    margin: 0;
    color: #c9d0f1;
    font-size: 14px;
    line-height: 1.75;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions {
    display: grid !important;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 12px;
    margin: 0;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link {
    width: 100%;
    min-height: 46px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-download {
    background: #b8860b !important;
    border-color: #b8860b !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(184, 134, 11, 0.28);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-download:hover,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-download:focus {
    background: #8c6508 !important;
    border-color: #8c6508 !important;
    color: #ffffff !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-understood {
    background: #29a644 !important;
    border-color: #29a644 !important;
    color: #ffffff !important;
    box-shadow: 0 12px 24px rgba(41, 166, 68, 0.24) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-understood:hover,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link.is-understood:focus {
    background: #238d39 !important;
    border-color: #238d39 !important;
    color: #ffffff !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link i,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-video-actions .ecea-continue-link span {
    color: #ffffff !important;
  }
}

/* ===== E'CEA v2.10.6 Lesson 1 desktop sticky navbar + admin rich description fix ===== */
@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-plan-meta {
    display: none !important;
    visibility: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-lesson-focus-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy.ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy.ecea-lesson-mobile-rich-desc.is-open {
    display: block !important;
    margin: 0 !important;
    max-height: calc(100dvh - var(--ecea-lesson-desktop-sticky-top, 98px) - 142px);
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.035);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 203, 48, .58) rgba(255, 255, 255, .06);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy::-webkit-scrollbar {
    width: 8px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, .06);
    border-radius: 999px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy::-webkit-scrollbar-thumb {
    background: rgba(255, 203, 48, .58);
    border-radius: 999px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy {
    color: #d8defc;
    font-size: 14px;
    line-height: 1.8;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy ul,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy ol,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy table,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy figure,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy .ecea-mobile-rich-callout {
    margin: 0 0 14px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy ul,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy ol {
    padding-left: 18px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy li {
    margin-bottom: 8px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy .is-colored {
    color: #7ed8ff;
    font-weight: 700;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-callout {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 203, 48, 0.12);
    border: 1px solid rgba(255, 203, 48, 0.24);
    color: #ffe08b;
    font-weight: 700;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-media {
    overflow: hidden;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-media figcaption {
    padding: 10px 12px 12px;
    color: #b8c0ea;
    font-size: 12px;
    line-height: 1.6;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-table {
    width: 100%;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.02);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-table th,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-table td {
    padding: 10px 10px;
    vertical-align: top;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    text-align: left;
    font-size: 12px;
    line-height: 1.6;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-table th {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.04);
    font-weight: 800;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-table tr:last-child td {
    border-bottom: 0;
  }
}

/* ===== E'CEA v2.10.7 Lesson 1 desktop sticky title + aligned description panel ===== */
@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-topbar-copy {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-lesson-focus-title {
    max-width: min(760px, 58vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-plan-meta {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus.is-lesson-content-pinned .ecea-dashboard-lesson-focus-title {
    display: inline-flex !important;
    align-items: center;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 34px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-layout-refine {
    align-items: start !important;
    column-gap: clamp(18px, 2vw, 28px) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-shell,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    position: sticky !important;
    top: var(--ecea-lesson-desktop-sticky-top, 92px) !important;
    align-self: start !important;
    margin-top: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    margin-top: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel .ecea-dashboard-sectionhead h2::first-letter {
    text-transform: uppercase;
  }
}


/* ===== E'CEA v2.10.8 Lesson 1 quiz desktop focus refinement ===== */
@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-dashboard-plan-meta {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-dashboard-lesson-focus-title {
    display: inline-flex !important;
    align-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 34px;
    max-width: min(860px, 60vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-shell {
    border-radius: 30px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-inner {
    padding: clamp(22px, 2vw, 30px);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-topbar {
    align-items: flex-start;
    gap: 20px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-topbar > div:first-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-subtitle {
    max-width: min(1040px, 100%);
    width: min(1040px, 100%);
    font-size: 15.5px;
    line-height: 1.72;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-stage {
    min-height: 0;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-card {
    gap: 14px;
    padding: 16px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-visual {
    min-height: 180px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-options {
    gap: 10px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-option-card {
    min-height: 86px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    text-align: left;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 18px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-option-letter {
    justify-self: start;
    align-self: center;
    min-width: 34px;
    width: 34px;
    height: 34px;
    font-size: 13px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-option-label {
    align-self: center;
    font-size: 15px;
    line-height: 1.4;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-helper {
    font-size: 15px;
    line-height: 1.55;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-footer {
    align-items: center;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-actions {
    justify-content: flex-end;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-navbtn:disabled,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-quiz-focus .ecea-quiz7-navbtn[aria-disabled="true"] {
    opacity: .45;
    cursor: not-allowed;
    box-shadow: none !important;
    transform: none !important;
  }
}


/* ===== E'CEA v2.10.9 Lesson 1 worksheet desktop focus + stable file upload ===== */
@media (min-width: 992px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus {
    view-transition-name: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-dashboard-plan-meta {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-dashboard-lesson-focus-title {
    display: inline-flex !important;
    align-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 34px;
    max-width: min(860px, 60vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-page {
    width: min(1180px, 100%);
    max-width: min(1180px, 100%);
    margin: 0 auto;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-shell {
    border-radius: 30px;
    padding: clamp(22px, 2vw, 30px);
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-upload-card .form-control,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-upload-card textarea.form-control,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-input {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-input {
    min-height: 112px;
    padding: 13px 14px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-file-picker-btn,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-action-btn {
    font-size: 14px;
  }
}

/* ===== E'CEA v2.10.10 Worksheet & Speaking Task submit confirmation modal ===== */
.ecea-flow-modal[hidden],
.ecea-flow-modal-backdrop[hidden] {
  display: none !important;
}

.ecea-flow-modal-icon.is-confirm {
  color: #ffffff;
  background: linear-gradient(135deg, #29a644, #1f7a32);
  box-shadow: 0 18px 34px rgba(41, 166, 68, 0.25);
}

.ecea-upload-confirm-content {
  max-width: 440px;
  margin: 0 auto;
}

.ecea-flow-modal-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.ecea-flow-modal-actions .ecea-flow-modal-btn {
  min-width: 124px;
}

body.ecea-upload-confirm-open {
  overflow: hidden;
}

@media (max-width: 576px) {
  .ecea-flow-modal-actions {
    flex-direction: column-reverse;
  }

  .ecea-flow-modal-actions .ecea-flow-modal-btn {
    width: 100%;
  }
}


/* ===== E'CEA v2.10.11 mobile worksheet/speaking refinement + completion modal ===== */
.ecea-worksheet-note-input,
.ecea-worksheet-upload-card textarea.form-control {
  font-size: 15px !important;
  line-height: 1.55 !important;
}

.ecea-lesson-complete-content {
  max-width: 480px;
  margin: 0 auto;
}

.ecea-lesson-complete-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  color: #d5ffe0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ecea-lesson-complete-content p strong {
  color: #ffffff;
}

.ecea-lesson-complete-note {
  margin-top: -6px !important;
  color: rgba(255, 255, 255, .72) !important;
  font-size: 14px;
}

body.ecea-lesson-complete-open {
  overflow: hidden;
}

@media (max-width: 767.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-dashboard-main {
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    overflow: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-kicker {
    gap: 7px;
    font-size: 10px;
    letter-spacing: .11em;
    line-height: 1.35;
    white-space: normal;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-kicker::before {
    width: 26px;
    flex: 0 0 26px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-head h1 {
    font-size: clamp(24px, 8.5vw, 32px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-head p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-wrap p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-wrap li,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-checklist li,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-mini-card strong {
    font-size: 14px !important;
    line-height: 1.62 !important;
    overflow-wrap: anywhere;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-chip-row,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-rich-tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 100%;
    overflow: hidden;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-chip,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-rich-tag {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-grid,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-grid.is-secondary {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-mini-card,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-detail-card,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-wrap,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-upload-card,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-status {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
    border-radius: 16px !important;
    overflow-wrap: anywhere;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-wrap ul,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-task-checklist {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-wrap li {
    margin-left: 18px;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-file-picker {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-file-picker-btn,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-file-picker-name,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-action-btn {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-file-picker-name {
    min-height: 42px;
    font-size: 13px !important;
    text-overflow: ellipsis;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-note-input,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-upload-card textarea.form-control {
    min-height: 112px;
    font-size: 15px !important;
    line-height: 1.55 !important;
    padding: 12px 13px !important;
  }

  .ecea-flow-modal {
    padding: 14px;
  }

  .ecea-flow-modal-dialog,
  .ecea-lesson-complete-dialog {
    width: min(100%, 360px);
  }

  .ecea-flow-modal-content,
  .ecea-upload-confirm-content,
  .ecea-lesson-complete-content {
    padding: 22px 16px !important;
    border-radius: 20px !important;
  }

  .ecea-flow-modal-content h3 {
    font-size: 24px !important;
    line-height: 1.16;
  }

  .ecea-flow-modal-content p {
    font-size: 14px;
    line-height: 1.6;
  }
}

@media (max-width: 360px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-dashboard-main {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-worksheet-focus .ecea-worksheet-shell {
    padding: 12px !important;
  }
}


/* ===== E'CEA v2.10.12 Lesson flow loading modal ===== */
.ecea-flow-loading-content {
  max-width: 430px;
  margin: 0 auto;
  padding-top: 28px;
  padding-bottom: 28px;
}

.ecea-flow-loading-spinner {
  width: 62px;
  height: 62px;
  margin: 0 auto 16px;
  border-radius: 999px;
  border: 5px solid rgba(255, 255, 255, .16);
  border-top-color: #29a644;
  animation: eceaFlowLoadingSpin .78s linear infinite;
  box-shadow: 0 18px 34px rgba(41, 166, 68, .16);
}

.ecea-flow-loading-content h3 {
  margin-bottom: 8px;
}

.ecea-flow-loading-content p {
  margin-bottom: 0;
}

body.ecea-flow-loading-open {
  overflow: hidden;
}

@keyframes eceaFlowLoadingSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 767.98px) {
  .ecea-flow-loading-dialog {
    width: min(100%, 340px);
  }

  .ecea-flow-loading-content {
    padding: 24px 16px !important;
  }

  .ecea-flow-loading-spinner {
    width: 54px;
    height: 54px;
    border-width: 4px;
  }
}

/* E'CEA v2.10.14 Learning Hub certificate redesign */
.ecea-learning-certificate-app .ecea-dashboard-main {
  background:
    radial-gradient(circle at top left, rgba(0, 148, 160, .12), transparent 32%),
    radial-gradient(circle at bottom right, rgba(225, 54, 145, .12), transparent 30%),
    #f6f8fc;
}

.ecea-learning-cert-shell {
  width: min(100%, 1240px);
  margin: 0 auto;
  padding: 4px 0 36px;
}

.ecea-learning-cert-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 22px;
}

.ecea-learning-cert-head h1 {
  margin: 6px 0 7px;
  color: #101828;
  font-size: clamp(27px, 3vw, 40px);
  font-weight: 950;
  letter-spacing: -.045em;
}

.ecea-learning-cert-head p {
  margin: 0;
  max-width: 630px;
  color: #667085;
  font-size: 15.5px;
  line-height: 1.65;
  font-weight: 650;
}

.ecea-learning-cert-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ecea-learning-cert-actions .ecea-btn {
  min-height: 45px;
  border-radius: 999px;
  padding: 11px 18px;
  font-size: 14px;
  font-weight: 900;
}

.ecea-learning-cert-scroll {
  width: 100%;
}

.ecea-learning-cert-frame {
  position: relative;
  width: 100%;
  max-width: 1122px;
  aspect-ratio: 297 / 210;
  margin: 0 auto;
  padding: 10px;
  border-radius: 30px;
  background: linear-gradient(135deg, rgba(0, 148, 160, .52), rgba(245, 171, 0, .34), rgba(225, 54, 145, .38), rgba(123, 48, 151, .28));
  box-shadow: 0 34px 85px rgba(15, 23, 42, .16);
}

.ecea-learning-cert-paper {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 23px;
  background-color: #ffffff;
  background-image: url("../images/certificate/learning-hub-certificate-bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #303d49;
  isolation: isolate;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.ecea-learning-cert-paper::before {
  content: "";
  position: absolute;
  inset: 30px;
  border: 1.5px solid rgba(0, 148, 160, .16);
  border-radius: 20px;
  pointer-events: none;
  z-index: 1;
}

.ecea-learning-cert-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(42px, 5vw, 72px) clamp(82px, 8vw, 132px) clamp(48px, 5vw, 76px);
}

.ecea-learning-cert-company {
  position: absolute;
  right: clamp(58px, 5.2vw, 84px);
  top: clamp(42px, 4.4vw, 66px);
  display: flex;
  align-items: center;
  gap: 11px;
  text-align: left;
}

.ecea-learning-cert-logo {
  width: clamp(90px, 9vw, 142px);
  height: auto;
  object-fit: contain;
}

.ecea-learning-cert-company strong {
  display: block;
  color: #303d49;
  font-size: clamp(10px, 1vw, 13px);
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.ecea-learning-cert-company span {
  display: block;
  margin-top: 4px;
  color: #e13691;
  font-size: clamp(13px, 1.4vw, 19px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ecea-learning-cert-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: clamp(20px, 2.4vw, 34px) 0 13px;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .80);
  border: 1px solid rgba(0, 148, 160, .15);
  color: #4d5968;
  font-size: clamp(11px, 1.05vw, 13.5px);
  font-weight: 750;
  backdrop-filter: blur(6px);
}

.ecea-learning-cert-title {
  margin: 0 0 7px;
  color: #3f3f46;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(35px, 5.1vw, 67px);
  line-height: .95;
  font-weight: 950;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.ecea-learning-cert-title::after {
  content: "OF ACHIEVEMENT";
  display: block;
  margin-top: 13px;
  color: #303d49;
  font-family: inherit;
  font-size: clamp(15px, 2.15vw, 28px);
  line-height: 1;
  font-weight: 500;
  letter-spacing: .36em;
}

.ecea-learning-cert-subtitle {
  margin: clamp(30px, 3.2vw, 44px) 0 15px;
  color: #3f4653;
  font-size: clamp(13px, 1.4vw, 18px);
  line-height: 1.3;
  font-weight: 750;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ecea-learning-cert-name {
  margin: 0;
  max-width: 850px;
  color: #e13691;
  font-size: clamp(42px, 6vw, 82px);
  line-height: .98;
  font-weight: 950;
  letter-spacing: -.06em;
}

.ecea-learning-cert-line {
  width: min(100%, 580px);
  height: 2px;
  margin: clamp(18px, 2vw, 28px) 0 clamp(15px, 1.8vw, 24px);
  background: repeating-linear-gradient(90deg, #f5ab00 0 4px, transparent 4px 16px);
}

.ecea-learning-cert-copy {
  margin: 0 0 9px;
  color: #0094a0;
  font-size: clamp(17px, 1.9vw, 27px);
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ecea-learning-cert-achievement {
  max-width: 720px;
  margin: 0 auto 7px;
  color: #303d49;
  font-size: clamp(15px, 1.55vw, 20px);
  line-height: 1.55;
  font-weight: 800;
}

.ecea-learning-cert-note {
  max-width: 660px;
  margin: 0 auto;
  color: #667085;
  font-size: clamp(11px, 1.12vw, 14px);
  line-height: 1.5;
  font-weight: 650;
}

.ecea-learning-cert-bottom {
  position: absolute;
  left: clamp(54px, 5.4vw, 84px);
  right: clamp(54px, 5.4vw, 84px);
  bottom: clamp(34px, 3.8vw, 58px);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 90px minmax(220px, 1fr);
  align-items: end;
  gap: clamp(22px, 3.5vw, 54px);
}

.ecea-learning-cert-validation {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  min-width: 0;
}

.ecea-learning-cert-qr {
  width: clamp(68px, 7vw, 92px);
  height: clamp(68px, 7vw, 92px);
  display: block;
  flex: 0 0 auto;
}

.ecea-learning-cert-validation strong {
  display: block;
  color: #303d49;
  font-size: clamp(8px, .82vw, 10px);
  line-height: 1.15;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ecea-learning-cert-validation span {
  display: block;
  max-width: 360px;
  margin-top: 4px;
  color: #667085;
  font-size: clamp(5.6px, .57vw, 7.2px);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ecea-learning-cert-seal {
  width: clamp(68px, 8vw, 96px);
  height: clamp(68px, 8vw, 96px);
  align-self: end;
  justify-self: center;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: radial-gradient(circle, #0094a0 0 49%, transparent 50%), conic-gradient(from 20deg, #f5ab00, #e13691, #7b3097, #0094a0, #f5ab00);
  box-shadow: 0 12px 28px rgba(0, 148, 160, .18);
}

.ecea-learning-cert-seal span {
  color: #ffffff;
  font-size: clamp(10px, 1.05vw, 13px);
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.ecea-learning-cert-signature {
  justify-self: end;
  width: min(100%, 300px);
  text-align: center;
}

.ecea-learning-cert-sign-img {
  display: block;
  width: clamp(170px, 16vw, 246px);
  height: clamp(62px, 6.5vw, 94px);
  object-fit: contain;
  margin: 0 auto -18px;
  filter: drop-shadow(0 8px 10px rgba(15, 23, 42, .08));
}

.ecea-learning-cert-sign-line {
  height: 16px;
  border-bottom: 2px solid #f5ab00;
  margin: 0 auto 10px;
  width: min(100%, 260px);
}

.ecea-learning-cert-signature strong {
  display: block;
  color: #303d49;
  font-size: clamp(12px, 1.2vw, 16px);
  line-height: 1.15;
  font-weight: 950;
}

.ecea-learning-cert-signature span {
  display: block;
  margin-top: 4px;
  color: #667085;
  font-size: clamp(10px, 1vw, 13px);
  line-height: 1.25;
  font-weight: 750;
}

.ecea-learning-cert-issued {
  position: absolute;
  left: clamp(58px, 5.4vw, 84px);
  top: clamp(44px, 4.8vw, 72px);
  z-index: 4;
  text-align: left;
}

.ecea-learning-cert-issued span {
  display: block;
  color: #667085;
  font-size: clamp(9px, .9vw, 11px);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.ecea-learning-cert-issued strong {
  display: block;
  margin-top: 5px;
  color: #303d49;
  font-size: clamp(13px, 1.35vw, 18px);
  line-height: 1.1;
  font-weight: 950;
}

.ecea-learning-certificate-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ecea-learning-certificate-card,
.ecea-learning-certificate-empty {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 22px;
  background: #ffffff;
  border: 1px solid rgba(0, 148, 160, .13);
  box-shadow: 0 24px 58px rgba(15, 23, 42, .08);
}

.ecea-learning-certificate-card::before {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -78px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(225, 54, 145, .18), transparent 62%);
  pointer-events: none;
}

.ecea-learning-certificate-card-top {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.ecea-learning-certificate-number {
  display: inline-flex;
  min-width: 0;
  max-width: 58%;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(0, 148, 160, .08);
  color: #303d49;
  font-size: 12px;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ecea-learning-certificate-card h3,
.ecea-learning-certificate-empty h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 7px;
  color: #101828;
  font-size: 21px;
  line-height: 1.25;
  font-weight: 950;
  letter-spacing: -.025em;
}

.ecea-learning-certificate-card p,
.ecea-learning-certificate-empty p {
  position: relative;
  z-index: 1;
  color: #667085;
  font-size: 14.5px;
  line-height: 1.58;
  font-weight: 650;
  margin: 0 0 18px;
}

.ecea-learning-certificate-mini {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 297 / 110;
  margin: 14px 0 18px;
  border-radius: 18px;
  background: url("../images/certificate/learning-hub-certificate-bg.png") center/cover no-repeat;
  border: 1px solid rgba(148, 163, 184, .20);
}

.ecea-learning-certificate-mini span:nth-child(1) {
  position: absolute;
  left: 22%;
  top: 42%;
  width: 45%;
  height: 12px;
  border-radius: 99px;
  background: rgba(48, 61, 73, .12);
}
.ecea-learning-certificate-mini span:nth-child(2) {
  position: absolute;
  left: 27%;
  top: 56%;
  width: 34%;
  height: 9px;
  border-radius: 99px;
  background: rgba(225, 54, 145, .38);
}
.ecea-learning-certificate-mini span:nth-child(3) {
  position: absolute;
  left: 33%;
  top: 72%;
  width: 22%;
  height: 7px;
  border-radius: 99px;
  background: rgba(0, 148, 160, .33);
}

.ecea-learning-certificate-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: clamp(28px, 5vw, 54px);
}

.ecea-learning-certificate-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  color: #ffffff;
  font-size: 30px;
  background: linear-gradient(135deg, #0094a0, #e13691);
  box-shadow: 0 18px 35px rgba(0, 148, 160, .20);
}

.ecea-learning-certificate-empty .ecea-btn {
  border-radius: 999px;
  padding: 12px 20px;
  font-weight: 900;
}

@media (max-width: 1024px) {
  .ecea-learning-cert-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .ecea-learning-cert-actions {
    justify-content: flex-start;
  }
  .ecea-learning-certificate-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .ecea-learning-cert-shell {
    padding: 4px 0 28px;
  }
  .ecea-learning-cert-scroll {
    overflow-x: auto;
    padding: 0 0 12px;
    -webkit-overflow-scrolling: touch;
  }
  .ecea-learning-cert-frame {
    min-width: 940px;
  }
  .ecea-learning-cert-head p {
    font-size: 14.5px;
  }
  .ecea-learning-cert-actions {
    width: 100%;
  }
  .ecea-learning-cert-actions .ecea-btn {
    flex: 1 1 180px;
    justify-content: center;
  }
  .ecea-learning-certificate-card,
  .ecea-learning-certificate-empty {
    border-radius: 24px;
    padding: 18px;
  }
  .ecea-learning-certificate-card-top {
    align-items: flex-start;
    flex-direction: column;
  }
  .ecea-learning-certificate-number {
    max-width: 100%;
  }
}

@media print {
  @page {
    size: A4 landscape;
    margin: 0;
  }

  html,
  body {
    width: 297mm;
    height: 210mm;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body:has(.ecea-learning-cert-shell) .ecea-navbar-wrap,
  body:has(.ecea-learning-cert-shell) .rbt-footer,
  body:has(.ecea-learning-cert-shell) footer,
  body:has(.ecea-learning-cert-shell) .ecea-page-bg,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-mobilebar,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-sidebar,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-sidebar-peek-toggle,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-topbar,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-bottomcopy,
  body:has(.ecea-learning-cert-shell) .ecea-cert-no-print,
  body:has(.ecea-learning-cert-shell) .flash-message,
  body:has(.ecea-learning-cert-shell) .alert,
  body:has(.ecea-learning-cert-shell) .ecea-install-bar,
  body:has(.ecea-learning-cert-shell) .ecea-push-widget,
  body:has(.ecea-learning-cert-shell) .ecea-pwa-install-bar {
    display: none !important;
  }

  body:has(.ecea-learning-cert-shell) .ecea-main,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-app,
  body:has(.ecea-learning-cert-shell) .ecea-dashboard-main,
  body:has(.ecea-learning-cert-shell) .ecea-learning-cert-shell,
  body:has(.ecea-learning-cert-shell) .ecea-learning-cert-scroll {
    width: 297mm !important;
    height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    box-shadow: none !important;
  }

  body:has(.ecea-learning-cert-shell) .ecea-learning-cert-frame {
    width: 297mm !important;
    height: 210mm !important;
    max-width: none !important;
    min-width: 0 !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: none !important;
  }

  body:has(.ecea-learning-cert-shell) .ecea-learning-cert-paper {
    width: 297mm !important;
    height: 210mm !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

/* E'CEA v2.10.15 Learning Hub certificate detail refinement */
.ecea-learning-cert-content {
  justify-content: flex-start;
  padding-top: clamp(38px, 3.6vw, 54px);
  padding-bottom: clamp(120px, 10vw, 148px);
}

.ecea-learning-cert-company {
  left: 50%;
  right: auto;
  top: clamp(30px, 3vw, 42px);
  transform: translateX(-50%);
  justify-content: center;
  text-align: center;
}

.ecea-learning-cert-logo {
  width: clamp(112px, 11vw, 160px);
}

.ecea-learning-cert-title {
  margin-top: clamp(72px, 7.2vw, 104px);
  margin-bottom: 10px;
  font-size: clamp(44px, 5.6vw, 76px);
  letter-spacing: -.045em;
}

.ecea-learning-cert-title::after {
  content: "OF ACHIEVEMENT";
  margin-top: 11px;
  font-size: clamp(14px, 1.75vw, 24px);
  letter-spacing: .38em;
}

.ecea-learning-cert-kicker {
  margin: 2px 0 clamp(18px, 1.9vw, 26px);
  padding: 9px 20px;
  color: #303d49;
  font-size: clamp(12px, 1.18vw, 15px);
  font-weight: 850;
}

.ecea-learning-cert-subtitle {
  margin: 0 0 clamp(12px, 1.4vw, 18px);
  color: #4a5565;
  font-size: clamp(12px, 1.22vw, 16px);
  font-weight: 850;
  letter-spacing: .13em;
}

.ecea-learning-cert-name {
  font-size: clamp(42px, 5.5vw, 74px);
}

.ecea-learning-cert-line {
  margin: clamp(15px, 1.7vw, 23px) 0 clamp(12px, 1.55vw, 20px);
}

.ecea-learning-cert-copy {
  max-width: 820px;
  margin: 0 auto;
  color: #4a5565;
  font-size: clamp(14px, 1.42vw, 19px);
  line-height: 1.55;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.ecea-learning-cert-issued {
  left: auto;
  right: clamp(58px, 5.4vw, 84px);
  top: clamp(44px, 4.8vw, 72px);
  text-align: right;
}

.ecea-learning-cert-bottom {
  left: clamp(54px, 5.4vw, 84px);
  right: clamp(54px, 5.4vw, 84px);
  bottom: clamp(30px, 3.4vw, 50px);
  display: block;
  min-height: 118px;
}

.ecea-learning-cert-validation {
  position: absolute;
  left: 0;
  bottom: 0;
  max-width: 320px;
  gap: 13px;
}

.ecea-learning-cert-qr {
  width: clamp(78px, 7.8vw, 104px);
  height: clamp(78px, 7.8vw, 104px);
}

.ecea-learning-cert-validation strong {
  font-size: clamp(10.5px, 1.05vw, 13px);
  letter-spacing: .075em;
}

.ecea-learning-cert-validation span {
  max-width: 290px;
  margin-top: 7px;
  color: #4a5565;
  font-size: clamp(8.6px, .9vw, 11.5px);
  line-height: 1.28;
  font-weight: 700;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

.ecea-learning-cert-signature {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(100%, 330px);
  justify-self: center;
}

.ecea-learning-cert-sign-img {
  width: clamp(180px, 17vw, 260px);
  height: clamp(64px, 6.8vw, 98px);
}

.ecea-learning-certificate-number {
  max-width: 72%;
}

@media (max-width: 768px) {
  .ecea-learning-cert-content {
    padding-top: 36px;
    padding-bottom: 122px;
  }
  .ecea-learning-cert-company {
    top: 28px;
  }
  .ecea-learning-cert-title {
    margin-top: 84px;
  }
  .ecea-learning-cert-validation {
    max-width: 320px;
  }
  .ecea-learning-cert-validation span {
    max-width: 290px;
  }
}

/* E'CEA v2.10.16 Learning Hub certificate logo and black text refinement */
.ecea-learning-cert-logo {
  width: clamp(155px, 15.5vw, 232px);
}

.ecea-learning-cert-title {
  margin-top: clamp(84px, 8.2vw, 122px);
}

.ecea-learning-cert-kicker,
.ecea-learning-cert-kicker strong,
.ecea-learning-cert-subtitle,
.ecea-learning-cert-copy,
.ecea-learning-cert-validation span,
.ecea-learning-cert-signature strong,
.ecea-learning-cert-signature span {
  color: #000000 !important;
}

.ecea-learning-cert-kicker {
  border-color: rgba(0, 0, 0, .14);
}

@media (max-width: 768px) {
  .ecea-learning-cert-logo {
    width: 174px;
  }
  .ecea-learning-cert-title {
    margin-top: 108px;
  }
}


/* E'CEA v2.10.17 Learning Hub certificate navy logo and blue validation link */
.ecea-learning-cert-company {
  top: clamp(42px, 4.2vw, 58px);
}

.ecea-learning-cert-logo {
  width: clamp(176px, 16.6vw, 244px);
}

.ecea-learning-cert-title {
  margin-top: clamp(106px, 9.2vw, 136px);
}

.ecea-learning-cert-validation-link {
  display: block;
  max-width: 290px;
  margin-top: 7px;
  color: #1d4ed8 !important;
  font-size: clamp(8.6px, .9vw, 11.5px);
  line-height: 1.28;
  font-weight: 700;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.ecea-learning-cert-validation-link:hover,
.ecea-learning-cert-validation-link:focus {
  color: #1e40af !important;
  text-decoration: underline;
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    top: 38px;
  }
  .ecea-learning-cert-logo {
    width: 186px;
  }
  .ecea-learning-cert-title {
    margin-top: 118px;
  }
  .ecea-learning-cert-validation-link {
    max-width: 290px;
  }
}


/* E'CEA v2.10.18 Learning Hub certificate logo and content spacing refinement */
.ecea-learning-cert-company {
  top: clamp(72px, 6.4vw, 92px) !important;
  transform: translateX(-50%) !important;
}

.ecea-learning-cert-logo {
  width: clamp(176px, 16.6vw, 244px) !important;
}

.ecea-learning-cert-title {
  margin-top: clamp(118px, 10.2vw, 148px) !important;
}

.ecea-learning-cert-subtitle {
  margin-top: clamp(18px, 2.05vw, 30px) !important;
  margin-bottom: clamp(12px, 1.4vw, 18px) !important;
}

.ecea-learning-cert-copy {
  margin-top: clamp(2px, .45vw, 8px) !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    top: 70px !important;
  }
  .ecea-learning-cert-title {
    margin-top: 130px !important;
  }
  .ecea-learning-cert-subtitle {
    margin-top: 24px !important;
  }
}

/* E'CEA v2.10.19 Learning Hub certificate visual tuning */
.ecea-learning-cert-company {
  top: clamp(76px, 6.8vw, 98px) !important;
}

.ecea-learning-cert-logo {
  width: clamp(132px, 12.5vw, 182px) !important;
}

.ecea-learning-cert-title {
  margin-top: clamp(118px, 10vw, 146px) !important;
}

.ecea-learning-cert-issued-mark {
  display: block;
  width: clamp(44px, 4.5vw, 66px);
  height: auto;
  margin: clamp(8px, .9vw, 12px) 0 0 auto;
  object-fit: contain;
}

.ecea-learning-cert-signature {
  bottom: clamp(56px, 5.6vw, 82px) !important;
}

.ecea-learning-cert-sign-img {
  width: clamp(230px, 20vw, 326px) !important;
  height: clamp(84px, 8.2vw, 126px) !important;
  margin-bottom: -22px !important;
}

.ecea-learning-cert-qr {
  width: clamp(56px, 5.9vw, 76px) !important;
  height: clamp(56px, 5.9vw, 76px) !important;
}

.ecea-learning-cert-validation {
  gap: 10px !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    top: 78px !important;
  }
  .ecea-learning-cert-logo {
    width: 148px !important;
  }
  .ecea-learning-cert-title {
    margin-top: 128px !important;
  }
  .ecea-learning-cert-issued-mark {
    width: 52px;
  }
  .ecea-learning-cert-signature {
    bottom: 62px !important;
  }
  .ecea-learning-cert-sign-img {
    width: 250px !important;
    height: 100px !important;
  }
  .ecea-learning-cert-qr {
    width: 62px !important;
    height: 62px !important;
  }
}

/* E'CEA v2.10.20 Learning Hub certificate mark and brand text tuning */
.ecea-learning-cert-company {
  flex-direction: column !important;
  gap: 4px !important;
}

.ecea-learning-cert-brand-text {
  display: block;
  color: #000000;
  font-size: clamp(10px, 1vw, 13px);
  line-height: 1.15;
  font-weight: 750;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ecea-learning-cert-issued-mark {
  width: clamp(132px, 13.5vw, 198px) !important;
  margin-top: clamp(10px, 1vw, 14px) !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-brand-text {
    font-size: 12px;
  }
  .ecea-learning-cert-issued-mark {
    width: 156px !important;
  }
}


/* E'CEA v2.10.22 Learning Hub certificate brand text and issued mark final tuning */
.ecea-learning-cert-company {
  gap: 0 !important;
}

.ecea-learning-cert-brand-text {
  margin-top: -2px !important;
  color: #FF5757 !important;
  font-size: 15px !important;
  line-height: 1.05 !important;
}

.ecea-learning-cert-issued-mark {
  width: clamp(106px, 10.8vw, 158px) !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    gap: 0 !important;
  }
  .ecea-learning-cert-brand-text {
    margin-top: -2px !important;
    color: #FF5757 !important;
    font-size: 15px !important;
  }
  .ecea-learning-cert-issued-mark {
    width: 125px !important;
  }
}


/* E'CEA v2.10.23 Learning Hub certificate direct PDF download */
.ecea-learning-cert-actions .ecea-btn.is-loading {
  pointer-events: none;
  opacity: .78;
}

.ecea-learning-cert-actions .ecea-btn.is-loading::before {
  content: "";
  width: 15px;
  height: 15px;
  margin-right: 8px;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, .55);
  border-top-color: #ffffff;
  display: inline-block;
  vertical-align: -2px;
  animation: eceaCertDownloadSpin .75s linear infinite;
}

.ecea-learning-cert-paper.is-pdf-capture {
  box-shadow: none !important;
}

@keyframes eceaCertDownloadSpin {
  to { transform: rotate(360deg); }
}

/* E'CEA v2.10.24 Learning Hub certificate A4 layout parity and high quality PDF capture */
.ecea-learning-cert-company {
  top: clamp(54px, 5vw, 70px) !important;
}

.ecea-learning-cert-logo {
  width: clamp(118px, 11.4vw, 166px) !important;
}

.ecea-learning-cert-brand-text {
  margin-top: -3px !important;
  color: #FF5757 !important;
  font-size: 15px !important;
  line-height: 1 !important;
}

.ecea-learning-cert-title {
  margin-top: clamp(86px, 8.2vw, 112px) !important;
}

.ecea-learning-cert-kicker {
  margin-bottom: clamp(34px, 3.8vw, 50px) !important;
}

.ecea-learning-cert-subtitle {
  margin-top: 0 !important;
  margin-bottom: clamp(13px, 1.45vw, 19px) !important;
}

.ecea-learning-cert-copy {
  max-width: 820px !important;
  margin-top: clamp(8px, .9vw, 13px) !important;
}

.ecea-learning-cert-signature {
  bottom: clamp(22px, 2.5vw, 36px) !important;
}

.ecea-learning-cert-sign-img {
  width: clamp(220px, 19vw, 310px) !important;
  height: clamp(78px, 7.5vw, 116px) !important;
  margin-bottom: -20px !important;
}

.ecea-learning-cert-qr {
  width: clamp(52px, 5.4vw, 70px) !important;
  height: clamp(52px, 5.4vw, 70px) !important;
}

.ecea-learning-cert-paper.is-pdf-capture,
.ecea-learning-cert-paper.is-pdf-capture * {
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.ecea-learning-cert-paper.is-pdf-capture {
  border-radius: 0 !important;
  box-shadow: none !important;
  background-size: 100% 100% !important;
}

.ecea-learning-cert-frame.is-pdf-capture-frame {
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    top: 54px !important;
  }
  .ecea-learning-cert-logo {
    width: 132px !important;
  }
  .ecea-learning-cert-title {
    margin-top: 94px !important;
  }
  .ecea-learning-cert-kicker {
    margin-bottom: 38px !important;
  }
  .ecea-learning-cert-signature {
    bottom: 24px !important;
  }
  .ecea-learning-cert-sign-img {
    width: 236px !important;
    height: 88px !important;
  }
  .ecea-learning-cert-qr {
    width: 56px !important;
    height: 56px !important;
  }
}

/* E'CEA v2.10.25 Learning Hub certificate alignment, dotted line, and signature fix */
.ecea-learning-cert-company {
  left: 0 !important;
  right: 0 !important;
  top: clamp(54px, 5vw, 70px) !important;
  width: 100% !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: center !important;
  margin: 0 auto !important;
}

.ecea-learning-cert-company .ecea-learning-cert-logo,
.ecea-learning-cert-brand-text {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.ecea-learning-cert-line {
  display: block !important;
  width: min(100%, 580px) !important;
  height: 3px !important;
  min-height: 3px !important;
  margin: clamp(15px, 1.7vw, 23px) auto clamp(12px, 1.55vw, 20px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  line-height: 0 !important;
}

.ecea-learning-cert-line::before,
.ecea-learning-cert-line > span {
  content: "";
  display: block !important;
  width: 100% !important;
  height: 3px !important;
  min-height: 3px !important;
  border-radius: 999px !important;
  background: repeating-linear-gradient(90deg, #f5ab00 0 5px, rgba(245, 171, 0, 0) 5px 17px) !important;
}

.ecea-learning-cert-signature {
  bottom: clamp(66px, 6.4vw, 88px) !important;
}

.ecea-learning-cert-sign-img {
  display: block !important;
  width: clamp(224px, 19.5vw, 318px) !important;
  height: clamp(82px, 7.8vw, 120px) !important;
  margin: 0 auto 8px !important;
  object-fit: contain !important;
}

.ecea-learning-cert-sign-line {
  width: min(100%, 260px) !important;
  height: 0 !important;
  margin: 0 auto 10px !important;
  border: 0 !important;
  border-bottom: 2px solid #f5ab00 !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-company {
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  transform: none !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-line,
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-line > span {
  transform: translateZ(0);
}

@media (max-width: 768px) {
  .ecea-learning-cert-company {
    left: 0 !important;
    right: 0 !important;
    top: 54px !important;
    width: 100% !important;
    transform: none !important;
  }
  .ecea-learning-cert-line {
    height: 3px !important;
    min-height: 3px !important;
  }
  .ecea-learning-cert-line::before,
  .ecea-learning-cert-line > span {
    height: 3px !important;
    min-height: 3px !important;
  }
  .ecea-learning-cert-signature {
    bottom: 72px !important;
  }
  .ecea-learning-cert-sign-img {
    width: 244px !important;
    height: 92px !important;
    margin-bottom: 8px !important;
  }
}


/* E'CEA v2.10.26 Learning Hub certificate mobile responsive preview */
@media (max-width: 768px) {
  .ecea-learning-certificate-app .ecea-dashboard-main {
    overflow-x: hidden !important;
  }

  .ecea-learning-cert-shell {
    width: 100% !important;
    max-width: 100% !important;
    padding: 2px 0 30px !important;
    overflow-x: hidden !important;
  }

  .ecea-learning-cert-head {
    gap: 12px !important;
    margin-bottom: 18px !important;
  }

  .ecea-learning-cert-head h1 {
    font-size: clamp(22px, 6vw, 28px) !important;
    line-height: 1.15 !important;
    letter-spacing: -.035em !important;
  }

  .ecea-learning-cert-head p {
    font-size: 13.5px !important;
    line-height: 1.55 !important;
  }

  .ecea-learning-cert-actions {
    gap: 8px !important;
  }

  .ecea-learning-cert-actions .ecea-btn {
    flex: 1 1 140px !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
  }

  .ecea-learning-cert-scroll {
    width: 100% !important;
    max-width: 100% !important;
    height: var(--ecea-cert-mobile-height, 265px) !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 auto !important;
    border-radius: 24px !important;
    -webkit-overflow-scrolling: auto !important;
  }

  .ecea-learning-cert-frame {
    width: 1122px !important;
    min-width: 1122px !important;
    max-width: none !important;
    height: 793px !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 10px !important;
    transform: scale(var(--ecea-cert-mobile-scale, .33)) !important;
    transform-origin: top left !important;
    border-radius: 30px !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16) !important;
  }

  .ecea-learning-cert-paper {
    width: 100% !important;
    height: 100% !important;
    border-radius: 23px !important;
  }
}

@media (max-width: 430px) {
  .ecea-learning-cert-scroll {
    border-radius: 20px !important;
  }
}


/* E'CEA v2.10.39 Learning Hub certificate mobile PDF OF ACHIEVEMENT alignment */
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
  content: "OF ACHIEVEMENT" !important;
  display: block !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 13px auto 0 !important;
  padding: 0 !important;
  transform: none !important;
  color: #303d49 !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  letter-spacing: .38em !important;
  text-indent: .38em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title {
    width: 100% !important;
    text-align: center !important;
  }
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
    font-size: 20px !important;
    letter-spacing: .38em !important;
    text-indent: .38em !important;
    text-align: center !important;
  }
}

/* E'CEA v2.10.40 Learning Hub certificate PDF achievement exact center and spacing fix */
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-content {
  text-align: center !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title {
  display: inline-block !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 4px !important;
  padding: 0 !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
  content: "OF ACHIEVEMENT" !important;
  display: block !important;
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 7px auto 0 !important;
  padding: 0 !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  color: #303d49 !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 24px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  letter-spacing: .36em !important;
  text-indent: .36em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker {
  margin-top: 4px !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title {
    display: inline-block !important;
    width: auto !important;
    max-width: none !important;
    margin-bottom: 4px !important;
    text-align: center !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
    position: static !important;
    width: 100% !important;
    margin: 7px auto 0 !important;
    font-size: 24px !important;
    letter-spacing: .36em !important;
    text-indent: .36em !important;
    text-align: center !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker {
    margin-top: 4px !important;
  }
}

/* E'CEA v2.10.41 Learning Hub certificate PDF achievement offset and upper content group */
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
  position: relative !important;
  left: 28px !important;
  margin-top: 7px !important;
  margin-bottom: 0 !important;
  transform: none !important;
  text-align: center !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker,
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-subtitle,
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-name,
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-line,
.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-copy {
  transform: translateY(-24px) !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker {
  margin-top: -2px !important;
  margin-bottom: 30px !important;
}

.ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-subtitle {
  margin-top: 0 !important;
}

@media (max-width: 768px) {
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
    left: 28px !important;
    margin-top: 7px !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker,
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-subtitle,
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-name,
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-line,
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-copy {
    transform: translateY(-24px) !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker {
    margin-top: -2px !important;
    margin-bottom: 30px !important;
  }
}


/* E'CEA v2.10.42 Learning Hub certificate: hide OF ACHIEVEMENT on mobile PDF capture */
@media (max-width: 768px) {
  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    letter-spacing: 0 !important;
    text-indent: 0 !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-title {
    margin-bottom: 10px !important;
  }

  .ecea-learning-cert-paper.is-pdf-capture .ecea-learning-cert-kicker {
    margin-top: 0 !important;
  }
}

/* E'CEA v2.10.43 Admin Online Monitor realtime */
.ecea-online-monitor-page .ecea-online-stat-card {
  border-radius: 22px;
  overflow: hidden;
}

.ecea-online-monitor-page .ecea-online-stat-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  font-size: 24px;
  flex: 0 0 auto;
}

.ecea-online-table-wrap {
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
}

.ecea-online-table thead th {
  color: #475467;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}

.ecea-online-table tbody td {
  vertical-align: middle;
  color: #334155;
  font-size: 13px;
}

.ecea-online-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(99, 102, 241, .12), rgba(16, 185, 129, .13));
  color: #1e293b;
  font-weight: 950;
  flex: 0 0 auto;
}

.ecea-online-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 6px;
  border-radius: 999px;
  vertical-align: 1px;
}

.ecea-online-dot.is-online {
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22, 163, 74, .12);
}

.ecea-online-dot.is-offline {
  background: #94a3b8;
}

@media (max-width: 768px) {
  .ecea-online-monitor-page .card-body {
    padding: 16px;
  }
  .ecea-online-table-wrap {
    border-radius: 16px;
  }
}

/* E'CEA v2.10.50 Learning Hub active package expiry label */
.ecea-level-card-actions {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  flex-wrap: wrap;
}

.ecea-level-card-actions .ecea-continue-link {
  margin-top: 0;
}

.ecea-level-active-until {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  color: #EC4899;
  font-size: 12.5px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .01em;
  text-align: right;
  white-space: nowrap;
}

.ecea-program-action-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 8px;
  min-width: 170px;
}

.ecea-program-action-wrap .ecea-program-action {
  margin-left: auto;
}

@media (max-width: 768px) {
  .ecea-level-card-actions {
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: 8px;
  }
  .ecea-level-active-until {
    justify-content: flex-start;
    margin-left: 0;
    text-align: left;
    white-space: normal;
  }
  .ecea-program-action-wrap {
    align-items: flex-start;
    min-width: 0;
    width: 100%;
  }
  .ecea-program-action-wrap .ecea-program-action {
    margin-left: 0;
  }
}

/* E'CEA v2.10.51 Learning Hub floating WhatsApp support */
.ecea-lh-whatsapp-float {
  position: fixed;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  z-index: 1080;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff !important;
  background: linear-gradient(135deg, #25d366, #128c7e);
  box-shadow: 0 18px 38px rgba(18, 140, 126, .32), 0 8px 16px rgba(15, 23, 42, .16);
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.ecea-lh-whatsapp-float::before {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: inherit;
  background: rgba(37, 211, 102, .15);
  opacity: .95;
  z-index: -1;
}

.ecea-lh-whatsapp-float i {
  font-size: 30px;
  line-height: 1;
}

.ecea-lh-whatsapp-float:hover,
.ecea-lh-whatsapp-float:focus {
  color: #ffffff !important;
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 22px 44px rgba(18, 140, 126, .38), 0 10px 20px rgba(15, 23, 42, .18);
  filter: brightness(1.04);
}

.ecea-admin-wa-settings {
  background: linear-gradient(135deg, rgba(37, 211, 102, .06), rgba(236, 72, 153, .05));
  border-color: rgba(37, 211, 102, .16) !important;
}

@media (max-width: 768px) {
  .ecea-lh-whatsapp-float {
    width: 54px;
    height: 54px;
    right: 18px;
    bottom: 18px;
  }
  .ecea-lh-whatsapp-float i {
    font-size: 28px;
  }
}

@media print {
  .ecea-lh-whatsapp-float {
    display: none !important;
  }
}

/* E'CEA v2.10.52 Admin payment bell notification */
.ecea-admin-payment-bell {
  position: relative !important;
}

.ecea-admin-payment-bell-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 17px;
  height: 17px;
  padding: 0 5px;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ef4444;
  color: #ffffff;
  font-size: 10px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.02em;
  border: 2px solid #ffffff;
  box-shadow: 0 8px 18px rgba(239, 68, 68, .30);
  z-index: 30;
  pointer-events: none;
}

.ecea-admin-payment-bell.has-payment-notification::after {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: 999px;
  border: 1px solid rgba(239, 68, 68, .20);
  animation: eceaPaymentBellPulse 1.6s ease-out infinite;
  pointer-events: none;
}

@keyframes eceaPaymentBellPulse {
  0% {
    transform: scale(.86);
    opacity: .72;
  }
  100% {
    transform: scale(1.22);
    opacity: 0;
  }
}

/* E'CEA v2.10.55 Interactive Speaking Practice */
.ecea-interactive-speaking-card {
  margin-top: 24px;
  padding: clamp(18px, 3vw, 30px);
  border-radius: 30px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
  border: 1px solid rgba(148, 163, 184, .24);
  box-shadow: 0 26px 70px rgba(15, 23, 42, .12);
  color: #0f172a;
}

.ecea-interactive-speaking-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.ecea-interactive-speaking-head h2 {
  margin: 4px 0 8px;
  font-size: clamp(24px, 3.4vw, 42px);
  line-height: 1.06;
  font-weight: 900;
  letter-spacing: -.04em;
  color: #0f172a;
}

.ecea-interactive-speaking-head p {
  margin: 0;
  color: #475569;
  font-size: 15px;
  line-height: 1.7;
  max-width: 860px;
}

.ecea-speaking-step-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 10px 16px;
  background: rgba(236, 72, 153, .10);
  color: #be185d;
  font-weight: 900;
  font-size: 13px;
  white-space: nowrap;
}

.ecea-speaking-progress {
  height: 9px;
  border-radius: 999px;
  background: rgba(148, 163, 184, .20);
  overflow: hidden;
  margin-bottom: 20px;
}

.ecea-speaking-progress span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #ec4899, #8b5cf6, #14b8a6);
  transition: width .25s ease;
}

.ecea-speaking-dialogue {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .85fr);
  gap: 16px;
  margin-bottom: 18px;
}

.ecea-speaking-tutor-bubble,
.ecea-speaking-target-box,
.ecea-speaking-transcript-box {
  border-radius: 24px;
  padding: clamp(18px, 2.4vw, 26px);
  border: 1px solid rgba(148, 163, 184, .22);
}

.ecea-speaking-tutor-bubble {
  background: linear-gradient(135deg, #111827, #1e293b);
  color: #ffffff;
  box-shadow: 0 20px 45px rgba(15, 23, 42, .22);
}

.ecea-speaking-target-box,
.ecea-speaking-transcript-box {
  background: #ffffff;
  color: #0f172a;
}

.ecea-speaking-tutor-bubble span,
.ecea-speaking-target-box span,
.ecea-speaking-transcript-box span {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, .95);
}

.ecea-speaking-tutor-bubble strong,
.ecea-speaking-target-box strong,
.ecea-speaking-transcript-box strong {
  display: block;
  font-size: clamp(20px, 2.6vw, 34px);
  line-height: 1.2;
  letter-spacing: -.03em;
}

.ecea-speaking-answer-panel {
  border-radius: 26px;
  padding: clamp(16px, 2.4vw, 24px);
  background: rgba(248, 250, 252, .96);
  border: 1px solid rgba(148, 163, 184, .20);
}

.ecea-speaking-feedback {
  margin-top: 14px;
  border-radius: 18px;
  padding: 13px 15px;
  font-weight: 800;
  line-height: 1.5;
  border: 1px solid transparent;
}

.ecea-speaking-feedback.is-info {
  color: #1d4ed8;
  background: rgba(59, 130, 246, .10);
  border-color: rgba(59, 130, 246, .18);
}

.ecea-speaking-feedback.is-success {
  color: #047857;
  background: rgba(16, 185, 129, .12);
  border-color: rgba(16, 185, 129, .20);
}

.ecea-speaking-feedback.is-warning {
  color: #b45309;
  background: rgba(245, 158, 11, .13);
  border-color: rgba(245, 158, 11, .24);
}

.ecea-speaking-feedback.is-danger {
  color: #b91c1c;
  background: rgba(239, 68, 68, .12);
  border-color: rgba(239, 68, 68, .22);
}

.ecea-speaking-support-alert {
  margin-top: 12px;
  border-radius: 16px;
  padding: 12px 14px;
  color: #92400e;
  background: rgba(251, 191, 36, .16);
  border: 1px solid rgba(251, 191, 36, .28);
  font-size: 14px;
  line-height: 1.55;
}

.ecea-speaking-manual-input {
  min-height: 74px;
  border-radius: 18px !important;
  font-size: 15px !important;
}

.ecea-speaking-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.ecea-speaking-mic-btn.is-listening {
  animation: eceaSpeakingPulse 1.1s ease-in-out infinite;
}

@keyframes eceaSpeakingPulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
}

.ecea-speaking-completion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(16, 185, 129, .12), rgba(236, 72, 153, .10));
  border: 1px solid rgba(16, 185, 129, .20);
}

.ecea-speaking-completion span {
  display: block;
  color: #475569;
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.ecea-speaking-completion strong {
  color: #047857;
  font-size: 34px;
  font-weight: 950;
  line-height: 1;
}

.ecea-speaking-completion p {
  margin: 0;
  color: #0f172a;
  font-weight: 800;
  line-height: 1.55;
}

.ecea-speaking-submit-form {
  border-top: 1px solid rgba(148, 163, 184, .18);
  margin-top: 18px;
  padding-top: 4px;
}

@media (max-width: 768px) {
  .ecea-interactive-speaking-head,
  .ecea-speaking-completion {
    flex-direction: column;
    align-items: stretch;
  }
  .ecea-speaking-dialogue {
    grid-template-columns: 1fr;
  }
  .ecea-speaking-action-row .btn,
  .ecea-speaking-submit-form .btn {
    width: 100%;
  }
  .ecea-speaking-tutor-bubble strong,
  .ecea-speaking-target-box strong,
  .ecea-speaking-transcript-box strong {
    font-size: 21px;
  }
}

/* E'CEA v2.10.56 Interactive Speaking Practice only mode */
.ecea-worksheet-page.ecea-speaking-interactive-only-page {
  max-width: 1120px;
}

.ecea-speaking-interactive-only-shell {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.ecea-speaking-interactive-only-shell .ecea-interactive-speaking-card {
  margin-top: 0;
}

@media (max-width: 768px) {
  .ecea-worksheet-page.ecea-speaking-interactive-only-page {
    max-width: 100%;
  }
}


/* E'CEA v2.10.57 Interactive Speaking audio + Bootstrap-style refinement */
.ecea-interactive-speaking-card.card {
  margin-top: 0;
  border-radius: 28px;
  background: #f8fafc;
  color: #0f172a;
  overflow: hidden;
}

.ecea-interactive-speaking-card .card-body {
  color: #0f172a;
}

.ecea-interactive-speaking-card .badge.text-bg-light {
  color: #64748b !important;
  background: #ffffff !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}

.ecea-interactive-speaking-head {
  margin-bottom: 1.25rem;
}

.ecea-interactive-speaking-head h2 {
  color: #0f172a;
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 900;
}

.ecea-interactive-speaking-head p {
  color: #64748b !important;
  font-size: 15px;
  line-height: 1.7;
  max-width: 820px;
}

.ecea-speaking-step-pill.badge {
  background: rgba(236, 72, 153, .10) !important;
  color: #be185d !important;
  border: 1px solid rgba(236, 72, 153, .12);
  padding: .7rem 1rem;
  font-weight: 900;
}

.ecea-speaking-progress.progress {
  height: 8px;
  border-radius: 999px;
  background: #e5e7eb;
  overflow: hidden;
}

.ecea-speaking-progress .progress-bar,
.ecea-speaking-progress span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #22c55e, #06b6d4, #ec4899);
  transition: width .25s ease;
}

.ecea-speaking-tutor-bubble.card {
  border-radius: 24px;
  background: linear-gradient(135deg, #0f172a, #1e293b);
  color: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}

.ecea-speaking-target-box.card,
.ecea-speaking-answer-panel.card,
.ecea-speaking-completion.card {
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid rgba(148, 163, 184, .18) !important;
}

.ecea-speaking-label {
  display: block;
  margin-bottom: .45rem;
  color: #94a3b8;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ecea-speaking-tutor-bubble strong,
.ecea-speaking-target-box strong,
.ecea-speaking-transcript-box strong {
  display: block;
  color: inherit;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.2;
  letter-spacing: -.025em;
  font-weight: 900;
}

.ecea-speaking-target-box strong,
.ecea-speaking-transcript-box strong {
  color: #0f172a;
}

.ecea-speaking-audio-btn {
  color: #0f172a !important;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}

.ecea-speaking-transcript-box {
  border-radius: 20px;
  padding: 1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.ecea-speaking-feedback.alert {
  border-radius: 16px;
  padding: .9rem 1rem;
  font-weight: 800;
  line-height: 1.5;
  border-width: 1px;
}

.ecea-speaking-feedback.is-info {
  color: #1d4ed8;
  background: rgba(59, 130, 246, .10);
  border-color: rgba(59, 130, 246, .18);
}

.ecea-speaking-feedback.is-success {
  color: #047857;
  background: rgba(16, 185, 129, .12);
  border-color: rgba(16, 185, 129, .22);
}

.ecea-speaking-feedback.is-warning {
  color: #b45309;
  background: rgba(245, 158, 11, .13);
  border-color: rgba(245, 158, 11, .24);
}

.ecea-speaking-feedback.is-danger {
  color: #b91c1c;
  background: rgba(239, 68, 68, .12);
  border-color: rgba(239, 68, 68, .22);
}

.ecea-speaking-manual-input {
  min-height: 72px;
  border-radius: 16px !important;
  font-size: 15px !important;
}

.ecea-speaking-mic-btn.is-listening {
  animation: eceaSpeakingPulse 1.1s ease-in-out infinite;
}

.ecea-speaking-completion strong {
  color: #047857;
  font-size: 32px;
  font-weight: 950;
  line-height: 1;
}

.ecea-speaking-completion span {
  display: block;
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ecea-speaking-completion p {
  color: #0f172a;
  font-weight: 800;
  line-height: 1.55;
}

.ecea-admin-audio-box {
  border: 1px dashed rgba(99, 102, 241, .32);
  border-radius: 18px;
  background: rgba(248, 250, 252, .88);
  padding: 1rem;
}

.ecea-admin-audio-box audio {
  height: 38px;
}

@media (max-width: 768px) {
  .ecea-interactive-speaking-card.card {
    border-radius: 22px;
  }
  .ecea-speaking-action-row .btn,
  .ecea-speaking-submit-form .btn {
    width: 100%;
  }
  .ecea-speaking-tutor-bubble strong,
  .ecea-speaking-target-box strong,
  .ecea-speaking-transcript-box strong {
    font-size: 20px;
  }
}

/* E'CEA v2.10.58 Interactive Speaking Dialogue Task */
.ecea-dialog-speaking-card.card {
  position: relative;
  overflow: hidden;
  border-radius: 30px !important;
  background:
    radial-gradient(circle at top left, rgba(99, 102, 241, 0.13), transparent 34%),
    radial-gradient(circle at bottom right, rgba(236, 72, 153, 0.14), transparent 32%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 52%, #eef4ff 100%) !important;
  color: #0f172a !important;
  border: 1px solid rgba(148, 163, 184, 0.22) !important;
}

.ecea-dialog-speaking-card.card::before {
  content: '';
  position: absolute;
  inset: 18px 18px auto auto;
  width: 128px;
  height: 128px;
  border-radius: 999px;
  background: rgba(236, 72, 153, 0.08);
  pointer-events: none;
}

.ecea-dialog-speaking-card > .card-body {
  position: relative;
  z-index: 1;
}

.ecea-dialog-speaking-top h2 {
  font-size: clamp(1.85rem, 3.5vw, 3.75rem);
  letter-spacing: -0.055em;
  line-height: 0.94;
  color: #0f172a;
}

.ecea-dialog-speaking-top p {
  max-width: 760px;
  color: #64748b !important;
  font-size: clamp(0.96rem, 1.35vw, 1.08rem);
  line-height: 1.7;
}

.ecea-dialog-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.45rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.76rem;
  font-weight: 800;
  color: #818cf8;
}

.ecea-dialog-kicker span {
  width: 42px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff5757, #ec4899);
}

.ecea-dialog-progress-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
}

@media (min-width: 992px) {
  .ecea-dialog-progress-meta {
    align-items: flex-end;
  }
}

.ecea-dialog-progress-meta small {
  color: #64748b;
  font-weight: 800;
}

.ecea-dialog-speaking-card .ecea-speaking-step-pill.badge {
  background: #fce7f3 !important;
  color: #db2777 !important;
  border: 0 !important;
  padding: 0.82rem 1.2rem;
  font-size: 0.88rem;
}

.ecea-dialog-speaking-card .ecea-speaking-progress.progress {
  height: 10px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
}

.ecea-dialog-speaking-card .ecea-speaking-progress .progress-bar,
.ecea-dialog-speaking-card .ecea-speaking-progress span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, #22c55e, #06b6d4, #6366f1);
  border-radius: inherit;
  transition: width 0.35s ease;
}

.ecea-dialog-stage {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(203, 213, 225, 0.62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.ecea-dialog-row {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
}

.ecea-dialog-row.is-student {
  justify-content: flex-end;
}

.ecea-dialog-avatar {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: linear-gradient(135deg, #111827, #334155);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.18);
}

.ecea-dialog-avatar.is-student {
  background: linear-gradient(135deg, #ec4899, #8b5cf6);
}

.ecea-dialog-bubble-wrap {
  width: min(100%, 720px);
}

.ecea-dialog-row.is-student .ecea-dialog-bubble-wrap {
  width: min(100%, 560px);
}

.ecea-dialog-bubble {
  position: relative;
  padding: clamp(1.1rem, 2.1vw, 1.65rem);
  border-radius: 24px;
  border: 1px solid rgba(203, 213, 225, 0.55);
}

.ecea-dialog-bubble-tutor {
  background: #111827;
  color: #fff;
  border-bottom-left-radius: 8px;
  box-shadow: 0 18px 34px rgba(17, 24, 39, 0.18);
}

.ecea-dialog-bubble-answer {
  background: #ffffff;
  color: #0f172a;
  border-bottom-right-radius: 8px;
  box-shadow: 0 14px 30px rgba(148, 163, 184, 0.2);
}

.ecea-dialog-speaking-card .ecea-speaking-label {
  display: block;
  margin-bottom: 0.45rem;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ecea-dialog-speaking-card .ecea-dialog-bubble strong,
.ecea-dialog-speaking-card .ecea-speaking-transcript-box strong {
  display: block;
  font-size: clamp(1.45rem, 3vw, 2.55rem);
  line-height: 1.16;
  letter-spacing: -0.035em;
}

.ecea-dialog-answer-card {
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(203, 213, 225, 0.62);
}

.ecea-dialog-speaking-card .ecea-speaking-transcript-box {
  padding: clamp(1rem, 2vw, 1.45rem);
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(203, 213, 225, 0.7);
}

.ecea-dialog-speaking-card .ecea-speaking-feedback.alert {
  border: 0;
  border-radius: 18px;
  font-weight: 800;
}

.ecea-dialog-speaking-card .ecea-speaking-feedback.is-info {
  color: #1d4ed8;
  background: #dbeafe;
}

.ecea-dialog-speaking-card .ecea-speaking-feedback.is-success {
  color: #166534;
  background: #dcfce7;
}

.ecea-dialog-speaking-card .ecea-speaking-feedback.is-warning {
  color: #92400e;
  background: #fef3c7;
}

.ecea-dialog-speaking-card .ecea-speaking-feedback.is-danger {
  color: #991b1b;
  background: #fee2e2;
}

.ecea-speaking-manual-details {
  border: 1px dashed rgba(148, 163, 184, 0.6);
  border-radius: 16px;
  padding: 0.85rem 1rem;
  background: rgba(248, 250, 252, 0.8);
}

.ecea-speaking-manual-details summary {
  cursor: pointer;
  color: #475569;
  font-weight: 800;
}

.ecea-dialog-speaking-card .ecea-speaking-manual-input {
  border-radius: 14px;
  font-size: 1rem;
  border-color: #cbd5e1;
  background: #fff;
  color: #0f172a;
}

.ecea-dialog-speaking-card .ecea-speaking-audio-btn,
.ecea-dialog-speaking-card [data-speaking-replay] {
  font-weight: 800;
  border: 1px solid rgba(203, 213, 225, 0.68);
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening {
  animation: eceaSpeakingPulse 1s ease-in-out infinite;
  box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.45);
}

.ecea-dialog-speaking-card .ecea-speaking-completion.card {
  border-radius: 24px !important;
  background: linear-gradient(135deg, #ecfdf5, #eff6ff) !important;
  border: 1px solid rgba(34, 197, 94, 0.18) !important;
}

.ecea-dialog-speaking-card .ecea-speaking-completion span {
  color: #64748b;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.76rem;
}

.ecea-dialog-speaking-card .ecea-speaking-completion strong {
  display: block;
  font-size: clamp(2rem, 4vw, 3.3rem);
  color: #16a34a;
  line-height: 1;
}

.ecea-dialog-speaking-card .ecea-speaking-completion p {
  color: #0f172a;
  font-weight: 800;
}

.ecea-dialog-speaking-card .ecea-speaking-submit-form {
  border-color: rgba(203, 213, 225, 0.62) !important;
}

@media (max-width: 767.98px) {
  .ecea-dialog-speaking-card.card {
    border-radius: 22px !important;
  }

  .ecea-dialog-stage,
  .ecea-dialog-answer-card {
    border-radius: 20px;
  }

  .ecea-dialog-row {
    gap: 0.65rem;
  }

  .ecea-dialog-avatar {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    border-radius: 13px;
  }

  .ecea-dialog-bubble {
    border-radius: 18px;
  }

  .ecea-dialog-speaking-card .ecea-dialog-bubble strong,
  .ecea-dialog-speaking-card .ecea-speaking-transcript-box strong {
    font-size: clamp(1.25rem, 7vw, 1.9rem);
  }

  .ecea-dialog-speaking-card .ecea-speaking-action-row .btn,
  .ecea-dialog-speaking-card .ecea-speaking-submit-form .btn {
    width: 100%;
    justify-content: center;
  }
}

/* E'CEA v2.10.59 Interactive Speaking auto-dialog polish */
.ecea-dialog-speaking-card .ecea-dialog-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  filter: blur(3px);
  transition: opacity .22s ease, transform .22s ease, filter .22s ease;
}

.ecea-dialog-speaking-card .ecea-dialog-word.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

.ecea-dialog-avatar.is-tutor-icon,
.ecea-dialog-avatar.is-student-icon {
  position: relative;
  overflow: visible;
  font-size: 1.15rem;
}

.ecea-dialog-avatar.is-tutor-icon i,
.ecea-dialog-avatar.is-student-icon i {
  position: relative;
  z-index: 2;
  animation: eceaDialogIconFloat 1.9s ease-in-out infinite;
}

.ecea-dialog-avatar.is-student-icon i {
  animation-delay: .18s;
}

.ecea-dialog-avatar-ring {
  position: absolute;
  inset: -7px;
  border-radius: 20px;
  border: 2px solid rgba(99, 102, 241, .26);
  animation: eceaDialogAvatarRing 1.8s ease-out infinite;
}

.ecea-dialog-avatar.is-student .ecea-dialog-avatar-ring {
  border-color: rgba(236, 72, 153, .28);
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg {
  min-width: min(100%, 300px);
  min-height: 62px;
  justify-content: center;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 900;
  box-shadow: 0 18px 34px rgba(22, 163, 74, .24);
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg:disabled {
  box-shadow: none;
}

.ecea-dialog-speaking-card .ecea-speaking-target-box strong {
  color: #0f172a;
}

.ecea-dialog-speaking-card .ecea-speaking-feedback[hidden] {
  display: none !important;
}

@keyframes eceaDialogIconFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
}

@keyframes eceaDialogAvatarRing {
  0% { opacity: .72; transform: scale(.82); }
  80%, 100% { opacity: 0; transform: scale(1.28); }
}

@media (max-width: 767.98px) {
  .ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg {
    width: 100%;
    min-width: 0;
  }
}

/* E'CEA v2.10.60 Interactive Speaking dialog refinement */
.ecea-dialog-speaking-card .ecea-dialog-letter {
  display: inline-block;
  min-width: .02em;
  opacity: 0;
  transform: translateY(6px);
  filter: blur(2px);
  transition: opacity .13s ease, transform .13s ease, filter .13s ease;
}

.ecea-dialog-speaking-card .ecea-dialog-letter.is-space {
  min-width: .24em;
}

.ecea-dialog-speaking-card .ecea-dialog-letter.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.ecea-dialog-cartoon {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .93);
  box-shadow: inset 0 -3px 0 rgba(15, 23, 42, .08), 0 8px 18px rgba(15, 23, 42, .16);
  font-size: 1.35rem;
  line-height: 1;
  animation: eceaDialogCartoonFloat 1.8s ease-in-out infinite;
}

.ecea-dialog-avatar.is-student-icon .ecea-dialog-cartoon {
  animation-delay: .18s;
}

.ecea-dialog-avatar.is-tutor-icon,
.ecea-dialog-avatar.is-student-icon {
  background: linear-gradient(135deg, #dbeafe, #eef2ff);
}

.ecea-dialog-avatar.is-student-icon {
  background: linear-gradient(135deg, #fce7f3, #ede9fe);
}

.ecea-speaking-feedback-popup {
  position: fixed;
  inset: 0;
  z-index: 10030;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, .24);
  backdrop-filter: blur(4px);
}

.ecea-speaking-feedback-popup[hidden] {
  display: none !important;
}

.ecea-speaking-feedback-popup-card {
  width: min(430px, calc(100vw - 32px));
  padding: clamp(1.2rem, 3vw, 1.75rem);
  border-radius: 28px;
  background: #ffffff;
  color: #0f172a;
  text-align: center;
  border: 1px solid rgba(203, 213, 225, .72);
  box-shadow: 0 30px 80px rgba(15, 23, 42, .25);
  animation: eceaFeedbackPopupIn .22s ease-out both;
}

.ecea-speaking-feedback-popup-icon {
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: .85rem;
  border-radius: 22px;
  font-size: 2rem;
  font-weight: 950;
  background: #dcfce7;
  color: #16a34a;
  box-shadow: 0 18px 34px rgba(22, 163, 74, .18);
}

.ecea-speaking-feedback-popup.is-warning .ecea-speaking-feedback-popup-icon {
  background: #fef3c7;
  color: #d97706;
  box-shadow: 0 18px 34px rgba(217, 119, 6, .16);
}

.ecea-speaking-feedback-popup-card strong {
  display: block;
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.1;
  letter-spacing: -.035em;
  margin-bottom: .45rem;
}

.ecea-speaking-feedback-popup-card p {
  margin: 0;
  color: #334155;
  font-size: 1rem;
  line-height: 1.55;
  font-weight: 750;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg {
  min-width: min(100%, 360px);
  min-height: 78px;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  font-size: clamp(1.28rem, 2.55vw, 1.7rem);
  letter-spacing: -.02em;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg i {
  font-size: 1.55em;
  vertical-align: middle;
}

.ecea-speaking-mic-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ecea-speaking-waveform {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 42px;
  min-width: 178px;
}

.ecea-speaking-waveform span {
  display: inline-block;
  width: 8px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .18);
  transition: height .08s linear;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-mic-content {
  display: none;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform {
  display: inline-flex;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span {
  animation: eceaWaveDot 1.1s ease-in-out infinite;
}

.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(2) { animation-delay: .08s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(3) { animation-delay: .16s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(4) { animation-delay: .24s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(5) { animation-delay: .32s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(6) { animation-delay: .40s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(7) { animation-delay: .48s; }
.ecea-dialog-speaking-card .ecea-speaking-mic-btn.is-listening .ecea-speaking-waveform span:nth-child(8) { animation-delay: .56s; }

@keyframes eceaDialogCartoonFloat {
  0%, 100% { transform: translateY(0) rotate(-1deg) scale(1); }
  50% { transform: translateY(-4px) rotate(2deg) scale(1.04); }
}

@keyframes eceaFeedbackPopupIn {
  from { opacity: 0; transform: translateY(12px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes eceaWaveDot {
  0%, 100% { transform: translateY(0); opacity: .76; }
  50% { transform: translateY(-2px); opacity: 1; }
}

@media (max-width: 767.98px) {
  .ecea-dialog-speaking-card .ecea-speaking-mic-btn-lg {
    min-height: 72px;
    font-size: clamp(1.18rem, 6vw, 1.45rem);
  }
  .ecea-speaking-waveform {
    min-width: 148px;
  }
}

/* E'CEA v2.10.62 interactive speaking intro modal */
.ecea-interactive-speaking-card {
  position: relative;
  overflow: hidden;
}
.ecea-speaking-intro-modal {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.48);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.ecea-speaking-intro-modal[hidden] {
  display: none !important;
}
.ecea-speaking-intro-modal.is-closing {
  opacity: 0;
  transform: scale(1.01);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.ecea-speaking-intro-card {
  width: min(540px, 100%);
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: linear-gradient(145deg, #ffffff 0%, #fff7fb 100%);
  padding: clamp(24px, 4vw, 38px);
  text-align: center;
  color: #111827;
}
.ecea-speaking-intro-card h3 {
  margin: 14px 0 12px;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 900;
  color: #111827;
  letter-spacing: -0.03em;
}
.ecea-speaking-intro-card p {
  margin: 0 auto 24px;
  max-width: 460px;
  color: #111827;
  font-size: 15.5px;
  line-height: 1.7;
}
.ecea-speaking-intro-icon {
  width: 70px;
  height: 70px;
  margin: 0 auto;
  border-radius: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ec4899, #6366f1);
  color: #fff;
  font-size: 30px;
  box-shadow: 0 18px 40px rgba(236, 72, 153, 0.26);
  animation: eceaSpeakingIntroFloat 2.3s ease-in-out infinite;
}
.ecea-speaking-intro-start {
  min-width: 180px;
  font-weight: 800;
  background: linear-gradient(135deg, #ec4899, #6366f1) !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(99, 102, 241, 0.22);
}
@keyframes eceaSpeakingIntroFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@media (max-width: 575.98px) {
  .ecea-speaking-intro-modal {
    padding: 16px;
  }
  .ecea-speaking-intro-card {
    border-radius: 24px;
    padding: 24px 18px;
  }
  .ecea-speaking-intro-card p {
    font-size: 14.5px;
  }
}

/* E'CEA v2.10.63 interactive speaking intro copy color fix */
.ecea-speaking-intro-card p,
.ecea-speaking-intro-card .ecea-speaking-intro-copy {
  color: #000000 !important;
}

/* E'CEA v2.10.66 interactive speaking typography tuning */
.ecea-dialog-speaking-card .ecea-dialog-kicker,
.ecea-dialog-speaking-card .ecea-speaking-label,
.ecea-dialog-speaking-card .ecea-speaking-step-pill.badge {
  font-size: 12px !important;
  line-height: 1.25 !important;
  color: #334155 !important;
}

.ecea-dialog-speaking-card .ecea-dialog-kicker,
.ecea-dialog-speaking-card .ecea-speaking-label {
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
}

.ecea-dialog-speaking-card .ecea-dialog-progress-meta small {
  font-size: 12px !important;
  color: #334155 !important;
}

.ecea-dialog-speaking-card .ecea-speaking-step-pill.badge {
  font-weight: 900 !important;
  background: #fce7f3 !important;
  border: 1px solid rgba(236, 72, 153, 0.14) !important;
}

.ecea-dialog-speaking-card .ecea-dialog-bubble strong,
.ecea-dialog-speaking-card .ecea-speaking-transcript-box strong,
.ecea-dialog-speaking-card [data-speaking-prompt],
.ecea-dialog-speaking-card [data-speaking-transcript],
.ecea-dialog-speaking-card [data-speaking-target] {
  font-size: 18px !important;
  line-height: 1.42 !important;
  letter-spacing: -0.01em !important;
}

.ecea-dialog-speaking-card .ecea-dialog-letter {
  font-size: 18px !important;
  line-height: 1.42 !important;
}

@media (max-width: 575.98px) {
  .ecea-dialog-speaking-card .ecea-dialog-kicker,
  .ecea-dialog-speaking-card .ecea-speaking-label,
  .ecea-dialog-speaking-card .ecea-speaking-step-pill.badge,
  .ecea-dialog-speaking-card .ecea-dialog-progress-meta small {
    font-size: 12px !important;
  }
  .ecea-dialog-speaking-card .ecea-dialog-bubble strong,
  .ecea-dialog-speaking-card .ecea-speaking-transcript-box strong,
  .ecea-dialog-speaking-card [data-speaking-prompt],
  .ecea-dialog-speaking-card [data-speaking-transcript],
  .ecea-dialog-speaking-card [data-speaking-target],
  .ecea-dialog-speaking-card .ecea-dialog-letter {
    font-size: 18px !important;
  }
}

/* E'CEA v2.10.67 public review task interactive speaking page */
.ecea-review-task-public-body .ecea-navbar-wrap,
.ecea-review-task-public-body .ecea-footer,
.ecea-review-task-public-body footer {
  display: none !important;
}
.ecea-review-task-public-body .ecea-main {
  padding-top: 0 !important;
}
.ecea-review-task-public-section {
  min-height: 100vh;
  padding: clamp(28px, 5vw, 72px) 0;
  background:
    radial-gradient(circle at top left, rgba(236, 72, 153, 0.12), transparent 32%),
    radial-gradient(circle at bottom right, rgba(59, 130, 246, 0.12), transparent 34%),
    #070b16;
}
.ecea-review-task-public-head h1 {
  color: #ffffff;
  font-weight: 900;
  letter-spacing: -0.04em;
  margin-bottom: 8px;
}
.ecea-review-task-public-head p {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 700;
}
.ecea-review-task-public-section .ecea-dialog-speaking-card {
  max-width: 1080px;
}
.ecea-review-task-completion-modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(15, 23, 42, 0.62);
  backdrop-filter: blur(16px);
}
.ecea-review-task-completion-card {
  width: min(460px, 100%);
  border-radius: 28px;
  padding: 34px 28px;
  text-align: center;
  background: #ffffff;
  color: #0f172a;
}
.ecea-review-task-completion-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #22c55e, #14b8a6);
  color: #ffffff;
  font-size: 34px;
}
.ecea-review-task-completion-card h3 {
  margin-bottom: 10px;
  font-weight: 900;
  letter-spacing: -0.03em;
}
.ecea-review-task-completion-card p {
  color: #334155;
  font-weight: 600;
  line-height: 1.65;
}
.ecea-review-task-link-group .form-control {
  min-width: 280px;
  font-size: 12px;
}
@media (max-width: 575.98px) {
  .ecea-review-task-public-section {
    padding: 22px 0;
  }
  .ecea-review-task-public-head h1 {
    font-size: 28px;
  }
  .ecea-review-task-link-group .form-control {
    min-width: 180px;
  }
}


/* E'CEA v2.10.68 Review Task modal scrolling fix */
#reviewTaskModal .modal-dialog {
  margin-top: 1rem;
  margin-bottom: 1rem;
  height: calc(100dvh - 2rem);
  max-height: calc(100dvh - 2rem);
}
#reviewTaskModal .modal-content {
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#reviewTaskModal .modal-header,
#reviewTaskModal .modal-footer {
  flex: 0 0 auto;
  background: #fff;
  z-index: 2;
}
#reviewTaskModal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 1.25rem;
}
@media (max-width: 767.98px) {
  #reviewTaskModal .modal-dialog {
    width: calc(100% - 1rem);
    margin: .5rem auto;
    height: calc(100dvh - 1rem);
    max-height: calc(100dvh - 1rem);
  }
  #reviewTaskModal .modal-body {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}


/* E'CEA v2.10.69 Review Task modal forced scroll fix */
#reviewTaskModal .modal-dialog {
  width: min(1120px, calc(100vw - 2rem)) !important;
  max-width: min(1120px, calc(100vw - 2rem)) !important;
  height: calc(100vh - 2rem) !important;
  max-height: calc(100vh - 2rem) !important;
  margin: 1rem auto !important;
}
#reviewTaskModal .modal-content {
  height: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
  display: block !important;
}
#reviewTaskModal form {
  height: 100% !important;
  max-height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
#reviewTaskModal .modal-header,
#reviewTaskModal .modal-footer {
  flex: 0 0 auto !important;
  background: #fff !important;
  position: relative !important;
  z-index: 3 !important;
}
#reviewTaskModal .modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  padding-bottom: 1.5rem !important;
}
body.modal-open #reviewTaskModal {
  overflow: hidden !important;
}
@media (max-width: 767.98px) {
  #reviewTaskModal .modal-dialog {
    width: calc(100vw - 1rem) !important;
    max-width: calc(100vw - 1rem) !important;
    height: calc(100vh - 1rem) !important;
    max-height: calc(100vh - 1rem) !important;
    margin: .5rem auto !important;
  }
}


/* E'CEA v2.10.71 Review Task speaking target visibility + mic contrast */
.ecea-review-task-public-section .ecea-speaking-mic-btn,
.ecea-review-task-public-section .ecea-speaking-mic-btn i,
.ecea-review-task-public-section .ecea-speaking-mic-btn [data-speaking-mic-label] {
  color: #ffffff !important;
}
.ecea-review-task-public-section .ecea-speaking-mic-btn:disabled,
.ecea-review-task-public-section .ecea-speaking-mic-btn:disabled i,
.ecea-review-task-public-section .ecea-speaking-mic-btn:disabled [data-speaking-mic-label] {
  color: rgba(255, 255, 255, 0.92) !important;
}
.ecea-review-task-public-section [data-speaking-target-box][hidden] {
  display: none !important;
}

/* E'CEA v2.10.73 interactive speaking audio icon controls */
.ecea-speaking-text-audio-row,
.ecea-speaking-target-audio-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.ecea-speaking-target-audio-row {
  margin-top: 6px;
}

.ecea-speaking-text-audio-row strong,
.ecea-speaking-target-audio-row strong {
  flex: 1 1 auto;
  min-width: 0;
}

.ecea-speaking-inline-audio {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ec4899, #8b5cf6);
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(236, 72, 153, 0.22);
  transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}

.ecea-speaking-inline-audio:hover,
.ecea-speaking-inline-audio:focus {
  color: #ffffff;
  transform: translateY(-1px) scale(1.03);
  box-shadow: 0 14px 28px rgba(139, 92, 246, 0.28);
}

.ecea-speaking-inline-audio[hidden] {
  display: none !important;
}

.ecea-speaking-inline-audio i {
  width: 18px;
  height: 18px;
  stroke-width: 2.6;
}

.ecea-dialog-bubble-tutor.ecea-speaking-text-audio-row {
  justify-content: flex-start;
}

/* E'CEA v2.10.80 Rich video description button uses Bootstrap classes */
.ecea-video-rich-button.btn,
.ecea-mobile-rich-copy a.ecea-video-rich-button.btn,
.ecea-lesson-mobile-rich-desc a.ecea-video-rich-button.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 8px 6px 8px 0 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  white-space: normal !important;
}

.ecea-video-rich-button.btn-primary,
.ecea-video-rich-button.btn-secondary {
  color: #ffffff !important;
}

.ecea-video-rich-button.btn:hover,
.ecea-video-rich-button.btn:focus {
  text-decoration: none !important;
  transform: translateY(-1px);
}


/* E'CEA v2.10.81 Rich video description Bootstrap button + mobile lesson responsiveness */
.ecea-video-rich-button.btn,
.ecea-mobile-rich-copy a.ecea-video-rich-button.btn,
.ecea-lesson-mobile-rich-desc a.ecea-video-rich-button.btn,
.ecea-lesson-desktop-action-copy a.ecea-video-rich-button.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  max-width: 100% !important;
  min-height: 42px !important;
  padding: 10px 16px !important;
  margin: 10px 6px 10px 0 !important;
  border-radius: .75rem !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  text-align: center !important;
  vertical-align: middle !important;
  text-decoration: none !important;
}

.ecea-video-rich-button.btn-primary,
.ecea-video-rich-button.btn-secondary {
  color: #ffffff !important;
}

.ecea-video-rich-button.btn-outline-primary {
  color: var(--bs-primary, #0d6efd) !important;
}

.ecea-video-rich-button.btn-outline-primary:hover,
.ecea-video-rich-button.btn-outline-primary:focus {
  color: #ffffff !important;
}

@media (max-width: 991.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-main,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-content,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-layout-refine,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-description-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy {
    width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-size: 14px !important;
    line-height: 1.78 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy li,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy div,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy span {
    max-width: 100% !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy img,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy video,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy iframe {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    border-radius: 14px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy iframe {
    aspect-ratio: 16 / 9 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy figure {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy .ecea-mobile-rich-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, 0.02) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tbody,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table thead,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tfoot {
    display: table !important;
    width: max-content !important;
    min-width: 560px !important;
    max-width: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table th,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table td {
    min-width: 150px !important;
    max-width: 240px !important;
    padding: 10px 10px !important;
    vertical-align: top !important;
    border: 1px solid rgba(255, 255, 255, 0.10) !important;
    color: #eef2ff !important;
    font-size: 12px !important;
    line-height: 1.58 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table th {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.06) !important;
    font-weight: 800 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-video-rich-button.btn,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy a.ecea-video-rich-button.btn,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-rich-desc a.ecea-video-rich-button.btn {
    width: auto !important;
    max-width: 100% !important;
    min-height: 42px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 575.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy {
    font-size: 13px !important;
    line-height: 1.76 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tbody,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table thead,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tfoot {
    min-width: 520px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table th,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table td {
    min-width: 132px !important;
    font-size: 11.5px !important;
    line-height: 1.55 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-video-rich-button.btn,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy a.ecea-video-rich-button.btn {
    min-height: 40px !important;
    padding: 9px 14px !important;
    font-size: 13px !important;
  }
}


/* ===== E'CEA v2.10.82 Lesson video + description mobile proportional fix ===== */
@media (max-width: 991.98px) {
  html,
  body.ecea-dashboard-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-main {
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    padding-left: clamp(10px, 3.6vw, 16px) !important;
    padding-right: clamp(10px, 3.6vw, 16px) !important;
    padding-top: 14px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-content,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-content-grid,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-layout-refine {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: none !important;
    gap: 14px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-shell,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-description-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    padding: clamp(12px, 3.8vw, 16px) !important;
    border-radius: 16px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-shell,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel.is-fixed,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel.is-bottom,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 !important;
    z-index: auto !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-spacer {
    display: none !important;
    height: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-video-embed-wrap,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-video-embed-wrap,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ratio,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .embed-responsive {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: #050816 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-video-embed-wrap iframe,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-video-embed-wrap iframe,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ratio iframe,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .embed-responsive iframe,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus iframe[src*="youtube"],
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus iframe[src*="youtu.be"],
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus iframe[src*="vimeo"] {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel > iframe,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel > video {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    border-radius: 14px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy.ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overflow-x: hidden !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    color: #e5e9ff !important;
    font-size: 13px !important;
    line-height: 1.72 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy.ecea-lesson-mobile-rich-desc,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-rich-desc {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy ul,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy ol,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy figure,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy .ecea-mobile-rich-callout,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy p,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy ul,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy ol,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy figure {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 12px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy img,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy video,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy img,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy video {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    border-radius: 12px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy figure,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy figure,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-media {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    border-radius: 12px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    white-space: normal !important;
    border-radius: 12px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tbody,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table thead,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table tfoot,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table tbody,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table thead,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table tfoot {
    display: table !important;
    min-width: 520px !important;
    width: 520px !important;
    max-width: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table th,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy table td,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table th,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy table td {
    min-width: 130px !important;
    max-width: 220px !important;
    padding: 10px 9px !important;
    font-size: 11.5px !important;
    line-height: 1.52 !important;
    vertical-align: top !important;
    overflow-wrap: anywhere !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-actions-card,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 575.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-main {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-dashboard-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    padding: 12px !important;
    border-radius: 14px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-mobile-rich-copy,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-copy .ecea-mobile-rich-copy {
    font-size: 12.5px !important;
    line-height: 1.68 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-actions .ecea-continue-link {
    min-height: 42px !important;
    padding: 8px 9px !important;
    font-size: 10.5px !important;
    border-radius: 12px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }
}

/* ===== E'CEA v2.10.83 Mobile lesson sticky video + single description/action restore ===== */
@media (max-width: 991.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-desktop-action-panel {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-shell {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    z-index: 40 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 60 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel.is-fixed {
    position: fixed !important;
    top: calc(env(safe-area-inset-top, 0px) + 62px) !important;
    left: clamp(10px, 3.6vw, 16px) !important;
    right: clamp(10px, 3.6vw, 16px) !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 1650 !important;
    box-shadow: 0 22px 44px rgba(0, 0, 0, 0.36) !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel.is-bottom {
    position: absolute !important;
    top: auto !important;
    left: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 60 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-sticky-spacer {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
  }

  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-description-panel,
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-actions-card {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 575.98px) {
  body.ecea-dashboard-page .ecea-dashboard-app.ecea-dashboard-lesson-focus .ecea-lesson-mobile-video-panel.is-fixed {
    top: calc(env(safe-area-inset-top, 0px) + 58px) !important;
    left: 10px !important;
    right: 10px !important;
  }
}


/* E'CEA v2.10.89 optional tutor image for Interactive Speaking Practice */
.ecea-speaking-prompt-image {
  margin: 0.85rem 0 0;
  padding: 0.75rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(203, 213, 225, 0.72);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
}

.ecea-speaking-prompt-image[hidden] {
  display: none !important;
}

.ecea-speaking-prompt-image img {
  display: block;
  width: 100%;
  max-height: min(360px, 42vh);
  object-fit: contain;
  border-radius: 16px;
  background: #ffffff;
}

@media (max-width: 767.98px) {
  .ecea-speaking-prompt-image {
    border-radius: 18px;
    padding: 0.55rem;
  }
  .ecea-speaking-prompt-image img {
    max-height: 270px;
    border-radius: 14px;
  }
}

/* E'CEA v2.10.90 tutor prompt text color and line breaks */
.ecea-dialog-bubble-tutor,
.ecea-dialog-bubble-tutor [data-speaking-prompt],
.ecea-dialog-bubble-tutor .ecea-dialog-letter {
  color: #ffffff !important;
}

.ecea-dialog-bubble-tutor [data-speaking-prompt] {
  white-space: normal;
}

.ecea-dialog-bubble-tutor .ecea-dialog-line-break {
  display: block;
  content: "";
}

.ecea-dialog-bubble-tutor .ecea-dialog-line-break-placeholder {
  display: none !important;
}



/* E'CEA v2.11.15 optional Indonesian translation inside tutor prompt bubble */
.ecea-speaking-prompt-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.ecea-speaking-prompt-translation {
  display: block;
  margin-top: 0.65rem;
  color: #7dd3fc !important;
  font-size: clamp(0.88rem, 1.55vw, 1.12rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  white-space: pre-line;
}

.ecea-speaking-prompt-translation[hidden],
.ecea-speaking-prompt-translation.d-none {
  display: none !important;
}

@media (max-width: 767.98px) {
  .ecea-speaking-prompt-translation {
    margin-top: 0.5rem;
    font-size: 0.88rem;
  }
}
