/* =============================================================================
   Adhbhut Dashboard — Full Visual CSS
   ============================================================================= */

/* ── Page wrapper ─────────────────────────────────────────────────────────── */
.adhbhut-dashboard {
    padding: 1.5rem 2rem 2rem;
    box-sizing: border-box;
    font-family: inherit;
}

/* ── Top row: Welcome + Sessions ─────────────────────────────────────────── */
.dashboard-top-row {
    display: flex;
    gap: 1.25rem;
    margin-bottom: 3rem;
    align-items: stretch;
}

/* Welcome card */
.welcome-section {
    flex: 1 1 60%;

    border: 2px solid transparent;
    border-radius: 1.25rem;
    background:
        linear-gradient(
            100.29deg,
            #144582 0%,
            #396E99 27.01%,
            #12638F 46.06%,
            #0E88B9 71.14%,
            #15B0D9 96.68%
        ) padding-box,

        linear-gradient(
            98.43deg,
            #F5F5F5 0%,
            rgba(245, 245, 245, 0) 7.61%,
            rgba(245, 245, 245, 0) 24.74%,
            #F5F5F5 63.29%,
            rgba(245, 245, 245, 0) 67.09%,
            rgba(245, 245, 245, 0) 91.22%,
            #F5F5F5 98.98%
        ) border-box;

    padding: 2rem 1.75rem;
    color: #fff;
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.18);
}

.welcome-section h2 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: #fff;
}

.welcome-section p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.88);
    max-width: 360px;
}

.welcome-section .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #f97316;
    color: #fff !important;
    border: none;
    border-radius: 2rem;
    padding: 0.6rem 1.4rem;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none !important;
    width: fit-content;
    margin-top: 0.25rem;
    transition: background 0.2s;
}

.welcome-section .btn-primary:hover {
    background: #ea6a05;
}

/* Sessions card */
.sessions-section {
    position: relative;
    flex: 1 1 36%;
    border-radius: 1.25rem;
    padding: 1.5rem;
    color: #fff;
    overflow: hidden;

    background: linear-gradient(
        102.27deg,
        #2FAF90 0%,
        rgba(148, 148, 255, 0) 33.76%,
        rgba(148, 148, 255, 0) 61.06%,
        #2FAF90 100%
    );
}

.sessions-section::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 2px;
    border-radius: inherit;

    background: linear-gradient(
        98.43deg,
        #F5F5F5 0%,
        rgba(245, 245, 245, 0) 7.61%,
        rgba(245, 245, 245, 0) 24.74%,
        #F5F5F5 63.29%,
        rgba(245, 245, 245, 0) 67.09%,
        rgba(245, 245, 245, 0) 91.22%,
        #F5F5F5 98.98%
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite: xor;
    mask-composite: exclude;

    pointer-events: none;
}

.sessions-section h3 {
    margin: 0 0 1rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
}

/* ── Bottom row: Courses + Subjects ──────────────────────────────────────── */
.dashboard-bottom-row {
    display: flex;
    gap: 1.25rem;
}

.courses-section {
    flex: 1 1 60%;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.subjects-section {
    flex: 1 1 36%;
    display: flex;
    flex-direction: column;
}

.courses-section > h2,
.subjects-section > h2 {
    margin: 0 0 1rem;
    font-size: 1.640625rem;
    font-weight: 500;
    color: #fff;
}

/* ── Course cards list ────────────────────────────────────────────────────── */
.course-cards-list {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 0.75rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.18) transparent;
}

.course-cards-list::-webkit-scrollbar { height: 4px; }
.course-cards-list::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.18);
    border-radius: 2px;
}

/* ── Course card ──────────────────────────────────────────────────────────── */
.course-card {
    flex: 0 0 250px;
    background: #fff;
    border-radius: 1rem;
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: 0 2px 12px rgba(0,0,0,0.10);
    height: 300px;
    -webkit-mask-image:
        radial-gradient(circle 60px at 50% -45px, transparent 100%, black 100%);
    mask-image:
        radial-gradient(circle 60px at 50% -45px, transparent 100%, black 100%);
    overflow: hidden;
    transition: transform 0.18s, box-shadow 0.18s;
    cursor: pointer;
    padding:10px;
}
.adhbhut-subject-selector{
    position: absolute;
    top: 40px;
    right: 50px;
    gap: 15px;
    display: flex;
    align-items: center;
}
.subject-selector-label{
    color: #f5f5f5;
}
.course-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.course-card-notch {
    height: 10px;
}

/* ── Overlay anchor pattern ───────────────────────────────────────────────── */
/*
   The anchor covers the full card (z-index 5).
   Card content sits at z-index 2 with pointer-events:none so clicks fall
   through to the anchor underneath.
*/
.course-card-overlay-link,
.subject-card-overlay-link {
    position: absolute;
    inset: 0;
    z-index: 5;
    border-radius: inherit;
    text-decoration: none;
}

.course-card-title,
.course-card-image,
.course-progress-bar-wrap,
.course-card-footer-inner,
.course-card-icons {
    position: relative;
    z-index: 2;
    pointer-events: none;
}
/* .left{
    padding: 0.65rem 0.75rem 0.35rem;
}
.right{
    float: right;
} */
/* Card title */
.course-card-title {
    font-weight: 700;
    font-size: 0.88rem;
    line-height: 1.3;
    margin: 0;
}

/* Image area — teal gradient placeholder; theme provides per-course image */
.course-card-image {
    width: 100%;
    height: 220px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    background: linear-gradient(135deg, #2dd4bf 0%, #0ea5e9 100%);
    flex-shrink: 0;
}

/* Progress bar */
.course-progress-bar-wrap {
    width: 100%;
    height: 3px;
    background: rgba(0,0,0,0.08);
}

.course-progress-bar-fill {
    height: 100%;
    background: #f97316;
    transition: width 0.4s ease;
}

/* Card footer */
.course-card-footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    font-size: 0.68rem;
    gap: 0.3rem;
    background: #229E99;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    color:#fff;
}

.course-stat-label { font-size: 0.68rem; white-space: nowrap; }
.course-stat-label--completed  { color: #fff; font-weight: 600; }
.course-stat-label--inprogress { color: #fff; font-weight: 600; }
.course-stat-label--notstarted { color: #fff; }

.course-card-stats {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    width: 100%;
    justify-content: space-between;
}
.right{
    display: flex;
    gap: 0.4rem;
    align-items: center;
}
.course-stat-progress,
.course-stat-badges {
    font-size: 0.68rem;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Icon row */
.course-card-icons {
    display: flex;
    gap: 0.4rem;
    padding: 0.25rem 0.6rem 0.55rem;
    justify-content: flex-end;
    background: linear-gradient(90deg, #d1fae5 0%, #e0f2fe 100%);
}

.course-card-settings-icon,
.course-card-badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: rgba(0,0,0,0.07);
    font-size: 0.65rem;
}

.course-card-settings-icon::before { content: '⚙'; }
.course-card-badge-icon::before    { content: '🏅'; }

/* ── Subject cards grid ───────────────────────────────────────────────────── */
.subject-cards-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    min-height: 300px;
    background: linear-gradient(
        111.9deg,
        #48D2ED 1.87%,
        rgba(27, 100, 162, 0) 50.65%,
        #4960D1 97.39%
    );
    border-radius: 1.25rem;
    padding: 1rem;
    overflow-y: auto;
}

.subject-cards-grid::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 2px;
    border-radius: inherit;

    background: linear-gradient(
        98.43deg,
        #F5F5F5 0%,
        rgba(245, 245, 245, 0) 7.61%,
        rgba(245, 245, 245, 0) 24.74%,
        #F5F5F5 63.29%,
        rgba(245, 245, 245, 0) 67.09%,
        rgba(245, 245, 245, 0) 91.22%,
        #F5F5F5 98.98%
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;

    pointer-events: none;
}

.subject-card {
    border-radius: 0.85rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 0.5rem 0.75rem;
    text-align: center;
    position: relative;
    min-height: 88px;
    cursor: pointer;
    transition: transform 0.18s, box-shadow 0.18s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18);
    overflow: hidden;
}

.subject-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.28);
}

/* Six cycling colours matching the design */
.subject-card:nth-child(6n+1) { background: #e85d2f; }
.subject-card:nth-child(6n+2) { background: #7c4dda; }
.subject-card:nth-child(6n+3) { background: #d91e8c; }
.subject-card:nth-child(6n+4) { background: #0ea5e9; }
.subject-card:nth-child(6n+5) { background: #16a34a; }
.subject-card:nth-child(6n+0) { background: #6d28d9; }

.subject-card-icon,
.subject-card-name,
.subject-course-count {
    position: relative;
    z-index: 2;
    pointer-events: none;
}

/* Placeholder icon square */
.subject-card-icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.5rem;
    background: rgba(255,255,255,0.28);
    margin-bottom: 0.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Uploaded image icon */
.subject-card-icon--image {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.5rem;
    object-fit: cover;
    margin-bottom: 0.35rem;
    position: relative;
    z-index: 2;
    pointer-events: none;
}

.subject-card-name {
    font-weight: 700;
    font-size: 0.82rem;
    line-height: 1.2;
    color: #fff;
}

.subject-course-count {
    font-size: 0.68rem;
    margin-top: 0.15rem;
    color: rgba(255,255,255,0.82);
}

/* ── Category page ────────────────────────────────────────────────────────── */
.adhbhut-back-wrap {
    margin-bottom: 1rem;
}

.adhbhut-back-link {
    font-size: 0.9rem;
    color: #1a3a6b;
    text-decoration: none;
    font-weight: 600;
}

.adhbhut-back-link:hover { text-decoration: underline; }

.adhbhut-icon-upload-link {
    margin-bottom: 1rem;
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .dashboard-top-row,
    .dashboard-bottom-row {
        flex-direction: column;
    }

    .welcome-section,
    .sessions-section,
    .courses-section,
    .subjects-section {
        flex: 1 1 100%;
    }
}

/* ── Default subject icon (inline SVG initial letter) ─────────────────────── */
.subject-card-icon--default {
    display: block;
    margin-bottom: 0.35rem;
    position: relative;
    z-index: 2;
    pointer-events: none;
    border-radius: 50%;
    flex-shrink: 0;
}

/* =============================================================================
   Welcome banner — dynamic layout (heading left, preview image right)
   ============================================================================= */


.welcome-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    justify-content: center;
}

.welcome-section h2 {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
}

.welcome-section p,
.welcome-content p {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.88);
}

/* CTA button */
.adhbhut-banner-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #f97316;
    color: #fff !important;
    border: none;
    border-radius: 2rem;
    padding: 0.6rem 1.4rem;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none !important;
    width: fit-content;
    transition: background 0.2s, transform 0.15s;
    align-self: flex-start;
}

.adhbhut-banner-btn:hover {
    background: #ea6a05;
    transform: translateY(-1px);
}

/* Manager edit link */
.adhbhut-banner-edit-wrap {
    margin-top: 0.25rem;
}

.adhbhut-banner-edit-link {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.65);
    text-decoration: none;
    border-bottom: 1px dashed rgba(255,255,255,0.35);
    transition: color 0.2s;
}

.adhbhut-banner-edit-link:hover {
    color: #fff;
    text-decoration: none;
}

/* Preview image */
.welcome-preview-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 0.75rem;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: center;
}

.welcome-preview-img {
    height: 200px;
    object-fit: cover;
    border-radius: 0.75rem;
    display: block;
    flex-shrink: 0;
    transition: transform 0.2s, box-shadow 0.2s;
}

.welcome-preview-btn:hover .welcome-preview-img,
.adhbhut-video-trigger:hover {
    transform: scale(1.03);
    box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

/* Play icon overlay on preview image */
.welcome-preview-btn::after {
    content: '▶';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #fff;
    background: rgba(0,0,0,0.28);
    border-radius: 0.75rem;
    opacity: 0;
    transition: opacity 0.2s;
}

.welcome-preview-btn:hover::after {
    opacity: 1;
}

/* =============================================================================
   Video modal
   ============================================================================= */

.adhbhut-modal-backdrop {
    display: none;                /* hidden until .is-open is added */
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.82);
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    box-sizing: border-box;
}

.adhbhut-modal-backdrop.is-open {
    display: flex;
}

/* Prevent body scroll while modal is open */
body.adhbhut-modal-open {
    overflow: hidden;
}

.adhbhut-modal-dialog {
    position: relative;
    width: 100%;
    max-width: 860px;
    background: #000;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 24px 80px rgba(0,0,0,0.7);
    animation: adhbhut-modal-in 0.22s ease;
}

@keyframes adhbhut-modal-in {
    from { opacity: 0; transform: scale(0.94) translateY(16px); }
    to   { opacity: 1; transform: scale(1)    translateY(0); }
}

.adhbhut-modal-close {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    z-index: 10;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
    line-height: 1;
}

.adhbhut-modal-close:hover {
    background: rgba(255,255,255,0.3);
}

.adhbhut-modal-video {
    width: 100%;
    max-height: 80vh;
    display: block;
    background: #000;
    outline: none;
}

/* =============================================================================
   Banner settings page
   ============================================================================= */

.adhbhut-banner-preview,
.adhbhut-banner-video-preview {
    margin-bottom: 1.25rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 0.75rem;
    display: inline-block;
}

.adhbhut-banner-preview p,
.adhbhut-banner-video-preview p {
    margin: 0 0 0.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    color: #555;
}


/*========================================================================
Session section css
======================================================================== */
.sessions-section {
    padding: 20px;
}

.session-table-header {
    display: flex;
    font-weight: 600;
    margin-bottom: 10px;
    color: #ffffff;
}

.session-row {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(255,255,255,0.15);
}

.session-col-topic {
    flex: 1;
}

.session-col-date {
    width: 90px;
    text-align: center;
}

.session-col-time {
    width: 90px;
    text-align: center;
}

.session-row a {
    color: #fff;
    text-decoration: none;
}

.adhbhut-session-btn {
    width: 100%;
    margin-top: 15px;
    border-radius: 24px;
}

.adhbhut-no-session-wrap {
    text-align: center;
    padding: 25px 15px;
}

.adhbhut-no-session-gif {
    width: 220px;
    max-width: 100%;
    margin-bottom: 15px;
}

.adhbhut-no-session-wrap h4 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
}

.adhbhut-no-session-wrap p {
    margin: 0;
    color: rgba(255,255,255,.8);
    font-size: 14px;
}
/* =============================================================================
   Admin Dashboard
   ============================================================================= */

/* Stats grid — 2×2 tiles matching the screenshot */
.admin-stats-section {
    flex: 1 1 38%;
}

.admin-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    height: 100%;
}

.admin-stat-tile {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 1rem;
    padding: 1.1rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    color: #fff;
    backdrop-filter: blur(4px);
    transition: background 0.18s;
}

.admin-stat-tile:hover {
    background: rgba(255,255,255,0.14);
}

/* Placeholder icon circles — frontend replaces with real icons / SVGs */
.admin-stat-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.18);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.admin-stat-icon--owners::before      { content: '👩‍💼'; }
.admin-stat-icon--instructors::before { content: '🧑‍🏫'; }
.admin-stat-icon--students::before    { content: '🎓'; }
.admin-stat-icon--courses::before     { content: '📚'; }

.admin-stat-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.admin-stat-number {
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1;
    color: #fff;
}

.admin-stat-label {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.75);
    font-weight: 500;
}

/* Chart section */
.admin-chart-section {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 1.25rem;
    padding: 1.5rem 1.75rem;
    margin-top: 1.25rem;
    backdrop-filter: blur(4px);
}

.admin-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-chart-header h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
}

.admin-period-form {
    display: inline-flex;
    align-items: center;
}

.admin-period-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: rgba(255,255,255,0.8);
}

.admin-period-select {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 0.5rem;
    padding: 0.35rem 2rem 0.35rem 0.75rem;
    font-size: 0.85rem;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23fff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    outline: none;
}

.admin-period-select option {
    background: #1a3a6b;
    color: #fff;
}

/* Chart canvas area — Moodle chart_line renders a <div class="chart-output"> */
.admin-chart-wrap {
    min-height: 220px;
}

/* Override Moodle chart container to inherit our dark background */
.admin-chart-wrap .chart-output {
    background: transparent !important;
}

.admin-chart-wrap canvas {
    max-height: 280px;
}

/* "Never access" button */
.admin-never-access-wrap {
    margin-top: 1.25rem;
}

.adhbhut-never-access-btn {
    background: #f97316 !important;
    border: none !important;
    border-radius: 2rem !important;
    padding: 0.55rem 1.4rem !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    color: #fff !important;
    text-decoration: none !important;
    transition: background 0.2s !important;
}

.adhbhut-never-access-btn:hover {
    background: #ea6a05 !important;
}

/* Never-accessed table */
.adhbhut-never-access-table {
    width: 100%;
    margin-top: 1rem;
    border-radius: 0.75rem;
    overflow: hidden;
}

/* Admin dashboard — ensure top row aligns welcome (58%) + stats (38%) */
.adhbhut-admin-dashboard .dashboard-top-row {
    align-items: stretch;
}

.adhbhut-admin-dashboard .welcome-section {
    flex: 1 1 58%;
}

/* =============================================================================
   Admin stat tiles — bento grid with SVG icons
   ============================================================================= */

.admin-stats-section {
    flex: 1 1 38%;
    display: flex;
}

.admin-stats-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

/* Each tile is now an <a> — reset link styles */
.admin-stat-tile {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 92px;
    border-radius: 16px;
    padding: 18px 20px;
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 10px 24px rgba(0,0,0,.15), inset 0 1px 0 rgba(255,255,255,.15);
    transition: transform .25s ease, box-shadow .25s ease;
    text-decoration: none !important;
    color: #fff !important;
    position: relative;
    overflow: hidden;
}

.admin-stat-tile:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 40px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.2);
    text-decoration: none !important;
}

/* Subtle animated shimmer on hover */
.admin-stat-tile::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.08) 50%, rgba(255,255,255,0) 70%);
    background-size: 200% 100%;
    opacity: 0;
    transition: opacity .3s;
}
.admin-stat-tile:hover::after { opacity: 1; }

/* Per-tile colour gradients */
.admin-stat-tile--owners {
    background: linear-gradient(135deg, rgba(0,195,255,.35), rgba(0,120,255,.18));
}
.admin-stat-tile--instructors {
    background: linear-gradient(135deg, rgba(122,92,255,.35), rgba(92,86,214,.18));
}
.admin-stat-tile--students {
    background: linear-gradient(135deg, rgba(255,170,0,.35), rgba(255,120,0,.18));
}
.admin-stat-tile--courses {
    background: linear-gradient(135deg, rgba(0,220,140,.35), rgba(0,170,100,.18));
}

.admin-stat-inner {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
}

/* SVG icon */
.admin-stat-svg {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 14px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.15);
    padding: 8px;
    object-fit: contain;
    display: block;
}

.admin-stat-text {
    display: flex;
    flex-direction: column;
}

.admin-stat-number {
    font-size: 34px;
    line-height: 1;
    font-weight: 800;
    color: #fff;
}

.admin-stat-label {
    margin-top: 4px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,.85);
}

/* =============================================================================
   All Courses page
   ============================================================================= */

.adhbhut-page-heading {
    margin: 0 0 1.25rem;
    font-size: 1.4rem;
    font-weight: 700;
}

/* Learner grid — cards exactly like the dashboard carousel but in a grid */
.allcourses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* Admin grid — slightly wider cards with plain look */
.allcourses-grid--admin {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.allcourse-card {
    display: flex;
    flex-direction: column;
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,.10);
    text-decoration: none !important;
    color: inherit !important;
    transition: transform .18s, box-shadow .18s;
}
.allcourse-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
}

.allcourse-thumb {
    width: 100%;
    height: 130px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}
.allcourse-thumb-placeholder {
    width: 100%;
    height: 130px;
    display: block;
    background: linear-gradient(135deg, #2dd4bf 0%, #0ea5e9 100%);
    flex-shrink: 0;
}

.allcourse-name {
    padding: .6rem .75rem .25rem;
    font-weight: 700;
    font-size: .88rem;
    line-height: 1.3;
    color: #1a2a3a;
}
.allcourse-cat {
    padding: 0 .75rem .6rem;
    font-size: .75rem;
    color: #6b7280;
}

/* View All Courses link in course section header */
.section-header-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.section-header-row h2 { margin: 0; }
.adhbhut-viewall-link {
    font-size: .85rem;
    font-weight: 600;
    color: #f97316;
    text-decoration: none;
    white-space: nowrap;
}
.adhbhut-viewall-link:hover { text-decoration: underline; }

/* =============================================================================
   Pagination — shared by all_courses.php and entity_list.php
   ============================================================================= */

.adhbhut-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    margin: 1.5rem 0 2rem;
    flex-wrap: wrap;
}

.adhbhut-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.2rem;
    height: 2.2rem;
    padding: 0 .65rem;
    border-radius: .5rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    color: #fff !important;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .15s;
}
.adhbhut-page-btn:hover {
    background: rgba(255,255,255,.22);
}
.adhbhut-page-btn--active {
    background: #f97316 !important;
    border-color: #f97316 !important;
    color: #fff !important;
    cursor: default;
    pointer-events: none;
}

/* =============================================================================
   Entity list page (entity_list.php)
   ============================================================================= */

.entity-tab-bar {
    display: flex;
    gap: .5rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.entity-tab {
    display: inline-block;
    padding: .45rem 1.1rem;
    border-radius: 2rem;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.2);
    color: rgba(255,255,255,.8) !important;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .15s, color .15s;
}
.entity-tab:hover {
    background: rgba(255,255,255,.2);
    color: #fff !important;
}
.entity-tab--active {
    background: #f97316 !important;
    border-color: #f97316 !important;
    color: #fff !important;
    pointer-events: none;
}

.entity-list-heading {
    margin: 0 0 1.25rem;
    font-size: 1.3rem;
    font-weight: 700;
}

.entity-list-table {
    width: 100%;
    border-collapse: collapse;
    background: rgba(255,255,255,.06);
    border-radius: .75rem;
    overflow: hidden;
}
.entity-list-table thead th {
    background: rgba(255,255,255,.12);
    color: #fff;
    font-weight: 700;
    padding: .75rem 1rem;
    text-align: left;
    font-size: .85rem;
}
.entity-list-table tbody tr:nth-child(even) {
    background: rgba(255,255,255,.04);
}
.entity-list-table tbody td {
    padding: .65rem 1rem;
    color: rgba(255,255,255,.9);
    font-size: .85rem;
    border-bottom: 1px solid rgba(255,255,255,.07);
    vertical-align: top;
}
.entity-list-table a { color: #7dd3fc; }
.entity-list-table a:hover { color: #fff; }

.entity-course-link {
    display: inline-block;
    font-size: .8rem;
}
