:root {
--primary-color: #ff6b2c;
--primary-dark: #e95518;
--secondary-color: #4f46e5;
--dark-color: #111827;
--text-color: #374151;
--muted-color: #6b7280;
--light-bg: #f8fafc;
--soft-orange: #fff3ed;
--soft-blue: #eef2ff;
--border-color: #e5e7eb;
--white-color: #ffffff;
}

* {
  box-sizing: border-box;
  }

body {
font-family: Arial, Helvetica, sans-serif;
background-color: #ffffff;
color: var(--text-color);
line-height: 1.6;
}

a {
text-decoration: none;
}

.top-bar {
background-color: var(--dark-color);
color: rgba(255, 255, 255, 0.85);
font-size: 14px;
padding: 8px 0;
}

.top-bar a {
color: rgba(255, 255, 255, 0.85);
}

.top-bar a:hover {
color: #ffffff;
}

.navbar {
box-shadow: 0 8px 25px rgba(15, 23, 42, 0.06);
}

.navbar-brand {
font-weight: 800;
letter-spacing: 0.2px;
color: var(--dark-color) !important;
}

.brand-mark {
width: 38px;
height: 38px;
border-radius: 12px;
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
color: #ffffff;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 800;
margin-right: 8px;
}

.navbar .nav-link {
font-weight: 600;
color: #374151;
padding-left: 14px !important;
padding-right: 14px !important;
}

.navbar .nav-link:hover {
color: var(--primary-color);
}

.btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
}

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

.btn-outline-primary {
color: var(--primary-color);
border-color: var(--primary-color);
}

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

.btn-soft {
background-color: var(--soft-orange);
color: var(--primary-color);
font-weight: 700;
}

.btn-soft:hover {
background-color: var(--primary-color);
color: #ffffff;
}

.hero-elearning {
background:
radial-gradient(circle at top left, rgba(255, 107, 44, 0.18), transparent 32%),
radial-gradient(circle at bottom right, rgba(79, 70, 229, 0.16), transparent 35%),
linear-gradient(180deg, #ffffff 0%, #fff7f2 100%);
padding: 80px 0 60px;
overflow: hidden;
}

.hero-badge {
display: inline-flex;
gap: 8px;
align-items: center;
background-color: #ffffff;
border: 1px solid #fed7c4;
color: var(--primary-color);
padding: 8px 14px;
border-radius: 999px;
font-weight: 700;
font-size: 14px;
box-shadow: 0 10px 25px rgba(255, 107, 44, 0.08);
}

.hero-elearning h1 {
font-size: clamp(2.3rem, 5vw, 4.5rem);
font-weight: 900;
line-height: 1.08;
color: var(--dark-color);
margin-top: 22px;
}

.hero-elearning h1 span {
color: var(--primary-color);
}

.hero-elearning p {
font-size: 1.08rem;
color: var(--muted-color);
max-width: 630px;
}

.search-box {
background-color: #ffffff;
border-radius: 18px;
padding: 10px;
box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
border: 1px solid var(--border-color);
}

.search-box .form-control,
.search-box .form-select {
border: 0;
box-shadow: none;
min-height: 48px;
}

.hero-card {
background-color: #ffffff;
border-radius: 30px;
padding: 22px;
box-shadow: 0 30px 80px rgba(15, 23, 42, 0.14);
border: 1px solid rgba(229, 231, 235, 0.8);
position: relative;
}

.hero-course-preview {
border-radius: 24px;
padding: 24px;
background: linear-gradient(135deg, #4f46e5, #7c3aed);
color: #ffffff;
min-height: 250px;
}

.hero-course-preview .play-circle {
width: 72px;
height: 72px;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.22);
display: flex;
align-items: center;
justify-content: center;
font-size: 26px;
margin-bottom: 30px;
}

.floating-stat {
background-color: #ffffff;
border-radius: 18px;
padding: 16px;
box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
border: 1px solid var(--border-color);
}

.section-padding {
padding: 75px 0;
}

.section-header {
margin-bottom: 42px;
}

.section-kicker {
color: var(--primary-color);
font-weight: 800;
text-transform: uppercase;
font-size: 13px;
letter-spacing: 1px;
}

.section-title {
color: var(--dark-color);
font-weight: 900;
margin-top: 8px;
margin-bottom: 12px;
}

.section-subtitle {
color: var(--muted-color);
max-width: 720px;
margin: 0 auto;
}

.category-card {
background-color: #ffffff;
border-radius: 22px;
border: 1px solid var(--border-color);
padding: 24px;
height: 100%;
transition: 0.25s ease;
}

.category-card:hover {
transform: translateY(-6px);
box-shadow: 0 20px 45px rgba(15, 23, 42, 0.09);
border-color: rgba(255, 107, 44, 0.35);
}

.category-icon {
width: 56px;
height: 56px;
border-radius: 18px;
background-color: var(--soft-orange);
color: var(--primary-color);
display: flex;
align-items: center;
justify-content: center;
font-size: 26px;
margin-bottom: 16px;
}

.course-card {
background-color: #ffffff;
border-radius: 24px;
border: 1px solid var(--border-color);
overflow: hidden;
height: 100%;
transition: 0.25s ease;
}

.course-card:hover {
transform: translateY(-6px);
box-shadow: 0 25px 55px rgba(15, 23, 42, 0.11);
}

.course-thumb {
height: 190px;
padding: 18px;
color: #ffffff;
display: flex;
align-items: flex-end;
position: relative;
}

.course-thumb.web {
background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.course-thumb.marketing {
background: linear-gradient(135deg, #f97316, #ef4444);
}

.course-thumb.design {
background: linear-gradient(135deg, #06b6d4, #3b82f6);
}

.course-thumb.business {
background: linear-gradient(135deg, #111827, #475569);
}

.course-badge {
position: absolute;
top: 16px;
left: 16px;
background-color: rgba(255, 255, 255, 0.9);
color: var(--dark-color);
border-radius: 999px;
padding: 6px 12px;
font-size: 12px;
font-weight: 800;
}

.course-price {
position: absolute;
top: 16px;
right: 16px;
background-color: var(--primary-color);
color: #ffffff;
border-radius: 999px;
padding: 6px 12px;
font-size: 13px;
font-weight: 800;
}

.course-card .card-body {
padding: 22px;
}

.rating {
color: #f59e0b;
font-size: 14px;
}

.instructor-avatar {
width: 38px;
height: 38px;
border-radius: 50%;
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
color: #ffffff;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 800;
margin-right: 8px;
}

.stats-strip {
background-color: var(--dark-color);
color: #ffffff;
border-radius: 30px;
padding: 34px;
margin-top: -35px;
position: relative;
z-index: 2;
box-shadow: 0 25px 60px rgba(15, 23, 42, 0.18);
}

.stats-strip h3 {
font-weight: 900;
margin-bottom: 4px;
}

.learning-path-card {
background-color: #ffffff;
border-radius: 26px;
border: 1px solid var(--border-color);
padding: 28px;
height: 100%;
}

.path-number {
width: 42px;
height: 42px;
border-radius: 14px;
background-color: var(--soft-blue);
color: var(--secondary-color);
display: flex;
align-items: center;
justify-content: center;
font-weight: 900;
margin-bottom: 18px;
}

.cta-section {
background:
radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 28%),
linear-gradient(135deg, var(--primary-color), var(--secondary-color));
color: #ffffff;
border-radius: 32px;
padding: 55px 30px;
}

.footer {
background-color: #0f172a;
color: rgba(255, 255, 255, 0.78);
padding: 45px 0;
}

.footer a {
color: rgba(255, 255, 255, 0.78);
}

.footer a:hover {
color: #ffffff;
}

.auth-card {
max-width: 480px;
margin: 55px auto;
border: 1px solid var(--border-color);
border-radius: 26px;
padding: 34px;
background: #ffffff;
box-shadow: 0 25px 70px rgba(15, 23, 42, 0.12);
}

.dashboard-wrapper {
min-height: 100vh;
background-color: #f3f4f6;
}

.sidebar {
width: 270px;
min-height: 100vh;
background-color: #111827;
color: #ffffff;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
}

.sidebar .sidebar-brand {
padding: 22px;
font-size: 20px;
font-weight: 900;
border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.sidebar .nav-link {
color: rgba(255, 255, 255, 0.78);
padding: 12px 22px;
font-size: 15px;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
color: #ffffff;
background-color: rgba(255, 107, 44, 0.22);
}

.dashboard-main {
margin-left: 270px;
min-height: 100vh;
}

.dashboard-topbar {
background-color: #ffffff;
border-bottom: 1px solid var(--border-color);
padding: 15px 25px;
}

.dashboard-content {
padding: 25px;
}

.stat-card,
.table-card {
border: 0;
border-radius: 22px;
box-shadow: 0 14px 35px rgba(15, 23, 42, 0.07);
}

@media (max-width: 991px) {
.top-bar {
display: none;
}

.hero-elearning {
    padding: 55px 0;
}

.search-box .row > div {
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.search-box .row > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

.stats-strip {
    margin-top: 20px;
}

.sidebar {
    position: relative;
    width: 100%;
    min-height: auto;
}

.dashboard-main {
    margin-left: 0;
}

}
/* LCERI Logo and Auth Page Updates */

.lceri-logo-img {
width: 54px;
height: 54px;
object-fit: contain;
background: transparent;
}

.lceri-logo-sm {
width: 42px;
height: 42px;
object-fit: contain;
background: transparent;
}

.lceri-logo-lg {
width: 110px;
height: 110px;
object-fit: contain;
background: transparent;
}

.auth-page {
min-height: calc(100vh - 120px);
background:
radial-gradient(circle at top left, rgba(255, 107, 44, 0.14), transparent 35%),
radial-gradient(circle at bottom right, rgba(79, 70, 229, 0.14), transparent 35%),
linear-gradient(180deg, #ffffff 0%, #fff7f2 100%);
padding: 55px 0;
}

.auth-brand-panel {
background: linear-gradient(135deg, #0f172a, #334155);
color: #ffffff;
border-radius: 28px;
padding: 34px;
height: 100%;
position: relative;
overflow: hidden;
}

.auth-brand-panel::after {
content: "";
position: absolute;
width: 260px;
height: 260px;
border-radius: 50%;
background: rgba(255, 107, 44, 0.22);
right: -80px;
bottom: -90px;
}

.auth-logo-box {
width: 130px;
height: 130px;
border-radius: 26px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
padding: 12px;
margin-bottom: 22px;
box-shadow: 0 18px 45px rgba(0, 0, 0, 0.16);
}

.auth-logo-box img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}

.auth-info-list {
list-style: none;
padding: 0;
margin: 24px 0 0;
}

.auth-info-list li {
margin-bottom: 12px;
color: rgba(255, 255, 255, 0.86);
}

.auth-info-list i {
color: #ff6b2c;
margin-right: 8px;
}

.auth-card {
max-width: 100%;
margin: 0;
border: 1px solid var(--border-color);
border-radius: 28px;
padding: 34px;
background: #ffffff;
box-shadow: 0 25px 70px rgba(15, 23, 42, 0.12);
}

.registration-choice-card {
border: 1px solid var(--border-color);
border-radius: 24px;
padding: 28px;
height: 100%;
background: #ffffff;
transition: 0.25s ease;
}

.registration-choice-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 45px rgba(15, 23, 42, 0.10);
border-color: rgba(255, 107, 44, 0.45);
}

.registration-choice-icon {
width: 62px;
height: 62px;
border-radius: 18px;
background: var(--soft-orange);
color: var(--primary-color);
display: flex;
align-items: center;
justify-content: center;
font-size: 30px;
margin-bottom: 18px;
}

.captcha-box {
display: flex;
align-items: center;
gap: 12px;
}

.captcha-box img {
border: 1px solid var(--border-color);
border-radius: 14px;
height: 50px;
background: #f8fafc;
}

.captcha-refresh {
width: 44px;
height: 44px;
border-radius: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
}

.auth-small-text {
font-size: 14px;
color: var(--muted-color);
}

@media (max-width: 991px) {
.auth-brand-panel {
margin-bottom: 24px;
}
}

/* Improved Dashboard Sidebar and CRUD UI */

.sidebar {
background: linear-gradient(180deg, #0f172a 0%, #111827 60%, #0b1120 100%);
box-shadow: 10px 0 35px rgba(15, 23, 42, 0.18);
}

.sidebar .sidebar-brand {
padding: 20px 18px;
min-height: 92px;
background:
radial-gradient(circle at top right, rgba(255, 107, 44, 0.20), transparent 32%),
rgba(255, 255, 255, 0.03);
}

.sidebar-brand-card {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
}

.sidebar-logo-wrap {
width: 56px;
height: 56px;
border-radius: 18px;
background: #ffffff;
padding: 6px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 12px 25px rgba(0, 0, 0, 0.18);
flex-shrink: 0;
}

.sidebar-logo-wrap img {
width: 100%;
height: 100%;
object-fit: contain;
}

.sidebar-brand-text strong {
display: block;
color: #ffffff;
font-size: 18px;
line-height: 1.1;
letter-spacing: 0.2px;
}

.sidebar-brand-text span {
display: block;
color: rgba(255, 255, 255, 0.62);
font-size: 11px;
margin-top: 4px;
line-height: 1.2;
}

.sidebar .nav {
padding: 10px 12px;
}

.sidebar .nav-link {
border-radius: 14px;
margin-bottom: 6px;
padding: 12px 14px;
display: flex;
align-items: center;
gap: 10px;
color: rgba(255, 255, 255, 0.78);
transition: 0.22s ease;
}

.sidebar .nav-link i {
width: 22px;
text-align: center;
font-size: 16px;
}

.sidebar .nav-link:hover {
color: #ffffff;
background: rgba(255, 255, 255, 0.08);
transform: translateX(3px);
}

.sidebar .nav-link.active {
color: #ffffff;
background: linear-gradient(135deg, #ff6b2c, #f97316);
box-shadow: 0 12px 25px rgba(255, 107, 44, 0.28);
}

.sidebar .nav-link.text-warning {
color: #facc15 !important;
}

.dashboard-main {
background:
radial-gradient(circle at top left, rgba(255, 107, 44, 0.08), transparent 28%),
linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.dashboard-topbar {
background: rgba(255, 255, 255, 0.90);
backdrop-filter: blur(14px);
position: sticky;
top: 0;
z-index: 10;
}

.module-hero-card {
border: 0;
border-radius: 28px;
color: #ffffff;
background:
radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 28%),
linear-gradient(135deg, #0f172a, #334155);
box-shadow: 0 22px 55px rgba(15, 23, 42, 0.16);
overflow: hidden;
}

.module-hero-card .badge {
background: rgba(255, 255, 255, 0.16);
color: #ffffff;
border: 1px solid rgba(255, 255, 255, 0.18);
}

.module-stat-card {
border: 0;
border-radius: 24px;
background: #ffffff;
box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
transition: 0.22s ease;
}

.module-stat-card:hover {
transform: translateY(-4px);
}

.module-stat-icon {
width: 52px;
height: 52px;
border-radius: 16px;
background: #fff3ed;
color: #ff6b2c;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
}

.program-table-card {
border: 0;
border-radius: 28px;
box-shadow: 0 22px 55px rgba(15, 23, 42, 0.08);
overflow: hidden;
}

.program-toolbar {
background: #ffffff;
border-bottom: 1px solid #eef2f7;
padding: 22px;
}

.program-table {
margin-bottom: 0;
}

.program-table thead th {
background: #f8fafc;
color: #111827;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 0.4px;
padding: 16px;
border-bottom: 1px solid #e5e7eb;
}

.program-table tbody td {
padding: 18px 16px;
vertical-align: middle;
}

.program-code-pill {
display: inline-flex;
align-items: center;
background: #eef2ff;
color: #4f46e5;
border-radius: 999px;
font-weight: 800;
padding: 7px 12px;
font-size: 13px;
}

.program-title-text {
font-weight: 800;
color: #111827;
}

.program-sub-text {
display: block;
color: #6b7280;
font-size: 13px;
margin-top: 3px;
}

.status-pill {
display: inline-flex;
align-items: center;
gap: 6px;
border-radius: 999px;
padding: 7px 12px;
font-size: 12px;
font-weight: 800;
}

.status-published {
background: #dcfce7;
color: #15803d;
}

.status-unpublished {
background: #fef3c7;
color: #b45309;
}

.status-draft {
background: #e5e7eb;
color: #374151;
}

.action-btn {
width: 36px;
height: 36px;
border-radius: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: 0.22s ease;
margin: 2px;
}

.action-btn:hover {
transform: translateY(-2px);
}

.action-view {
background: #eff6ff;
color: #2563eb;
border: 1px solid #bfdbfe;
}

.action-edit {
background: #f8fafc;
color: #475569;
border: 1px solid #cbd5e1;
}

.action-status {
background: #fff7ed;
color: #f97316;
border: 1px solid #fed7aa;
}

.action-delete {
background: #fef2f2;
color: #dc2626;
border: 1px solid #fecaca;
}

.empty-state {
padding: 55px 20px;
text-align: center;
}

.empty-state-icon {
width: 76px;
height: 76px;
border-radius: 24px;
background: #fff3ed;
color: #ff6b2c;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 34px;
margin-bottom: 18px;
}

@media (max-width: 991px) {
.sidebar-brand-card {
justify-content: center;
}

.dashboard-topbar {
    position: relative;
}

}

/* Sidebar visibility fix: keep Logout and User Management easy to access */
.sidebar {
    height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 24px;
}

.sidebar::-webkit-scrollbar {
    width: 7px;
}

.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18);
    border-radius: 999px;
}

.sidebar-section-title {
    padding: 8px 14px 6px;
    color: rgba(255, 255, 255, 0.46);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.sidebar .nav-link.text-warning:hover {
    color: #ffffff !important;
    background: rgba(250, 204, 21, 0.16);
}

/* Phase 14: Final QA, Deployment and UI Polish */
.qa-release-badge {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    min-width: 230px;
    border-radius: 26px;
    padding: 20px 24px;
    color: #ffffff;
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.24);
}

.qa-release-badge span {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
}

.qa-release-badge small {
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.35;
}

.qa-stat-card .module-stat-icon {
    background: #eef2ff;
    color: #4f46e5;
}

.qa-check-card table td,
.qa-check-card table th {
    vertical-align: top;
}

.qa-final-card {
    border: 1px solid rgba(255, 107, 44, 0.18);
    background: linear-gradient(135deg, #ffffff, #fff7ed);
}

.table-responsive {
    border-radius: inherit;
}

.form-control,
.form-select,
.btn {
    min-height: 42px;
}

.card {
    border-color: rgba(226, 232, 240, 0.9);
}

.badge {
    font-weight: 800;
}

@media print {
    .sidebar,
    .dashboard-topbar .btn,
    .btn,
    .no-print {
        display: none !important;
    }

    .dashboard-main {
        margin-left: 0 !important;
    }

    .dashboard-topbar {
        position: static !important;
        box-shadow: none !important;
    }

    .dashboard-content {
        padding: 0 !important;
    }

    .module-hero-card,
    .program-table-card,
    .module-stat-card {
        box-shadow: none !important;
        break-inside: avoid;
    }

    body {
        background: #ffffff !important;
    }
}

@media (max-width: 575px) {
    .dashboard-content {
        padding: 16px;
    }

    .dashboard-topbar {
        padding: 14px 16px;
    }

    .program-table thead th,
    .program-table tbody td {
        padding: 12px;
        font-size: 13px;
    }

    .qa-release-badge {
        width: 100%;
        min-width: 0;
        text-align: left;
    }
}

/* Phase 15 quick LMS updates: user identity card before logout */
.sidebar-user-item {
    padding: 0 12px;
    margin: 8px 0 10px;
}

.sidebar-user-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 16px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
}

.sidebar-user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    background: #ffffff;
    border: 2px solid rgba(255,255,255,0.45);
}

.sidebar-user-info {
    min-width: 0;
    line-height: 1.2;
}

.sidebar-user-info strong,
.sidebar-user-info span {
    display: block;
    max-width: 145px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-user-info strong {
    color: #ffffff;
    font-size: 0.92rem;
}

.sidebar-user-info span {
    color: rgba(255,255,255,0.72);
    font-size: 0.78rem;
    margin-top: 2px;
}

.dashboard-user-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
}

.dashboard-user-card-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 12px 6px 6px;
    border-radius: 999px;
    text-decoration: none;
    color: #111827;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.dashboard-user-card-link:hover {
    color: #0d6efd;
    border-color: rgba(13, 110, 253, 0.25);
}

.dashboard-user-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.dashboard-user-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    text-align: left;
}

.dashboard-user-text strong {
    font-size: 0.9rem;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-user-text small {
    color: #6b7280;
    font-size: 0.74rem;
    margin-top: 3px;
}

@media (max-width: 575.98px) {
    .dashboard-user-actions {
        justify-content: flex-start;
        width: 100%;
    }
}

/* Phase 15: sidebar clean-up and PDF report polish */
.sidebar-user-item {
    display: none !important;
}

.dashboard-topbar .dashboard-user-actions {
    margin-left: auto;
}

.dashboard-user-card-link {
    border-color: rgba(255, 107, 44, 0.18);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07);
}

.dashboard-user-card-link:hover {
    color: #ff6b2c;
    border-color: rgba(255, 107, 44, 0.35);
    background: #fff7f2;
}

.report-heading-card,
.report-module-card,
.report-stat-card {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.07);
}

.report-actions .btn {
    white-space: nowrap;
}

.report-hero-card {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,0.24), transparent 28%),
        linear-gradient(135deg, #ef4444 0%, #ff6b2c 48%, #7c3aed 100%);
}

.report-pdf-icon {
    width: 118px;
    height: 118px;
    border-radius: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #ffffff;
    font-size: 60px;
}

.report-module-card {
    transition: .2s ease;
}

.report-module-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(15, 23, 42, 0.11);
}

@media print {
    .sidebar,
    .dashboard-topbar,
    .report-actions,
    .program-toolbar,
    .btn {
        display: none !important;
    }

    .dashboard-main {
        margin-left: 0 !important;
    }

    .dashboard-content {
        padding: 0 !important;
    }

    .card {
        box-shadow: none !important;
        border: 1px solid #ddd !important;
    }
}

/* ======================================================================
   LCERI public homepage, equal-size colorful cards
   ====================================================================== */

.lceri-home-carousel .carousel-item {
    min-height: 590px;
    background-image: var(--desktop-slide-image);
    background-position: center;
    background-size: cover;
    position: relative;
}

.lceri-home-carousel .carousel-item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.94) 0%, rgba(15, 23, 42, 0.78) 48%, rgba(15, 23, 42, 0.34) 100%);
}

.lceri-home-carousel .carousel-content {
    position: relative;
    z-index: 2;
    min-height: 590px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #ffffff;
    padding-top: 70px;
    padding-bottom: 90px;
}

.lceri-home-carousel .carousel-content.align-center {
    text-align: center;
    align-items: center;
}

.lceri-home-carousel .carousel-content.align-right {
    text-align: right;
    align-items: flex-end;
}

.lceri-home-carousel h1 {
    max-width: 820px;
    font-size: clamp(2.35rem, 5.5vw, 4.8rem);
    font-weight: 900;
    line-height: 1.06;
}

.lceri-home-carousel p {
    max-width: 720px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.1rem;
}

.lceri-home-search {
    position: relative;
    z-index: 4;
    margin-top: -54px;
}

.lceri-home-search .search-box {
    padding: 15px;
}

.lceri-category-link {
    color: inherit;
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.lceri-course-image,
.lceri-program-image {
    height: 220px;
    min-height: 220px;
    background-position: center;
    background-size: cover;
    position: relative;
    display: flex;
    align-items: flex-end;
    padding: 20px;
    overflow: hidden;
}

.lceri-course-image::before,
.lceri-program-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.90));
}

.lceri-course-image > *,
.lceri-program-image > * {
    position: relative;
    z-index: 2;
}

.lceri-price-old {
    text-decoration: line-through;
    opacity: 0.72;
    font-size: 0.82rem;
    margin-right: 5px;
}

.lceri-card-description {
    line-height: 1.65;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lceri-instructor-photo {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 50%;
    border: 5px solid #ffffff;
}

.lceri-empty-state {
    border: 1px dashed #cbd5e1;
    border-radius: 24px;
    padding: 38px;
    text-align: center;
    background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.07);
}

/* Equal-height Bootstrap columns */
.lceri-equal-grid {
    align-items: stretch;
}

.lceri-equal-grid > [class*="col-"] {
    display: flex;
    align-items: stretch;
}

.lceri-category-card,
.lceri-program-card,
.lceri-course-card,
.lceri-step-card,
.lceri-instructor-card {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 26px;
    background: #ffffff;
    box-shadow:
        0 18px 45px rgba(15, 23, 42, 0.10),
        0 3px 10px rgba(15, 23, 42, 0.05);
    transition:
        transform 220ms ease,
        box-shadow 220ms ease,
        border-color 220ms ease;
}

.lceri-category-card:hover,
.lceri-program-card:hover,
.lceri-course-card:hover,
.lceri-step-card:hover,
.lceri-instructor-card:hover {
    transform: translateY(-8px);
    border-color: rgba(79, 70, 229, 0.28);
    box-shadow:
        0 28px 62px rgba(15, 23, 42, 0.17),
        0 8px 18px rgba(79, 70, 229, 0.08);
}

/* Shared color palette */
.lceri-category-grid > div:nth-child(6n + 1),
.lceri-step-grid > div:nth-child(4n + 1),
.lceri-instructor-grid > div:nth-child(3n + 1) {
    --card-accent-1: #2563eb;
    --card-accent-2: #06b6d4;
    --card-soft: #eff6ff;
}

.lceri-category-grid > div:nth-child(6n + 2),
.lceri-step-grid > div:nth-child(4n + 2),
.lceri-instructor-grid > div:nth-child(3n + 2) {
    --card-accent-1: #7c3aed;
    --card-accent-2: #ec4899;
    --card-soft: #faf5ff;
}

.lceri-category-grid > div:nth-child(6n + 3),
.lceri-step-grid > div:nth-child(4n + 3),
.lceri-instructor-grid > div:nth-child(3n + 3) {
    --card-accent-1: #059669;
    --card-accent-2: #14b8a6;
    --card-soft: #ecfdf5;
}

.lceri-category-grid > div:nth-child(6n + 4),
.lceri-step-grid > div:nth-child(4n + 4) {
    --card-accent-1: #ea580c;
    --card-accent-2: #f59e0b;
    --card-soft: #fff7ed;
}

.lceri-category-grid > div:nth-child(6n + 5) {
    --card-accent-1: #dc2626;
    --card-accent-2: #f97316;
    --card-soft: #fef2f2;
}

.lceri-category-grid > div:nth-child(6n + 6) {
    --card-accent-1: #0891b2;
    --card-accent-2: #3b82f6;
    --card-soft: #ecfeff;
}

/* Category cards */
.lceri-category-card {
    height: 278px;
    min-height: 278px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, 0.16), transparent 42%),
        linear-gradient(145deg, #ffffff 0%, var(--card-soft, #f8fbff) 100%);
}

.lceri-category-card::after,
.lceri-step-card::after,
.lceri-instructor-card::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--card-accent-1, #2563eb), var(--card-accent-2, #06b6d4));
}

.lceri-category-card .category-icon {
    width: 68px;
    height: 68px;
    min-width: 68px;
    border-radius: 21px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: #ffffff;
    font-size: 1.7rem;
    background: linear-gradient(135deg, var(--card-accent-1, #2563eb), var(--card-accent-2, #06b6d4));
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.24);
}

.lceri-category-grid > div:nth-child(6n + 2) .category-icon {
    box-shadow: 0 14px 28px rgba(124, 58, 237, 0.24);
}

.lceri-category-grid > div:nth-child(6n + 3) .category-icon {
    box-shadow: 0 14px 28px rgba(5, 150, 105, 0.24);
}

.lceri-category-grid > div:nth-child(6n + 4) .category-icon {
    box-shadow: 0 14px 28px rgba(234, 88, 12, 0.24);
}

.lceri-category-grid > div:nth-child(6n + 5) .category-icon {
    box-shadow: 0 14px 28px rgba(220, 38, 38, 0.23);
}

.lceri-category-grid > div:nth-child(6n + 6) .category-icon {
    box-shadow: 0 14px 28px rgba(8, 145, 178, 0.24);
}

.lceri-category-card h5 {
    min-height: 48px;
    margin-bottom: 9px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lceri-category-card p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lceri-category-card .d-flex:last-child {
    margin-top: auto;
}

/* Program and course cards */
.lceri-program-card,
.lceri-course-card {
    display: flex;
    flex-direction: column;
}

.lceri-program-card {
    min-height: 610px;
}

.lceri-course-card {
    min-height: 625px;
}

.lceri-program-card::after,
.lceri-course-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    z-index: 4;
}

.lceri-program-card::after {
    background: linear-gradient(90deg, #2563eb, #06b6d4);
}

.lceri-course-card::after {
    background: linear-gradient(90deg, #7c3aed, #ec4899);
}

.lceri-program-card .card-body,
.lceri-course-card .card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 25px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.lceri-program-card .lceri-program-image::before {
    background: linear-gradient(180deg, rgba(30, 64, 175, 0.10), rgba(30, 41, 59, 0.93));
}

.lceri-course-card .lceri-course-image::before {
    background: linear-gradient(180deg, rgba(124, 58, 237, 0.10), rgba(15, 23, 42, 0.93));
}

.lceri-program-card .lceri-card-description {
    min-height: 82px;
    -webkit-line-clamp: 3;
}

.lceri-course-card .lceri-card-description {
    min-height: 78px;
    -webkit-line-clamp: 3;
}

.lceri-card-footer,
.lceri-program-card .btn,
.lceri-course-card .btn {
    margin-top: auto;
}

.lceri-program-card .badge,
.lceri-course-card .badge,
.lceri-category-card .badge,
.lceri-instructor-card .badge {
    border: 1px solid rgba(148, 163, 184, 0.20);
    padding: 0.55rem 0.75rem;
    font-weight: 650;
}

.lceri-program-card .btn,
.lceri-course-card .btn,
.lceri-instructor-card .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.12);
}

.lceri-program-card .btn:hover,
.lceri-course-card .btn:hover,
.lceri-instructor-card .btn:hover {
    box-shadow: 0 14px 28px rgba(255, 107, 44, 0.20);
}

/* Learning steps */
.lceri-step-card {
    height: 285px;
    min-height: 285px;
    padding: 30px 25px;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at top right, rgba(59, 130, 246, 0.13), transparent 43%),
        linear-gradient(145deg, #ffffff 0%, var(--card-soft, #f8fafc) 100%);
}

.lceri-step-card .path-number {
    width: 60px;
    height: 60px;
    min-width: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 19px;
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 800;
    background: linear-gradient(135deg, var(--card-accent-1, #2563eb), var(--card-accent-2, #06b6d4));
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.22);
}

.lceri-step-card h5 {
    margin-top: 22px;
    min-height: 30px;
}

/* Instructor cards */
.lceri-instructor-card {
    height: 420px;
    min-height: 420px;
    padding: 34px 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background:
        radial-gradient(circle at top center, rgba(59, 130, 246, 0.15), transparent 41%),
        linear-gradient(180deg, #ffffff 0%, var(--card-soft, #f8fafc) 100%);
}

.lceri-instructor-card .btn {
    margin-top: auto;
}

.lceri-instructor-card .lceri-instructor-photo,
.lceri-instructor-card .instructor-avatar {
    box-shadow: 0 16px 34px rgba(37, 99, 235, 0.23);
    border-color: rgba(255, 255, 255, 0.98);
}

.lceri-instructor-card .instructor-avatar {
    background: linear-gradient(135deg, var(--card-accent-1, #2563eb), var(--card-accent-2, #06b6d4));
    color: #ffffff;
}

.lceri-instructor-card h5 {
    min-height: 28px;
}

.lceri-instructor-card p.text-muted {
    max-width: 310px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Responsive adjustments */
@media (max-width: 991.98px) {
    .lceri-home-carousel .carousel-item,
    .lceri-home-carousel .carousel-content {
        min-height: 520px;
    }

    .lceri-home-carousel .carousel-item {
        background-image: var(--mobile-slide-image);
    }

    .lceri-home-carousel .carousel-item::before {
        background: rgba(15, 23, 42, 0.79);
    }

    .lceri-home-search {
        margin-top: 25px;
    }

    .lceri-category-card {
        height: 270px;
        min-height: 270px;
    }

    .lceri-program-card,
    .lceri-course-card {
        min-height: 600px;
    }
}

@media (max-width: 575.98px) {
    .lceri-category-card,
    .lceri-step-card,
    .lceri-instructor-card {
        height: auto;
    }

    .lceri-category-card {
        min-height: 250px;
    }

    .lceri-step-card {
        min-height: 250px;
    }

    .lceri-instructor-card {
        min-height: 390px;
    }

    .lceri-program-card,
    .lceri-course-card {
        min-height: 0;
    }

    .lceri-course-image,
    .lceri-program-image {
        height: 205px;
        min-height: 205px;
    }
}
