/* ===========================================
   CPA LMS — Stylesheet
   Prefix: lms-*
   Based on CPA Admin design patterns
   =========================================== */

:root {
    --lms-sidebar-w: 264px;
    --lms-topbar-h: 64px;

    /* Neutral palette — soft paper against navy/gold brand */
    --lms-bg: #f6f4ef;
    --lms-surface: #ffffff;
    --lms-surface-alt: #efeae2;
    --lms-border: #ddd6c8;
    --lms-border-light: #efeae2;
    --lms-text: #001a33;
    --lms-text-secondary: #3d4f63;
    --lms-text-muted: #7a8796;

    /* Brand — Vision & Wisdom Academy navy */
    --lms-brand: #001a33;
    --lms-brand-dark: #000f1f;
    --lms-brand-light: #0a2a4a;
    --lms-primary: #001a33;
    --lms-primary-light: #e8eef5;

    /* Accent — logo gold */
    --lms-accent: #c5a059;
    --lms-accent-hover: #a8863f;
    --lms-accent-light: #f5edd8;
    --lms-accent-soft: #faf6eb;

    /* Semantic */
    --lms-success: #2f7d5a;
    --lms-success-light: #e2f3eb;
    --lms-danger: #b42318;
    --lms-danger-light: #fce8e6;
    --lms-warning: #c5a059;
    --lms-warning-light: #f5edd8;
    --lms-info: #2a6f97;
    --lms-info-light: #e4f0f7;

    /* Shape */
    --lms-radius: 10px;
    --lms-radius-sm: 6px;
    --lms-radius-lg: 14px;
    --lms-radius-full: 50px;

    /* Depth */
    --lms-shadow-xs: 0 1px 2px rgba(0,26,51,.04);
    --lms-shadow: 0 1px 3px rgba(0,26,51,.06), 0 1px 2px rgba(0,26,51,.04);
    --lms-shadow-md: 0 4px 6px -1px rgba(0,26,51,.07), 0 2px 4px -2px rgba(0,26,51,.05);
    --lms-shadow-lg: 0 10px 15px -3px rgba(0,26,51,.08), 0 4px 6px -4px rgba(0,26,51,.05);

    --lms-font-display: 'Libre Baskerville', 'Times New Roman', Georgia, serif;
    --lms-font-body: 'Source Sans 3', 'Segoe UI', sans-serif;

    --lms-transition: .2s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: var(--lms-font-body);
    background: var(--lms-bg);
    color: var(--lms-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
    max-width: 100%;
}

h1, h2, h3, .lms-dash-hero-title, .lms-login-header h1, .adm-brand,
.lms-sidebar-title, .lms-page-title, .lms-card-header h3 {
    font-family: var(--lms-font-display);
    letter-spacing: 0.01em;
}

a { text-decoration: none; color: inherit; }
img { max-width: 100%; }

/* ===========================================
   LOGIN PAGE (student / parent / auth)
   =========================================== */
.lms-login-body {
    min-height: 100vh;
    background: var(--lms-brand-dark);
}

/* Legacy pages that still put .lms-login-page on <body> */
body.lms-login-page:not(.lms-login-body) {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(16px, 3vw, 32px);
    background: var(--lms-brand-dark);
    background-image:
        radial-gradient(ellipse 80% 60% at 12% 40%, rgba(197, 160, 89, 0.16) 0%, transparent 55%),
        radial-gradient(ellipse 70% 50% at 88% 12%, rgba(197, 160, 89, 0.08) 0%, transparent 50%),
        linear-gradient(165deg, #000f1f 0%, #001a33 42%, #0a2540 100%);
}
body.lms-login-page:not(.lms-login-body) > .lms-login-card {
    background: var(--lms-surface);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-lg);
    width: 100%;
    max-width: 420px;
    padding: clamp(28px, 4vw, 40px);
}

.lms-login-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    padding: clamp(16px, 3vw, 32px);
    background: var(--lms-brand-dark);
    background-image:
        radial-gradient(ellipse 80% 60% at 12% 40%, rgba(197, 160, 89, 0.16) 0%, transparent 55%),
        radial-gradient(ellipse 70% 50% at 88% 12%, rgba(197, 160, 89, 0.08) 0%, transparent 50%),
        linear-gradient(165deg, #000f1f 0%, #001a33 42%, #0a2540 100%);
    position: relative;
}

.lms-login-back {
    position: absolute;
    top: clamp(14px, 2.5vw, 22px);
    left: clamp(16px, 3vw, 32px);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    padding: 0.35rem 0.65rem;
    border-radius: var(--lms-radius-sm);
    transition: color var(--lms-transition), background var(--lms-transition);
}
.lms-login-back:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}
.lms-login-back i { font-size: 0.7rem; opacity: 0.85; }

.lms-login-shell {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 0;
    border-radius: calc(var(--lms-radius-lg) + 2px);
    overflow: hidden;
    box-shadow:
        0 24px 64px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.06);
}

.lms-login-aside {
    background:
        linear-gradient(145deg, rgba(197, 160, 89, 0.12) 0%, transparent 42%),
        rgba(0, 15, 31, 0.55);
    border-right: 1px solid rgba(197, 160, 89, 0.22);
    padding: clamp(28px, 4vw, 44px) clamp(24px, 3.5vw, 40px);
    color: #fff;
    display: flex;
    align-items: center;
}

.lms-login-aside__inner {
    width: 100%;
    max-width: 380px;
}

.lms-login-aside__brand {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.75rem;
    text-decoration: none;
    color: #fff;
    max-width: 100%;
}
.lms-login-aside__mark {
    flex-shrink: 0;
    width: clamp(52px, 12vw, 64px);
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 3px 12px rgba(0, 0, 0, 0.35));
}
.lms-login-aside__wordmark {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}
.lms-login-aside__name {
    font-family: var(--lms-font-display);
    font-size: clamp(1.15rem, 2.4vw, 1.45rem);
    font-weight: 700;
    line-height: 1.15;
    color: #fff;
    letter-spacing: 0.01em;
}
.lms-login-aside__amp {
    color: var(--lms-accent);
}
.lms-login-aside__academy {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.72);
}
.lms-login-aside__academy::before,
.lms-login-aside__academy::after {
    content: "";
    flex: 1 1 0.75rem;
    max-width: 1.25rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(197, 160, 89, 0.85));
}
.lms-login-aside__academy::after {
    background: linear-gradient(90deg, rgba(197, 160, 89, 0.85), transparent);
}
.lms-login-aside__logo-link {
    display: inline-block;
    margin-bottom: 1.75rem;
}
.lms-login-aside__logo {
    display: block;
    width: auto;
    height: auto;
    max-width: min(280px, 100%);
    max-height: 72px;
    object-fit: contain;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.28));
}

.lms-login-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--lms-accent);
    margin: 0 0 0.65rem;
}

.lms-login-aside__title {
    font-family: var(--lms-font-display);
    font-size: clamp(1.45rem, 2.8vw, 1.85rem);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 0.65rem;
    color: #fff;
}

.lms-login-aside__lead {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 1.5rem;
}

.lms-login-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.lms-login-features li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.88);
}
.lms-login-features__icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--lms-radius-sm);
    background: rgba(197, 160, 89, 0.18);
    color: var(--lms-accent);
    font-size: 0.8rem;
}

.lms-login-main {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lms-surface);
    padding: clamp(28px, 4vw, 44px) clamp(24px, 3.5vw, 40px);
}

.lms-login-card {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    width: 100%;
    max-width: 400px;
    padding: 0;
}

/* Centered single-card layout (forgot password, legacy) */
.lms-login-page--centered {
    align-items: center;
    justify-content: center;
}
.lms-login-page--centered .lms-login-shell {
    grid-template-columns: 1fr;
    max-width: 440px;
}
.lms-login-page--centered .lms-login-aside { display: none; }
.lms-login-page--centered .lms-login-main {
    border-radius: var(--lms-radius-lg);
}
.lms-login-page--centered .lms-login-card {
    padding: clamp(28px, 4vw, 40px);
}

.lms-login-header {
    text-align: left;
    margin-bottom: 1.5rem;
}

.lms-login-header__title,
.lms-login-header h1,
.lms-login-header h2 {
    font-family: var(--lms-font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--lms-brand);
    margin: 0 0 0.35rem;
}

.lms-login-header__sub,
.lms-login-header p {
    color: var(--lms-text-muted);
    font-size: 0.875rem;
    margin: 0;
    line-height: 1.5;
}

.lms-login-page--centered .lms-login-header {
    text-align: center;
}

.lms-login-brand {
    display: flex;
    justify-content: center;
    margin: 0 auto 16px;
    width: 100%;
    max-width: 260px;
}

.lms-login-logo {
    display: block;
    width: 100%;
    height: auto;
    max-width: 260px;
    max-height: 64px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
}

.lms-login-forgot {
    text-align: right;
    margin-top: 0.4rem;
}
.lms-login-forgot a {
    font-size: 0.8125rem;
    color: var(--lms-text-muted);
    font-weight: 500;
}
.lms-login-forgot a:hover { color: var(--lms-accent); }

.lms-pw-toggle-wrap { position: relative; }
.lms-pw-toggle-wrap .lms-input { padding-right: 44px; }
.lms-pw-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--lms-text-muted);
    padding: 4px;
    line-height: 1;
}
.lms-pw-toggle:hover { color: var(--lms-brand); }

.lms-login-apply {
    text-align: center;
    margin-top: 1.5rem;
}
.lms-login-apply a {
    color: var(--lms-accent);
    font-size: 0.875rem;
    font-weight: 600;
}
.lms-login-apply a:hover { color: var(--lms-accent-hover); }

.lms-login-alt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.85rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--lms-border-light);
    font-size: 0.8125rem;
}
.lms-login-alt a {
    color: var(--lms-text-muted);
    font-weight: 500;
}
.lms-login-alt a:hover { color: var(--lms-brand); }
.lms-login-alt__dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--lms-border);
}

.lms-login-card .lms-form-group label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
}
.lms-login-card .lms-form-group label i {
    margin-right: 6px;
    color: var(--lms-accent);
    width: 14px;
}

.lms-login-footer {
    text-align: center;
    margin-top: 24px;
    font-size: 0.8rem;
    color: var(--lms-text-muted);
}

.lms-login-card--wide { max-width: 440px; }

.lms-login-hint {
    font-size: 0.8125rem;
    color: var(--lms-text-muted);
    margin: 0 0 1rem;
    line-height: 1.55;
}

.lms-login-dev-fallback {
    font-size: 0.85rem;
    word-break: break-all;
    margin-bottom: 1rem;
}

@media (max-width: 820px) {
    .lms-login-shell {
        grid-template-columns: 1fr;
        max-width: 440px;
    }
    .lms-login-aside {
        border-right: 0;
        border-bottom: 1px solid rgba(197, 160, 89, 0.22);
        padding: 1.75rem 1.5rem 1.5rem;
    }
    .lms-login-aside__title { font-size: 1.35rem; }
    .lms-login-features { display: none; }
    .lms-login-aside__lead {
        margin-bottom: 0;
        font-size: 0.875rem;
    }
    .lms-login-aside__brand { margin-bottom: 1rem; }
    .lms-login-aside__logo-link { margin-bottom: 1rem; }
    .lms-login-main { padding: 1.75rem 1.5rem 2rem; }
}

@media (max-width: 480px) {
    .lms-login-back span { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ===========================================
   FORMS
   =========================================== */
.lms-form-group {
    margin-bottom: 18px;
}

.lms-form-group label {
    display: block;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
    margin-bottom: 6px;
}

.lms-input {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    font-size: .9375rem;
    font-family: inherit;
    color: var(--lms-text);
    background: var(--lms-surface);
    transition: border-color var(--lms-transition), box-shadow var(--lms-transition);
}

.lms-input:focus {
    outline: none;
    border-color: var(--lms-accent);
    box-shadow: 0 0 0 3px rgba(197,160,89,.22);
}

.lms-input::placeholder { color: var(--lms-text-muted); }

textarea.lms-input {
    min-height: 80px;
    resize: vertical;
    line-height: 1.7;
}

select.lms-input {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}

.lms-form-select,
.adm-toolbar select,
.adm-content .lms-filter-bar select {
    display: inline-block;
    width: auto;
    min-width: 160px;
    padding: 10px 36px 10px 14px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    font-size: .9375rem;
    font-family: inherit;
    font-weight: 500;
    color: var(--lms-text);
    background-color: var(--lms-surface);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    transition: border-color var(--lms-transition), box-shadow var(--lms-transition), background-color var(--lms-transition);
}

.lms-form-select:hover,
.adm-toolbar select:hover,
.adm-content .lms-filter-bar select:hover {
    border-color: #cbd5e1;
    background-color: var(--lms-surface-alt);
}

.lms-form-select:focus,
.adm-toolbar select:focus,
.adm-content .lms-filter-bar select:focus {
    outline: none;
    border-color: var(--lms-accent);
    box-shadow: 0 0 0 3px rgba(197,160,89,.22);
}

.lms-form-select:disabled,
.adm-toolbar select:disabled,
.adm-content .lms-filter-bar select:disabled {
    opacity: .6;
    cursor: not-allowed;
    background-color: var(--lms-surface-alt);
}

.lms-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.lms-inline-form {
    display: flex;
    gap: 10px;
    align-items: end;
    flex-wrap: wrap;
    padding: 16px;
}

.lms-inline-form select,
.lms-inline-form input {
    padding: 9px 12px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    font-size: .875rem;
    font-family: inherit;
    background: var(--lms-surface);
    min-width: 180px;
}

.lms-inline-form select:focus,
.lms-inline-form input:focus {
    outline: none;
    border-color: var(--lms-accent);
    box-shadow: 0 0 0 3px rgba(197,160,89,.22);
}

/* ===========================================
   BUTTONS
   =========================================== */
.lms-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border: none;
    border-radius: var(--lms-radius-sm);
    font-size: .875rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: all var(--lms-transition);
    text-decoration: none;
    line-height: 1.5;
    white-space: nowrap;
}

.lms-btn:active { transform: scale(.97); }

.lms-btn-primary {
    background: var(--lms-brand);
    color: #fff;
    box-shadow: 0 1px 2px rgba(0,26,51,.25);
}
.lms-btn-primary:hover { background: var(--lms-brand-light); }
.lms-btn-accent,
.lms-btn-primary.lms-btn-gold {
    background: var(--lms-accent);
    color: #fff;
    box-shadow: 0 1px 2px rgba(197,160,89,.35);
}
.lms-btn-accent:hover,
.lms-btn-primary.lms-btn-gold:hover { background: var(--lms-accent-hover); }

.lms-btn-secondary {
    background: var(--lms-surface-alt);
    color: var(--lms-text-secondary);
    border: 1px solid var(--lms-border);
}
.lms-btn-secondary:hover { background: var(--lms-border-light); }

.lms-btn-danger {
    background: var(--lms-danger-light);
    color: var(--lms-danger);
}
.lms-btn-danger:hover { background: var(--lms-danger); color: #fff; }

.lms-btn-success {
    background: var(--lms-success-light);
    color: #16a34a;
}
.lms-btn-success:hover { background: var(--lms-success); color: #fff; }

.lms-btn-warning {
    background: var(--lms-warning-light);
    color: #b45309;
}
.lms-btn-warning:hover { background: var(--lms-warning); color: #fff; }

.lms-btn-outline {
    background: transparent;
    border: 1.5px solid var(--lms-border);
    color: var(--lms-text-secondary);
}
.lms-btn-outline:hover { border-color: var(--lms-accent); color: var(--lms-accent); }

.lms-btn-sm { padding: 6px 12px; font-size: .8125rem; }
.lms-btn-xs { padding: 4px 8px; font-size: .75rem; }
.lms-btn-lg { padding: 12px 24px; font-size: 1rem; }
.lms-btn-block { width: 100%; justify-content: center; }

/* ===========================================
   LAYOUT
   =========================================== */
.lms-layout {
    display: flex;
    min-height: 100vh;
    width: 100%;
    max-width: 100%;
    overflow-x: visible;
}

/* ===========================================
   SIDEBAR
   =========================================== */
.lms-sidebar {
    width: var(--lms-sidebar-w);
    background: var(--lms-brand-dark);
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 100;
    overflow-y: auto;
    overflow-x: hidden;
    transition: width .3s ease, transform .3s ease;
    display: flex;
    flex-direction: column;
}

.lms-sidebar::-webkit-scrollbar { width: 4px; }
.lms-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 2px; }

.lms-sidebar-header {
    display: flex;
    align-items: center;
    padding: 10px 12px 8px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    min-height: auto;
}

/* Brand lockup: crest tile + typed wordmark */
.lms-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

.lms-brand-mark {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lms-brand-mark img,
.lms-brand-mark-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.lms-brand-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.15;
}

.lms-brand-name {
    font-family: var(--lms-font-display);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #f4f1ea;
}

.lms-brand-sub {
    display: flex;
    align-items: center;
    align-self: stretch;
    gap: 6px;
    margin-top: 2px;
    width: 100%;
    font-family: var(--lms-font-body);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--lms-accent);
}

.lms-brand-sub::before,
.lms-brand-sub::after {
    content: '';
    flex: 1 1 0;
    min-width: 4px;
    height: 1px;
    background: var(--lms-accent);
    opacity: .7;
}

.lms-brand-portal {
    margin-top: 3px;
    font-family: var(--lms-font-body);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #8a94a6;
}

.lms-brand--stacked {
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.lms-brand--horizontal {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}

.lms-brand-logo-wrap {
    display: block;
    background: #fff;
    border-radius: 10px;
    padding: 6px 8px;
    width: 100%;
    max-width: none;
    margin: 0;
    line-height: 0;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}

.lms-brand--stacked .lms-brand-logo-wrap {
    background: #fff;
    border-radius: 8px;
    padding: 5px 8px;
    width: auto;
    max-width: min(148px, 88%);
    margin: 0 auto;
}

.lms-brand--stacked .lms-brand-logo {
    display: block;
    width: auto;
    height: auto;
    max-height: 48px;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
    background: transparent;
    padding: 0;
    border-radius: 0;
}

.lms-brand--horizontal .lms-brand-logo {
    display: block;
    width: 100%;
    height: auto;
    max-height: 64px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    background: transparent;
    padding: 0;
    border-radius: 0;
}

.lms-brand--stacked .lms-brand-portal {
    margin-top: 0;
    text-align: center;
    font-size: .52rem;
}

.lms-brand--horizontal .lms-brand-portal {
    margin-top: 0;
    text-align: left;
    font-size: .55rem;
    letter-spacing: .12em;
}

.lms-brand--full {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.lms-brand-logo {
    display: block;
    width: min(100%, 148px);
    height: auto;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
    padding: 4px;
}

.lms-brand--full .lms-brand-portal {
    margin-top: 0;
}

.lms-sidebar-logo {
    width: 38px;
    height: 38px;
    background: var(--lms-accent);
    border-radius: var(--lms-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    font-size: .9rem;
    flex-shrink: 0;
}

.lms-sidebar-title {
    font-size: .9rem;
    font-weight: 600;
    color: #e2e8f0;
    white-space: nowrap;
    overflow: hidden;
}

.lms-sidebar-title small {
    display: block;
    font-size: .7rem;
    color: rgba(255,255,255,.4);
    font-weight: 400;
}

.lms-nav { flex: 1; padding: 12px 0; }

.lms-nav-group {
    padding: 0 12px;
    margin-bottom: 4px;
}

.lms-nav-label {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.3);
    padding: 12px 12px 4px;
}

.lms-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: var(--lms-radius-sm);
    color: rgba(255,255,255,.6);
    font-size: .8125rem;
    font-weight: 500;
    transition: all var(--lms-transition);
    cursor: pointer;
}

.lms-nav-item:hover {
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.9);
}

.lms-nav-item.active {
    background: rgba(197,160,89,.18);
    color: #e8d5a8;
}

.lms-nav-item i {
    width: 18px;
    text-align: center;
    font-size: .8125rem;
}

.lms-nav-badge {
    margin-left: auto;
    background: var(--lms-accent);
    color: #fff;
    font-size: .65rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: var(--lms-radius-full);
}

/* ===========================================
   MAIN CONTENT
   =========================================== */
.lms-main {
    flex: 1;
    width: 100%;
    max-width: 100%;
    margin: 0;
    /* padding is inside border-box — unlike margin, cannot cause horizontal overflow */
    padding-inline-start: var(--lms-shell-gutter, var(--lms-sidebar-w));
    padding-inline-end: 0;
    transition: padding-inline-start .3s ease;
    min-width: 0;
    box-sizing: border-box;
}

html.lms-is-mobile .lms-main {
    padding-inline-start: 0;
}

.lms-topbar {
    height: var(--lms-topbar-h);
    background: var(--lms-surface);
    border-bottom: 1px solid var(--lms-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 28px;
    position: sticky;
    top: 0;
    z-index: 50;
}

.lms-topbar-left {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lms-topbar-toggle {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--lms-text-secondary);
    font-size: 1.1rem;
    padding: 6px;
    border-radius: var(--lms-radius-sm);
}
.lms-topbar-toggle:hover { background: var(--lms-surface-alt); }

.lms-topbar h2 {
    font-size: 1.125rem;
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lms-topbar-right {
    display: flex;
    align-items: center;
    gap: 14px;
}

.lms-topbar-right .lms-notif-btn {
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--lms-text-secondary);
    font-size: 1.1rem;
    padding: 6px;
}

.lms-topbar-right .lms-notif-dot {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 8px;
    height: 8px;
    background: var(--lms-danger);
    border-radius: 50%;
}
.lms-topbar-right .lms-notif-count {
    position: absolute;
    top: -2px;
    right: -4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--lms-danger);
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}
.lms-topbar-right .lms-notif-count[hidden],
#stu-messages-badge[hidden],
#stu-notifications-badge[hidden],
#stu-flashcards-tab-badge[hidden] { display: none !important; }
#stu-messages-badge { background: var(--lms-danger); }

.lms-content {
    padding: 28px;
    max-width: 100%;
    overflow-x: clip;
}

/* ===========================================
   CARDS
   =========================================== */
.lms-card {
    background: var(--lms-surface);
    border-radius: var(--lms-radius);
    border: 1px solid var(--lms-border);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
}

.lms-card-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--lms-border-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.lms-card-header h3 {
    font-size: .9375rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.lms-card-header h3 i { color: var(--lms-accent); font-size: .875rem; }

.lms-card-body {
    padding: 20px;
}

.lms-mb { margin-bottom: 24px; }

/* ===========================================
   STAT CARDS
   =========================================== */
.lms-stat-card {
    background: var(--lms-surface);
    border-radius: var(--lms-radius);
    border: 1px solid var(--lms-border);
    padding: 20px;
    text-align: center;
    box-shadow: var(--lms-shadow-xs);
}

.lms-stat-number {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--lms-brand);
    line-height: 1.2;
}

.lms-stat-label {
    font-size: .75rem;
    font-weight: 500;
    color: var(--lms-text-muted);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ===========================================
   TABLES
   =========================================== */
.lms-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}

.lms-table th {
    background: var(--lms-surface-alt);
    padding: 10px 16px;
    text-align: left;
    font-weight: 600;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-secondary);
    border-bottom: 1px solid var(--lms-border);
}

.lms-table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border-light);
    vertical-align: middle;
}

.lms-table tbody tr:hover { background: var(--lms-surface-alt); }
.lms-table tbody tr:last-child td { border-bottom: none; }

.lms-row-highlight { background: var(--lms-accent-soft) !important; }

/* ===========================================
   BADGES
   =========================================== */
.lms-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--lms-radius-full);
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.lms-badge-success { background: var(--lms-success-light); color: #16a34a; }
.lms-badge-danger { background: var(--lms-danger-light); color: var(--lms-danger); }
.lms-badge-warning { background: var(--lms-warning-light); color: #b45309; }
.lms-badge-info { background: var(--lms-info-light); color: #0891b2; }
.lms-badge-secondary { background: var(--lms-surface-alt); color: var(--lms-text-secondary); }
.lms-badge-primary { background: var(--lms-accent-light); color: var(--lms-accent); }

/* ===========================================
   FLASH BANNER (fixed overlay – used by flashHtml())
   =========================================== */
.lms-flash-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9990;
    padding: 14px 24px;
    font-size: .93rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
    cursor: pointer;
}

/* Corner toast for Mark Complete unlock (must NOT use .lms-flash-banner) */
.lms-unlock-toast {
    position: fixed;
    top: auto;
    left: auto;
    right: 20px;
    bottom: 20px;
    z-index: 10000;
    max-width: min(340px, calc(100vw - 40px));
    padding: 12px 16px;
    border-radius: 10px;
    background: #f0fdf4;
    border-left: 4px solid #16a34a;
    color: #15803d;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.4;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    transition: opacity .35s ease, transform .35s ease;
}
.lms-unlock-toast--hide {
    opacity: 0;
    transform: translateY(8px);
}
[dir="rtl"] .lms-unlock-toast {
    right: auto;
    left: 20px;
    border-left: none;
    border-right: 4px solid #16a34a;
}

.lesson-learn-path {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 16px;
    background: #f8fafc;
    border-bottom: 1px solid var(--lms-border);
    font-size: .75rem;
}
.lesson-learn-path span {
    padding: 4px 10px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #64748b;
    font-weight: 600;
}
.lesson-learn-path span.active {
    background: #dbeafe;
    color: #1d4ed8;
    cursor: pointer;
}
.lesson-learn-path span.done {
    background: #d1fae5;
    color: #047857;
}

.lms-learn-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;
    background: rgba(15, 23, 42, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.lms-learn-modal[hidden] { display: none !important; }
.lms-learn-modal-card {
    background: #fff;
    border-radius: 14px;
    padding: 22px;
    width: min(440px, 100%);
    box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.lms-learn-modal-card--wide { width: min(560px, 100%); }
.lms-learn-modal-card h3 { margin: 0 0 8px; }
.lms-learn-prompt { font-size: 1rem; margin: 12px 0; color: #0f172a; }
.lms-learn-feedback { margin: 10px 0 0; font-weight: 600; }
.lms-learn-steps {
    margin: 8px 0 0;
    padding: 10px;
    background: #f8fafc;
    border-radius: 8px;
    white-space: pre-wrap;
    font-family: inherit;
    font-size: .85rem;
    color: #334155;
}
.lms-learn-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}
.lms-exit-item { margin: 12px 0; }
.lms-exit-item label { display: block; margin-bottom: 6px; font-size: .9rem; }

.lms-dash-review-list { list-style: none; margin: 0; padding: 0; }
.lms-dash-review-list li {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--lms-border-light);
}
.lms-dash-review-list li:last-child { border-bottom: 0; }
.lms-dash-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    flex-shrink: 0;
}
.lms-mastery-chips {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 4px;
    flex-wrap: wrap;
}
.lms-mastery-chip {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem;
    background: #e2e8f0;
    color: #64748b;
}
.lms-mastery-chip.is-done {
    background: #d1fae5;
    color: #047857;
}
.lms-mastery-pct {
    font-size: .75rem;
    font-weight: 700;
    color: var(--lms-text-secondary);
    margin-inline-start: 4px;
}
.lms-practice-example {
    background: #f8fafc;
    border-left: 3px solid #3b82f6;
    padding: 10px 12px;
    margin-bottom: 12px;
    border-radius: 6px;
    font-size: .9rem;
}
.lesson-auto-status {
    font-size: .75rem;
    color: var(--lms-text-secondary);
    max-width: 220px;
}
.lms-quiz-teach-box {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff7ed;
    border-left: 3px solid #f59e0b;
    color: #9a3412;
    font-size: .875rem;
}

/* ===========================================
   ALERTS (inline – used in forms, pages)
   =========================================== */
.lms-alert {
    padding: 14px 18px;
    border-radius: var(--lms-radius-sm);
    font-size: .875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.lms-alert-success { background: #f0fdf4; color: #15803d; border-left: 4px solid #16a34a; }
.lms-alert-danger, .lms-alert-error { background: #fef2f2; color: #991b1b; border-left: 4px solid #ef4444; }
.lms-alert-warning { background: #fffbeb; color: #92400e; border-left: 4px solid #f59e0b; }
.lms-alert-info { background: #eff6ff; color: #1e40af; border-left: 4px solid #3b82f6; }

.lms-alert .lms-alert-close {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    opacity: .5;
}

/* ===========================================
   FILTER TABS
   =========================================== */
.lms-filter-tabs {
    display: flex;
    gap: 4px;
    background: var(--lms-surface);
    padding: 6px;
    border-radius: var(--lms-radius);
    border: 1px solid var(--lms-border);
    flex-wrap: wrap;
}

.lms-filter-tabs a {
    padding: 7px 16px;
    border-radius: var(--lms-radius-sm);
    font-size: .8125rem;
    font-weight: 500;
    color: var(--lms-text-secondary);
    transition: all var(--lms-transition);
}

.lms-filter-tabs a:hover { background: var(--lms-surface-alt); }

.lms-filter-tabs a.active {
    background: var(--lms-accent);
    color: #fff;
}

/* ===========================================
   GRIDS
   =========================================== */
.lms-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.lms-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.lms-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* ===========================================
   DETAIL CARDS (for integrity, admissions)
   =========================================== */
.lms-detail-card {
    border-bottom: 1px solid var(--lms-border-light);
    padding: 20px;
    transition: background .15s;
}

.lms-detail-card:hover { background: var(--lms-surface-alt); }
.lms-detail-card:last-child { border-bottom: none; }
.lms-detail-header a { color: var(--lms-accent); }
.lms-detail-header a:hover { text-decoration: underline; }

.lms-detail-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.lms-detail-body {
    font-size: .875rem;
    color: var(--lms-text-secondary);
    line-height: 1.7;
}

.lms-detail-body p { margin-bottom: 4px; }
.lms-detail-body strong { color: var(--lms-text); }

.lms-detail-actions {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--lms-border-light);
}

/* ===========================================
   PROGRESS BAR
   =========================================== */
.lms-progress-bar {
    width: 100%;
    height: 8px;
    background: var(--lms-surface-alt);
    border-radius: 4px;
    overflow: hidden;
}

.lms-progress-fill {
    height: 100%;
    background: var(--lms-accent);
    border-radius: 4px;
    transition: width .3s ease;
}

/* ===========================================
   EMPTY STATE
   =========================================== */
.lms-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--lms-text-muted);
    font-size: .875rem;
}

.lms-text-muted { color: var(--lms-text-muted); }
.lms-text-success { color: var(--lms-success); }
.lms-text-danger { color: var(--lms-danger); }

/* ===========================================
   PAGINATION
   =========================================== */
.lms-pagination {
    display: flex;
    align-items: center;
    gap: 4px;
    justify-content: center;
    padding: 16px;
}

.lms-pagination a,
.lms-pagination span {
    padding: 6px 12px;
    border-radius: var(--lms-radius-sm);
    font-size: .8125rem;
    font-weight: 500;
    color: var(--lms-text-secondary);
    border: 1px solid var(--lms-border);
}

.lms-pagination a:hover { background: var(--lms-surface-alt); }
.lms-pagination .active { background: var(--lms-accent); color: #fff; border-color: var(--lms-accent); }
.lms-pagination .disabled { opacity: .4; pointer-events: none; }

/* ===========================================
   CHAT INTERFACE (Student Portal)
   =========================================== */
.lms-chat-container {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--lms-topbar-h) - 56px);
    background: var(--lms-surface);
    border-radius: var(--lms-radius);
    border: 1px solid var(--lms-border);
    overflow: hidden;
}

.lms-chat-header {
    padding: 14px 20px;
    border-bottom: 1px solid var(--lms-border);
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--lms-surface);
}

.lms-chat-header h4 { font-size: .9375rem; font-weight: 600; }

.lms-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    scrollbar-gutter: stable;
    box-sizing: border-box;
}

.lms-chat-msg {
    display: flex;
    gap: 12px;
    max-width: min(85%, calc(100% - 12px));
    min-width: 0;
    box-sizing: border-box;
}

.lms-chat-msg.user { align-self: flex-end; flex-direction: row-reverse; }
.lms-chat-msg.ai { align-self: flex-start; }

.lms-chat-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 600;
    flex-shrink: 0;
}

.lms-chat-msg.ai .lms-chat-avatar { background: var(--lms-accent-light); color: var(--lms-accent); }
.lms-chat-msg.user .lms-chat-avatar { background: var(--lms-brand); color: #fff; }

.lms-chat-bubble {
    padding: 12px 16px;
    border-radius: 12px;
    font-size: .875rem;
    line-height: 1.7;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    box-sizing: border-box;
}

.lms-chat-msg.ai .lms-chat-bubble {
    background: var(--lms-surface-alt);
    border-bottom-left-radius: 4px;
}

/* Vertical arithmetic (45 / + 23 / ----) — monospace, place values lined up */
.lms-math-stack,
.lms-chat-bubble pre.lms-math-stack,
.lesson-text pre.lms-math-stack {
    font-family: ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace;
    font-variant-numeric: tabular-nums;
    font-size: 1.05em;
    line-height: 1.35;
    white-space: pre;
    direction: ltr;
    unicode-bidi: isolate;
    text-align: left;
    display: inline-block;
    margin: 10px 0;
    padding: 10px 14px;
    border-radius: 8px;
    border: 1px solid var(--lms-border, #e2e8f0);
    background: rgba(255, 255, 255, 0.65);
    color: inherit;
    overflow-x: auto;
    max-width: 100%;
    box-sizing: border-box;
}
.lms-chat-msg.user .lms-chat-bubble .lms-math-stack {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.25);
    color: inherit;
}
.lesson-text pre.lms-math-stack {
    background: var(--lms-surface-alt, #f1f5f9);
    color: var(--lms-text, #0f172a);
}

/* Urdu (Nastaliq) AI responses — Nastaliq reads small at Latin sizes */
.lms-chat-bubble.urdu,
.lms-chat-bubble[lang="ur"] {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    direction: rtl;
    text-align: right;
    font-size: 1.15rem;
    line-height: 2.45;
    /* Nastaliq dots need horizontal room — avoid clipping at bubble edge */
    padding-inline: 18px 22px;
    padding-block: 16px 18px;
    overflow: visible;
}

/* English (or mixed) bubbles must keep LTR punctuation even inside RTL pages */
html[dir="rtl"] .lms-chat-bubble:not(.urdu):not([lang="ur"]) {
    direction: ltr;
    text-align: left;
    unicode-bidi: isolate;
}

.lms-chat-msg.user .lms-chat-bubble {
    background: var(--lms-accent);
    color: #fff;
    border-bottom-right-radius: 4px;
}

.lms-chat-input-area {
    padding: 16px 20px;
    border-top: 1px solid var(--lms-border);
    display: flex;
    gap: 10px;
    background: var(--lms-surface);
}

.lms-chat-input-area textarea {
    flex: 1;
    padding: 10px 14px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    font-family: inherit;
    font-size: .875rem;
    resize: none;
    min-height: 44px;
    max-height: 120px;
}

.lms-chat-input-area textarea:focus {
    outline: none;
    border-color: var(--lms-accent);
}

.lms-chat-send {
    padding: 10px 18px;
    background: var(--lms-accent);
    color: #fff;
    border: none;
    border-radius: var(--lms-radius-sm);
    cursor: pointer;
    font-weight: 500;
    transition: background var(--lms-transition);
    align-self: end;
}

.lms-chat-send:hover { background: var(--lms-accent-hover); }

.lms-chat-typing {
    display: flex;
    gap: 4px;
    padding: 8px 14px;
    background: var(--lms-surface-alt);
    border-radius: 12px;
    width: fit-content;
}

.lms-chat-typing span {
    width: 6px;
    height: 6px;
    background: var(--lms-text-muted);
    border-radius: 50%;
    animation: lmsBounce .6s infinite alternate;
}

.lms-chat-typing span:nth-child(2) { animation-delay: .2s; }
.lms-chat-typing span:nth-child(3) { animation-delay: .4s; }

@keyframes lmsBounce {
    to { opacity: .3; transform: translateY(-4px); }
}

/* ===========================================
   QUIZ INTERFACE
   =========================================== */
.lms-quiz-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: var(--lms-surface);
    border-bottom: 1px solid var(--lms-border);
}

.lms-quiz-timer {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--lms-brand);
    font-variant-numeric: tabular-nums;
}

.lms-quiz-timer.warning { color: var(--lms-danger); }

.lms-quiz-progress-text {
    font-size: .8125rem;
    color: var(--lms-text-muted);
}

.lms-quiz-question {
    padding: 24px 20px;
}

.lms-quiz-question h3 {
    font-size: 1.0625rem;
    margin-bottom: 16px;
    line-height: 1.6;
}

.lms-quiz-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lms-quiz-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    cursor: pointer;
    transition: all var(--lms-transition);
    font-size: .9375rem;
}

.lms-quiz-option:hover {
    border-color: var(--lms-accent);
    background: var(--lms-accent-soft);
}

.lms-quiz-option.selected {
    border-color: var(--lms-accent);
    background: var(--lms-accent-light);
}

.lms-quiz-option.correct {
    border-color: var(--lms-success);
    background: var(--lms-success-light);
}

.lms-quiz-option.incorrect {
    border-color: var(--lms-danger);
    background: var(--lms-danger-light);
}

/* Urdu (Noto Nastaliq) quiz styling — dir="rtl" is already on <html> for Urdu students */
.urdu-quiz .lms-quiz-question h3,
.urdu-quiz .lms-detail-card p,
.urdu-quiz .lms-quiz-option span {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: 1.1rem;
    line-height: 2.5;
}
.urdu-quiz input[type="text"].lms-input,
.urdu-quiz textarea.lms-input {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: 1.1rem;
    line-height: 2.4;
}

/* ===========================================
   STUDENT PORTAL — LESSON VIEWER (Redesigned)
   =========================================== */
.lesson-viewer {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--lms-topbar-h));
    margin: -28px -28px -28px;
    background: var(--lms-bg);
}

/* ---- Lesson Top Bar ---- */
.lesson-topbar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 20px;
    height: auto;
    min-height: 52px;
    background: var(--lms-surface);
    border-bottom: 1px solid var(--lms-border);
    z-index: 10;
}

.lesson-topbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex-shrink: 0;
}

.lesson-back-btn {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--lms-radius-sm);
    color: var(--lms-text-secondary);
    transition: all var(--lms-transition);
    text-decoration: none;
}

.lesson-back-btn:hover {
    background: var(--lms-surface-alt);
    color: var(--lms-text);
}

.lesson-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .8125rem;
    color: var(--lms-text-muted);
    min-width: 0;
}

.lesson-breadcrumb-course {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

.lesson-breadcrumb-sep {
    font-size: .625rem;
    opacity: .5;
}

.lesson-breadcrumb-current {
    color: var(--lms-text-secondary);
    font-weight: 500;
    white-space: nowrap;
}

.lesson-topbar-center {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 320px;
    margin: 0 auto;
}

.lesson-progress-bar {
    flex: 1;
    height: 4px;
    background: var(--lms-border);
    border-radius: 4px;
    overflow: hidden;
}

.lesson-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--lms-brand), var(--lms-accent));
    border-radius: 4px;
    transition: width .4s ease;
}

.lesson-progress-label {
    font-size: .6875rem;
    font-weight: 600;
    color: var(--lms-accent);
    white-space: nowrap;
}

.lesson-topbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.lesson-complete-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    border: none;
    border-radius: var(--lms-radius-full);
    background: var(--lms-success);
    color: #fff;
    font-size: .8125rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--lms-transition);
}

.lesson-complete-btn:hover {
    background: #059669;
    box-shadow: var(--lms-shadow);
}

.lesson-complete-btn:disabled,
.lesson-complete-btn[disabled] {
    background: #94a3b8;
    color: #fff;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}
.lesson-complete-btn:disabled:hover,
.lesson-complete-btn[disabled]:hover {
    background: #94a3b8;
    box-shadow: none;
}

.lesson-complete-locked {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    max-width: min(520px, 70vw);
    padding-block: 2px;
}
.lesson-complete-locked-hint {
    display: block;
    font-size: .72rem;
    line-height: 1.35;
    color: var(--lms-text-muted);
    text-align: left;
    white-space: normal;
    overflow: visible;
    max-width: 260px;
}

.lesson-complete-btn--retry {
    background: var(--lms-warning, #f59e0b);
}
.lesson-complete-btn--retry:hover {
    background: #d97706;
    box-shadow: var(--lms-shadow);
}

/* ---- Needs-Review Banner ---- */
.lesson-needs-review-banner {
    display: flex;
    gap: 10px;
    align-items: center;
    background: #fffbeb;
    border-left: 4px solid #f59e0b;
    padding: 12px 20px;
    color: #92400e;
    font-size: .93rem;
    font-weight: 600;
    border-radius: 6px;
    flex-shrink: 0;
}

.lesson-completed-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: var(--lms-radius-full);
    background: var(--lms-success-light);
    color: var(--lms-success);
    font-size: .8125rem;
    font-weight: 600;
}

/* ---- Lesson Body (content + panel) ---- */
/* Mobile-first: one column by default. Desktop adds the AI panel column. */
.lesson-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: 1;
    min-height: 0;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 1025px) {
    .lesson-body {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
    }
}

/* ---- Content Area ---- */
.lesson-content-area {
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
    max-width: 100%;
}

.lesson-article {
    flex: 1;
    padding: 40px 48px;
    max-width: 100%;
}

.lesson-header {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--lms-border);
}

.lesson-header h1 {
    font-size: 1.625rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.3;
    margin-bottom: 12px;
}

.lesson-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.lesson-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: .8125rem;
    color: var(--lms-text-muted);
}

.lesson-meta-item i { font-size: .75rem; }
.lesson-meta-done { color: var(--lms-success); font-weight: 500; }
.lesson-meta-progress { color: var(--lms-accent); font-weight: 500; }

/* Lesson text typography */
.lesson-text {
    font-size: .9375rem;
    line-height: 1.85;
    color: var(--lms-text);
    user-select: none;
    -webkit-user-select: none;
}

.lesson-text.urdu {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: 1.15rem;
    line-height: 2.6;
}
.lesson-text.urdu h2,
.lesson-text.urdu h3,
.lesson-text.urdu h4 {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    letter-spacing: 0;
}

.lesson-text h2 {
    font-size: 1.3rem;
    font-weight: 700;
    margin: 36px 0 14px;
    color: var(--lms-brand);
    letter-spacing: -.01em;
}

.lesson-text h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 28px 0 10px;
    color: var(--lms-text);
}

.lesson-text h4 {
    font-size: 1rem;
    font-weight: 600;
    margin: 24px 0 8px;
}

.lesson-text p { margin-bottom: 16px; }

.lesson-text ul,
.lesson-text ol {
    margin: 12px 0 16px;
    padding-left: 24px;
}

.lesson-text li { margin-bottom: 6px; }

.lesson-text blockquote {
    margin: 20px 0;
    padding: 16px 20px;
    border-left: 3px solid var(--lms-accent);
    background: var(--lms-accent-soft);
    border-radius: 0 var(--lms-radius-sm) var(--lms-radius-sm) 0;
    color: var(--lms-text-secondary);
    font-style: italic;
}

.lesson-text pre {
    margin: 16px 0;
    padding: 16px;
    background: var(--lms-brand-dark);
    color: #e2e8f0;
    border-radius: var(--lms-radius);
    overflow-x: auto;
    font-size: .8125rem;
    line-height: 1.6;
}

.lesson-text code {
    background: var(--lms-surface-alt);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: .85em;
}

.lesson-text pre code {
    background: none;
    padding: 0;
}

.lesson-text img {
    max-width: 100%;
    border-radius: var(--lms-radius);
    margin: 16px 0;
}

.lesson-text table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: .875rem;
}

.lesson-text table th,
.lesson-text table td {
    border: 1px solid var(--lms-border);
    padding: 10px 14px;
    text-align: left;
}

.lesson-text table th {
    background: var(--lms-surface-alt);
    font-weight: 600;
}

/* ---- Lesson Navigation ---- */
.lesson-nav {
    display: flex;
    justify-content: space-between;
    padding: 24px 48px 40px;
    gap: 16px;
}

.lesson-nav-left, .lesson-nav-right { flex: 1; }
.lesson-nav-right { text-align: right; }

.lesson-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    text-decoration: none;
    color: var(--lms-text);
    transition: all var(--lms-transition);
    max-width: 300px;
}

.lesson-nav-btn:hover {
    border-color: var(--lms-accent);
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-1px);
}

.lesson-nav-btn small {
    display: block;
    font-size: .6875rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
    margin-bottom: 2px;
}

.lesson-nav-btn span {
    display: block;
    font-size: .875rem;
    font-weight: 500;
}

.lesson-nav-btn i {
    color: var(--lms-accent);
    font-size: .875rem;
}

.lesson-nav-next { flex-direction: row; margin-left: auto; }
.lesson-nav-next div { text-align: right; }

/* ---- Practice upload box ---- */
.lesson-practice-section {
    box-sizing: border-box;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 28px 0 8px;
    padding: 20px 22px;
    border: 2px dashed var(--lms-accent);
    border-radius: 12px;
    background: linear-gradient(135deg, #f8f9fe 0%, #eef1fb 100%);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
}

.lesson-practice-section--approved {
    border-style: solid;
    border-color: #28a745;
    background: #f0fff4;
}

.lesson-practice-section--pending {
    border-color: var(--lms-warning);
    background: linear-gradient(135deg, #fffdf5 0%, #fff8e1 100%);
}

.lesson-practice-section--rejected {
    border-color: var(--lms-danger);
    background: linear-gradient(135deg, #fff8f8 0%, #fdebec 100%);
}

.lesson-practice-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px;
}

.lesson-practice-head h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--lms-primary);
    line-height: 1.3;
}

.lesson-practice-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e3f2fd;
    color: var(--lms-primary);
}

.lesson-practice-section--approved .lesson-practice-icon {
    background: #d4edda;
    color: #28a745;
}

.lesson-practice-section--pending .lesson-practice-icon {
    background: #fff3cd;
    color: var(--lms-warning);
}

.lesson-practice-section--rejected .lesson-practice-icon {
    background: #f8d7da;
    color: var(--lms-danger);
}

.lesson-practice-msg {
    margin: 0 0 14px;
    font-size: .9rem;
    line-height: 1.55;
    color: var(--lms-text-muted);
}

.lesson-practice-msg--danger {
    color: var(--lms-danger);
}

.lesson-practice-section--approved .lesson-practice-msg {
    color: #155724;
    margin-bottom: 0;
}

.lesson-practice-note {
    margin: 6px 0 0;
    font-size: .82rem;
    color: #888;
}

.lesson-practice-callout {
    margin: 0 0 12px;
    padding: 8px 12px;
    font-size: .85rem;
    border-radius: 6px;
    background: var(--lms-bg);
    border-inline-start: 3px solid var(--lms-warning);
}

.lesson-practice-callout--danger {
    border-inline-start-color: var(--lms-danger);
}

.lesson-practice-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.lesson-practice-file {
    display: block;
    width: 100%;
    box-sizing: border-box;
    border: 2px dashed var(--lms-border);
    border-radius: 10px;
    padding: 14px 16px;
    cursor: pointer;
    background: #fff;
    transition: border-color .2s, background .2s;
}

.lesson-practice-file:hover,
.lesson-practice-file:focus-within {
    border-color: var(--lms-accent);
    background: #f0f4ff;
}

.lesson-practice-file input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: .88rem;
    cursor: pointer;
}

.lesson-practice-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.lesson-practice-actions .lms-btn {
    border-radius: 8px;
    padding: 10px 24px;
    font-size: .9rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.lesson-practice-hint {
    font-size: .78rem;
    color: var(--lms-text-muted);
}

.lesson-practice-feedback {
    margin-top: 10px;
}

/* ---- Sidebar Panel ---- */
.lesson-panel {
    display: none;
    flex-direction: column;
    border-left: 1px solid var(--lms-border);
    background: var(--lms-surface);
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.lesson-panel-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

@media (min-width: 1025px) {
    .lesson-panel {
        display: flex;
    }
    .lesson-chat-fab {
        display: none !important;
    }
}

.lesson-panel-tabs {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--lms-border);
    flex-shrink: 0;
}

.lesson-panel-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 14px 12px;
    font-size: .8125rem;
    font-weight: 500;
    color: var(--lms-text-muted);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: all var(--lms-transition);
}

.lesson-panel-tab:hover { color: var(--lms-text); background: var(--lms-surface-alt); }
.lesson-panel-tab.active { color: var(--lms-accent); border-bottom-color: var(--lms-accent); }
.lesson-panel-tab i { font-size: .75rem; }

.lesson-panel-close {
    display: none;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 48px;
    min-height: 48px;
    margin: 0;
    padding: 0;
    border: none;
    border-inline-start: 1px solid var(--lms-border);
    background: transparent;
    color: var(--lms-text-secondary);
    cursor: pointer;
    font-size: 1.1rem;
}

.lesson-panel-close:hover {
    background: var(--lms-danger-light);
    color: var(--lms-danger);
}

/* ---- Chat Panel ---- */
.lesson-chat-panel {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.lesson-chat-teach-progress {
    font-size: .72rem;
    color: var(--lms-text-secondary);
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--lms-bg);
    border: 1px solid var(--lms-border);
    white-space: nowrap;
}

.lesson-chat-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    font-size: .75rem;
    color: var(--lms-text-muted);
    border-bottom: 1px solid var(--lms-border-light);
    gap: 8px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.lesson-chat-turns { white-space: nowrap; }

.lesson-auto-learn {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.lesson-auto-status {
    font-size: .75rem;
    color: var(--lms-text-secondary);
}

/* Hidden auto-click targets — .lms-btn display would otherwise override [hidden] */
.lesson-auto-triggers {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    pointer-events: none;
}

.lesson-auto-triggers .lms-btn {
    display: none !important;
}

.lesson-chat-messages {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    scrollbar-gutter: stable;
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    max-width: 100%;
}

/* Flex wrapper around bubble + feedback — must shrink inside narrow panel */
.lesson-chat-messages .lms-chat-msg > div:not(.lms-chat-avatar) {
    min-width: 0;
    max-width: 100%;
    flex: 1 1 0;
}

.lesson-chat-messages .lms-chat-msg.ai {
    max-width: 100%;
    width: 100%;
}

.lesson-chat-messages .lms-chat-bubble {
    overflow-x: clip;
    max-width: 100%;
}

.lesson-chat-messages .lms-chat-text {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

#notebookTip {
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
    box-sizing: border-box;
}

.lesson-chat-composer {
    flex-shrink: 0;
    border-top: 1px solid var(--lms-border);
    background: var(--lms-surface);
}

.lesson-chat-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 16px 0;
    max-width: 100%;
    min-width: 0;
}

.lesson-chat-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border: 1px solid var(--lms-border);
    border-radius: 999px;
    background: var(--lms-bg);
    color: var(--lms-text-muted);
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
    max-width: 100%;
    white-space: nowrap;
}

.lesson-chat-chip:hover:not(:disabled) {
    border-color: var(--lms-accent);
    color: var(--lms-primary);
    background: var(--lms-surface);
}

.lesson-chat-composer.is-busy .lesson-chat-chip {
    opacity: .45;
    pointer-events: none;
}

.lesson-chat-input {
    padding: 14px 16px;
    border-top: none;
    display: flex;
    gap: 8px;
    background: var(--lms-surface);
    flex-shrink: 0;
    position: relative;
}

.lms-tts-tap-hint {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: calc(100% + 8px);
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid var(--lms-accent);
    border-radius: var(--lms-radius);
    background: var(--lms-brand);
    color: #fff;
    font-size: .8125rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0, 26, 51, .2);
}

.lms-tts-tap-hint[hidden] { display: none !important; }
.lms-tts-tap-hint i { color: var(--lms-accent); }

.lesson-chat-input textarea {
    flex: 1;
    min-width: 0;
    padding: 10px 14px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-full);
    font-family: inherit;
    font-size: .8125rem;
    line-height: 1.35;
    background: var(--lms-surface-alt);
    resize: none;
    height: 40px;
    min-height: 40px;
    max-height: 100px;
    overflow-x: hidden;
    overflow-y: hidden; /* no idle scrollbar / spinner when placeholder wraps */
    transition: border-color var(--lms-transition);
    box-sizing: border-box;
}

.lesson-chat-input textarea.is-multiline {
    overflow-y: auto;
}

.lesson-chat-input textarea:focus {
    outline: none;
    border-color: var(--lms-accent);
    background: var(--lms-surface);
}

.lesson-chat-send {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--lms-accent);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8125rem;
    transition: all var(--lms-transition);
    flex-shrink: 0;
    align-self: flex-end;
}

.lesson-chat-send:hover { background: var(--lms-accent-hover); transform: scale(1.05); }
.lesson-chat-send:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* ---- Outline Panel ---- */
.lesson-outline-panel {
    overflow-y: auto;
    flex: 1;
    padding: 8px;
}

.lesson-outline-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lesson-outline-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: var(--lms-radius-sm);
    text-decoration: none;
    color: var(--lms-text-secondary);
    font-size: .8125rem;
    transition: all var(--lms-transition);
}

.lesson-outline-item:hover { background: var(--lms-surface-alt); color: var(--lms-text); }

.lesson-outline-item.locked {
    opacity: .45;
    cursor: not-allowed;
}
.lesson-outline-item.locked:hover { background: transparent; color: var(--lms-text-secondary); }

.lesson-outline-item.active {
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    font-weight: 600;
}

.lesson-outline-item.completed .lesson-outline-num {
    background: var(--lms-success-light);
    color: var(--lms-success);
}

.lesson-outline-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .6875rem;
    font-weight: 600;
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
    flex-shrink: 0;
}

.lesson-outline-item.active .lesson-outline-num {
    background: var(--lms-accent);
    color: #fff;
}

.lesson-outline-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lesson-outline-active-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--lms-accent);
    flex-shrink: 0;
}

/* ---- Mobile Chat FAB ---- */
.lesson-chat-fab {
    display: none;
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--lms-accent);
    color: #fff;
    border: none;
    font-size: 1.25rem;
    box-shadow: var(--lms-shadow-lg);
    cursor: pointer;
    z-index: 50;
    transition: all var(--lms-transition);
}

.lesson-chat-fab:hover { transform: scale(1.08); }
.lesson-chat-fab.active { background: var(--lms-danger); }
.lesson-chat-fab.active i::before { content: "\f00d"; }

/* ============================================
   STUDENT COURSE CARD
   =========================================== */
.lms-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.lms-course-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    overflow: hidden;
    transition: box-shadow var(--lms-transition);
}

.lms-course-card-thumb {
    height: 120px;
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-text-muted);
    font-size: 2rem;
    overflow: hidden;
}

.lms-course-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lms-course-header-thumb {
    width: 120px;
    height: 90px;
    border-radius: var(--lms-radius-sm);
    overflow: hidden;
    flex-shrink: 0;
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-text-muted);
    font-size: 1.75rem;
}

.lms-course-header-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lms-lang-toggle {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
    text-decoration: none;
    padding: 6px 10px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    margin-inline-end: 8px;
}

.lms-lang-toggle:hover {
    color: var(--lms-accent);
    border-color: var(--lms-accent);
}

.lms-dashboard-stats {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

.lms-stat-card-link:hover {
    box-shadow: var(--lms-shadow-md);
}

.lms-lesson-resources {
    margin-bottom: 24px;
    padding: 16px 20px;
    background: var(--lms-surface-alt);
    border-radius: var(--lms-radius);
    border: 1px solid var(--lms-border-light);
}

.lms-lesson-resources h3 {
    font-size: 1rem;
    margin: 0 0 12px;
}

.lms-lesson-resource {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 0;
    border-top: 1px solid var(--lms-border-light);
    font-size: .9375rem;
    line-height: 1.6;
}

.lms-lesson-resource:first-of-type {
    border-top: none;
    padding-top: 0;
}

.lms-lesson-resource--scripture blockquote {
    margin: 0;
    font-style: italic;
    border-inline-start: 3px solid var(--lms-accent);
    padding-inline-start: 12px;
}

.lms-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
    cursor: pointer;
    font-size: .9375rem;
}

.lms-check-row input {
    margin-top: 3px;
}

.lms-course-card:hover { box-shadow: var(--lms-shadow-md); }

.lms-course-card-top {
    padding: 20px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-course-card-top h4 {
    font-size: 1rem;
    margin-bottom: 4px;
}

.lms-course-card-top p {
    font-size: .8125rem;
    color: var(--lms-text-muted);
}

.lms-course-card-body {
    padding: 16px 20px;
}

.lms-course-card-footer {
    padding: 12px 20px;
    border-top: 1px solid var(--lms-border-light);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* ===========================================
   STUDENT COURSES LIST
   =========================================== */
.lms-courses { width: 100%; }

.lms-courses-hero { margin-bottom: 24px; }

.lms-courses-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.lms-courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
}

.lms-courses-card {
    display: flex;
    flex-direction: column;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg, 14px);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s, border-color .15s;
}

.lms-courses-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, .25);
}

.lms-courses-card.is-complete {
    border-color: rgba(16, 185, 129, .35);
}

.lms-courses-card-media {
    position: relative;
    height: 148px;
    background: linear-gradient(135deg, #e0e7ff, #dbeafe);
    overflow: hidden;
}

.lms-courses-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}

.lms-courses-card:hover .lms-courses-card-media img {
    transform: scale(1.03);
}

.lms-courses-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: rgba(37, 99, 235, .35);
}

.lms-courses-card-pct {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 5px 10px;
    border-radius: var(--lms-radius-full);
    background: rgba(15, 23, 42, .72);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    backdrop-filter: blur(4px);
}

.lms-courses-card.is-complete .lms-courses-card-pct {
    background: rgba(16, 185, 129, .9);
}

.lms-courses-card-body {
    flex: 1;
    padding: 16px 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lms-courses-card-program {
    margin: 0;
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
}

.lms-courses-card-program i { margin-inline-end: 4px; opacity: .8; }

.lms-courses-card-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--lms-text);
}

.lms-courses-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lms-courses-card-desc {
    margin: 0;
    font-size: .8125rem;
    line-height: 1.55;
    color: var(--lms-text-secondary);
}

.lms-courses-card-progress {
    margin-top: auto;
    padding-top: 10px;
}

.lms-courses-card-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    font-size: .75rem;
    color: var(--lms-text-muted);
    font-weight: 500;
}

.lms-courses-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-top: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-accent);
}

.lms-courses-card-foot i {
    transition: transform .15s;
}

.lms-courses-card:hover .lms-courses-card-foot i {
    transform: translateX(4px);
}

.lms-courses-empty {
    text-align: center;
    padding: 48px 24px;
}

.lms-courses-empty i {
    font-size: 2.5rem;
    color: var(--lms-text-muted);
    opacity: .5;
    margin-bottom: 12px;
}

.lms-courses-empty h3 { margin: 0 0 8px; }
.lms-courses-empty p { margin: 0 0 20px; color: var(--lms-text-muted); }

@media (max-width: 960px) {
    .lms-courses-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-courses-grid { grid-template-columns: 1fr; }
}

/* ===========================================
   STUDENT GRADES
   =========================================== */
.lms-grades { width: 100%; }

.lms-grades-hero { margin-bottom: 24px; }

.lms-grades-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.lms-grades-courses {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.lms-grades-course-head {
    flex-wrap: wrap;
    align-items: flex-start;
}

.lms-grades-course-title h3 {
    margin: 0 0 8px;
}

.lms-grades-course-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lms-grades-course-overall {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}

.lms-grades-overall-ring {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
    font-weight: 700;
    flex-shrink: 0;
    border: 3px solid var(--lms-border);
}

.lms-grades-overall-ring--pass { background: #dcfce7; color: #15803d; border-color: #86efac; }
.lms-grades-overall-ring--mid { background: #fef3c7; color: #b45309; border-color: #fcd34d; }
.lms-grades-overall-ring--fail { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.lms-grades-overall-ring--none { background: var(--lms-surface); color: var(--lms-text-muted); }

.lms-grades-course-overall strong {
    display: block;
    margin-bottom: 4px;
    font-size: .9rem;
}

.lms-grades-course-overall p {
    margin: 0;
    font-size: .8125rem;
}

.lms-grades-section {
    padding: 0 0 8px;
}

.lms-grades-section h4 {
    margin: 0;
    padding: 14px 20px 10px;
    font-size: .875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--lms-text-secondary);
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-grades-section h4 i { color: var(--lms-accent); opacity: .85; }

.lms-grades-list {
    display: flex;
    flex-direction: column;
}

.lms-grades-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--lms-border-light);
    transition: background .15s;
}

.lms-grades-row:last-child { border-bottom: none; }
.lms-grades-row:hover { background: var(--lms-surface-alt); }

.lms-grades-row-body {
    flex: 1;
    min-width: 0;
}

.lms-grades-row-body strong {
    display: block;
    font-size: .875rem;
    margin-bottom: 3px;
    line-height: 1.35;
}

.lms-grades-row-body span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-grades-row-status {
    flex-shrink: 0;
}

.lms-grades-empty {
    text-align: center;
    padding: 48px 24px;
}

.lms-grades-empty i {
    font-size: 2.5rem;
    color: var(--lms-text-muted);
    opacity: .5;
    margin-bottom: 12px;
}

.lms-grades-empty h3 { margin: 0 0 20px; }

@media (max-width: 960px) {
    .lms-grades-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-grades-row { flex-wrap: wrap; }
    .lms-grades-row-status {
        width: auto;
        flex: 1 1 100%;
        margin-inline-start: 66px;
        box-sizing: border-box;
        max-width: 100%;
    }
}

/* ===========================================
   STUDENT STUDY PLAN
   =========================================== */
.lms-study { width: 100%; }

.lms-study-hero { margin-bottom: 24px; }

.lms-study-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.lms-study-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 24px;
    align-items: start;
}

.lms-study-main,
.lms-study-side { display: flex; flex-direction: column; gap: 20px; }

.lms-study-plan-head {
    flex-wrap: wrap;
    gap: 12px;
}

.lms-study-course-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
}

.lms-study-course-form .lms-input {
    width: auto;
    min-width: 160px;
    max-width: 220px;
    padding: 5px 32px 5px 10px;
    font-size: .8125rem;
}

.lms-study-plan-body {
    padding: 18px 20px 20px;
}

.lms-study-plan-course {
    margin: 0 0 14px;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
}

.lms-study-callout {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 16px;
    border-radius: var(--lms-radius);
    background: linear-gradient(135deg, #eff6ff, #f0fdf4);
    border: 1px solid rgba(37, 99, 235, .12);
}

.lms-study-callout i {
    color: var(--lms-accent);
    opacity: .7;
    margin-top: 3px;
}

.lms-study-callout p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.65;
    color: var(--lms-text);
}

.lms-study-strengths {
    margin-bottom: 14px;
}

.lms-study-strengths strong {
    display: block;
    margin-bottom: 8px;
    font-size: .8125rem;
}

.lms-study-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lms-study-encourage {
    margin: 0 0 18px;
    padding: 12px 14px;
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface-alt);
    font-size: .875rem;
    font-style: italic;
    color: var(--lms-text-secondary);
}

.lms-study-encourage i {
    color: #ec4899;
    margin-inline-end: 6px;
}

.lms-study-timeline {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

.lms-study-day {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 14px;
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius);
    background: var(--lms-surface);
}

.lms-study-day-num {
    flex-shrink: 0;
    min-width: 56px;
    padding: 6px 10px;
    border-radius: var(--lms-radius-full);
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    font-size: .7rem;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
}

.lms-study-day-body p {
    margin: 0 0 6px;
    font-size: .875rem;
    line-height: 1.5;
}

.lms-study-day-body span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-study-review-list {
    border-top: 1px solid var(--lms-border-light);
    padding-top: 14px;
}

.lms-study-review-list h4 {
    margin: 0 0 10px;
    font-size: .875rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.lms-study-review-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 6px;
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface-alt);
    text-decoration: none;
    color: var(--lms-text);
    font-size: .8125rem;
    transition: background .15s, color .15s;
}

.lms-study-review-item:hover {
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
}

.lms-study-loading,
.lms-study-empty-success {
    text-align: center;
    padding: 40px 24px;
    color: var(--lms-text-muted);
}

.lms-study-loading i,
.lms-study-empty-success i {
    font-size: 2rem;
    margin-bottom: 10px;
    display: block;
}

.lms-study-empty-success i { color: var(--lms-success); }

.lms-study-weak-list {
    display: flex;
    flex-direction: column;
}

.lms-study-weak-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--lms-border-light);
    flex-wrap: wrap;
}

.lms-study-weak-row:last-child { border-bottom: none; }

.lms-study-weak-body {
    flex: 1;
    min-width: 160px;
}

.lms-study-weak-body strong {
    display: block;
    font-size: .875rem;
    margin-bottom: 3px;
}

.lms-study-weak-body span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-study-weak-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.lms-study-side .lms-dash-grade {
    flex-wrap: wrap;
}

.lms-study-side .lms-dash-grade .lms-badge {
    margin-left: auto;
}

@media (max-width: 1100px) {
    .lms-study-layout { grid-template-columns: 1fr; }
    .lms-study-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
}

@media (max-width: 960px) {
    .lms-study-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-study-side { grid-template-columns: 1fr; }
    .lms-study-course-form { width: 100%; }
    .lms-study-course-form .lms-input { flex: 1; min-width: 0; max-width: none; }
}

/* ===========================================
   STUDENT CONVERSATIONS
   =========================================== */
.lms-conv { width: 100%; }

.lms-conv-hero { margin-bottom: 24px; }

.lms-conv-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.lms-conv-stat-mode {
    font-size: .8rem !important;
    line-height: 1.2;
    word-break: break-word;
}

.lms-conv-toolbar {
    margin-bottom: 20px;
}

.lms-conv-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lms-conv-tabs a i {
    font-size: .7rem;
    opacity: .85;
}

.lms-conv-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lms-conv-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg, 14px);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s, border-color .15s;
}

.lms-conv-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, .25);
}

.lms-conv-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
}

.lms-conv-card-icon--oral_exam,
.lms-conv-card-icon--quiz { background: #ede9fe; color: #7c3aed; }
.lms-conv-card-icon--adaptive,
.lms-conv-card-icon--review { background: #fef3c7; color: #d97706; }
.lms-conv-card-icon--final_exam { background: #fce7f3; color: #db2777; }
.lms-conv-card-icon--teach { background: #dbeafe; color: #2563eb; }

.lms-conv-card-body {
    flex: 1;
    min-width: 0;
}

.lms-conv-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.lms-conv-card-top h3 {
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.35;
}

.lms-conv-card-top time {
    flex-shrink: 0;
    font-size: .75rem;
    color: var(--lms-text-muted);
    white-space: nowrap;
}

.lms-conv-card-course {
    margin: 0 0 6px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-conv-card-preview {
    margin: 0 0 10px;
    font-size: .8125rem;
    line-height: 1.5;
    color: var(--lms-text-secondary);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lms-conv-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-conv-card-go {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-text-muted);
    flex-shrink: 0;
    transition: background .15s, color .15s, transform .15s;
}

.lms-conv-card:hover .lms-conv-card-go {
    background: var(--lms-accent);
    color: #fff;
    transform: translateX(2px);
}

.lms-conv-empty {
    text-align: center;
    padding: 48px 24px;
}

.lms-conv-empty i {
    font-size: 2.5rem;
    color: var(--lms-text-muted);
    opacity: .5;
    margin-bottom: 12px;
    display: block;
}

.lms-conv-empty h3 { margin: 0 0 20px; }

.lms-conv-view-hero {
    margin-bottom: 20px;
    padding: 20px 22px;
    border-radius: var(--lms-radius-lg, 14px);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    box-shadow: 0 12px 40px rgba(15, 39, 68, .2);
}

.lms-conv-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    color: rgba(255,255,255,.9);
    text-decoration: none;
    font-size: .8125rem;
    font-weight: 500;
}

.lms-conv-back:hover { color: #fff; }

.lms-conv-view-head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 12px;
}

.lms-conv-view-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(255,255,255,.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.lms-conv-view-head h1 {
    margin: 0 0 6px;
    font-size: 1.25rem;
    font-weight: 700;
}

.lms-conv-view-head p {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: .8125rem;
    opacity: .9;
}

.lms-conv-view-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: .8125rem;
    opacity: .85;
}

.lms-conv-view-meta i { margin-inline-end: 6px; }

.lms-conv-chat-card {
    overflow: hidden;
}

.lms-conv-messages {
    max-height: 70vh;
    min-height: 320px;
    background: var(--lms-bg);
}

.lms-conv-msg-time {
    display: block;
    margin-top: 4px;
    font-size: .7rem;
    color: var(--lms-text-muted);
}

.lms-chat-msg.user .lms-conv-msg-time { text-align: right; }

.lms-conv-empty-msg {
    text-align: center;
    color: var(--lms-text-muted);
    padding: 40px 20px;
    margin: 0;
}

@media (max-width: 960px) {
    .lms-conv-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-conv-card { flex-wrap: wrap; }
    .lms-conv-card-go { margin-left: auto; }
    .lms-conv-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
}

/* ===========================================
   SHARED STUDENT PAGES (fees, messages, certs, profile)
   =========================================== */
.lms-page { width: 100%; }
.lms-page-hero { margin-bottom: 24px; }

.lms-page-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.lms-page-stat-sm {
    font-size: .85rem !important;
    line-height: 1.2;
}

.lms-page-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 24px;
    align-items: start;
}

.lms-page-main,
.lms-page-side { display: flex; flex-direction: column; gap: 20px; }

.lms-page-empty {
    text-align: center;
    padding: 48px 24px;
}

.lms-page-empty i {
    font-size: 2.5rem;
    color: var(--lms-text-muted);
    opacity: .5;
    margin-bottom: 12px;
    display: block;
}

.lms-page-empty h3 { margin: 0 0 8px; }
.lms-page-empty p { margin: 0 0 20px; color: var(--lms-text-muted); }

/* Fees */
.lms-fees-invoice-list { display: flex; flex-direction: column; gap: 0; }

.lms-fees-invoice {
    padding: 16px 20px;
    border-bottom: 1px solid var(--lms-border-light);
    border-left: 4px solid var(--lms-border);
}

.lms-fees-invoice:last-child { border-bottom: none; }
.lms-fees-invoice.is-paid { border-left-color: var(--lms-success); }
.lms-fees-invoice.is-overdue { border-left-color: var(--lms-danger); }
.lms-fees-invoice.is-pending { border-left-color: #f59e0b; }

.lms-fees-invoice-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.lms-fees-invoice-top strong { display: block; font-size: .9rem; }
.lms-fees-invoice-top span { font-size: .75rem; color: var(--lms-text-muted); }

.lms-fees-invoice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.lms-fees-invoice-grid small {
    display: block;
    font-size: .7rem;
    color: var(--lms-text-muted);
    margin-bottom: 2px;
}

.lms-fees-invoice-grid strong { font-size: .8125rem; }

.lms-fees-payment-list { display: flex; flex-direction: column; }

.lms-fees-payment-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-fees-payment-row:last-child { border-bottom: none; }

.lms-fees-payment-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #dcfce7;
    color: #16a34a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lms-fees-payment-body { flex: 1; min-width: 0; }
.lms-fees-payment-body strong { display: block; font-size: .9rem; }
.lms-fees-payment-body span { display: block; font-size: .75rem; color: var(--lms-text-muted); }

.lms-fees-pay { overflow: hidden; }
.lms-fees-pay-body {
    padding: 20px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.lms-fees-pay-lead {
    margin: 0;
    color: var(--lms-text-muted);
    font-size: .94rem;
    line-height: 1.55;
    max-width: 62ch;
}
.lms-fees-pay-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}
.lms-fees-pay-method {
    padding: 16px 18px;
    background: linear-gradient(180deg, #f8fbff 0%, #f1f5f9 100%);
    border: 1px solid #dbe4f0;
    border-radius: 12px;
}
.lms-fees-pay-method h4 {
    margin: 0 0 12px;
    font-size: .86rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #334155;
    display: flex;
    align-items: center;
    gap: 8px;
}
.lms-fees-pay-method h4 i {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e0ecff;
    color: var(--lms-accent, #2563eb);
    font-size: .85rem;
}
.lms-fees-pay-method dl { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.lms-fees-pay-method dl > div {
    display: grid;
    grid-template-columns: 108px 1fr;
    gap: 8px;
    align-items: baseline;
    font-size: .88rem;
}
.lms-fees-pay-method dt {
    color: var(--lms-text-muted);
    margin: 0;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.lms-fees-pay-method dd { margin: 0; font-weight: 650; word-break: break-word; color: #0f172a; }
.lms-fees-pay-method code,
.lms-fees-pay-num code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .95rem;
    font-weight: 700;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 3px 8px;
    display: inline-block;
}
.lms-fees-pay-num { margin: 0; }

.lms-fees-pay-fallback {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 14px 16px;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 10px;
    color: #92400e;
    font-size: .92rem;
    line-height: 1.5;
}
.lms-fees-pay-fallback i {
    margin-top: 2px;
    color: #d97706;
    font-size: 1.05rem;
    flex-shrink: 0;
}

.lms-fees-pay-notes {
    margin: 0;
    padding: 12px 14px;
    background: #eff6ff;
    border-left: 3px solid var(--lms-accent, #2563eb);
    border-radius: 0 8px 8px 0;
    font-size: .9rem;
    line-height: 1.5;
    color: #1e3a5f;
}

.lms-fees-pay-tips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
}
.lms-fees-pay-tips li {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-size: .88rem;
    line-height: 1.45;
    color: var(--lms-text-muted);
}
.lms-fees-pay-tips i {
    color: var(--lms-accent, #2563eb);
    margin-top: 2px;
    flex-shrink: 0;
}
.lms-fees-pay-tips strong { color: var(--lms-text, #0f172a); }

.lms-fees-pay-claim {
    margin-top: 4px;
    padding: 18px 18px 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}
.lms-fees-pay-claim-head {
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e2e8f0;
}
.lms-fees-pay-claim-head h4 {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 8px;
}
.lms-fees-pay-claim-head h4 i { color: #16a34a; }
.lms-fees-pay-claim-head p {
    margin: 0;
    font-size: .86rem;
    line-height: 1.5;
    color: var(--lms-text-muted);
    max-width: 60ch;
}

.lms-fees-pay-claim-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    align-items: end;
}
.lms-fees-pay-claim-form .lms-form-group {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.lms-fees-pay-claim-form .lms-form-group label {
    margin: 0;
    font-size: .78rem;
    font-weight: 650;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #64748b;
}
.lms-fees-pay-claim-form .lms-input {
    width: 100%;
    min-height: 42px;
}
.lms-fees-pay-claim-note,
.lms-fees-pay-claim-receipt {
    grid-column: 1 / -1;
}
.lms-fees-pay-file {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 12px 14px;
    border: 1.5px dashed #cbd5e1;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.lms-fees-pay-file:hover,
.lms-fees-pay-file:focus-within {
    border-color: var(--lms-accent, #2563eb);
    background: #f8fbff;
}
.lms-fees-pay-file i {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e0ecff;
    color: var(--lms-accent, #2563eb);
    flex-shrink: 0;
}
.lms-fees-pay-file-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.lms-fees-pay-file-text strong {
    font-size: .88rem;
    color: #0f172a;
}
.lms-fees-pay-file-text small {
    font-size: .75rem;
    color: var(--lms-text-muted);
}
.lms-fees-pay-file input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}
.lms-fees-pay-file-name {
    display: block;
    margin-top: 8px;
    font-size: .82rem;
    font-weight: 600;
    color: #0f172a;
    word-break: break-all;
}
.lms-fees-required { color: #dc2626; font-weight: 700; }
.lms-fees-pay-claim-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    padding-top: 4px;
}
.lms-fees-pay-claim-actions .lms-btn {
    min-height: 42px;
    padding-inline: 18px;
}

@media (max-width: 720px) {
    .lms-fees-pay-body { padding: 16px; }
    .lms-fees-pay-method dl > div { grid-template-columns: 1fr; gap: 2px; }
    .lms-fees-pay-claim { padding: 14px; }
    .lms-fees-pay-claim-form { grid-template-columns: 1fr; }
    .lms-fees-pay-claim-actions { justify-content: stretch; }
    .lms-fees-pay-claim-actions .lms-btn { width: 100%; justify-content: center; }
}

/* Certificates */
.lms-certs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
}

.lms-certs-card {
    position: relative;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg, 14px);
    overflow: hidden;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s;
}

.lms-certs-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-2px);
}

.lms-certs-card-ribbon {
    height: 72px;
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #d97706;
}

.lms-certs-card-body { padding: 20px 22px 22px; }

.lms-certs-card-type {
    margin: 0 0 6px;
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--lms-text-muted);
}

.lms-certs-card-body h3 {
    margin: 0 0 12px;
    font-size: 1.1rem;
    line-height: 1.35;
}

.lms-certs-card-date,
.lms-certs-card-hash {
    margin: 0 0 8px;
    font-size: .8125rem;
    color: var(--lms-text-secondary);
}

.lms-certs-card-hash {
    font-size: .75rem;
    color: var(--lms-text-muted);
    word-break: break-all;
}

.lms-certs-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

/* Profile */
.lms-profile-hero {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    margin-bottom: 24px;
    border-radius: var(--lms-radius-lg, 14px);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    box-shadow: 0 12px 40px rgba(15, 39, 68, .2);
}

.lms-profile-hero-user {
    display: flex;
    align-items: center;
    gap: 18px;
}

.lms-profile-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    border: 3px solid rgba(255,255,255,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    overflow: hidden;
    flex-shrink: 0;
}

.lms-profile-avatar.has-photo {
    padding: 0;
    background: transparent;
}

.lms-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lms-photo-required-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.lms-photo-required-banner p {
    margin: 4px 0 0;
}

.lms-photo-panel-required {
    outline: 2px solid var(--lms-warning, #d97706);
    outline-offset: 0;
}

.lms-topbar-user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .875rem;
    color: var(--lms-text-secondary);
}

.lms-topbar-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.lms-req {
    color: var(--lms-danger, #dc2626);
}

.lms-photo-current {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.lms-photo-current-img {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 3px solid rgba(15, 23, 42, .08);
    background: #e2e8f0;
}

.lms-profile-eyebrow {
    margin: 0 0 4px;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .8;
}

.lms-profile-hero h1 {
    margin: 0 0 8px;
    font-size: 1.5rem;
}

.lms-profile-sub {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: .8125rem;
    opacity: .9;
}

.lms-profile-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 28px;
    align-self: center;
}

.lms-profile-hero-meta small {
    display: block;
    font-size: .7rem;
    opacity: .75;
    margin-bottom: 2px;
}

.lms-profile-hero-meta strong { font-size: .875rem; }

.lms-profile-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}

.lms-profile-col { display: flex; flex-direction: column; gap: 20px; }

.lms-profile-form-body { padding: 18px 20px 22px; }

.lms-msgs-compose .lms-dash-panel-head {
    justify-content: space-between;
}

.lms-msgs-compose {
    flex-direction: column;
    margin-bottom: 20px;
}

/* Messages */
.lms-msgs-list { display: flex; flex-direction: column; gap: 12px; }

.lms-msgs-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg, 14px);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s, border-color .15s;
}

.lms-msgs-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, .25);
}

.lms-msgs-card.is-unread {
    border-left: 4px solid var(--lms-accent);
}

.lms-msgs-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lms-msgs-card-icon.is-admin { background: #dbeafe; color: #2563eb; }
.lms-msgs-card-icon.is-student { background: #dcfce7; color: #16a34a; }

.lms-msgs-card-body { flex: 1; min-width: 0; }

.lms-msgs-card-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.lms-msgs-card-top h3 {
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
}

.lms-msgs-card-top time {
    font-size: .75rem;
    color: var(--lms-text-muted);
    white-space: nowrap;
}

.lms-msgs-card-body > p {
    margin: 0 0 8px;
    font-size: .8125rem;
    color: var(--lms-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lms-msgs-card-meta {
    display: flex;
    gap: 10px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-msgs-thread-card { overflow: hidden; }

.lms-msgs-thread { padding: 8px 0; }

.lms-msgs-bubble-wrap {
    padding: 16px 20px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-msgs-bubble-wrap.is-student { background: #f0fdf4; }
.lms-msgs-bubble-wrap.is-admin { background: #f0f7ff; }

.lms-msgs-bubble-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.lms-msgs-bubble-who {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.lms-msgs-bubble-head time {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-msgs-bubble {
    line-height: 1.7;
    font-size: .9rem;
    padding-left: 28px;
}

.lms-msgs-reply {
    padding: 16px 20px;
    background: var(--lms-surface-alt);
    border-top: 1px solid var(--lms-border-light);
}

@media (max-width: 1100px) {
    .lms-page-layout { grid-template-columns: 1fr; }
    .lms-profile-layout { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
    .lms-page-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lms-fees-invoice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-msgs-card { flex-wrap: wrap; }
    .lms-certs-grid { grid-template-columns: 1fr; }
    .lms-profile-hero { flex-direction: column; }
}

/* Empty states & breadcrumbs */
.lms-empty-state {
    text-align: center;
    padding: 48px 24px;
    color: var(--lms-text-muted);
}

.lms-empty-state i {
    font-size: 2.5rem;
    opacity: .45;
    margin-bottom: 12px;
    display: block;
}

.lms-empty-state h3 {
    margin: 0 0 8px;
    color: var(--lms-text);
}

.lms-empty-state p {
    margin: 0 0 16px;
}

.lms-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 20px;
    font-size: .875rem;
    color: var(--lms-text-muted);
}

.lms-breadcrumb a {
    color: var(--lms-accent);
    text-decoration: none;
}

.lms-breadcrumb a:hover {
    text-decoration: underline;
}

.lms-breadcrumb span[aria-current="page"] {
    color: var(--lms-text-secondary);
}

/* ===========================================
   PHASE 3 — Notifications, Assignment, Flow, Progress
   =========================================== */
.lms-notifs-mark-all { margin: 0; }
.lms-notifs-mark-btn { border: none; background: transparent; cursor: pointer; font: inherit; }

.lms-notifs-list {
    display: flex;
    flex-direction: column;
}

.lms-notifs-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--lms-border-light);
    transition: background .15s ease;
}

.lms-notifs-item:last-child { border-bottom: none; }
.lms-notifs-item.is-unread { background: var(--lms-accent-soft); }

.lms-notifs-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--lms-radius);
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-accent);
    flex-shrink: 0;
}

.lms-notifs-item.is-unread .lms-notifs-icon {
    background: var(--lms-accent-light);
}

.lms-notifs-body { flex: 1; min-width: 0; }
.lms-notifs-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 6px;
}

.lms-notifs-body p {
    margin: 0 0 8px;
    font-size: .9rem;
    color: var(--lms-text-secondary);
    line-height: 1.5;
}

.lms-notifs-body time {
    display: block;
    font-size: .75rem;
    color: var(--lms-text-muted);
    margin-top: 8px;
}

.lms-notifs-read-form { flex-shrink: 0; }

/* Assignment page */
.lms-assign {
    width: 100%;
    max-width: none;
}

.lms-assign .lms-breadcrumb {
    margin: 0 0 16px;
}

.lms-assign-hero {
    align-items: center;
    margin-bottom: 20px;
}

.lms-assign-status { flex-shrink: 0; }

.lms-assign-meta {
    padding: 0;
    overflow: hidden;
}

.lms-assign-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px 20px;
    padding: 20px 24px;
}

.lms-assign-meta-grid small {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-bottom: 4px;
}

.lms-assign-meta-grid strong { font-size: .9375rem; }

.lms-assign-alert {
    margin: 0 24px 20px;
}

.lms-assign-instructions,
.lms-assign-rubric {
    padding: 18px 24px 22px;
    border-top: 1px solid var(--lms-border-light);
}

.lms-assign-instructions h4,
.lms-assign-rubric h4 {
    margin: 0 0 10px;
    font-size: .9rem;
}

.lms-assign-instructions p {
    margin: 0;
    line-height: 1.65;
    color: var(--lms-text-secondary);
    white-space: pre-wrap;
}

.lms-assign-rubric ul {
    margin: 0;
    padding-inline-start: 1.25rem;
    font-size: .875rem;
    line-height: 1.55;
}

.lms-assign-rubric li + li { margin-top: 8px; }

.lms-assign-grade-score {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.lms-assign-grade-score p {
    margin: 0;
    font-size: 2rem;
    font-weight: 700;
    color: var(--lms-success);
    line-height: 1.1;
}

.lms-assign-feedback-box {
    padding: 16px 18px;
    background: #f0fdf4;
    border: 1px solid rgba(16, 185, 129, .18);
    border-radius: var(--lms-radius-sm, 8px);
    margin-top: 14px;
}

.lms-assign-feedback-box h4 {
    margin: 0 0 8px;
    font-size: .9rem;
}

.lms-assign-feedback-box p {
    margin: 0;
    line-height: 1.6;
}

.lms-assign-block {
    margin-top: 16px;
}

.lms-assign-block h4 {
    margin: 0 0 8px;
    font-size: .9rem;
}

.lms-assign-block ul {
    margin: 0;
    padding-inline-start: 1.25rem;
    line-height: 1.55;
}

.lms-assign-cta {
    margin-top: 18px;
    text-align: center;
}

.lms-assign-submission-text {
    white-space: pre-wrap;
    line-height: 1.65;
    margin-bottom: 12px;
}

.lms-assign-waiting {
    text-align: center;
}

.lms-assign-waiting .lms-card-body {
    padding: 36px 28px;
}

.lms-assign-waiting i {
    font-size: 2.5rem;
    color: var(--lms-info);
    margin-bottom: 16px;
    display: block;
}

.lms-assign-waiting h3 { margin: 0 0 8px; }

.lms-assign-form { margin-bottom: 8px; }

.lms-assign-editor-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    font-size: .8125rem;
}

.lms-assign-autosave { font-size: .8125rem; }

.lms-assign-textarea {
    width: 100%;
    min-height: 280px;
    padding: 16px 18px;
    font-size: 1rem;
    line-height: 1.75;
    resize: vertical;
}

.lms-assign-hint {
    margin: 10px 0 0;
    font-size: .8125rem;
}

.lms-assign-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 20px;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    box-shadow: var(--lms-shadow-xs);
}

.lms-assign-feedback-panel {
    margin-bottom: 20px;
}

.lms-assign-feedback-panel:not([hidden]) {
    display: block;
    padding: 16px 20px;
}

.lms-assign-back {
    margin-top: 8px;
    padding-bottom: 8px;
}

@media (max-width: 768px) {
    .lms-assign-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 16px;
        gap: 14px;
    }
    .lms-assign-alert { margin: 0 16px 16px; }
    .lms-assign-instructions,
    .lms-assign-rubric { padding: 16px; }
    .lms-assign-textarea {
        min-height: 220px;
        padding: 14px;
        font-size: .9375rem;
    }
    .lms-assign-actions {
        padding: 12px;
    }
    .lms-assign-actions .lms-btn {
        flex: 1 1 auto;
        justify-content: center;
    }
    .lms-assign-waiting .lms-card-body { padding: 28px 16px; }
}

/* Chat flow pages (verification, adaptive review) */
.lms-flow-hero { margin-bottom: 20px; }

.lms-flow-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.lms-flow-topic {
    padding: 6px 12px;
    border-radius: var(--lms-radius-full);
    background: var(--lms-warning-light);
    color: #b45309;
    font-size: .8rem;
    font-weight: 500;
    transition: background .35s ease, color .35s ease, transform .25s ease;
}

.lms-flow-topic.is-improved {
    background: #dcfce7;
    color: #166534;
    transform: translateY(-1px);
}

.lms-flow-topic-pct {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.lms-flow-panel { padding: 0; overflow: hidden; }

.lms-flow-chat {
    min-height: 280px;
    max-height: 420px;
    overflow-y: auto;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--lms-surface-alt);
}

.lms-flow-msg {
    max-width: 85%;
    padding: 12px 16px;
    border-radius: var(--lms-radius-lg);
    font-size: .9rem;
    line-height: 1.55;
}

.lms-flow-msg.is-user {
    align-self: flex-end;
    background: var(--lms-accent);
    color: #fff;
    border-bottom-right-radius: 4px;
}

[dir="rtl"] .lms-flow-msg.is-user {
    align-self: flex-start;
    border-bottom-right-radius: var(--lms-radius-lg);
    border-bottom-left-radius: 4px;
}

.lms-flow-msg.is-ai {
    align-self: flex-start;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-bottom-left-radius: 4px;
}

[dir="rtl"] .lms-flow-msg.is-ai {
    border-bottom-left-radius: var(--lms-radius-lg);
    border-bottom-right-radius: 4px;
}

.lms-flow-placeholder {
    margin: auto;
    text-align: center;
    color: var(--lms-text-muted);
    font-size: .9rem;
}

.lms-flow-input {
    display: flex;
    gap: 10px;
    padding: 16px 20px;
    border-top: 1px solid var(--lms-border-light);
    background: var(--lms-surface);
}

.lms-flow-input textarea {
    flex: 1;
    resize: vertical;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    font: inherit;
    line-height: 1.4;
}

.lms-flow-start,
.lms-flow-ready {
    padding: 16px 24px 20px;
    border-top: 1px solid var(--lms-border-light);
}

.lms-flow-ready {
    text-align: center;
    background: var(--lms-success-light);
}

/* Progress report page */
.lms-progress-toolbar { padding: 16px 24px; }

.lms-progress-toolbar .lms-study-course-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.lms-progress-body { padding: 20px 24px 24px; }

.lms-progress-pct {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--lms-accent);
    margin-bottom: 16px;
}

.lms-progress-summary {
    font-size: .9375rem;
    line-height: 1.65;
    color: var(--lms-text-secondary);
    margin: 0 0 20px;
}

.lms-progress-block {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--lms-border-light);
}

.lms-progress-block h4 {
    margin: 0 0 10px;
    font-size: .9rem;
}

.lms-progress-block ul {
    margin: 0;
    padding-left: 1.25rem;
    font-size: .875rem;
    line-height: 1.6;
}

.lms-oral-breadcrumb { margin-bottom: 20px; }

/* Discussion board */
.lms-disc-prompt h3 {
    margin: 0 0 10px;
    font-size: .95rem;
    display: flex;
    align-items: center;
    gap: 8px;
}

.lms-disc-prompt p {
    margin: 0;
    line-height: 1.6;
    color: var(--lms-text-secondary);
}

.lms-disc-compose-actions { margin-top: 12px; }

.lms-disc-msg {
    margin: 12px 0 0;
    font-size: .875rem;
}

.lms-disc-msg.is-warning { color: #b45309; }
.lms-disc-msg.is-error { color: var(--lms-danger); }

.lms-disc-list { display: flex; flex-direction: column; }

.lms-disc-post {
    padding: 18px 24px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-disc-post:last-child { border-bottom: none; }

.lms-disc-post-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.lms-disc-post-head time {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-disc-post p {
    margin: 0;
    line-height: 1.6;
    font-size: .9rem;
}

/* Scripture memorization */
.lms-mem-picks {
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
}

.lms-mem-picks small {
    color: var(--lms-text-muted);
    font-size: .75rem;
}

.lms-mem-pick {
    font-size: .8rem;
    color: var(--lms-accent);
    text-decoration: none;
}

.lms-mem-pick:hover { text-decoration: underline; }

.lms-mem-result.is-pass .lms-mem-pct { color: var(--lms-success); }
.lms-mem-result.is-warn .lms-mem-pct { color: #b45309; }

.lms-mem-score {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 8px;
}

.lms-mem-pct {
    font-size: 2rem;
    font-weight: 700;
}

.lms-mem-label {
    font-size: .9rem;
    color: var(--lms-text-muted);
    text-transform: lowercase;
}

.lms-mem-errors {
    margin: 12px 0 0;
    padding-left: 1.25rem;
    font-size: .875rem;
    line-height: 1.6;
}

/* Quiz result states */
.lms-quiz-state .lms-card-body {
    text-align: center;
    padding: 32px 24px;
}

.lms-quiz-state-icon {
    font-size: 3rem;
    color: var(--lms-success);
    margin-bottom: 16px;
    display: block;
}

.lms-quiz-state-icon--trophy { color: var(--lms-warning); }
.lms-quiz-state-icon--fail { color: var(--lms-danger); }

.lms-quiz-state-title {
    margin: 0 0 8px;
    font-size: 1.5rem;
}

.lms-quiz-state-title.is-success { color: var(--lms-success); }
.lms-quiz-state-title.is-fail { color: var(--lms-danger); }

.lms-quiz-state-note {
    font-size: .95rem;
    margin: 8px 0 0;
}

.lms-quiz-state-note.is-success { color: var(--lms-success); }
.lms-quiz-state-note.is-fail { color: var(--lms-danger); }
.lms-quiz-state-note.is-warn { color: var(--lms-warning); }

.lms-quiz-score {
    font-size: 2rem;
    font-weight: 700;
    margin: 12px 0;
}

.lms-quiz-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 16px;
}

.lms-quiz-oral-cta {
    border: 2px solid var(--lms-accent);
    background: linear-gradient(135deg, var(--lms-accent-soft), var(--lms-primary-light));
    margin-bottom: 20px;
}

.lms-quiz-oral-cta .lms-card-body {
    text-align: center;
    padding: 28px 24px;
}

.lms-quiz-oral-icon {
    font-size: 2.5rem;
    color: var(--lms-accent);
    margin-bottom: 10px;
    display: block;
}

.lms-quiz-oral-cta h3 {
    color: var(--lms-primary);
    margin: 0 0 8px;
}

.lms-quiz-oral-cta p {
    color: var(--lms-text-secondary);
    max-width: 500px;
    margin: 0 auto 16px;
}

@media (max-width: 640px) {
    .lms-quiz-state .lms-card-body { padding: 24px 16px; }
    .lms-disc-post { padding: 14px 16px; }
}

/* Accessibility — skip link */
.lms-skip-link {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 10001;
    padding: 10px 16px;
    background: var(--lms-brand);
    color: #fff;
    text-decoration: none;
    border-radius: var(--lms-radius);
    font-size: .875rem;
    font-weight: 600;
}

.lms-skip-link:focus {
    left: 12px;
    top: 12px;
    width: auto;
    height: auto;
    overflow: visible;
}

@media (max-width: 640px) {
    .lms-flow-msg { max-width: 92%; }
    .lms-notifs-item { padding: 14px 16px; gap: 12px; }
}

/* ===========================================
   STUDENT DASHBOARD
   =========================================== */
.lms-dash {
    width: 100%;
    max-width: none;
}

.lms-dash-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px 28px;
    padding: 28px 32px;
    margin-bottom: 24px;
    border-radius: var(--lms-radius-lg, 16px);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    box-shadow: 0 12px 36px rgba(0, 26, 51, .22);
    position: relative;
    overflow: hidden;
}

.lms-dash-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 88% 12%, rgba(197,160,89,.22) 0%, transparent 48%),
        radial-gradient(ellipse at 8% 90%, rgba(197,160,89,.1) 0%, transparent 42%),
        radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.06) 0%, transparent 55%);
    pointer-events: none;
}

.lms-dash-hero-main { position: relative; z-index: 1; flex: 1; min-width: 200px; }

.lms-dash-hero-eyebrow {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .75;
    margin: 0 0 6px;
}

.lms-dash-hero-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    margin: 0 0 8px;
    line-height: 1.2;
}

.lms-dash-hero-sub {
    margin: 0;
    font-size: .9375rem;
    opacity: .85;
    max-width: 36rem;
}

.lms-dash-id-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    padding: 4px 12px;
    border-radius: var(--lms-radius-full);
    background: rgba(255,255,255,.12);
    font-size: .8rem;
    font-weight: 500;
}

.lms-dash-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    position: relative;
    z-index: 1;
}

.lms-dash-quick-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: var(--lms-radius);
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    font-size: .8125rem;
    font-weight: 500;
    text-decoration: none;
    transition: background .2s, transform .15s;
}

.lms-dash-quick-link:hover {
    background: rgba(197,160,89,.22);
    border-color: rgba(197,160,89,.45);
    transform: translateY(-1px);
    color: #fff;
}

.lms-dash-quick-link--alert {
    background: rgba(239, 68, 68, .25);
    border-color: rgba(252, 165, 165, .4);
}

.lms-dash-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.lms-dash-stat {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    padding: 18px 16px;
    text-align: center;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s;
}

.lms-dash-stat--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.lms-dash-stat--link:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-2px);
}

.lms-dash-stat-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 10px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.lms-dash-stat--blue .lms-dash-stat-icon { background: var(--lms-primary-light); color: var(--lms-brand); }
.lms-dash-stat--violet .lms-dash-stat-icon { background: var(--lms-accent-light); color: var(--lms-accent-hover); }
.lms-dash-stat--amber .lms-dash-stat-icon { background: var(--lms-accent-soft); color: var(--lms-accent-hover); }
.lms-dash-stat--green .lms-dash-stat-icon { background: var(--lms-success-light); color: var(--lms-success); }
.lms-dash-stat--gold .lms-dash-stat-icon { background: var(--lms-accent-light); color: var(--lms-accent-hover); }
.lms-dash-stat--slate .lms-dash-stat-icon { background: var(--lms-surface-alt); color: var(--lms-text-secondary); }

.lms-badge-toast { background: var(--lms-brand) !important; color: #fff !important; }
.lms-badge-toast strong { color: var(--lms-accent); }

.lms-dash-stat-val {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--lms-text);
}

.lms-dash-stat-val.is-due { color: var(--lms-danger); font-size: 1.1rem; }
.lms-dash-stat-val.is-clear { color: var(--lms-success); font-size: 1.1rem; }

.lms-dash-stat-lbl {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-top: 4px;
}

.lms-dash-stat-bar {
    height: 4px;
    background: var(--lms-border-light);
    border-radius: 4px;
    margin-top: 10px;
    overflow: hidden;
}

.lms-dash-stat-bar span {
    display: block;
    height: 100%;
    background: #16a34a;
    border-radius: 4px;
}

.lms-dash-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 24px;
    align-items: start;
}

.lms-dash-main { display: flex; flex-direction: column; gap: 20px; }
.lms-dash-side { display: flex; flex-direction: column; gap: 20px; }

.lms-dash-panel {
    border: 1px solid var(--lms-border);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.lms-dash-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
    flex-shrink: 0;
}

.lms-dash-panel-head h3 {
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.3;
}

.lms-dash-panel-head h3 i { color: var(--lms-accent); opacity: .9; }

.lms-dash-panel-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lms-dash-panel-body > p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.45;
    color: var(--lms-text-secondary);
}

.lms-dash-panel-body > p.lms-text-muted,
.lms-dash-panel-body .lms-text-muted {
    color: var(--lms-text-muted);
    font-size: .875rem;
}

.lms-dash-panel-head .lms-btn-sm {
    flex-shrink: 0;
    white-space: nowrap;
}

.lms-dash-panel-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

/* --- Parent digest preview page --- */
.lms-parent-digest-page .lms-dash-hero {
    padding-top: 32px;
}

.lms-parent-digest-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
}

.lms-parent-digest-preview-panel .lms-dash-panel-body {
    padding: 0;
}

.lms-parent-digest-preview-note {
    margin: 0;
    padding: 14px 18px;
    font-size: .875rem;
    color: var(--lms-text-secondary);
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}

.lms-parent-digest-preview-frame {
    padding: 28px 20px 32px;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(197, 160, 89, .08) 0%, transparent 55%),
        linear-gradient(180deg, var(--lms-surface-alt) 0%, var(--lms-surface) 100%);
}

.lms-parent-digest-preview {
    max-width: 560px;
    margin: 0 auto;
    overflow-x: auto;
}

.lms-parent-digest-preview > div {
    box-shadow: 0 14px 40px rgba(0, 26, 51, .14);
    border-radius: 12px;
}

.lms-parent-digest-preview table {
    width: 100%;
    table-layout: fixed;
}

.lms-parent-digest-preview table td:first-child {
    width: 58%;
    padding-right: 12px !important;
    color: #5a6572;
    font-size: .92rem;
}

.lms-parent-digest-preview table td:last-child {
    text-align: right;
    font-weight: 700;
    white-space: nowrap;
}

.lms-parent-digest-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--lms-radius-full, 999px);
    background: rgba(197, 160, 89, .12);
    color: var(--lms-accent-dark, #9a7b3c);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.lms-parent-digest-status {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid var(--lms-border-light);
    background: var(--lms-surface);
}

.lms-parent-digest-status.is-on {
    border-color: rgba(22, 163, 74, .25);
    background: rgba(22, 163, 74, .06);
}

.lms-parent-digest-status.is-off {
    border-color: rgba(180, 83, 9, .2);
    background: rgba(180, 83, 9, .05);
}

.lms-parent-digest-status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-top: 5px;
    flex-shrink: 0;
}

.lms-parent-digest-status.is-on .lms-parent-digest-status-dot {
    background: #16a34a;
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .18);
}

.lms-parent-digest-status.is-off .lms-parent-digest-status-dot {
    background: #d97706;
    box-shadow: 0 0 0 4px rgba(217, 119, 6, .15);
}

.lms-parent-digest-status strong {
    display: block;
    font-size: .95rem;
    margin-bottom: 4px;
}

.lms-parent-digest-status p {
    margin: 0;
    font-size: .85rem;
    line-height: 1.45;
    color: var(--lms-text-secondary);
}

.lms-parent-digest-email {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--lms-surface-alt);
    border: 1px dashed var(--lms-border);
}

.lms-parent-digest-email-label {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
    margin-bottom: 6px;
}

.lms-parent-digest-email code {
    font-size: .88rem;
    word-break: break-all;
}

.lms-parent-digest-help {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 14px 0 0;
    padding: 12px;
    border-radius: 10px;
    background: var(--lms-surface-alt);
    font-size: .84rem;
    line-height: 1.45;
    color: var(--lms-text-secondary);
}

.lms-parent-digest-help i {
    color: var(--lms-accent);
    margin-top: 2px;
}

.lms-parent-digest-mini-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.lms-parent-digest-stat {
    text-align: center;
    padding: 12px 8px;
    border-radius: 10px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
}

.lms-parent-digest-stat span {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-bottom: 4px;
}

.lms-parent-digest-stat strong {
    font-size: 1.15rem;
    color: var(--lms-brand-dark, #001a33);
}

.lms-parent-digest-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--lms-text-muted);
}

.lms-parent-digest-empty i {
    font-size: 2rem;
    opacity: .45;
    margin-bottom: 12px;
    display: block;
}

.lms-parent-digest-empty p {
    margin: 0;
    max-width: 28rem;
    margin-inline: auto;
}

@media (max-width: 960px) {
    .lms-parent-digest-layout {
        grid-template-columns: 1fr;
    }

    .lms-parent-digest-layout .lms-dash-side {
        order: -1;
    }
}

@media (max-width: 640px) {
    .lms-parent-digest-preview-frame {
        padding: 16px 12px 20px;
    }

    .lms-parent-digest-mini-stats {
        grid-template-columns: 1fr;
    }
}

.lms-dash-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.lms-dash-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lms-brand), var(--lms-brand-light));
    color: #f4f1ea;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.2;
}
.lms-dash-badge i { color: var(--lms-accent); }

.lms-btn-ghost {
    background: transparent;
    border: 1px solid var(--lms-border);
    color: var(--lms-text-secondary);
}

.lms-btn-ghost:hover {
    border-color: var(--lms-accent);
    color: var(--lms-accent);
    background: var(--lms-accent-soft);
}

.lms-dash-subjects {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.lms-dash-subject {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--lms-border-light);
    transition: background .15s;
}

.lms-dash-subject:last-child { border-bottom: none; }
.lms-dash-subject:hover { background: var(--lms-surface-alt); }

.lms-dash-subject-thumb {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--lms-brand), var(--lms-brand-light));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-accent);
    font-size: 1.25rem;
}

.lms-dash-subject-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lms-dash-subject-body { flex: 1; min-width: 0; }

.lms-dash-subject-body h4 {
    margin: 0 0 4px;
    font-size: .9375rem;
    font-weight: 600;
    color: var(--lms-text);
}

.lms-dash-subject-body p {
    margin: 0 0 8px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-dash-subject-body small {
    font-size: .7rem;
    color: var(--lms-text-muted);
}

.lms-dash-subject-go {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lms-text-muted);
    font-size: .75rem;
    transition: background .15s, color .15s;
}

.lms-dash-subject:hover .lms-dash-subject-go {
    background: var(--lms-accent);
    color: #fff;
}

.lms-dash-grades {
    display: flex;
    flex-direction: column;
}

.lms-dash-grade {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--lms-border-light);
    transition: background .15s;
}

.lms-dash-grade:last-child { border-bottom: none; }
.lms-dash-grade:hover { background: var(--lms-surface-alt); }

.lms-dash-grade-score {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .875rem;
    font-weight: 700;
}

.lms-dash-grade-score--pass { background: #dcfce7; color: #15803d; }
.lms-dash-grade-score--mid { background: #fef3c7; color: #b45309; }
.lms-dash-grade-score--fail { background: #fee2e2; color: #b91c1c; }
.lms-dash-grade-score--none { background: var(--lms-surface-alt); color: var(--lms-text-muted); font-size: .75rem; }

.lms-dash-grade-info strong {
    display: block;
    font-size: .875rem;
    margin-bottom: 2px;
}

.lms-dash-grade-info span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-dash-tasks { padding: 8px 0; }

.lms-dash-task {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-dash-task:last-child { border-bottom: none; }

.lms-dash-task-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lms-dash-task-icon--quiz { background: #ede9fe; color: #7c3aed; }
.lms-dash-task-icon--assign { background: #ffedd5; color: #ea580c; }

.lms-dash-task-body { flex: 1; min-width: 0; }

.lms-dash-task-body strong {
    display: block;
    font-size: .875rem;
    margin-bottom: 2px;
}

.lms-dash-task-body span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-dash-program {
    padding: 24px 20px;
    border-radius: var(--lms-radius);
    background: linear-gradient(165deg, var(--lms-accent-soft) 0%, #fffef9 42%, var(--lms-surface) 100%);
    border: 1px solid var(--lms-border);
    text-align: center;
}

.lms-dash-program-badge {
    width: 48px;
    height: 48px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: var(--lms-brand);
    color: var(--lms-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    box-shadow: 0 4px 12px rgba(0, 26, 51, .16);
}

.lms-dash-program small {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--lms-accent-hover);
    font-weight: 600;
    margin-bottom: 6px;
}

.lms-dash-program h3 {
    margin: 0 0 8px;
    font-size: 1.0625rem;
    color: var(--lms-brand);
}

.lms-dash-program p {
    margin: 0;
    font-size: .8125rem;
    color: var(--lms-text-secondary);
}

.lms-dash-notif-list { padding: 8px 0; }

.lms-dash-notif {
    display: flex;
    gap: 12px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-dash-notif:last-child { border-bottom: none; }
.lms-dash-notif.is-unread { background: var(--lms-accent-soft); }

.lms-dash-notif-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: transparent;
    margin-top: 6px;
    flex-shrink: 0;
}

.lms-dash-notif.is-unread .lms-dash-notif-dot { background: var(--lms-accent); }

.lms-dash-notif strong {
    display: block;
    font-size: .8125rem;
    margin-bottom: 4px;
}

.lms-dash-notif p {
    margin: 0 0 4px;
    font-size: .8rem;
    color: var(--lms-text-secondary);
    line-height: 1.45;
}

.lms-dash-notif time {
    font-size: .7rem;
    color: var(--lms-text-muted);
}

.lms-dash-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px 18px;
    border-radius: var(--lms-radius);
    margin-bottom: 16px;
    font-size: .875rem;
}

.lms-dash-alert i { font-size: 1.125rem; flex-shrink: 0; }
.lms-dash-alert div { flex: 1; min-width: 160px; }
.lms-dash-alert--warning { background: #fffbeb; border: 1px solid #fcd34d; color: #92400e; }
.lms-dash-alert--danger { background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b; }

.lms-dash-pending {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    padding: 28px;
    margin-bottom: 24px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg, 16px);
    box-shadow: var(--lms-shadow-xs);
}

.lms-dash-pending-icon {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--lms-brand), var(--lms-brand-light));
    color: var(--lms-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
}

.lms-dash-pending-body h2 {
    margin: 0 0 10px;
    font-size: 1.125rem;
}

.lms-dash-pending-body p { margin: 0 0 12px; font-size: .9rem; line-height: 1.55; }

.lms-dash-pending-meta {
    margin-bottom: 12px;
    font-size: .875rem;
    font-weight: 500;
}

.lms-dash-pending-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: var(--lms-surface-alt);
    border-radius: var(--lms-radius-sm);
}

.lms-dash-pending-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.lms-dash-empty {
    padding: 48px 24px !important;
    text-align: center;
    color: var(--lms-text-muted);
}

.lms-dash-empty i {
    display: block;
    font-size: 2rem;
    margin-bottom: 12px;
    opacity: .4;
}

.lms-dash-empty-sm {
    padding: 24px 20px !important;
    text-align: center;
    font-size: .875rem;
}

/* Legacy welcome banner — keep for other pages */
.lms-welcome-banner {
    background: linear-gradient(135deg, var(--lms-brand) 0%, var(--lms-brand-light) 100%);
    color: #fff;
    padding: 28px 32px;
    border-radius: var(--lms-radius);
    margin-bottom: 24px;
}

.lms-welcome-banner h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.lms-welcome-banner p {
    opacity: .8;
    font-size: .875rem;
}

@media (max-width: 960px) {
    .lms-dash-layout { grid-template-columns: 1fr; }
    .lms-dash-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-dash-hero { padding: 22px 20px; }
    .lms-dash-quick { width: 100%; }
    .lms-dash-quick-link { flex: 1 1 calc(50% - 4px); justify-content: center; }
    .lms-dash-stats { grid-template-columns: repeat(2, 1fr); }
    .lms-dash-pending { flex-direction: column; padding: 20px; }
    .lms-dash-task { flex-wrap: wrap; }
    .lms-dash-task .lms-btn { width: 100%; margin-top: 4px; }
}

[dir="rtl"] .lms-dash-subject-go i::before { content: "\f060"; }

/* ===========================================
   STUDENT ASSESSMENTS
   =========================================== */
.lms-assess { width: 100%; }

.lms-assess-hero { margin-bottom: 24px; }

.lms-assess-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.lms-assess-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px 12px;
    padding: 8px 14px;
    margin-bottom: 20px;
    border: 1px solid var(--lms-border);
    box-shadow: var(--lms-shadow-xs);
}

.lms-assess-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex: 0 1 auto;
}

.lms-assess-tabs a {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: var(--lms-radius-full);
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--lms-text-secondary);
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s, color .15s, border-color .15s;
}

.lms-assess-tabs a:hover {
    background: var(--lms-surface-alt);
    color: var(--lms-text);
}

.lms-assess-tabs a.is-active {
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    border-color: rgba(37, 99, 235, .2);
}

.lms-assess-course-filter {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    margin-left: auto;
    padding-left: 12px;
    border-left: 1px solid var(--lms-border-light);
}

.lms-assess-course-label {
    font-size: .75rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
    white-space: nowrap;
    margin: 0;
}

.lms-assess-course-filter .lms-input {
    width: auto;
    min-width: 160px;
    max-width: 220px;
    padding: 5px 32px 5px 10px;
    font-size: .8125rem;
    line-height: 1.2;
    border-width: 1px;
    background-position: right 10px center;
}

.lms-assess-course-filter .lms-btn {
    padding: 5px 10px;
    font-size: .75rem;
}

.lms-assess-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 24px;
    align-items: start;
}

.lms-assess-main { display: flex; flex-direction: column; gap: 28px; }
.lms-assess-side { display: flex; flex-direction: column; gap: 20px; }

.lms-assess-group-title {
    margin: 0 0 14px;
    font-size: 1.05rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--lms-text);
}

.lms-assess-group-title i { color: var(--lms-accent); opacity: .85; }

.lms-assess-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px;
}

.lms-assess-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .2s, transform .15s;
    border-left: 4px solid var(--lms-border);
}

.lms-assess-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-1px);
}

.lms-assess-card.is-passed { border-left-color: var(--lms-success); }
.lms-assess-card.is-failed { border-left-color: #f59e0b; }
.lms-assess-card.is-review { border-left-color: var(--lms-danger); }
.lms-assess-card.is-pending { border-left-color: #94a3b8; }

.lms-assess-card-score {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.lms-assess-card-score span {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

.lms-assess-card-score small {
    font-size: .75rem;
    color: var(--lms-text-muted);
    font-weight: 500;
}

.lms-assess-card-score.is-pass span { color: var(--lms-success); }
.lms-assess-card-score.is-fail span { color: var(--lms-danger); }
.lms-assess-card-score.is-none span { color: var(--lms-text-muted); }

.lms-assess-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.lms-assess-card-title {
    margin: 0 0 6px;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.35;
}

.lms-assess-card-lesson {
    margin: 0 0 10px;
    font-size: .8125rem;
}

.lms-assess-card-lesson a {
    color: var(--lms-accent);
    text-decoration: none;
}

.lms-assess-card-lesson a:hover { text-decoration: underline; }

.lms-assess-card-meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-assess-card-meta li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.lms-assess-card-meta i { opacity: .75; width: 12px; text-align: center; }

.lms-assess-card-action {
    margin-top: auto;
    padding-top: 4px;
}

.lms-assess-cooldown {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: var(--lms-radius);
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
    font-size: .8125rem;
}

.lms-assess-empty {
    text-align: center;
    padding: 48px 24px;
}

.lms-assess-empty i {
    font-size: 2.5rem;
    color: var(--lms-text-muted);
    opacity: .5;
    margin-bottom: 12px;
}

.lms-assess-empty h3 { margin: 0 0 8px; }
.lms-assess-empty p { margin: 0 0 20px; color: var(--lms-text-muted); }

.lms-assess-assign-score {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-accent);
}

.lms-assess-more {
    padding: 12px 20px;
    border-top: 1px solid var(--lms-border-light);
    font-size: .8125rem;
    color: var(--lms-text-muted);
    text-align: center;
}

.lms-assess-side .lms-dash-grade {
    flex-wrap: wrap;
}

.lms-assess-side .lms-dash-grade .lms-badge {
    margin-left: auto;
}

@media (max-width: 1100px) {
    .lms-assess-layout { grid-template-columns: 1fr; }
    .lms-assess-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
}

@media (max-width: 960px) {
    .lms-assess-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .lms-assess-toolbar { flex-direction: column; align-items: stretch; }
    .lms-assess-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .lms-assess-course-filter {
        width: 100%;
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        padding-top: 8px;
        border-top: 1px solid var(--lms-border-light);
        justify-content: flex-end;
    }
    .lms-assess-course-filter .lms-input { flex: 1; min-width: 0; max-width: none; }
    .lms-assess-grid { grid-template-columns: 1fr; }
    .lms-assess-side { grid-template-columns: 1fr; }
}

/* ===========================================
   STUDENT COURSE VIEW
   =========================================== */
.lms-course-view { width: 100%; }

.lms-course-hero {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 24px;
    padding: 24px;
    margin-bottom: 24px;
    border-radius: var(--lms-radius-lg, 16px);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    box-shadow: 0 12px 40px rgba(15, 39, 68, .2);
    overflow: hidden;
    position: relative;
}

.lms-course-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 100% 0%, rgba(197,160,89,.2) 0%, transparent 45%),
        radial-gradient(ellipse at 0% 100%, rgba(197,160,89,.1) 0%, transparent 40%),
        radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.04) 0%, transparent 60%);
    pointer-events: none;
}

.lms-course-hero-media,
.lms-course-hero-body { position: relative; z-index: 1; }

.lms-course-hero-media {
    border-radius: 14px;
    overflow: hidden;
    min-height: 200px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
}

.lms-course-hero-media img {
    width: 100%;
    height: 100%;
    min-height: 200px;
    object-fit: cover;
    display: block;
}

.lms-course-hero-placeholder {
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    opacity: .5;
}

.lms-course-hero-eyebrow {
    margin: 0 0 8px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .8;
}

.lms-course-hero-title {
    margin: 0 0 12px;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.2;
    font-weight: 700;
}

.lms-course-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.lms-course-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: var(--lms-radius-full);
    background: rgba(255,255,255,.12);
    font-size: .75rem;
    font-weight: 500;
}

.lms-course-hero-desc {
    margin: 0 0 16px;
    font-size: .9rem;
    line-height: 1.65;
    opacity: .9;
    max-width: 52rem;
}

.lms-course-hero-progress {
    margin-bottom: 18px;
    max-width: 32rem;
}

.lms-course-hero-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: .8125rem;
}

.lms-course-hero-bar {
    height: 10px;
    background: rgba(255,255,255,.15);
    margin-bottom: 6px;
}

.lms-course-hero-bar .lms-progress-fill {
    background: linear-gradient(90deg, #34d399, #10b981);
}

.lms-course-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lms-course-hero-actions .lms-btn-outline {
    border-color: rgba(255,255,255,.35);
    color: #fff;
    background: rgba(255,255,255,.08);
}

.lms-course-hero-actions .lms-btn-outline:hover {
    background: rgba(255,255,255,.18);
    color: #fff;
}

.lms-course-hero-actions .lms-btn-ghost {
    color: rgba(255,255,255,.9);
    border-color: rgba(255,255,255,.2);
}

.lms-course-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 24px;
    align-items: start;
}

.lms-course-main,
.lms-course-side { display: flex; flex-direction: column; gap: 20px; }

.lms-course-resources {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 20px 20px;
}

.lms-course-resource {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border-radius: var(--lms-radius);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    font-size: .9rem;
    line-height: 1.5;
    color: var(--lms-text);
}

.lms-course-resource > i {
    flex-shrink: 0;
    width: 1.1rem;
    margin-top: 2px;
    text-align: center;
    color: var(--lms-accent);
}

.lms-course-resource-body {
    flex: 1;
    min-width: 0;
    word-break: break-word;
}

.lms-course-resource-body strong {
    display: block;
    margin-bottom: 4px;
}

.lms-course-resource-body p {
    margin: 0;
    color: var(--lms-text-secondary);
}

.lms-course-resource-body a {
    color: var(--lms-accent);
    text-decoration: none;
    font-weight: 600;
}

.lms-course-resource-body a:hover {
    text-decoration: underline;
}

.lms-course-resource .lms-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 8px;
    width: 100%;
}

.lms-course-resource .lms-video-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.lms-course-lesson-count {
    font-size: .8125rem;
    color: var(--lms-text-muted);
    font-weight: 500;
}

.lms-course-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 8px 0 12px;
}

.lms-course-lesson {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 14px;
    padding: 0 16px 20px;
}

.lms-course-lesson-rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.lms-course-lesson-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8125rem;
    font-weight: 700;
    background: var(--lms-surface-alt);
    color: var(--lms-text-secondary);
    border: 2px solid var(--lms-border);
    flex-shrink: 0;
    z-index: 1;
}

.lms-course-lesson-line {
    flex: 1;
    width: 2px;
    min-height: 24px;
    margin-top: 6px;
    background: var(--lms-border-light);
}

.lms-course-lesson.is-done .lms-course-lesson-num {
    background: #dcfce7;
    color: #16a34a;
    border-color: #86efac;
}

.lms-course-lesson.is-active .lms-course-lesson-num {
    background: #dbeafe;
    color: #2563eb;
    border-color: #93c5fd;
}

.lms-course-lesson.is-review .lms-course-lesson-num,
.lms-course-lesson.is-oral .lms-course-lesson-num {
    background: #fef3c7;
    color: #d97706;
    border-color: #fcd34d;
}

.lms-course-lesson.is-locked {
    opacity: .65;
}

.lms-course-lesson.is-locked .lms-course-lesson-num {
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
}

.lms-course-lesson-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    padding: 16px 18px;
    box-shadow: var(--lms-shadow-xs);
    transition: box-shadow .15s, border-color .15s;
}

.lms-course-lesson:not(.is-locked) .lms-course-lesson-card:hover {
    box-shadow: var(--lms-shadow-sm);
    border-color: rgba(37, 99, 235, .25);
}

.lms-course-lesson.is-active .lms-course-lesson-card {
    border-color: rgba(37, 99, 235, .35);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .08);
}

.lms-course-lesson-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.lms-course-lesson-title h4 {
    margin: 0 0 4px;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.35;
}

.lms-course-lesson-title h4 a {
    color: var(--lms-text);
    text-decoration: none;
}

.lms-course-lesson-title h4 a:hover { color: var(--lms-accent); }

.lms-course-lesson-duration {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-course-assess-list {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--lms-border-light);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.lms-course-assess-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface-alt);
}

.lms-course-assess-info {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.lms-course-assess-info > i {
    color: var(--lms-accent);
    margin-top: 3px;
    width: 16px;
    text-align: center;
}

.lms-course-assess-info strong {
    display: block;
    font-size: .8125rem;
    margin-bottom: 2px;
}

.lms-course-assess-info span {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.lms-course-assess-action {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.lms-course-lesson-note {
    margin: 10px 0 0;
    font-size: .8125rem;
    color: var(--lms-text-muted);
}

.lms-course-lesson-cta {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--lms-border-light);
}

.lms-course-guide {
    padding: 16px 18px 18px;
}

.lms-course-guide-overview {
    margin: 0 0 14px;
    font-size: .875rem;
    line-height: 1.65;
    color: var(--lms-text-secondary);
}

.lms-course-guide-block {
    border-top: 1px solid var(--lms-border-light);
    padding: 12px 0;
}

.lms-course-guide-block summary {
    cursor: pointer;
    font-weight: 600;
    font-size: .875rem;
    color: var(--lms-text);
    list-style: none;
}

.lms-course-guide-block summary::-webkit-details-marker { display: none; }

.lms-course-guide-block dl,
.lms-course-guide-block ul,
.lms-course-guide-block ol {
    margin: 10px 0 0;
    font-size: .8125rem;
    color: var(--lms-text-secondary);
}

.lms-course-guide-block dt {
    font-weight: 600;
    color: var(--lms-text);
    margin-top: 8px;
}

.lms-course-guide-block dd { margin: 2px 0 0; }

.lms-course-final-body {
    padding: 18px;
}

.lms-course-final-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 16px;
    margin-bottom: 14px;
    border-radius: var(--lms-radius);
    background: var(--lms-surface-alt);
}

.lms-course-final-state i { font-size: 1.75rem; }
.lms-course-final-state p { margin: 0; font-size: .9rem; }
.lms-course-final-state small { color: var(--lms-text-muted); }

.lms-course-final-state.is-success i { color: var(--lms-success); }
.lms-course-final-state.is-ready i { color: var(--lms-accent); }
.lms-course-final-state.is-locked i { color: var(--lms-text-muted); }

.lms-course-side-links {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.lms-course-side-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    text-decoration: none;
    color: var(--lms-text);
    border-bottom: 1px solid var(--lms-border-light);
    font-size: .875rem;
    font-weight: 500;
    transition: background .15s, color .15s;
}

.lms-course-side-link:last-child { border-bottom: none; }
.lms-course-side-link:hover { background: var(--lms-surface-alt); color: var(--lms-accent); }
.lms-course-side-link i { color: var(--lms-accent); width: 18px; text-align: center; }

@media (max-width: 1100px) {
    .lms-course-layout { grid-template-columns: 1fr; }
    .lms-course-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
}

@media (max-width: 768px) {
    .lms-course-hero {
        grid-template-columns: 1fr;
        padding: 20px;
    }
    .lms-course-hero-media { min-height: 160px; }
    .lms-course-hero-media img,
    .lms-course-hero-placeholder { min-height: 160px; }
    .lms-course-lesson { grid-template-columns: 40px 1fr; padding: 0 12px 16px; }
    .lms-course-lesson-num { width: 32px; height: 32px; font-size: .75rem; }
    .lms-course-assess-row { flex-direction: column; align-items: flex-start; }
    .lms-course-side { grid-template-columns: 1fr; }
}

/* ===========================================
   APPLICATION FORM (Public)
   =========================================== */
.lms-apply-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #000f1f 0%, #001a33 55%, #0a2a4a 100%);
    padding: 48px 20px 64px;
    position: relative;
    overflow: hidden;
}

.lms-apply-page::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 15% 40%, rgba(197,160,89,.16) 0%, transparent 55%),
        radial-gradient(ellipse at 85% 70%, rgba(16,185,129,.1) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.04) 0%, transparent 60%);
    pointer-events: none;
}

.lms-apply-container {
    max-width: 700px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.lms-apply-card {
    background: var(--lms-surface);
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(0,0,0,.28), 0 8px 24px rgba(0,0,0,.15);
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
}

.lms-apply-header {
    text-align: center;
    padding: 44px 48px 36px;
    background: var(--lms-surface);
    position: relative;
    border-bottom: 1px solid var(--lms-border);
}

.lms-apply-header-icon {
    width: 68px;
    height: 68px;
    background: var(--lms-accent-soft);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 1.75rem;
    color: var(--lms-accent);
    border: 2px solid var(--lms-accent-light);
}

.lms-apply-header h1 {
    font-size: 1.625rem;
    font-weight: 700;
    color: var(--lms-brand);
    margin-bottom: 8px;
}

.lms-apply-header p {
    color: var(--lms-text-muted);
    font-size: .9375rem;
    max-width: 380px;
    margin: 0 auto;
}

.lms-apply-body {
    padding: 36px 48px 48px;
    background: var(--lms-surface);
}

.lms-apply-footer {
    text-align: center;
    padding: 20px 0 0;
    border-top: 1px solid var(--lms-border);
    margin-top: 28px;
}

/* ===========================================
   APPLICATION TRACKER (Public)
   =========================================== */
.lms-track-page .lms-login-shell {
    max-width: 1040px;
}

.lms-track-main {
    display: flex;
    align-items: stretch;
}

.lms-track-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.lms-track-header {
    text-align: left;
    padding-bottom: 8px;
}

.lms-track-kicker {
    margin: 0 0 8px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--lms-accent);
}

.lms-track-kicker i { margin-right: 6px; }

.lms-track-body {
    padding-top: 8px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.lms-track-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 4px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-md);
}

.lms-track-tab {
    border: none;
    background: transparent;
    padding: 10px 12px;
    border-radius: calc(var(--lms-radius-md) - 2px);
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lms-text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background .15s, color .15s, box-shadow .15s;
}

.lms-track-tab.is-active {
    background: var(--lms-surface);
    color: var(--lms-brand);
    box-shadow: var(--lms-shadow-sm);
}

.lms-track-panel { display: none; }
.lms-track-panel.is-active { display: block; }

.lms-track-input-wrap {
    position: relative;
}
.lms-track-input-wrap i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lms-text-muted);
    font-size: .9rem;
    pointer-events: none;
}
.lms-track-input-wrap .lms-input {
    padding-left: 40px;
}

.lms-track-hint {
    margin: 8px 0 0;
    font-size: .78rem;
    color: var(--lms-text-muted);
}

.lms-track-submit {
    margin-top: 4px;
    padding: 12px 18px;
    font-weight: 600;
}

.lms-track-result {
    border-radius: var(--lms-radius-lg);
    border: 1px solid var(--lms-border);
    overflow: hidden;
    background: var(--lms-surface-alt);
}

.lms-track-result-hero {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px 20px 18px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-track-result-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    flex-shrink: 0;
}

.lms-track-result--pending .lms-track-result-icon {
    background: #fffbeb;
    color: #d97706;
    border: 1px solid #fcd34d;
}
.lms-track-result--approved .lms-track-result-icon {
    background: #ecfdf5;
    color: #059669;
    border: 1px solid #6ee7b7;
}
.lms-track-result--rejected .lms-track-result-icon {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}
.lms-track-result--waitlisted .lms-track-result-icon {
    background: #eef2ff;
    color: #4f46e5;
    border: 1px solid #c7d2fe;
}

.lms-track-result-copy h3 {
    margin: 0 0 8px;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--lms-text);
}

.lms-track-result-copy p {
    margin: 0;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--lms-text-secondary);
}

.lms-track-status-pill {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.lms-track-result--pending .lms-track-status-pill { background: #fef3c7; color: #92400e; }
.lms-track-result--approved .lms-track-status-pill { background: #d1fae5; color: #065f46; }
.lms-track-result--rejected .lms-track-status-pill { background: #fee2e2; color: #991b1b; }
.lms-track-result--waitlisted .lms-track-status-pill { background: #e0e7ff; color: #3730a3; }

.lms-track-timeline {
    list-style: none;
    margin: 0;
    padding: 18px 20px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    border-bottom: 1px solid var(--lms-border-light);
}

.lms-track-step {
    text-align: center;
    position: relative;
    font-size: .72rem;
    font-weight: 600;
    color: var(--lms-text-muted);
}

.lms-track-step-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0 auto 8px;
    border-radius: 50%;
    background: var(--lms-surface);
    border: 2px solid var(--lms-border);
    color: var(--lms-text-muted);
    font-size: .85rem;
}

.lms-track-step--done .lms-track-step-marker {
    background: var(--lms-accent-soft);
    border-color: var(--lms-accent);
    color: var(--lms-accent);
}

.lms-track-step--active .lms-track-step-marker {
    background: var(--lms-brand);
    border-color: var(--lms-brand);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, .2);
}

.lms-track-step--active .lms-track-step-label {
    color: var(--lms-brand);
}

.lms-track-details {
    margin: 0;
    padding: 16px 20px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
}

.lms-track-detail dt {
    margin: 0 0 4px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
}

.lms-track-detail dd {
    margin: 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--lms-text);
    word-break: break-word;
}

.lms-track-detail code {
    font-size: .82rem;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
}

.lms-track-note {
    margin: 0 16px 16px;
    padding: 14px 16px;
    border-radius: var(--lms-radius-md);
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    font-size: .875rem;
}

.lms-track-note strong {
    display: block;
    margin-bottom: 8px;
    color: var(--lms-text);
}

.lms-track-note p {
    margin: 0;
    color: var(--lms-text-secondary);
    line-height: 1.6;
}

.lms-track-portal-cta {
    margin: 0 16px 16px;
}

.lms-track-not-found p {
    margin: 4px 0 0;
    font-size: .875rem;
    font-weight: 400;
}

.lms-track-footer {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--lms-border-light);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 12px;
    font-size: .85rem;
}

.lms-track-footer a {
    color: var(--lms-accent);
    text-decoration: none;
    font-weight: 600;
}

.lms-track-footer a:hover { text-decoration: underline; }

.lms-track-footer span {
    color: var(--lms-text-muted);
}

@media (max-width: 768px) {
    .lms-track-timeline {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .lms-track-details {
        grid-template-columns: 1fr;
    }
    .lms-track-result-hero {
        flex-direction: column;
    }
}

/* ===========================================
   RTL SUPPORT
   =========================================== */
[dir="rtl"] body { font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif; }
[dir="rtl"] .lms-content,
[dir="rtl"] .lesson-text,
[dir="rtl"] .lesson-nav-btn,
[dir="rtl"] .lms-detail-card,
[dir="rtl"] .lms-chat-bubble { line-height: 2.2; }
/* RTL scrollbars sit on the left — keep bubbles clear of that edge */
[dir="rtl"] .lms-chat-messages,
[dir="rtl"] .lesson-chat-messages,
[dir="rtl"] #oralChatMessages {
    padding-inline-start: 16px;
    padding-inline-end: 28px;
    scrollbar-gutter: stable;
}
[dir="rtl"] .lms-chat-msg {
    max-width: min(88%, calc(100% - 16px));
}
[dir="rtl"] .lms-chat-msg.ai {
    margin-inline-end: 6px;
}
[dir="rtl"] .lms-chat-msg.user {
    margin-inline-start: 6px;
}
[dir="rtl"] .lms-chat-bubble.urdu,
[dir="rtl"] .lms-chat-bubble[lang="ur"] {
    padding-inline: 20px 22px;
}
[dir="rtl"] .lms-topbar,
[dir="rtl"] .lms-sidebar,
[dir="rtl"] .lesson-topbar {
    font-family: var(--lms-font-body);
    line-height: 1.5;
}
[dir="rtl"] .lms-topbar h2,
[dir="rtl"] .lesson-breadcrumb {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    /* Nastaliq dots/descenders need room — overflow:hidden was slicing them */
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 2.1;
    padding-block: 2px 10px;
}
[dir="rtl"] .lms-topbar {
    height: auto;
    min-height: var(--lms-topbar-h);
    padding-block: 6px;
    align-items: center;
}
[dir="rtl"] .lms-topbar-left {
    align-items: center;
    min-height: 2.5em;
}
[dir="rtl"] .lms-sidebar .lms-nav-item {
    align-items: flex-start;
    padding-top: 10px;
    padding-bottom: 12px;
    line-height: 2;
}
[dir="rtl"] .lms-sidebar .lms-nav-item span,
[dir="rtl"] .lms-sidebar .lms-nav-label,
[dir="rtl"] .lms-sidebar-title {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    line-height: 2.1;
    overflow: visible;
    padding-bottom: 0.2em;
}
[dir="rtl"] .lms-sidebar .lms-nav-item i {
    margin-top: 0.35em;
}
[dir="rtl"] .lms-dash-quick-link {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    line-height: 2;
    padding-top: 12px;
    padding-bottom: 14px;
    overflow: visible;
    align-items: center;
}
[dir="rtl"] .lms-dash-quick-link span {
    line-height: 2;
    padding-bottom: 0.15em;
    overflow: visible;
}
[dir="rtl"] .lms-dash-stat-lbl,
[dir="rtl"] .lms-dash-hero-title,
[dir="rtl"] .lms-dash-hero-eyebrow,
[dir="rtl"] .lms-dash-hero-sub,
[dir="rtl"] .lms-lang-toggle {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    line-height: 2.1;
    overflow: visible;
    text-transform: none;
    letter-spacing: normal;
    padding-bottom: 0.2em;
}
[dir="rtl"] .lms-dash-stat {
    overflow: visible;
}
[dir="rtl"] .lms-dash-stat-lbl {
    margin-top: 6px;
    font-size: .75rem;
}
[dir="rtl"] .lms-sidebar { left: auto; right: 0; }
/* logical margin-inline-start already flips for RTL — do not also set physical margin-right */
[dir="rtl"] .lms-nav-badge { margin-left: 0; margin-right: auto; }
[dir="rtl"] .lms-chat-msg.ai .lms-chat-bubble { border-bottom-left-radius: 12px; border-bottom-right-radius: 4px; }
[dir="rtl"] .lms-chat-msg.user .lms-chat-bubble { border-bottom-right-radius: 12px; border-bottom-left-radius: 4px; }
[dir="rtl"] .lesson-chat-input textarea { text-align: right; }
[dir="rtl"] .lms-alert { border-left: none; border-right: 3px solid; }
[dir="rtl"] select.lms-input { background-position: left 14px center; padding-left: 36px; padding-right: 14px; }
[dir="rtl"] .lesson-panel { border-left: none; border-right: 1px solid var(--lms-border); }
[dir="rtl"] .lesson-text blockquote { border-left: none; border-right: 3px solid var(--lms-accent); border-radius: var(--lms-radius-sm) 0 0 var(--lms-radius-sm); }
[dir="rtl"] .lesson-text ul,
[dir="rtl"] .lesson-text ol { padding-left: 0; padding-right: 24px; }
[dir="rtl"] .lesson-text table { direction: rtl; }
[dir="rtl"] .lesson-text table th,
[dir="rtl"] .lesson-text table td { text-align: right; }
[dir="rtl"] .lesson-nav-next { margin-left: 0; margin-right: auto; }
[dir="rtl"] .lesson-nav-right { text-align: left; }
[dir="rtl"] .lesson-nav-next div { text-align: left; }
[dir="rtl"] .lesson-nav-btn i { transform: scaleX(-1); }
[dir="rtl"] .lesson-chat-fab { right: auto; left: 24px; }
[dir="rtl"] .lesson-needs-review-banner { border-left: none; border-right: 4px solid #f59e0b; }
[dir="rtl"] .lesson-back-btn i { transform: scaleX(-1); }
[dir="rtl"] .lesson-breadcrumb-sep i { transform: scaleX(-1); }

/* ===========================================
   SIDEBAR COLLAPSED
   =========================================== */
.lms-sidebar.collapsed {
    width: 72px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
}

.lms-sidebar.collapsed::-webkit-scrollbar {
    display: none;
}

.lms-sidebar.collapsed .lms-sidebar-header {
    justify-content: center;
    padding: 16px 12px;
}

.lms-sidebar.collapsed .lms-brand {
    justify-content: center;
}

.lms-sidebar.collapsed .lms-brand-portal {
    display: none !important;
}

.lms-sidebar.collapsed .lms-brand-logo-wrap {
    padding: 4px;
    width: 44px;
}

.lms-sidebar.collapsed .lms-brand--stacked .lms-brand-logo,
.lms-sidebar.collapsed .lms-brand--horizontal .lms-brand-logo {
    width: 40px;
    height: 40px;
    max-height: 40px;
    object-fit: contain;
    object-position: left center;
}

.lms-sidebar.collapsed .lms-sidebar-title,
.lms-sidebar.collapsed .lms-nav-label,
.lms-sidebar.collapsed .lms-nav-item span,
.lms-sidebar.collapsed .lms-nav-badge,
.lms-sidebar.collapsed .lms-notif-dot {
    display: none !important;
}

.lms-sidebar.collapsed .lms-nav {
    padding: 10px 0 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.lms-sidebar.collapsed .lms-nav-group {
    width: 100%;
    padding: 0;
    margin-bottom: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.lms-sidebar.collapsed .lms-nav-item {
    justify-content: center;
    align-items: center;
    gap: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    border-radius: 10px;
}

.lms-sidebar.collapsed .lms-nav-item i {
    width: auto;
    margin: 0;
    font-size: 1.05rem;
    line-height: 1;
}

/* Sidebar is a body-level sibling (outside .lms-layout) so drawer is not clipped */
body:has(.lms-sidebar.collapsed) .lms-main {
    padding-inline-start: var(--lms-shell-gutter, 72px);
    padding-inline-end: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
}

/* Oral exam focus — sidebar hidden; never leave a phantom RTL right gutter */
html.lms-oral-focus,
body.lms-oral-focus {
    --lms-shell-gutter: 0px !important;
}
html.lms-oral-focus .lms-sidebar,
body.lms-oral-focus .lms-sidebar,
html.lms-oral-focus .lms-sidebar-overlay,
body.lms-oral-focus .lms-sidebar-overlay,
html.lms-oral-focus .lms-topbar-toggle,
body.lms-oral-focus .lms-topbar-toggle {
    display: none !important;
}
html.lms-oral-focus .lms-main,
body.lms-oral-focus .lms-main,
html[dir="rtl"].lms-oral-focus .lms-main,
html[dir="rtl"] body.lms-oral-focus .lms-main {
    margin: 0 !important;
    margin-inline: 0 !important;
    padding-inline-start: 0 !important;
    padding-inline-end: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
html.lms-oral-focus .lms-content,
body.lms-oral-focus .lms-content {
    width: 100% !important;
    max-width: 960px;
    margin-inline: auto;
    box-sizing: border-box;
}

/* Quiz focus — sidebar hidden; reclaim full width (fixes RTL empty right gutter) */
html.lms-quiz-focus .lms-sidebar,
body.lms-quiz-focus .lms-sidebar,
html.lms-quiz-focus .lms-sidebar-overlay,
body.lms-quiz-focus .lms-sidebar-overlay,
html.lms-quiz-focus .lms-topbar-toggle,
body.lms-quiz-focus .lms-topbar-toggle {
    display: none !important;
}
html.lms-quiz-focus .lms-main,
body.lms-quiz-focus .lms-main,
html[dir="rtl"].lms-quiz-focus .lms-main,
html[dir="rtl"] body.lms-quiz-focus .lms-main {
    margin: 0 !important;
    margin-inline: 0 !important;
    padding-inline-start: 0 !important;
    padding-inline-end: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
html.lms-quiz-focus .lms-content,
body.lms-quiz-focus .lms-content {
    width: 100% !important;
    max-width: 960px;
    margin-inline: auto;
    box-sizing: border-box;
}
html.lms-quiz-focus .lms-content .lms-card,
body.lms-quiz-focus .lms-content .lms-card {
    width: 100%;
    max-width: 100%;
}

/* ===========================================
   RESPONSIVE
   =========================================== */
@media (max-width: 1024px) {
    .lms-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .lms-grid-3 { grid-template-columns: repeat(2, 1fr); }
    .lms-lesson-layout { grid-template-columns: 1fr; }
    .lesson-body {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
        max-width: 100%;
    }
    .lesson-content-area {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    .lesson-panel {
        display: none !important;
        position: fixed;
        inset: 0;
        z-index: 200;
        border-left: none;
        width: 100% !important;
        max-width: 100% !important;
        background: var(--lms-surface);
    }
    .lesson-panel.mobile-open {
        display: flex !important;
        flex-direction: column;
        height: 100dvh;
        max-height: 100dvh;
        padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .lesson-panel.mobile-open .lesson-panel-body {
        flex: 1;
        min-height: 0;
    }
    .lesson-panel.mobile-open .lesson-chat-composer {
        padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .lesson-panel-close {
        display: inline-flex;
    }
    .lesson-chat-fab {
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 210;
    }
    body.lesson-teacher-open .lesson-chat-fab {
        display: none;
    }
    .lesson-topbar-center { display: none; }
    .lesson-complete-btn span { display: none; }
    .lesson-breadcrumb-course { max-width: 120px; }
    .lesson-article {
        padding: 24px 16px;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .lesson-practice-section {
        margin: 24px 0 8px;
        padding: 16px;
        width: 100%;
        max-width: 100%;
    }
    .lesson-nav { padding: 16px 16px 32px; }
    .lesson-viewer {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
        height: auto !important;
        margin: 0 !important;
        overflow: visible !important;
    }
    .lesson-content-area {
        overflow: visible !important;
        height: auto !important;
    }
    .lesson-article {
        overflow-x: hidden !important;
    }
}

@media (max-width: 1024px) {
    /* Off-canvas drawer — position-based (no RTL transform overflow) */
    html, body {
        overflow-x: clip !important;
        max-width: 100% !important;
    }

    .lms-sidebar,
    .lms-sidebar.collapsed {
        display: none !important;
    }

    .lms-sidebar.mobile-open,
    .lms-sidebar.collapsed.mobile-open {
        display: flex !important;
        flex-direction: column;
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        width: min(280px, 85vw) !important;
        max-width: 85vw !important;
        min-width: 260px !important;
        padding: 0;
        overflow-x: hidden;
        overflow-y: auto;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        background: var(--lms-brand-dark) !important;
        box-shadow: 0 0 40px rgba(0, 0, 0, .35);
        transform: none !important;
        z-index: 120;
        left: 0 !important;
        right: auto !important;
    }

    html[dir="rtl"] .lms-sidebar.mobile-open,
    html[dir="rtl"] .lms-sidebar.collapsed.mobile-open,
    [dir="rtl"] .lms-sidebar.mobile-open,
    [dir="rtl"] .lms-sidebar.collapsed.mobile-open {
        left: auto !important;
        right: 0 !important;
        transform: none !important;
    }

    /* Full labels in drawer even if collapsed class leaked from desktop */
    .lms-sidebar.collapsed .lms-sidebar-header {
        justify-content: flex-start;
        padding: 20px 22px;
        gap: 12px;
    }
    .lms-sidebar.collapsed .lms-sidebar-title,
    .lms-sidebar.collapsed .lms-nav-label,
    .lms-sidebar.collapsed .lms-nav-item span,
    .lms-sidebar.collapsed .lms-nav-badge,
    .lms-sidebar.collapsed .lms-notif-dot {
        display: revert !important;
    }
    .lms-sidebar.collapsed .lms-nav {
        padding: 12px 0;
        align-items: stretch;
    }
    .lms-sidebar.collapsed .lms-nav-group {
        padding: 0 12px;
        align-items: stretch;
        width: auto;
    }
    .lms-sidebar.collapsed .lms-nav-item {
        width: auto;
        height: auto;
        justify-content: flex-start;
        gap: 12px;
        padding: 9px 12px;
    }
    .lms-sidebar.collapsed .lms-nav-item i {
        width: 18px;
        font-size: .8125rem;
    }

    /* Full-bleed main — zero gutter (margin AND padding) */
    .lms-main,
    [dir="rtl"] .lms-main,
    html[dir="rtl"] .lms-main,
    .lms-sidebar.collapsed ~ .lms-main,
    [dir="rtl"] .lms-sidebar.collapsed ~ .lms-main,
    html.lms-is-mobile .lms-main,
    html.lms-is-mobile[dir="rtl"] .lms-main,
    body:has(.lms-sidebar.collapsed) .lms-main,
    .lms-layout > .lms-main {
        margin: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-inline: 0 !important;
        margin-inline-start: 0 !important;
        margin-inline-end: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-inline: 0 !important;
        padding-inline-start: 0 !important;
        padding-inline-end: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        transform: none !important;
        position: fixed !important;
        inset: 0 !important;
        height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        z-index: 1 !important;
        background: var(--lms-bg, #f8fafc) !important;
    }

    .lms-layout {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .lms-content,
    .lms-dash,
    .lms-topbar {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden;
    }
    .lms-content {
        padding: 16px !important;
    }
    .lms-content:has(.lesson-viewer) {
        padding: 0 !important;
    }
    .lms-topbar {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .lms-dash-layout {
        grid-template-columns: 1fr !important;
    }

    .lms-dash-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .lms-dash-hero,
    .lms-dash-stat,
    .lms-dash-quick-link,
    .lms-dash-hero-main {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .lms-sidebar-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .45);
        z-index: 115;
        pointer-events: none;
    }
    .lms-sidebar-overlay.active {
        display: block;
        pointer-events: auto;
    }

    body.lms-nav-open {
        overflow: hidden !important;
        touch-action: none;
    }
}

@media (max-width: 768px) {
    .lms-content { padding: 16px; overflow-x: hidden; }
    .lms-grid-2 { grid-template-columns: 1fr; }
    .lms-grid-3 { grid-template-columns: 1fr; }
    .lms-grid-4 { grid-template-columns: 1fr 1fr; }

    .lms-inline-form { flex-direction: column; }
    .lms-inline-form select,
    .lms-inline-form input { min-width: 0; width: 100%; max-width: 100%; }

    .lms-topbar {
        padding: 0 12px;
        height: auto;
        min-height: var(--lms-topbar-h);
        flex-wrap: wrap;
        gap: 8px;
    }
    .lms-topbar-left {
        min-width: 0;
        flex: 1 1 auto;
    }
    .lms-topbar h2 {
        font-size: 1rem;
        max-width: min(60vw, 260px);
    }
    [dir="rtl"] .lms-topbar h2 {
        overflow: visible;
        white-space: normal;
        line-height: 2.1;
        padding-block: 2px 10px;
        max-width: min(58vw, 240px);
    }
    .lms-topbar-right > span:not(.lms-notif-dot) {
        display: none;
    }

    .lms-filter-tabs { overflow-x: auto; flex-wrap: nowrap; }

    .lms-table { font-size: .8125rem; }
    .lms-table th, .lms-table td { padding: 8px 10px; }
    .lms-card-body { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    [dir="rtl"] .lms-content,
    [dir="rtl"] .lms-card,
    [dir="rtl"] .lms-dash {
        max-width: 100%;
    }

    .lms-apply-card { border-radius: 14px; }
    .lms-apply-header { padding: 32px 24px 28px; }
    .lms-apply-body { padding: 28px 24px 36px; }
    .lms-login-card { padding: 32px 24px; }

    .lms-chat-input-area { padding: 12px; }

    .lesson-viewer { margin: 0; max-width: 100%; height: auto; overflow: visible; }
    .lesson-topbar { padding: 0 12px; }
    .lesson-breadcrumb-course { display: none; }
    .lesson-breadcrumb-sep { display: none; }
    .lesson-nav-btn { padding: 12px 14px; }
    .lesson-nav-btn span { font-size: .8125rem; }
    .lesson-article { overflow-x: hidden; }
    .lesson-content-area { overflow: visible; height: auto; }
    .lesson-text table { display: block; max-width: 100%; overflow-x: auto; }
}

@media (max-width: 480px) {
    .lms-grid-4 { grid-template-columns: 1fr; }
    .lms-stat-card { padding: 14px; }
    .lms-stat-number, .lms-stat-num { font-size: 1.375rem; }
}

/* ===========================================
   Admin Panel — adm-* classes
   =========================================== */

/* --- Layout Shell --- */
.adm-layout {
    display: flex;
    min-height: 100vh;
    background: var(--lms-bg);
}

/* --- Sidebar --- */
.adm-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--lms-sidebar-w);
    background: var(--lms-brand-dark);
    color: #fff;
    display: flex;
    flex-direction: column;
    z-index: 100;
    overflow-y: auto;
    transition: width var(--lms-transition), transform var(--lms-transition);
}

.adm-sidebar::-webkit-scrollbar { width: 4px; }
.adm-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 4px; }

.adm-sidebar-header {
    display: flex;
    align-items: center;
    padding: 18px 16px 16px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    flex-shrink: 0;
}

.adm-logo {
    width: auto;
    height: 48px;
    max-width: 160px;
    flex-shrink: 0;
    background: #fff;
    border-radius: 10px;
    padding: 4px 6px;
    object-fit: contain;
}

.adm-brand {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -.02em;
    white-space: nowrap;
    overflow: hidden;
}

/* --- Navigation --- */
.adm-nav {
    flex: 1;
    padding: 12px 10px 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.adm-nav-label {
    display: block;
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.3);
    padding: 14px 12px 5px;
    white-space: nowrap;
    overflow: hidden;
}

.adm-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: var(--lms-radius-sm);
    color: rgba(255,255,255,.6);
    text-decoration: none;
    font-size: .8125rem;
    font-weight: 500;
    transition: background var(--lms-transition), color var(--lms-transition);
    white-space: nowrap;
    overflow: hidden;
}

.adm-nav-item i {
    width: 20px;
    text-align: center;
    font-size: .9rem;
    flex-shrink: 0;
}

.adm-nav-item span { overflow: hidden; text-overflow: ellipsis; }

.adm-nav-item:hover {
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.9);
}

.adm-nav-item.active {
    background: rgba(197,160,89,.18);
    color: #e8d5a8;
    font-weight: 600;
}

.adm-nav-danger { color: rgba(239,68,68,.85); }
.adm-nav-danger:hover { background: rgba(239,68,68,.15); color: #ef4444; }

.adm-nav-divider {
    height: 1px;
    background: rgba(255,255,255,.1);
    margin: 8px 12px;
}

.adm-badge {
    margin-left: auto;
    background: var(--lms-danger);
    color: #fff;
    font-size: .6875rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: var(--lms-radius-full);
    line-height: 1.3;
    flex-shrink: 0;
}

/* --- Sidebar Footer --- */
.adm-sidebar-footer {
    padding: 14px 20px;
    border-top: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.35);
    font-size: .7rem;
    text-align: center;
    flex-shrink: 0;
    white-space: nowrap;
    overflow: hidden;
}

/* --- Main Content Area --- */
.adm-main {
    flex: 1;
    margin-left: var(--lms-sidebar-w);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    transition: margin-left var(--lms-transition);
}

/* --- Top Bar --- */
.adm-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    height: var(--lms-topbar-h);
    background: var(--lms-surface);
    border-bottom: 1px solid var(--lms-border);
    display: flex;
    align-items: center;
    padding: 0 24px;
    gap: 16px;
    box-shadow: var(--lms-shadow-xs);
}

.adm-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 1.25rem;
    color: var(--lms-text-secondary);
    cursor: pointer;
    padding: 6px;
    border-radius: var(--lms-radius-sm);
    transition: background var(--lms-transition);
}

.adm-toggle:hover { background: var(--lms-surface-alt); }

.adm-page-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--lms-text);
    margin: 0;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.adm-topbar-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.adm-topbar-icon {
    position: relative;
    color: var(--lms-text-secondary);
    font-size: 1.1rem;
    text-decoration: none;
    padding: 6px;
    border-radius: var(--lms-radius-sm);
    transition: color var(--lms-transition), background var(--lms-transition);
}

.adm-topbar-icon:hover {
    color: var(--lms-accent);
    background: var(--lms-accent-soft);
}

.adm-badge-sm {
    position: absolute;
    top: 0;
    right: -2px;
    background: var(--lms-danger);
    color: #fff;
    font-size: .625rem;
    font-weight: 700;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 2px solid var(--lms-surface);
}

.adm-user {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--lms-text);
    font-size: .875rem;
    font-weight: 500;
}

.adm-user i { font-size: 1.5rem; color: var(--lms-text-muted); }

/* --- Content --- */
.adm-content {
    flex: 1;
    padding: 28px;
}

/* --- Admin Page Header Bar --- */
.adm-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.adm-page-header h2 {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--lms-text);
    margin: 0;
}

.adm-page-header p {
    color: var(--lms-text-muted);
    font-size: .8125rem;
    margin: 2px 0 0;
}

.adm-page-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* --- Table horizontal-scroll wrapper --- */
.adm-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.adm-table-wrap::-webkit-scrollbar { height: 6px; }
.adm-table-wrap::-webkit-scrollbar-thumb { background: var(--lms-border); border-radius: 3px; }

/* --- Action cell - grouped buttons --- */
.lms-actions-cell {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

/* --- Card polish --- */
/* Stack cards vertically — skip inside grid/flex containers */
.lms-card + .lms-card:not([class*="lms-grid"] > *) { margin-top: 24px; }
[class*="lms-grid"] > .lms-card + .lms-card,
.adm-stu-split > .lms-card + .lms-card,
.adm-stu-layout > .lms-card + .lms-card,
.adm-assess-layout > .lms-card + .lms-card,
.adm-bank-layout > .lms-card + .lms-card,
.adm-prog-detail-grid > .lms-card + .lms-card { margin-top: 0; }

.lms-card-header h3 {
    font-size: .9375rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--lms-text);
}

.lms-card-header h3 i { color: var(--lms-accent); font-size: .875rem; }

.lms-card-footer {
    padding: 14px 20px;
    border-top: 1px solid var(--lms-border-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

/* --- Form inside card — auto-padding --- */
.lms-card > form {
    padding: 20px;
}

.lms-card > form .lms-form-row,
.lms-card > form .lms-grid-2,
.lms-card > form .lms-grid-3 {
    margin-bottom: 16px;
}

/* --- Better inputs (also style bare inputs inside cards) --- */
.lms-card input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.lms-input):not(.lms-btn):not([class*="btn"]),
.lms-card select:not(.lms-input),
.lms-card textarea:not(.lms-input) {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    font-size: .9375rem;
    font-family: inherit;
    color: var(--lms-text);
    background: var(--lms-surface);
    transition: border-color var(--lms-transition), box-shadow var(--lms-transition);
}

.lms-card input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.lms-input):not(.lms-btn):not([class*="btn"]):focus,
.lms-card select:not(.lms-input):focus,
.lms-card textarea:not(.lms-input):focus {
    outline: none;
    border-color: var(--lms-accent);
    box-shadow: 0 0 0 3px rgba(197,160,89,.22);
}

/* --- Checkbox & Radio polish --- */
.lms-card input[type="checkbox"],
.lms-card input[type="radio"] {
    accent-color: var(--lms-accent);
    width: 16px;
    height: 16px;
    cursor: pointer;
}

/* --- Code tags inside tables --- */
.lms-table code {
    background: var(--lms-surface-alt);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--lms-brand);
}

/* --- Form helper text --- */
.lms-card-body small,
.lms-card > form small {
    display: block;
    margin-top: 4px;
    color: var(--lms-text-muted);
    font-size: .75rem;
}

/* --- Detail card padding inside grids --- */
.lms-card .lms-grid-3,
.lms-card .lms-grid-4 {
    padding: 16px 20px;
}

/* --- Margin-top utility (used in admissions, integrity) --- */
.lms-mt { margin-top: 16px; padding: 0 20px 20px; }

/* --- Action bar inside cards --- */
.lms-action-bar {
    padding: 16px 20px;
    border-top: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
    border-radius: 0 0 var(--lms-radius) var(--lms-radius);
}

/* --- Content editor textarea (fallback) --- */
.lms-content-editor {
    min-height: 360px;
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface);
    font-family: 'Menlo', 'Consolas', 'Courier New', monospace;
    font-size: .8125rem;
    line-height: 1.7;
    tab-size: 2;
    resize: vertical;
    box-sizing: border-box;
}

/* --- Quill rich-text editor overrides --- */
#quillEditor { background: var(--lms-surface); }
.ql-toolbar.ql-snow { border-color: var(--lms-border); border-radius: var(--lms-radius-sm) var(--lms-radius-sm) 0 0; background: var(--lms-surface-alt); }
.ql-container.ql-snow { border-color: var(--lms-border); border-radius: 0 0 var(--lms-radius-sm) var(--lms-radius-sm); font-family: var(--lms-font-body); font-size: .9375rem; }
.ql-editor { min-height: 360px; line-height: 1.75; padding: 16px 20px; }
.ql-editor.ql-blank::before { color: var(--lms-text-muted); font-style: normal; }

/* --- Admin Dashboard --- */
.dash-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--lms-brand) 0%, var(--lms-brand-light) 100%);
    color: #fff;
    border-radius: var(--lms-radius-lg);
    padding: 28px 32px;
    margin-bottom: 24px;
}

.dash-welcome h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 4px;
}

.dash-welcome p {
    font-size: .9rem;
    opacity: .8;
    margin: 0;
}

.dash-welcome-date {
    font-size: .875rem;
    opacity: .75;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
}

.dash-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.dash-stat-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    box-shadow: var(--lms-shadow-xs);
    position: relative;
    transition: box-shadow var(--lms-transition), transform var(--lms-transition);
}

.dash-stat-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-2px);
}

.dash-stat-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--lms-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    flex-shrink: 0;
}

.dash-stat-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dash-stat-num {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--lms-text);
    line-height: 1.1;
}

.dash-stat-label {
    font-size: .75rem;
    font-weight: 500;
    color: var(--lms-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 2px;
}

.dash-stat-action {
    position: absolute;
    bottom: 8px;
    right: 12px;
    font-size: .7rem;
    font-weight: 600;
    color: var(--lms-accent);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.dash-stat-action:hover { text-decoration: underline; }

.dash-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.dash-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-full);
    color: var(--lms-text);
    font-size: .8125rem;
    font-weight: 500;
    text-decoration: none;
    transition: all var(--lms-transition);
}

.dash-action-btn:hover {
    background: var(--lms-accent);
    border-color: var(--lms-accent);
    color: #fff;
    box-shadow: var(--lms-shadow);
}

.dash-action-btn i { font-size: .75rem; }

/* --- Stat-num alias (admin pages use lms-stat-num) --- */
.lms-stat-num {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--lms-text);
    line-height: 1;
}

/* --- Sidebar Collapsed State (desktop) --- */
.sidebar-collapsed .adm-sidebar {
    width: 68px;
}

.sidebar-collapsed .adm-sidebar .adm-brand,
.sidebar-collapsed .adm-sidebar .adm-nav-label,
.sidebar-collapsed .adm-sidebar .adm-nav-item span,
.sidebar-collapsed .adm-sidebar .adm-badge {
    opacity: 0;
    width: 0;
    overflow: hidden;
}

.sidebar-collapsed .adm-sidebar .adm-sidebar-header {
    justify-content: center;
    padding: 16px 12px;
}

.sidebar-collapsed .adm-sidebar .lms-brand {
    justify-content: center;
}

.sidebar-collapsed .adm-sidebar .lms-brand-portal,
.sidebar-collapsed .adm-sidebar .adm-brand,
.sidebar-collapsed .adm-sidebar .lms-portal-tag {
    display: none !important;
}

.sidebar-collapsed .adm-sidebar .lms-brand-logo-wrap {
    padding: 4px;
    width: 44px;
}

.sidebar-collapsed .adm-sidebar .lms-brand--stacked .lms-brand-logo,
.sidebar-collapsed .adm-sidebar .lms-brand--horizontal .lms-brand-logo {
    width: 40px;
    height: 40px;
    max-height: 40px;
    object-fit: contain;
    object-position: left center;
}

.sidebar-collapsed .adm-sidebar .adm-nav-item {
    justify-content: center;
    padding: 10px;
}

.sidebar-collapsed .adm-sidebar .adm-nav-item i {
    width: auto;
    font-size: 1.1rem;
}

.sidebar-collapsed .adm-main {
    margin-left: 68px;
}

/* --- Admin Responsive --- */
@media (max-width: 1024px) {
    .adm-sidebar {
        transform: translateX(-100%);
    }

    .adm-sidebar.show {
        transform: translateX(0);
        box-shadow: 4px 0 24px rgba(0,0,0,.3);
    }

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

    .adm-toggle {
        display: block;
    }

    .sidebar-collapsed .adm-main {
        margin-left: 0;
    }

    .sidebar-collapsed .adm-sidebar {
        width: var(--lms-sidebar-w);
        transform: translateX(-100%);
    }

    .sidebar-collapsed .adm-sidebar.show {
        transform: translateX(0);
    }

    .sidebar-collapsed .adm-sidebar .adm-brand,
    .sidebar-collapsed .adm-sidebar .adm-nav-label,
    .sidebar-collapsed .adm-sidebar .adm-nav-item span,
    .sidebar-collapsed .adm-sidebar .adm-badge {
        opacity: 1;
        width: auto;
    }

    .sidebar-collapsed .adm-sidebar .adm-sidebar-header {
        justify-content: flex-start;
        padding: 20px 20px 16px;
    }

    .sidebar-collapsed .adm-sidebar .adm-nav-item {
        justify-content: flex-start;
        padding: 10px 12px;
    }
}

@media (max-width: 768px) {
    .adm-content { padding: 16px; }
    .adm-topbar { padding: 0 16px; }
    .adm-page-title { font-size: 1.1rem; }

    .dash-welcome { padding: 20px 22px; flex-direction: column; gap: 10px; align-items: flex-start; }
    .dash-welcome h2 { font-size: 1.2rem; }
    .dash-stats { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .dash-actions { gap: 8px; }
    .dash-action-btn { padding: 8px 14px; font-size: .75rem; }

    .lms-form-row { grid-template-columns: 1fr; }
    .lms-filter-tabs { flex-wrap: wrap; }

    .lms-card .lms-grid-3,
    .lms-card .lms-grid-4 { padding: 12px 16px; }

    .adm-page-header { gap: 10px; }
    .adm-page-header h2 { font-size: 1.15rem; }

    .lms-inline-form {
        flex-direction: column;
        align-items: stretch;
    }
    .lms-inline-form select,
    .lms-inline-form input { min-width: 0; width: 100%; }
}

@media (max-width: 480px) {
    .adm-content { padding: 12px; }
    .adm-topbar { gap: 10px; }
    .adm-user span { display: none; }

    .dash-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
    .dash-stat-card { padding: 14px; gap: 10px; }
    .dash-stat-num { font-size: 1.25rem; }
    .dash-stat-icon { width: 38px; height: 38px; font-size: 1rem; }
    .dash-actions { flex-direction: column; }
    .dash-action-btn { justify-content: center; }

    .lms-card-header { padding: 12px 16px; }
    .lms-card-body { padding: 16px; }
    .lms-card > form { padding: 16px; }
    .lms-filter-tabs { padding: 4px; }
    .lms-filter-tabs a { padding: 6px 12px; font-size: .75rem; }

    .adm-adm-stats { grid-template-columns: repeat(2, 1fr); }
    .adm-app-card-head { flex-direction: column; align-items: flex-start; }
    .adm-app-head-actions { width: 100%; justify-content: flex-start; }
    .adm-app-action-buttons { flex-direction: column; }
    .adm-app-action-buttons .lms-btn { width: 100%; justify-content: center; }
}

/* --- Admin Admissions --- */
.adm-adm-header { margin-bottom: 20px; }

.adm-adm-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px 18px;
    margin-bottom: 20px;
    border-radius: var(--lms-radius);
    border: 1px solid #fcd34d;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    color: #92400e;
}

.adm-adm-alert > i {
    font-size: 1.35rem;
    flex-shrink: 0;
}

.adm-adm-alert strong {
    display: block;
    margin-bottom: 2px;
}

.adm-adm-alert span {
    font-size: .875rem;
    opacity: .9;
}

.adm-adm-alert .lms-btn { margin-left: auto; }

.adm-adm-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.adm-adm-stat {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    background: var(--lms-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}

.adm-adm-stat:hover {
    border-color: var(--lms-accent);
    box-shadow: var(--lms-shadow-sm);
    transform: translateY(-1px);
}

.adm-adm-stat.is-active {
    border-color: var(--lms-accent);
    box-shadow: 0 0 0 1px var(--lms-accent);
    background: var(--lms-accent-soft);
}

.adm-adm-stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.adm-adm-stat--brand .adm-adm-stat-icon { background: var(--lms-accent-soft); color: var(--lms-accent); }
.adm-adm-stat--warning .adm-adm-stat-icon { background: #fef3c7; color: #d97706; }
.adm-adm-stat--success .adm-adm-stat-icon { background: #dcfce7; color: #16a34a; }
.adm-adm-stat--info .adm-adm-stat-icon { background: #e0f2fe; color: #0284c7; }
.adm-adm-stat--danger .adm-adm-stat-icon { background: #fee2e2; color: #dc2626; }

.adm-adm-stat-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.adm-adm-stat-num {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
}

.adm-adm-stat-label {
    font-size: .75rem;
    color: var(--lms-text-muted);
    margin-top: 2px;
}

.adm-adm-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 20px;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
}

.adm-adm-search {
    position: relative;
    flex: 1;
    min-width: 220px;
}

.adm-adm-search i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lms-text-muted);
    font-size: .85rem;
    pointer-events: none;
}

.adm-adm-search .lms-input {
    width: 100%;
    padding-left: 36px;
}

.adm-adm-empty {
    text-align: center;
    padding: 56px 24px;
    background: var(--lms-surface);
    border: 1px dashed var(--lms-border);
    border-radius: var(--lms-radius-lg);
}

.adm-adm-empty-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.adm-adm-empty h3 { margin: 0 0 8px; }
.adm-adm-empty p { color: var(--lms-text-muted); margin: 0 0 20px; }

.adm-app-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.adm-app-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
    box-shadow: var(--lms-shadow-sm);
}

.adm-app-card--pending { border-left: 4px solid #f59e0b; }
.adm-app-card--approved { border-left: 4px solid #16a34a; }
.adm-app-card--waitlisted { border-left: 4px solid #0284c7; }
.adm-app-card--rejected { border-left: 4px solid #dc2626; }

.adm-app-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--lms-border-light);
    background: linear-gradient(180deg, var(--lms-surface-alt) 0%, var(--lms-surface) 100%);
}

.adm-app-identity {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.adm-app-avatar {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--lms-brand) 0%, var(--lms-brand-light) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .95rem;
    flex-shrink: 0;
}

.stu-admin-photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-block;
    vertical-align: middle;
    background: #e2e8f0;
}

.stu-admin-photo--lg {
    width: 56px;
    height: 56px;
}

.stu-admin-photo--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    font-size: .85rem;
}

.adm-app-name {
    margin: 0 0 6px;
    font-size: 1.1rem;
    font-weight: 700;
}

.adm-app-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: .8rem;
    color: var(--lms-text-muted);
}

.adm-app-ref {
    font-size: .75rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border);
}

.adm-app-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.adm-app-student-id {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .75rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #a7f3d0;
}

.adm-app-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 20px;
    padding: 18px 20px;
}

.adm-app-grid--compact {
    padding: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.adm-app-field--wide { grid-column: 1 / -1; }

.adm-app-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.adm-app-field-label {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
}

.adm-app-field-label i {
    margin-right: 4px;
    opacity: .75;
}

.adm-app-field a {
    color: var(--lms-accent);
    text-decoration: none;
    word-break: break-word;
}

.adm-app-field a:hover { text-decoration: underline; }

.adm-app-sub {
    display: block;
    color: var(--lms-text-muted);
    margin-top: 2px;
}

.adm-app-details {
    margin: 0 20px 16px;
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface-alt);
}

.adm-app-details summary {
    cursor: pointer;
    padding: 12px 14px;
    font-weight: 600;
    font-size: .875rem;
    list-style: none;
}

.adm-app-details summary::-webkit-details-marker { display: none; }

.adm-app-details summary i {
    margin-right: 8px;
    color: var(--lms-accent);
}

.adm-app-details-body {
    padding: 0 14px 14px;
    font-size: .9rem;
    line-height: 1.7;
    color: var(--lms-text-secondary);
}

.adm-app-reviewed {
    margin: 0 20px 16px;
    padding: 10px 12px;
    border-radius: var(--lms-radius-sm);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    font-size: .82rem;
    color: var(--lms-text-muted);
}

.adm-app-reviewed i { margin-right: 6px; color: var(--lms-accent); }
.adm-app-reviewed-note { color: var(--lms-text-secondary); }

.adm-app-actions {
    padding: 16px 20px;
    border-top: 1px solid var(--lms-border-light);
    background: linear-gradient(180deg, var(--lms-surface) 0%, var(--lms-surface-alt) 100%);
}

.adm-app-action-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.adm-app-notes-label {
    font-size: .8rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
}

.adm-app-notes {
    width: 100%;
    min-height: 72px;
    resize: vertical;
}

.adm-app-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

@media (max-width: 1100px) {
    .adm-adm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .adm-app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .adm-adm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .adm-app-grid,
    .adm-app-grid--compact { grid-template-columns: 1fr; }
}

/* --- Admissions workbench (queue + detail) --- */
.adm-adm-pipeline-banner {
    display: flex;
    align-items: center;
    gap: 14px 18px;
    flex-wrap: wrap;
    padding: 14px 18px;
    margin-bottom: 20px;
    border-radius: var(--lms-radius-lg);
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 1px solid #fcd34d;
    box-shadow: var(--lms-shadow-sm);
}
.adm-adm-pipeline-banner-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #fff;
    color: #d97706;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
.adm-adm-pipeline-banner-text {
    flex: 1;
    min-width: 180px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.adm-adm-pipeline-banner-text strong { font-size: .95rem; color: #92400e; }
.adm-adm-pipeline-banner-text span { font-size: .82rem; color: #a16207; }

.adm-adm-workbench {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    min-height: 420px;
}

.adm-adm-queue {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 220px);
    position: sticky;
    top: 12px;
}

.adm-adm-queue-search {
    position: relative;
    padding: 12px 14px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-adm-queue-search i {
    position: absolute;
    left: 26px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lms-text-muted);
    font-size: .85rem;
    pointer-events: none;
}
.adm-adm-queue-search .lms-input {
    width: 100%;
    padding-left: 36px;
    padding-right: 36px;
    font-size: .875rem;
}
.adm-adm-queue-clear {
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lms-text-muted);
    padding: 4px 6px;
}
.adm-adm-queue-clear:hover { color: var(--lms-text-secondary); }

.adm-adm-queue-list {
    list-style: none;
    margin: 0;
    padding: 8px;
    overflow-y: auto;
    flex: 1;
}

.adm-adm-queue-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--lms-radius-md);
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s, box-shadow .15s;
}
.adm-adm-queue-item:hover {
    background: var(--lms-surface-alt);
    border-color: var(--lms-border-light);
}
.adm-adm-queue-item.is-active {
    background: var(--lms-accent-soft);
    border-color: rgba(59, 130, 246, .35);
    box-shadow: inset 3px 0 0 var(--lms-accent);
}

.adm-adm-queue-avatar {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--lms-brand) 0%, var(--lms-brand-light) 100%);
    color: #fff;
    font-weight: 700;
    font-size: .8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.adm-adm-queue-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.adm-adm-queue-name {
    font-weight: 600;
    font-size: .9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.adm-adm-queue-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    font-size: .72rem;
    color: var(--lms-text-muted);
}
.adm-adm-queue-ref {
    font-family: ui-monospace, monospace;
    font-size: .68rem;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
}

.adm-adm-queue-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.adm-adm-queue-dot--pending { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, .25); }
.adm-adm-queue-dot--approved { background: #16a34a; }
.adm-adm-queue-dot--waitlisted { background: #0284c7; }
.adm-adm-queue-dot--rejected { background: #dc2626; }

.adm-adm-queue-empty {
    padding: 32px 20px;
    text-align: center;
    color: var(--lms-text-muted);
    font-size: .875rem;
}
.adm-adm-queue-empty i {
    font-size: 2rem;
    opacity: .35;
    margin-bottom: 12px;
    display: block;
}

.adm-adm-detail {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    overflow: hidden;
    min-height: 360px;
    display: flex;
    flex-direction: column;
}

.adm-adm-detail-empty {
    padding: 48px 28px;
    text-align: center;
    margin: auto;
    max-width: 420px;
}
.adm-adm-detail-empty-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 16px;
    border-radius: 18px;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
}
.adm-adm-detail-empty h3 { margin: 0 0 8px; }
.adm-adm-detail-empty p { color: var(--lms-text-muted); margin: 0 0 20px; }

.adm-adm-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 22px 24px;
    border-bottom: 1px solid var(--lms-border-light);
    background: linear-gradient(180deg, var(--lms-surface-alt) 0%, var(--lms-surface) 100%);
}

.adm-adm-detail-identity {
    display: flex;
    gap: 16px;
    align-items: center;
    min-width: 0;
}
.adm-adm-detail-avatar {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand-light) 100%);
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.adm-adm-detail-eyebrow {
    margin: 0 0 4px;
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--lms-text-muted);
}
.adm-adm-detail-title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -.02em;
}
.adm-adm-detail-sub {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    font-size: .8rem;
    color: var(--lms-text-muted);
}
.adm-adm-detail-sub code {
    font-size: .72rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
}

.adm-adm-detail-head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    justify-content: flex-end;
}

.adm-adm-student-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
}
.adm-adm-student-pill:hover { background: #d1fae5; }

.adm-adm-contact-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--lms-border-light);
}

.adm-adm-contact-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    font-size: .82rem;
    color: var(--lms-text-secondary);
    text-decoration: none;
    max-width: 100%;
}
.adm-adm-contact-chip span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.adm-adm-contact-chip i { color: var(--lms-accent); opacity: .9; }
.adm-adm-contact-chip:hover {
    border-color: var(--lms-accent);
    color: var(--lms-accent);
}
.adm-adm-contact-chip--muted {
    cursor: default;
}
.adm-adm-contact-chip--muted:hover {
    border-color: var(--lms-border-light);
    color: var(--lms-text-secondary);
}

.adm-adm-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 20px 24px;
}
.adm-adm-info-card {
    padding: 14px 16px;
    border-radius: var(--lms-radius-md);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
}
.adm-adm-info-card--wide { grid-column: 1 / -1; }
.adm-adm-info-label {
    display: block;
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
    margin-bottom: 6px;
}
.adm-adm-info-label i { margin-right: 4px; opacity: .8; }
.adm-adm-info-card strong { font-size: .95rem; }
.adm-adm-info-card p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.65;
    color: var(--lms-text-secondary);
}

.adm-adm-block {
    margin: 0 24px 16px;
    padding: 16px 18px;
    border-radius: var(--lms-radius-md);
    border: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-adm-block-title {
    margin: 0 0 10px;
    font-size: .9rem;
    font-weight: 700;
}
.adm-adm-block-title i {
    margin-right: 8px;
    color: var(--lms-accent);
}
.adm-adm-block-body {
    font-size: .9rem;
    line-height: 1.7;
    color: var(--lms-text-secondary);
}

.adm-adm-dl { margin: 0; }
.adm-adm-dl-row {
    display: grid;
    grid-template-columns: minmax(120px, 34%) 1fr;
    gap: 8px 16px;
    padding: 10px 0;
    border-bottom: 1px solid var(--lms-border-light);
}
.adm-adm-dl-row:last-child { border-bottom: none; padding-bottom: 0; }
.adm-adm-dl dt {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--lms-text-muted);
}
.adm-adm-dl dd {
    margin: 0;
    font-size: .875rem;
    color: var(--lms-text-secondary);
}

.adm-adm-review-note {
    margin: 0 24px 20px;
    padding: 12px 14px;
    border-radius: var(--lms-radius-sm);
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    font-size: .82rem;
    color: #166534;
}
.adm-adm-review-note i { margin-right: 6px; }
.adm-adm-review-note p {
    margin: 8px 0 0;
    color: var(--lms-text-secondary);
}

.adm-adm-decision {
    margin-top: auto;
    padding: 20px 24px 24px;
    border-top: 1px solid var(--lms-border-light);
    background: linear-gradient(180deg, var(--lms-surface) 0%, var(--lms-surface-alt) 100%);
}
.adm-adm-decision-head h3 {
    margin: 0 0 6px;
    font-size: 1rem;
}
.adm-adm-decision-head p {
    margin: 0 0 14px;
    font-size: .82rem;
    color: var(--lms-text-muted);
}
.adm-adm-decision-head i { color: var(--lms-accent); margin-right: 6px; }
.adm-adm-decision-label {
    display: block;
    font-size: .8rem;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--lms-text-secondary);
}
.adm-adm-decision-form textarea {
    width: 100%;
    min-height: 88px;
    resize: vertical;
    margin-bottom: 14px;
}
.adm-adm-decision-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.adm-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 960px) {
    .adm-adm-workbench {
        grid-template-columns: 1fr;
    }
    .adm-adm-queue {
        max-height: 280px;
        position: static;
    }
    .adm-adm-info-grid { grid-template-columns: 1fr; }
    .adm-adm-dl-row { grid-template-columns: 1fr; gap: 4px; }
    .adm-adm-decision-actions .lms-btn-lg { width: 100%; justify-content: center; }
}

/* ===========================================
   Admin UI v2 — unified page chrome
   =========================================== */

.adm-topbar-title-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.adm-topbar-kicker {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--lms-text-muted);
    line-height: 1;
}

.adm-topbar .adm-page-title {
    flex: unset;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.02em;
}

.adm-page {
    width: 100%;
}

/* --- Page hero (matches student lms-dash-hero theme) --- */
.adm-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px 28px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding: 28px 32px;
    border-radius: var(--lms-radius-lg);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    border: none;
    box-shadow: 0 12px 36px rgba(0, 26, 51, .22);
    position: relative;
    overflow: hidden;
}

.adm-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 88% 12%, rgba(197,160,89,.22) 0%, transparent 48%),
        radial-gradient(ellipse at 8% 90%, rgba(197,160,89,.1) 0%, transparent 42%),
        radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.06) 0%, transparent 55%);
    pointer-events: none;
}

.adm-hero-main { position: relative; z-index: 1; min-width: 0; flex: 1; }

.adm-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #fff;
    opacity: .75;
}

.adm-hero-eyebrow i { font-size: .8rem; }

.adm-hero-title {
    margin: 0 0 8px;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: #fff;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.adm-hero-sub {
    margin: 0;
    max-width: 36rem;
    font-size: .9375rem;
    line-height: 1.55;
    color: #fff;
    opacity: .85;
}

.adm-hero-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.adm-hero-actions .lms-btn-primary {
    background: #fff;
    color: var(--lms-brand-dark);
    border-color: #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,.15);
}

.adm-hero-actions .lms-btn-primary:hover {
    background: #f0f9ff;
    border-color: #f0f9ff;
    color: var(--lms-brand);
}

.adm-hero-actions .lms-btn-secondary,
.adm-hero-actions .lms-btn-outline {
    border-color: rgba(255,255,255,.35);
    color: #fff;
    background: rgba(255,255,255,.08);
}

.adm-hero-actions .lms-btn-secondary:hover,
.adm-hero-actions .lms-btn-outline:hover {
    background: rgba(255,255,255,.18);
    color: #fff;
}

/* --- Alerts --- */
.adm-alert {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: var(--lms-radius);
    margin-bottom: 20px;
    border: 1px solid transparent;
    font-size: .9rem;
}

.adm-alert > i {
    font-size: 1.15rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.adm-alert strong {
    display: block;
    margin-bottom: 2px;
    font-size: .9rem;
}

.adm-alert p { margin: 0; color: inherit; opacity: .9; font-size: .85rem; }

.adm-alert--danger {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

.adm-alert--danger > i { color: #dc2626; }

.adm-alert--warning {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}

.adm-alert--success {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

/* --- Toolbar / filter bar --- */
.adm-toolbar,
.adm-content .lms-filter-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    box-shadow: var(--lms-shadow-xs);
}

.adm-toolbar .lms-form-select,
.adm-toolbar select,
.adm-toolbar input[type="search"],
.adm-toolbar input[type="text"],
.adm-content .lms-filter-bar .lms-form-select,
.adm-content .lms-filter-bar select,
.adm-content .lms-filter-bar input {
    min-width: 160px;
    flex: 1;
    max-width: 280px;
}

.adm-toolbar .lms-btn,
.adm-content .lms-filter-bar .lms-btn {
    flex-shrink: 0;
    align-self: center;
}

/* --- Empty states --- */
.adm-empty,
.adm-content .lms-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--lms-text-muted);
}

.adm-empty-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border);
    color: var(--lms-text-muted);
    font-size: 1.5rem;
}

.adm-empty h3,
.adm-content .lms-empty p:first-child {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--lms-text);
}

.adm-empty p,
.adm-content .lms-empty p {
    margin: 0 auto;
    max-width: 36ch;
    font-size: .875rem;
    line-height: 1.5;
}

.adm-empty-actions { margin-top: 20px; }

/* --- Content area polish --- */
.adm-content {
    padding: 24px 28px 36px;
    background: linear-gradient(180deg, var(--lms-bg) 0%, #f1f5f9 100%);
}

.adm-content .lms-card {
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
    background: var(--lms-surface);
}

.adm-content .lms-card-header {
    padding: 16px 22px;
    background: linear-gradient(180deg, var(--lms-surface) 0%, var(--lms-surface-alt) 100%);
    border-bottom: 1px solid var(--lms-border-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.adm-content .lms-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.adm-content .lms-table {
    margin: 0;
}

.adm-content .lms-table thead th {
    background: var(--lms-surface-alt);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border);
    white-space: nowrap;
}

.adm-content .lms-table tbody td {
    padding: 14px 16px;
    vertical-align: middle;
    border-bottom: 1px solid var(--lms-border-light);
    font-size: .875rem;
}

.adm-content .lms-table tbody tr:hover {
    background: rgba(197,160,89,.06);
}

.adm-content .lms-table tbody tr:last-child td {
    border-bottom: none;
}

/* Flash messages in admin */
.adm-page > .lms-flash,
.adm-content > .lms-flash {
    margin-bottom: 20px;
}

/* Stat cards on inner pages */
.adm-content .lms-stat-card,
.adm-content .lms-grid-4 > .lms-card {
    transition: box-shadow var(--lms-transition), transform var(--lms-transition);
}

.adm-content .lms-stat-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-1px);
}

/* Form pages */
.adm-content .lms-card > form {
    padding: 22px 24px;
}

.adm-content .lms-form-group label {
    font-size: .8rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
    margin-bottom: 6px;
}

@media (max-width: 768px) {
    .adm-content { padding: 16px; }
    .adm-hero { padding: 18px 20px; }
    .adm-hero-title { font-size: 1.35rem; }
    .adm-hero-actions { width: 100%; }
    .adm-hero-actions .lms-btn { flex: 1; justify-content: center; }
    .adm-toolbar .lms-form-select,
    .adm-toolbar input { max-width: none; width: 100%; }
}

/* ===========================================
   Admin UI v3 — tabs, panels, forms
   =========================================== */

/* Tabs */
.adm-tabs,
.adm-content .lms-filter-tabs {
    display: flex;
    align-items: stretch;
    gap: 6px;
    flex-wrap: wrap;
    padding: 6px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
}

.adm-tab,
.adm-content .lms-filter-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: var(--lms-radius);
    font-size: .875rem;
    font-weight: 600;
    color: var(--lms-text-secondary);
    text-decoration: none;
    border: 1px solid transparent;
    transition: all var(--lms-transition);
    white-space: nowrap;
}

.adm-tab:hover,
.adm-content .lms-filter-tabs a:hover {
    background: var(--lms-surface-alt);
    color: var(--lms-text);
}

.adm-tab.active,
.adm-content .lms-filter-tabs a.active {
    background: var(--lms-accent);
    color: #fff;
    border-color: var(--lms-accent);
    box-shadow: 0 2px 8px rgba(197,160,89,.3);
}

.adm-tab i,
.adm-content .lms-filter-tabs a i { font-size: .8rem; opacity: .9; }

.adm-tab-badge {
    background: rgba(255,255,255,.25);
    color: inherit;
    font-size: .7rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    margin-left: 4px;
}

.adm-tab:not(.active) .adm-tab-badge {
    background: var(--lms-danger);
    color: #fff;
}

/* Panels */
.adm-panel .lms-card-body,
.adm-panel > form {
    padding: 22px 24px;
}

.adm-panel-head {
    min-height: 56px;
}

.adm-panel-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.adm-form-panel .lms-grid-2,
.adm-form-panel .lms-grid-3,
.adm-form-panel .lms-grid-4 {
    gap: 16px 20px;
}

.adm-form-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--lms-border-light);
}

/* Stat chips */
.adm-stat-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
}

.adm-stat-chip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    box-shadow: var(--lms-shadow-xs);
}

.adm-stat-chip-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--lms-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    font-size: 1rem;
    flex-shrink: 0;
}

.adm-stat-chip--warning .adm-stat-chip-icon { background: #fef3c7; color: #d97706; }
.adm-stat-chip--danger .adm-stat-chip-icon { background: #fee2e2; color: #dc2626; }
.adm-stat-chip--success .adm-stat-chip-icon { background: #d1fae5; color: #059669; }

.adm-stat-chip-num {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--lms-text);
    line-height: 1.1;
}

.adm-stat-chip-label {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-top: 2px;
}

/* Review / content blocks */
.adm-content-block { margin: 16px 0; }

.adm-content-block-label {
    display: block;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-bottom: 8px;
}

.adm-content-block-body {
    white-space: pre-wrap;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    padding: 16px 18px;
    border-radius: var(--lms-radius);
    font-size: .9rem;
    line-height: 1.65;
    max-height: 420px;
    overflow-y: auto;
}

/* AI gen panel */
.adm-ai-panel {
    margin: 16px 0;
    border: 1px dashed var(--lms-accent) !important;
    background: var(--lms-accent-soft);
}

/* Table wrapper alias */
.lms-table-wrapper,
.adm-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Dashboard panels */
.adm-content .dash-welcome { box-shadow: var(--lms-shadow-md); }
.adm-content .dash-stat-card { border-radius: var(--lms-radius-lg); }

/* Program cards (admin programs page) */
.adm-prog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 18px;
}

.adm-prog-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: box-shadow var(--lms-transition), transform var(--lms-transition);
}

.adm-prog-card:hover {
    box-shadow: var(--lms-shadow-md);
    transform: translateY(-2px);
}

.adm-prog-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.adm-prog-card-title h3 {
    margin: 0 0 8px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.3;
}

.adm-prog-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.adm-prog-card-actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.adm-inline-form { display: inline; margin: 0; }

.adm-qb-check {
    width: 40px;
    text-align: center;
    vertical-align: middle;
}

.adm-qb-check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: var(--lms-accent);
}

/* Hidden carrier form — must not inherit .adm-panel > form padding */
.adm-qb-bulk-form {
    padding: 0 !important;
    margin: 0 !important;
    border: 0;
    height: 0;
    overflow: hidden;
}

.adm-qb-bulk {
    display: flex;
    align-items: center;
    gap: 12px;
}

.adm-qb-bulk[hidden] {
    display: none !important;
}

.adm-qb-bulk-count {
    font-size: .85rem;
    font-weight: 600;
    color: var(--lms-text-muted);
}

.adm-qb-filters {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(260px, 2fr) auto;
    gap: 14px 16px;
    align-items: end;
    margin-bottom: 8px;
}

.adm-qb-filters .lms-form-group {
    margin: 0;
}

.adm-qb-filters .lms-form-group label {
    display: block;
    margin-bottom: 6px;
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
}

.adm-qb-lesson-tools {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.adm-qb-lesson-tools .adm-adm-search {
    min-width: 0;
}

.adm-qb-filter-clear .lms-btn {
    height: 42px;
    display: inline-flex;
    align-items: center;
}

.adm-qb-filter-hint {
    margin: 14px 0 0;
    font-size: .9rem;
}

.adm-qb-filter-context {
    margin: 16px 0 12px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--lms-text);
    display: flex;
    align-items: center;
    gap: 8px;
}

.adm-qb-filter-context i {
    color: var(--lms-accent);
}

@media (max-width: 800px) {
    .adm-qb-filters {
        grid-template-columns: 1fr;
    }
}

.adm-prog-card-desc {
    margin: 0;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--lms-text-secondary);
}

.adm-prog-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
}

.adm-prog-meta-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.adm-prog-meta-label {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
}

.adm-prog-meta-label i {
    margin-right: 4px;
    opacity: .75;
}

.adm-prog-meta-value {
    font-size: .9rem;
    font-weight: 600;
    color: var(--lms-text);
}

.adm-prog-credits-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .8rem;
    color: var(--lms-text-muted);
    margin-bottom: 6px;
}

.adm-prog-credits-head strong {
    color: var(--lms-text);
    font-size: .85rem;
}

.adm-prog-progress {
    height: 8px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    overflow: hidden;
}

.adm-prog-progress .lms-progress-fill {
    background: linear-gradient(90deg, var(--lms-brand), var(--lms-accent));
    height: 100%;
    border-radius: 999px;
}

.adm-prog-card-foot {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--lms-border-light);
    margin-top: auto;
}

.adm-prog-slug {
    margin-left: auto;
    font-size: .72rem;
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
}

.adm-form-section-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 14px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--lms-text-muted);
}

.adm-form-section-label i { color: var(--lms-accent); }

.adm-form-panel .adm-form-section-label:not(:first-of-type) {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--lms-border-light);
}

.adm-form-hint { margin: 0 0 12px; }

.adm-check-label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
    color: var(--lms-text-secondary);
    margin-top: 8px;
    cursor: pointer;
}

.lms-input-ur {
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: 1.1rem;
    line-height: 2;
}

/* Subject cards — v2 */
.adm-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.adm-course-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.adm-course-card:hover {
    box-shadow: 0 8px 24px rgba(15, 23, 42, .1);
    transform: translateY(-2px);
    border-color: #cbd5e1;
}

.adm-course-card--active { --adm-course-accent: #16a34a; }
.adm-course-card--draft { --adm-course-accent: #d97706; }
.adm-course-card--archived { --adm-course-accent: #64748b; }
.adm-course-card { --adm-course-accent: var(--lms-accent); }

.adm-course-banner {
    height: 72px;
    background-size: cover;
    background-position: center;
}

.adm-course-body {
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
}

.adm-course-top {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.adm-course-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--adm-course-accent, var(--lms-accent));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    border: 1px solid rgba(59, 130, 246, .15);
}

.adm-course-info { min-width: 0; flex: 1; }

.adm-course-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.adm-course-title-row h3 {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--lms-text);
    letter-spacing: -.01em;
}

.adm-course-order {
    flex-shrink: 0;
    font-size: .68rem;
    font-weight: 700;
    color: var(--lms-text-muted);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    padding: 3px 8px;
    border-radius: 999px;
}

.adm-course-ur {
    margin: 6px 0 0;
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: .88rem;
    color: var(--lms-text-muted);
    line-height: 1.5;
}

.adm-course-program {
    margin: 6px 0 0;
    font-size: .78rem;
    font-weight: 500;
    color: var(--lms-text-secondary);
}

.adm-course-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.adm-course-card .lms-badge {
    font-size: .68rem;
    font-weight: 600;
    padding: 3px 9px;
    letter-spacing: .02em;
    text-transform: capitalize;
    border-radius: 999px;
}

.adm-course-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 12px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    border-radius: 10px;
}

.adm-course-stat {
    text-align: center;
    padding: 4px 2px;
}

.adm-course-stat-val {
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--lms-text);
    line-height: 1.1;
}

.adm-course-stat-lbl {
    display: block;
    margin-top: 3px;
    font-size: .62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
}

.adm-course-foot {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding-top: 14px;
    border-top: 1px solid var(--lms-border-light);
    margin-top: auto;
}

.adm-course-foot .lms-btn-sm {
    padding: 7px 12px;
    font-size: .78rem;
}

.adm-course-actions {
    display: flex;
    gap: 4px;
    margin-left: auto;
}

.adm-icon-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--lms-border);
    border-radius: 8px;
    background: var(--lms-surface);
    color: var(--lms-text-muted);
    cursor: pointer;
    text-decoration: none;
    font-size: .8rem;
    transition: background .15s, color .15s, border-color .15s;
}

.adm-icon-btn:hover {
    background: var(--lms-surface-alt);
    color: var(--lms-text);
    border-color: #cbd5e1;
}

.adm-icon-btn--danger:hover {
    background: #fef2f2;
    color: #dc2626;
    border-color: #fecaca;
}

@media (max-width: 400px) {
    .adm-course-stats { grid-template-columns: repeat(2, 1fr); }
}

/* Lesson list — table layout */
.adm-lessons-table {
    min-width: 920px;
}

.adm-lessons-table th,
.adm-lessons-table td {
    vertical-align: middle;
}

.adm-lesson-col-order {
    width: 56px;
    white-space: nowrap;
}

.adm-lesson-col-num {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--lms-text);
    white-space: nowrap;
}

.adm-lesson-title-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 180px;
    max-width: 360px;
}

.adm-lesson-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.35;
}

.adm-lesson-order {
    display: inline-block;
    font-size: .68rem;
    font-weight: 700;
    color: var(--lms-text-muted);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    padding: 3px 8px;
    border-radius: 999px;
}

.adm-lesson-ur {
    margin: 0;
    font-family: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    font-size: .82rem;
    color: var(--lms-text-muted);
    line-height: 1.45;
}

.adm-lessons-table .lms-badge {
    font-size: .68rem;
    font-weight: 600;
    padding: 3px 9px;
    letter-spacing: .02em;
    text-transform: capitalize;
    border-radius: 999px;
    white-space: nowrap;
}

.adm-lesson-actions {
    display: flex;
    gap: 4px;
    justify-content: flex-end;
}

.adm-lesson-row--draft .adm-lesson-title {
    color: var(--lms-text);
}

.adm-lesson-group {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
    box-shadow: var(--lms-shadow-xs);
}

.adm-lesson-group-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 16px 20px;
    background: linear-gradient(180deg, var(--lms-surface) 0%, var(--lms-surface-alt) 100%);
    border-bottom: 1px solid var(--lms-border-light);
}

.adm-lesson-group-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.adm-lesson-group-head h3 i { color: var(--lms-accent); margin-right: 8px; }

.adm-lesson-group-sub {
    margin: 4px 0 0;
    font-size: .8rem;
    color: var(--lms-text-muted);
}

.adm-lesson-group-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.adm-lesson-group .adm-table-wrap {
    border-radius: 0;
}

.adm-practice-panel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 16px 18px;
    margin: 16px 0;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius);
}

.adm-radio-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.adm-lang-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--lms-border);
    margin-bottom: 0;
}

.adm-lang-tab {
    padding: 10px 22px;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    font-weight: 600;
    font-size: .875rem;
    cursor: pointer;
    color: var(--lms-text-muted);
    transition: color var(--lms-transition), border-color var(--lms-transition);
    margin-bottom: -2px;
}

.adm-lang-tab:hover { color: var(--lms-text); }

.adm-lang-tab.active {
    color: var(--lms-accent);
    border-bottom-color: var(--lms-accent);
}

.adm-lang-panel { padding-top: 18px; }

/* Lesson resources */
.adm-adm-stat--static { cursor: default; pointer-events: none; }

.adm-res-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 22px;
    border-radius: var(--lms-radius-lg);
    background: linear-gradient(135deg, var(--lms-brand-dark) 0%, var(--lms-brand) 55%, var(--lms-brand-light) 100%);
    color: #fff;
    box-shadow: 0 8px 28px rgba(15, 39, 68, .18);
}

.adm-res-context-kicker {
    margin: 0 0 4px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .8;
}

.adm-res-context-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
}

.adm-res-context .lms-btn-outline {
    border-color: rgba(255,255,255,.35);
    color: #fff;
    background: rgba(255,255,255,.08);
}

.adm-res-add-form {
    display: grid;
    grid-template-columns: 140px 180px 1fr auto;
    gap: 14px;
    align-items: end;
}

.adm-res-add-form .lms-form-group { margin: 0; }

.adm-res-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.adm-res-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.adm-res-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}

.adm-res-type-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.adm-res-type-badge--brand { color: #7c3aed; }
.adm-res-type-badge--info { color: #0284c7; }
.adm-res-type-badge--success { color: #059669; }
.adm-res-type-badge--warning { color: #d97706; }
.adm-res-type-badge--danger { color: #dc2626; }

.adm-res-card-body {
    padding: 14px 16px 16px;
    flex: 1;
}

.adm-res-text {
    margin: 0;
    font-size: .9rem;
    line-height: 1.6;
    color: var(--lms-text-secondary);
    word-break: break-word;
}

.adm-res-link {
    color: var(--lms-accent);
    font-size: .9rem;
    word-break: break-all;
    text-decoration: none;
}

.adm-res-link:hover { text-decoration: underline; }

.adm-res-browse-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    padding: 16px 18px 18px;
}

.adm-res-browse-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    background: var(--lms-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--lms-transition), box-shadow var(--lms-transition), transform var(--lms-transition);
}

.adm-res-browse-card:hover {
    border-color: var(--lms-accent);
    box-shadow: var(--lms-shadow-sm);
    transform: translateY(-1px);
}

.adm-res-browse-course {
    display: block;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    margin-bottom: 4px;
}

.adm-res-browse-main strong {
    display: block;
    font-size: .9rem;
    color: var(--lms-text);
}

.adm-res-browse-count {
    flex-shrink: 0;
    font-size: .75rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
}

.adm-res-browse-count.is-empty {
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
}

/* Subject resources browse */
.adm-res-context-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.adm-sr-search {
    position: relative;
    min-width: min(280px, 100%);
}

.adm-sr-search i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--lms-text-muted);
    font-size: .85rem;
    pointer-events: none;
}

.adm-sr-search .lms-input {
    padding-left: 36px;
}

.adm-sr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
    padding: 16px 18px 18px;
}

.adm-sr-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    background: var(--lms-surface);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--lms-transition), box-shadow var(--lms-transition), transform var(--lms-transition);
}

.adm-sr-card:hover {
    border-color: var(--lms-accent);
    box-shadow: var(--lms-shadow-sm);
    transform: translateY(-2px);
}

.adm-sr-card:hover .adm-sr-card-cta {
    color: var(--lms-accent);
}

.adm-sr-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.adm-sr-card-thumb {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: linear-gradient(145deg, #e8eef8, #dbe7f8);
    color: #1e4a7a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.adm-sr-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.adm-sr-card-thumb i {
    font-size: 1rem;
}

.adm-sr-count {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.15;
    padding: 6px 10px;
    border-radius: 10px;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
}

.adm-sr-count strong {
    font-size: 1.05rem;
    font-weight: 800;
}

.adm-sr-count span {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    opacity: .85;
}

.adm-sr-count.is-empty {
    background: var(--lms-surface-alt);
    color: var(--lms-text-muted);
}

.adm-sr-program {
    display: block;
    font-size: .68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--lms-text-muted);
}

.adm-sr-title {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.3;
}

.adm-sr-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 2px;
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.adm-sr-lessons {
    white-space: nowrap;
}

.adm-sr-status {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 700;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.adm-sr-status--active {
    background: #dcfce7;
    color: #15803d;
}

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

.adm-sr-status--archived {
    background: #fee2e2;
    color: #b91c1c;
}

.adm-sr-card-cta {
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid var(--lms-border-light);
    font-size: .78rem;
    font-weight: 650;
    color: var(--lms-text-muted);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.adm-sr-card-cta i {
    font-size: .7rem;
    transition: transform var(--lms-transition);
}

.adm-sr-card:hover .adm-sr-card-cta i {
    transform: translateX(3px);
}

.adm-sr-upload {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.adm-sr-upload-hint {
    font-size: .75rem;
    color: var(--lms-text-muted);
}

.adm-sr-current-file {
    margin: 8px 0 0;
    font-size: .85rem;
}

.adm-sr-current-file a {
    color: var(--lms-accent);
    word-break: break-all;
}

@media (max-width: 768px) {
    .adm-res-add-form { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .adm-practice-panel { grid-template-columns: 1fr; }
}

.lms-mt-sm { margin-top: 8px; }
.lms-mb { margin-bottom: 20px; }
.lms-span-2 { grid-column: span 2; }

.adm-form-actions-inline { display: inline; margin-left: 8px; }

@media (max-width: 768px) {
    .lms-span-2 { grid-column: span 1; }
}

/* Lesson summary (AI) */
.lms-lesson-summary {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(165deg, rgba(27, 46, 74, 0.06) 0%, transparent 45%),
        var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow);
    padding: 0;
}
.lms-lesson-summary::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--lms-brand), var(--lms-brand-light), #c9a227);
}
.lms-lesson-summary__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 22px 0;
}
.lms-lesson-summary__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(145deg, var(--lms-brand), var(--lms-brand-light));
    color: #fff;
    box-shadow: 0 6px 16px rgba(27, 46, 74, 0.28);
}
.lms-lesson-summary__icon i {
    font-size: 1.1rem;
}
.lms-lesson-summary__eyebrow {
    margin: 0 0 2px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--lms-brand-light);
}
.lms-lesson-summary__titles h3 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--lms-text);
}
.lms-lesson-summary__body {
    padding: 14px 22px 6px;
}
.lms-lesson-summary-text {
    margin: 0;
    line-height: 1.75;
    font-size: 0.95rem;
    color: var(--lms-text-secondary);
}
.lms-lesson-summary-text strong {
    color: var(--lms-text);
    font-weight: 650;
}
.lms-lesson-summary__takeaways {
    margin: 12px 16px 18px;
    padding: 16px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border);
    border-radius: 12px;
}
.lms-lesson-summary__takeaways-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 0.8rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--lms-text-muted, #64748b);
}
.lms-lesson-summary__takeaways-label i {
    color: var(--lms-brand);
}
.lms-lesson-takeaways {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.lms-lesson-takeaway {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    padding: 12px 14px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: 10px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.lms-lesson-takeaway:hover {
    border-color: rgba(27, 46, 74, 0.35);
    box-shadow: var(--lms-shadow-xs);
}
.lms-lesson-takeaway__num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: rgba(27, 46, 74, 0.1);
    color: var(--lms-brand);
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
}
.lms-lesson-takeaway__title {
    display: block;
    margin: 0 0 4px;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.35;
}
.lms-lesson-takeaway__text {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--lms-text-secondary);
}
.lms-lesson-takeaway__text strong {
    color: var(--lms-brand);
    font-weight: 650;
}
@media (max-width: 640px) {
    .lms-lesson-summary__head,
    .lms-lesson-summary__body {
        padding-left: 16px;
        padding-right: 16px;
    }
    .lms-lesson-summary__takeaways {
        margin: 10px 12px 14px;
        padding: 12px;
    }
    .lms-lesson-takeaway {
        padding: 10px 12px;
    }
}

/* Admin notifications — inbox workbench, send, sent */
.adm-notifs-inline-form {
    display: inline;
    margin: 0;
}
.adm-hero-actions .adm-notifs-inline-form {
    display: inline-flex;
}

.adm-notif-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px 18px;
    margin-bottom: 20px;
    border-radius: var(--lms-radius-lg);
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 1px solid #fcd34d;
}
.adm-notif-banner-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #f59e0b;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
.adm-notif-banner-text {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.adm-notif-banner-text strong { font-size: .95rem; color: #92400e; }
.adm-notif-banner-text span { font-size: .82rem; color: #a16207; }

.adm-notif-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.adm-notif-segments {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 4px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-md);
}
.adm-notif-segment {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: calc(var(--lms-radius-md) - 2px);
    font-size: .85rem;
    font-weight: 500;
    color: var(--lms-text-secondary);
    text-decoration: none;
    transition: background .15s, color .15s;
}
.adm-notif-segment:hover {
    color: var(--lms-text);
    background: var(--lms-surface);
}
.adm-notif-segment.is-active {
    background: var(--lms-surface);
    color: var(--lms-accent);
    box-shadow: var(--lms-shadow-sm);
}
.adm-notif-segment-count {
    font-size: .75rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--lms-border-light);
    color: var(--lms-text-muted);
}
.adm-notif-segment.is-active .adm-notif-segment-count {
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
}
.adm-notif-toolbar-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.adm-notif-select {
    min-width: 160px;
    font-size: .875rem;
}

.adm-notif-workbench {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 20px;
    align-items: stretch;
    min-height: 480px;
}
.adm-notif-queue {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 240px);
    position: sticky;
    top: 12px;
}
.adm-notif-queue-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface);
}
.adm-notif-queue-empty {
    padding: 40px 24px;
    text-align: center;
    color: var(--lms-text-muted);
}
.adm-notif-queue-empty i {
    font-size: 2rem;
    opacity: .45;
    margin-bottom: 12px;
    display: block;
}
.adm-notif-queue-list {
    list-style: none;
    margin: 0;
    padding: 8px;
    overflow-y: auto;
    flex: 1;
}
.adm-notif-queue-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 12px;
    margin-bottom: 4px;
    border-radius: var(--lms-radius-md);
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s, box-shadow .15s;
}
.adm-notif-queue-item:hover {
    background: var(--lms-surface-alt);
    border-color: var(--lms-border-light);
}
.adm-notif-queue-item.is-active {
    background: var(--lms-accent-soft);
    border-color: rgba(59, 130, 246, .35);
    box-shadow: inset 3px 0 0 var(--lms-accent);
}
.adm-notif-queue-item.is-unread .adm-notif-queue-title {
    font-weight: 700;
}
.adm-notif-queue-icon {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: .95rem;
    background: var(--lms-surface-2, #f3f4f6);
    color: var(--lms-text-muted);
}
.adm-notif-queue-icon--brand { background: var(--lms-accent-soft); color: var(--lms-accent); }
.adm-notif-queue-icon--success { background: #dcfce7; color: #16a34a; }
.adm-notif-queue-icon--warning { background: #fef3c7; color: #d97706; }
.adm-notif-queue-icon--danger { background: #fee2e2; color: #dc2626; }
.adm-notif-queue-icon--info { background: #e0f2fe; color: #0284c7; }
.adm-notif-queue-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.adm-notif-queue-title {
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.adm-notif-queue-preview {
    font-size: .78rem;
    color: var(--lms-text-muted);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.adm-notif-queue-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
}
.adm-notif-queue-meta time {
    font-size: .72rem;
    color: var(--lms-text-muted);
}
.adm-notif-queue-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--lms-accent);
    flex-shrink: 0;
    margin-top: 6px;
    box-shadow: 0 0 0 3px var(--lms-accent-soft);
}

.adm-notif-type-pill {
    display: inline-block;
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--lms-border-light);
    color: var(--lms-text-muted);
}
.adm-notif-type-pill--brand { background: var(--lms-accent-soft); color: var(--lms-accent); }
.adm-notif-type-pill--success { background: #dcfce7; color: #15803d; }
.adm-notif-type-pill--warning { background: #fef3c7; color: #b45309; }
.adm-notif-type-pill--danger { background: #fee2e2; color: #b91c1c; }
.adm-notif-type-pill--info { background: #e0f2fe; color: #0369a1; }

.adm-notif-detail {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    display: flex;
    flex-direction: column;
    min-height: 360px;
    overflow: hidden;
}
.adm-notif-detail-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    text-align: center;
    color: var(--lms-text-muted);
}
.adm-notif-detail-empty-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: var(--lms-surface-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 16px;
    color: var(--lms-text-muted);
}
.adm-notif-detail-empty h3 { margin: 0 0 8px; color: var(--lms-text); }
.adm-notif-detail-empty p { margin: 0; max-width: 320px; }

.adm-notif-detail-head {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
    align-items: flex-start;
}
.adm-notif-detail-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
    background: var(--lms-surface-2, #f3f4f6);
    color: var(--lms-text-muted);
}
.adm-notif-detail-icon--brand { background: var(--lms-accent); color: #fff; }
.adm-notif-detail-icon--success { background: #16a34a; color: #fff; }
.adm-notif-detail-icon--warning { background: #d97706; color: #fff; }
.adm-notif-detail-icon--danger { background: #dc2626; color: #fff; }
.adm-notif-detail-icon--info { background: #0284c7; color: #fff; }
.adm-notif-detail-head-text {
    flex: 1;
    min-width: 200px;
}
.adm-notif-detail-eyebrow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
}
.adm-notif-detail-title {
    margin: 0 0 6px;
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 700;
}
.adm-notif-detail-time {
    font-size: .82rem;
    color: var(--lms-text-muted);
}
.adm-notif-detail-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-left: auto;
}
.adm-notif-detail-body {
    flex: 1;
    padding: 24px 28px;
    overflow-y: auto;
}
.adm-notif-detail-message {
    font-size: .95rem;
    line-height: 1.65;
    color: var(--lms-text);
    white-space: pre-wrap;
    max-width: 72ch;
}
.adm-notif-detail-footer {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--lms-border-light);
}

.adm-notif-send-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 20px;
    align-items: start;
}
.adm-notif-send-card { margin: 0; }
.adm-notif-send-body { padding: 24px 28px !important; }
.adm-notif-send-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 4px;
}
.adm-notif-textarea {
    min-height: 180px;
    resize: vertical;
    line-height: 1.55;
}
.adm-notif-send-aside {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.adm-notif-tip {
    padding: 18px 20px;
    border-radius: var(--lms-radius-lg);
    border: 1px solid var(--lms-border-light);
    background: var(--lms-surface);
    box-shadow: var(--lms-shadow-sm);
}
.adm-notif-tip h4 {
    margin: 0 0 12px;
    font-size: .9rem;
    display: flex;
    align-items: center;
    gap: 8px;
}
.adm-notif-tip ul {
    margin: 0;
    padding-left: 18px;
    font-size: .84rem;
    color: var(--lms-text-secondary);
    line-height: 1.55;
}
.adm-notif-tip--muted {
    background: var(--lms-surface-alt);
}
.adm-notif-tip-title {
    margin: 0 0 6px;
    font-weight: 600;
    font-size: .9rem;
}
.adm-notif-tip-meta {
    margin: 0;
    font-size: .78rem;
    color: var(--lms-text-muted);
}

.adm-notif-sent-head { margin-bottom: 16px; }
.adm-notif-sent-summary {
    margin: 0;
    font-size: .875rem;
    color: var(--lms-text-secondary);
}
.adm-notif-sent-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
    gap: 16px;
}
.adm-notif-sent-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.adm-notif-sent-card-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-notif-sent-card-head-text {
    flex: 1;
    min-width: 0;
}
.adm-notif-sent-card-head-text h4 {
    margin: 0 0 8px;
    font-size: .95rem;
    line-height: 1.35;
}
.adm-notif-read-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: .72rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--lms-accent-soft);
    color: var(--lms-accent);
    flex-shrink: 0;
}
.adm-notif-read-badge.is-read {
    background: #dcfce7;
    color: #15803d;
}
.adm-notif-read-badge .fa-circle { font-size: 6px; }
.adm-notif-sent-card-message {
    margin: 0;
    padding: 16px 18px;
    font-size: .875rem;
    line-height: 1.55;
    color: var(--lms-text);
    flex: 1;
    max-height: 200px;
    overflow-y: auto;
}
.adm-notif-sent-card-foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 18px;
    font-size: .78rem;
    color: var(--lms-text-muted);
    border-top: 1px solid var(--lms-border-light);
    background: var(--lms-surface);
}
.adm-notif-sent-card-foot small {
    margin-left: 4px;
    opacity: .85;
}

@media (max-width: 960px) {
    .adm-notif-workbench {
        grid-template-columns: 1fr;
    }
    .adm-notif-queue {
        max-height: 320px;
        position: static;
    }
    .adm-notif-send-layout {
        grid-template-columns: 1fr;
    }
    .adm-notif-send-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .adm-notif-detail-head {
        padding: 18px 16px;
    }
    .adm-notif-detail-body {
        padding: 18px 16px;
    }
    .adm-notif-detail-head-actions {
        width: 100%;
        margin-left: 0;
    }
}

/* Admin finance — student accounts */
.adm-fin-toolbar { margin-bottom: 16px; }
.adm-fin-workbench {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    min-height: 520px;
}
.adm-fin-queue {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 260px);
    position: sticky;
    top: 12px;
}
.adm-fin-queue-list {
    list-style: none;
    margin: 0;
    padding: 8px;
    overflow-y: auto;
    flex: 1;
}
.adm-fin-queue-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 12px;
    margin-bottom: 4px;
    border-radius: var(--lms-radius-md);
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
}
.adm-fin-queue-item:hover {
    background: var(--lms-surface-alt);
    border-color: var(--lms-border-light);
}
.adm-fin-queue-item.is-active {
    background: var(--lms-accent-soft);
    border-color: rgba(59, 130, 246, .35);
    box-shadow: inset 3px 0 0 var(--lms-accent);
}
.adm-fin-queue-item.has-balance .adm-fin-queue-name { font-weight: 700; }
.adm-fin-queue-body { flex: 1; min-width: 0; }
.adm-fin-queue-name {
    display: block;
    font-size: .9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.adm-fin-queue-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: .72rem;
    color: var(--lms-text-muted);
    margin-top: 2px;
}
.adm-fin-queue-amt {
    text-align: right;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
}
.adm-fin-amt-due { font-size: .85rem; color: #b45309; }
.adm-fin-amt-clear { font-size: .75rem; color: #15803d; font-weight: 600; }

.adm-fin-detail {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-sm);
    overflow: hidden;
}
.adm-fin-detail-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-fin-detail-head h3 { margin: 0 0 4px; font-size: 1.15rem; }
.adm-fin-detail-sub { margin: 0; font-size: .85rem; color: var(--lms-text-muted); }
.adm-fin-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.adm-fin-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 16px 22px;
    border-bottom: 1px solid var(--lms-border-light);
}
.adm-fin-summary-card {
    padding: 14px 16px;
    border-radius: var(--lms-radius-md);
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
}
.adm-fin-summary-card strong {
    display: block;
    font-size: 1.15rem;
    margin-top: 4px;
}
.adm-fin-summary-card small {
    display: block;
    margin-top: 4px;
    font-size: .72rem;
    color: var(--lms-text-muted);
}
.adm-fin-summary-lbl {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lms-text-muted);
    font-weight: 600;
}
.adm-fin-summary-card--success { border-color: #bbf7d0; background: #f0fdf4; }
.adm-fin-summary-card--warning { border-color: #fde68a; background: #fffbeb; }

.adm-fin-tabs { padding: 18px 22px 24px; }
.adm-fin-subhead {
    margin: 22px 0 10px;
    font-size: .95rem;
    display: flex;
    align-items: center;
    gap: 8px;
}
.adm-fin-subhead:first-child { margin-top: 0; }
.adm-fin-empty-note { margin: 8px 0 16px; font-size: .875rem; }

.adm-fin-invoice-panel {
    margin: 16px 22px 0;
    padding: 16px 18px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-md);
    background: var(--lms-surface-alt);
}
.adm-fin-invoice-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.adm-fin-invoice-panel-head h4 { margin: 0; font-size: .95rem; }
.adm-fin-invoice-panel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.adm-fin-invoice-panel-grid small {
    display: block;
    font-size: .7rem;
    color: var(--lms-text-muted);
    text-transform: uppercase;
}
.lms-table-compact td, .lms-table-compact th { padding: 8px 10px; font-size: .85rem; }
.lms-mt { margin-top: 12px; }

@media (max-width: 960px) {
    .adm-fin-workbench { grid-template-columns: 1fr; }
    .adm-fin-queue { max-height: 280px; position: static; }
    .adm-fin-summary-grid { grid-template-columns: 1fr; }
}

/* Finance hub — single sidebar entry, section tabs */
.adm-fin-hub-tabs,
.adm-hub-tabs,
.stu-hub-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
    padding: 6px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-lg);
}
.adm-fin-hub-tab,
.adm-hub-tab,
.stu-hub-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: var(--lms-radius-md);
    text-decoration: none;
    color: var(--lms-text-secondary);
    font-size: .875rem;
    font-weight: 500;
    transition: background .15s, color .15s, box-shadow .15s;
}
.adm-fin-hub-tab i,
.adm-hub-tab i,
.stu-hub-tab i { opacity: .85; font-size: .9rem; }
.stu-hub-tab-badge {
    margin-inline-start: 4px;
    min-width: 1.25rem;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--lms-warning);
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}
.stu-hub-tab-badge[hidden] { display: none !important; }
#stu-practice-badge[hidden] { display: none !important; }
#stu-practice-badge {
    background: var(--lms-warning);
}
.adm-fin-hub-tab:hover,
.adm-hub-tab:hover,
.stu-hub-tab:hover {
    color: var(--lms-text);
    background: var(--lms-surface);
}
.adm-fin-hub-tab.is-active,
.adm-hub-tab.is-active,
.stu-hub-tab.is-active {
    background: var(--lms-surface);
    color: var(--lms-accent);
    box-shadow: var(--lms-shadow-sm);
}
.adm-fin-hub-body,
.adm-hub-body,
.stu-hub-body { min-height: 200px; }
#adm-fin-hub.is-loading,
#adm-hub.is-loading,
#stu-hub.is-loading,
.adm-page.is-loading {
    opacity: .55;
    pointer-events: none;
}

.adm-fin-card .lms-card-body { padding: 20px 22px; }
.adm-fin-accordions { padding: 0 22px 22px; }
.adm-fin-accordion {
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-md);
    margin-bottom: 12px;
    overflow: hidden;
    background: var(--lms-surface);
}
.adm-fin-accordion summary {
    cursor: pointer;
    padding: 14px 16px;
    font-weight: 600;
    font-size: .9rem;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--lms-surface-alt);
}
.adm-fin-accordion summary::-webkit-details-marker { display: none; }
.adm-fin-accordion[open] summary { border-bottom: 1px solid var(--lms-border-light); }
.adm-fin-accordion .adm-table-wrap { padding: 0 8px 8px; }

.adm-fin-invoices-layout {
    display: grid;
    grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}
.adm-fin-invoices-aside { position: sticky; top: 12px; }
.adm-fin-row-actions { white-space: nowrap; }

.adm-fin-collect-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 20px;
    align-items: start;
}
.adm-fin-collect-inv-banner {
    padding: 12px 14px;
    border-radius: var(--lms-radius-md);
    background: var(--lms-accent-soft);
    margin-bottom: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: center;
    font-size: .875rem;
}
.adm-fin-collect-inv-banner span { margin-left: auto; font-weight: 700; }
.adm-fin-claims-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: var(--lms-radius-lg);
    background: #fffbeb;
    border: 1px solid #fcd34d;
    color: #92400e;
}
.adm-fin-claims-banner i { font-size: 1.25rem; }
.adm-fin-claim-list {
    list-style: none;
    margin: 0;
    padding: 12px 16px;
}
.adm-fin-claim-list li {
    padding: 12px 0;
    border-bottom: 1px solid var(--lms-border-light);
    font-size: .85rem;
}
.adm-fin-claim-list li:last-child { border-bottom: none; }
.adm-fin-claim-list strong { display: block; margin-bottom: 4px; }
.adm-fin-claim-actions { margin-top: 8px; display: flex; gap: 6px; }

.adm-fin-setup-types {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: 20px;
}
.adm-fin-policy { margin: 0; }
.adm-fin-policy-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.adm-fin-policy-tile {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin: 0;
    padding: 16px 18px;
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-md);
    background: var(--lms-surface-alt);
    cursor: pointer;
}
.adm-fin-policy-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--lms-surface);
    color: var(--lms-accent);
    font-size: 1rem;
    box-shadow: var(--lms-shadow-sm);
}
.adm-fin-policy-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.adm-fin-policy-title {
    font-size: .95rem;
    font-weight: 700;
    color: var(--lms-text);
    line-height: 1.2;
}
.adm-fin-policy-desc {
    font-size: .8rem;
    color: var(--lms-text-muted);
    line-height: 1.4;
}
.adm-fin-policy-control {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.adm-fin-policy-control .lms-input {
    width: 88px;
    text-align: center;
    font-weight: 700;
    font-size: 1.05rem;
}
.adm-fin-policy-control span {
    font-size: .8rem;
    font-weight: 600;
    color: var(--lms-text-muted);
    white-space: nowrap;
}
.adm-fin-policy-flow {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 16px 0 0;
    padding: 0;
    font-size: .8rem;
    color: var(--lms-text-secondary);
}
.adm-fin-policy-flow li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border-light);
    font-weight: 600;
}
.adm-fin-policy-flow li:not(:last-child)::after {
    content: '→';
    font-size: .85rem;
    font-weight: 500;
    color: var(--lms-text-muted);
    margin-left: 2px;
}
.adm-fin-policy-flow li:last-child {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}
.adm-fin-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0;
    cursor: pointer;
}

.adm-fin-scholarships-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

@media (max-width: 960px) {
    .adm-fin-hub-tabs, .adm-hub-tabs, .stu-hub-tabs { gap: 4px; }
    .adm-fin-hub-tab, .adm-hub-tab, .stu-hub-tab { padding: 8px 12px; font-size: .8rem; }
    .adm-fin-hub-tab span, .adm-hub-tab span, .stu-hub-tab span { display: none; }
    .adm-fin-invoices-layout,
    .adm-fin-collect-layout,
    .adm-fin-setup-types,
    .adm-fin-scholarships-layout { grid-template-columns: 1fr; }
    .adm-fin-invoices-aside { position: static; }
    .adm-fin-policy-tiles { grid-template-columns: 1fr; }
    .adm-fin-policy-tile { grid-template-columns: 44px minmax(0, 1fr); }
    .adm-fin-policy-control { grid-column: 2; }
}

.adm-stuck-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.adm-stuck-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-stuck-lead {
    margin: 0;
    max-width: 42rem;
    font-size: .9rem;
    color: var(--lms-text-secondary);
}
.adm-stuck-empty-wrap {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-lg);
    padding: 12px 16px 28px;
}
.adm-stuck-criteria {
    list-style: none;
    margin: 0 auto;
    padding: 0 24px 8px;
    max-width: 560px;
    display: grid;
    gap: 10px;
}
.adm-stuck-criteria li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    text-align: left;
    font-size: .85rem;
    color: var(--lms-text-secondary);
    line-height: 1.45;
}
.adm-stuck-criteria i {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: var(--lms-surface-alt);
    color: var(--lms-accent);
    font-size: .8rem;
}
.adm-stuck-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.adm-stuck-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-md);
    overflow: hidden;
}
.adm-stuck-card-main {
    display: grid;
    grid-template-columns: auto minmax(0, 1.4fr) auto minmax(0, 1fr) auto;
    gap: 14px 16px;
    align-items: center;
    padding: 14px 16px;
}
.adm-stuck-avatar {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-weight: 700;
    background: var(--lms-accent-soft, var(--lms-surface-alt));
    color: var(--lms-accent);
}
.adm-stuck-id {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.adm-stuck-id strong { font-size: .95rem; }
.adm-stuck-id span {
    font-size: .8rem;
    color: var(--lms-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.adm-stuck-metrics { display: flex; flex-wrap: wrap; gap: 6px; }
.adm-stuck-pill {
    font-size: .75rem;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    color: var(--lms-text-secondary);
    white-space: nowrap;
}
.adm-stuck-pill.is-warn {
    background: #fff7ed;
    color: #9a3412;
}
.adm-stuck-when {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: .78rem;
    color: var(--lms-text-muted);
}
.adm-stuck-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.adm-stuck-brief {
    padding: 12px 16px 14px;
    border-top: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
    font-size: .85rem;
}
.adm-stuck-brief p { margin: 0 0 8px; }
.adm-stuck-brief ul { margin: 0; padding-left: 18px; color: var(--lms-text-secondary); }

@media (max-width: 960px) {
    .adm-stuck-card-main { grid-template-columns: auto minmax(0, 1fr); }
    .adm-stuck-metrics, .adm-stuck-when, .adm-stuck-actions { grid-column: 2; }
}

/* ── Visual Tutor (diagrams in chat & practice) ── */
.lms-chat-visual-panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed var(--lms-border);
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.lms-viz-card {
    background: var(--lms-surface-alt);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    padding: 10px 12px;
    overflow-x: auto;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.lms-viz-svg {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
.lms-chat-bubble .lms-chat-text + .lms-chat-visual-panel {
    margin-top: 10px;
}
.lms-practice-visual {
    margin-bottom: 12px;
}
.lms-practice-visual .lms-viz-card {
    background: var(--lms-accent-soft);
    border-color: var(--lms-accent-light);
}
.lms-chat-msg.ai .lms-chat-visual-panel {
    animation: lms-viz-in .35s ease-out;
}
@keyframes lms-viz-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Phase 2 — interactive manipulatives */
.lms-viz-card--interactive {
    background: linear-gradient(180deg, var(--lms-accent-soft) 0%, var(--lms-surface) 100%);
    border-color: var(--lms-accent-light);
}
.lms-viz-hint {
    margin: 0 0 8px;
    font-size: .78rem;
    color: var(--lms-text-secondary);
    line-height: 1.35;
}
.lms-viz-teach-caption {
    margin: 0 0 10px;
    font-size: .9rem;
    line-height: 1.5;
    color: var(--lms-text);
    font-weight: 500;
}
.lms-viz-card--illustration .lms-viz-illustration {
    display: block;
    width: 100%;
    max-height: 280px;
    object-fit: contain;
    border-radius: var(--lms-radius-sm);
    margin-top: 4px;
}
.lms-viz-btn {
    border: 1px solid var(--lms-border);
    background: var(--lms-surface);
    color: var(--lms-primary);
    border-radius: 6px;
    padding: 4px 10px;
    font-size: .85rem;
    cursor: pointer;
    font-weight: 600;
}
.lms-viz-btn:hover { background: var(--lms-accent-light); border-color: var(--lms-accent); }
.lms-viz-btn-sm { padding: 2px 8px; min-width: 32px; }

.lms-viz-pv-total {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--lms-primary);
    margin-bottom: 10px;
    text-align: center;
}
.lms-viz-pv-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    max-width: 100%;
}
@media (max-width: 480px) {
    .lms-viz-pv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Narrow chat sidebar — always 2×2 grid so blocks never spill horizontally */
.lesson-chat-messages .lms-viz-pv-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}
.lms-viz-pv-col {
    text-align: center;
    padding: 6px;
    border: 1px dashed var(--lms-border);
    border-radius: 8px;
    background: var(--lms-surface);
    min-width: 0;
    overflow: hidden;
}
.lms-viz-pv-label {
    font-size: .62rem;
    font-weight: 600;
    color: var(--lms-text-muted);
    text-transform: uppercase;
    margin-bottom: 6px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.lms-viz-pv-blocks {
    min-height: 48px;
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    justify-content: center;
    margin-bottom: 6px;
}
.lms-viz-block {
    display: inline-block;
    border-radius: 3px;
    border: 1px solid rgba(0,0,0,.08);
}
.lms-viz-block--ones { width: 14px; height: 14px; background: #60a5fa; }
.lms-viz-block--tens { width: 10px; height: 36px; background: #34d399; }
.lms-viz-block--hundreds { width: 36px; height: 36px; background: #fbbf24; }
.lms-viz-block--thousands { width: 44px; height: 44px; background: #f472b6; }
.lms-viz-pv-controls {
    display: flex;
    gap: 3px;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 100%;
}
.lesson-chat-messages .lms-viz-btn-sm {
    min-width: 22px;
    padding: 2px 4px;
    font-size: .68rem;
}
.lesson-chat-messages .lms-viz-pv-total {
    font-size: .95rem;
}
.lesson-chat-messages .lms-viz-card {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
}
.lesson-chat-messages .lms-chat-visual-panel {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}
.lesson-chat-messages .lms-viz-place-value,
.lesson-chat-messages .lms-viz-animated-op,
.lesson-chat-messages .lms-viz-fraction,
.lesson-chat-messages .lms-viz-numberline,
.lesson-chat-messages .lms-viz-dot-array {
    max-width: 100%;
    min-width: 0;
}
.lesson-chat-messages .lms-viz-anim-stack {
    font-size: .95rem;
    max-width: 100%;
    overflow-x: auto;
    box-sizing: border-box;
}
.lesson-chat-messages .lms-viz-dot-grid {
    max-width: 100%;
    overflow-x: auto;
}
.lesson-chat-toolbar .lms-badge {
    white-space: normal;
    line-height: 1.25;
    max-width: 100%;
    text-align: center;
}

.lms-viz-frac-label {
    font-weight: 700;
    text-align: center;
    margin-bottom: 8px;
    color: var(--lms-primary);
}
.lms-viz-frac-bar {
    display: flex;
    gap: 3px;
    height: 40px;
    margin-bottom: 10px;
}
.lms-viz-frac-slice {
    flex: 1;
    border: 1px solid var(--lms-border);
    border-radius: 4px;
    background: var(--lms-surface);
    cursor: pointer;
    padding: 0;
    min-width: 0;
}
.lms-viz-frac-slice.is-on { background: var(--lms-accent); border-color: var(--lms-accent-hover); }
.lms-viz-slider { width: 100%; accent-color: var(--lms-accent); }

.lms-viz-numberline {
    word-break: normal;
    overflow-wrap: normal;
}
.lms-viz-nl-readout {
    font-weight: 700;
    text-align: center;
    margin-bottom: 8px;
    color: var(--lms-accent);
}
.lms-viz-nl-track {
    position: relative;
    height: 8px;
    background: var(--lms-border);
    border-radius: 4px;
    margin: 28px 8px 24px;
    cursor: pointer;
}
.lms-viz-nl-pointer {
    position: absolute;
    top: 50%;
    width: 18px;
    height: 18px;
    margin: -9px 0 0 -9px;
    background: var(--lms-accent);
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: var(--lms-shadow);
    pointer-events: none;
    transition: left .15s ease;
}
.lms-viz-nl-ticks {
    position: relative;
    height: 22px;
    margin: 0 8px;
    overflow: visible;
}
.lms-viz-nl-tick {
    position: absolute;
    transform: translateX(-50%);
    font-size: .72rem;
    color: var(--lms-text-secondary);
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 4px;
    white-space: nowrap;
    word-break: keep-all;
}
.lms-viz-nl-tick:hover { background: var(--lms-accent-light); color: var(--lms-primary); }

.lms-viz-dot-label {
    text-align: center;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--lms-primary);
}
.lms-viz-dot-grid {
    display: grid;
    gap: 6px;
    justify-content: center;
    margin: 0 auto;
}
.lms-viz-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--lms-accent);
    background: var(--lms-surface);
    cursor: pointer;
    padding: 0;
}
.lms-viz-dot.is-on { background: var(--lms-accent); }

.lms-viz-card--illustration { padding: 0; overflow: hidden; }
.lms-viz-illustration {
    display: block;
    width: 100%;
    height: auto;
    max-height: 220px;
    object-fit: cover;
    border-radius: var(--lms-radius-sm);
}
.lms-viz-ill-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    color: var(--lms-text-secondary);
    font-size: .85rem;
}
.lms-viz-spinner {
    width: 18px;
    height: 18px;
    border: 2px solid var(--lms-border);
    border-top-color: var(--lms-accent);
    border-radius: 50%;
    animation: lms-viz-spin .7s linear infinite;
}
@keyframes lms-viz-spin { to { transform: rotate(360deg); } }

/* Phase 3 — animated steps & video explainers */
.lms-viz-pv-regroup {
    text-align: center;
    font-size: .78rem;
    color: var(--lms-accent);
    font-weight: 600;
    min-height: 1.2em;
    margin-bottom: 6px;
}
.lms-viz-pv-col.is-drop-target {
    border-color: var(--lms-accent);
    background: var(--lms-accent-soft);
    box-shadow: 0 0 0 2px var(--lms-accent-light);
}
.lms-viz-block.is-dragging { opacity: .45; transform: scale(1.08); }

.lms-viz-animated-op { text-align: center; }
.lms-viz-anim-stack {
    font-family: ui-monospace, monospace;
    font-size: 1.25rem;
    font-weight: 700;
    text-align: right;
    display: inline-block;
    margin: 8px auto 12px;
    padding: 12px 20px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: 8px;
    line-height: 1.5;
}
.lms-viz-anim-step {
    min-height: 3.2em;
    padding: 12px 14px;
    background: var(--lms-accent-soft);
    border-radius: 8px;
    border: 1px solid var(--lms-accent-light);
    font-size: .92rem;
    line-height: 1.45;
    color: var(--lms-primary);
    margin-bottom: 8px;
    transition: opacity .25s ease, transform .25s ease;
}
.lms-viz-anim-step.lms-viz-step-in {
    animation: lms-viz-step-in .35s ease-out;
}
@keyframes lms-viz-step-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.lms-viz-anim-progress {
    font-size: .75rem;
    color: var(--lms-text-muted);
    margin-bottom: 8px;
}
.lms-viz-anim-controls {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}
.lms-viz-btn-play { background: var(--lms-accent); color: #fff; border-color: var(--lms-accent); }
.lms-viz-btn-play:hover { background: var(--lms-accent-hover); }

.lms-viz-card--video { padding: 10px 12px 12px; }
.lms-viz-video-title {
    font-weight: 600;
    font-size: .88rem;
    margin-bottom: 8px;
    color: var(--lms-primary);
}
.lms-viz-video-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: var(--lms-radius-sm);
    background: #000;
}
.lms-viz-video-embed iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: 0;
}

/* --- People hub: enrollments --- */
.adm-enroll { display: flex; flex-direction: column; gap: 16px; }
.adm-enroll-toolbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.adm-enroll-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-enroll-lead {
    margin: 0;
    max-width: 44rem;
    font-size: .92rem;
    color: var(--lms-text-secondary);
}
.adm-enroll-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr);
    gap: 16px;
    align-items: stretch;
}
.adm-enroll-form-card { margin: 0; }
.adm-enroll-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 18px 18px;
}
.adm-enroll-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adm-enroll-field span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-enroll-field .lms-form-select,
.adm-enroll-field .lms-input { width: 100%; max-width: none; }
.adm-enroll-grade-hint {
    margin: 0;
    font-size: .85rem;
    line-height: 1.45;
    color: var(--lms-text-secondary);
}
.adm-enroll-aside {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    padding: 18px 18px 16px;
}
.adm-enroll-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}
.adm-enroll-steps li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: .85rem;
    line-height: 1.45;
    color: var(--lms-text-secondary);
}
.adm-enroll-steps strong { color: var(--lms-text); }
.adm-enroll-step-n {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--lms-accent-soft);
    color: var(--lms-accent-hover);
    font-size: .78rem;
    font-weight: 700;
}
.adm-enroll-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 14px;
    align-items: flex-end;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
}
.adm-enroll-field--grow { flex: 1 1 200px; }
.adm-enroll-filter-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding-bottom: 2px; }
.adm-enroll-focus {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px 18px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
}
.adm-enroll-focus-id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.adm-enroll-focus-id strong { display: block; font-size: 1.05rem; }
.adm-enroll-focus-id span { font-size: .82rem; color: var(--lms-text-muted); }
.adm-enroll-avatar {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-weight: 700;
    background: var(--lms-accent-soft);
    color: var(--lms-accent-hover);
    flex-shrink: 0;
}
.adm-enroll-avatar--sm { width: 36px; height: 36px; border-radius: 10px; font-size: .85rem; }
.adm-enroll-avatar--img { object-fit: cover; padding: 0; }
.adm-enroll-coverage { min-width: 0; }
.adm-enroll-coverage-meta {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: .78rem;
    color: var(--lms-text-muted);
    margin-bottom: 6px;
}
.adm-enroll-bar {
    height: 8px;
    border-radius: 999px;
    background: var(--lms-surface-alt);
    overflow: hidden;
}
.adm-enroll-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--lms-brand), var(--lms-accent));
    border-radius: inherit;
}
.adm-enroll-focus-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.adm-enroll-empty-wrap {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-lg);
}
.adm-enroll-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.adm-enroll-card {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
}
.adm-enroll-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-enroll-card-who {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1;
    color: inherit;
}
.adm-enroll-card-who strong { display: block; }
.adm-enroll-muted { font-size: .78rem; color: var(--lms-text-muted); }
.adm-enroll-seat-count {
    font-size: .78rem;
    font-weight: 700;
    color: var(--lms-text-secondary);
    white-space: nowrap;
}
.adm-enroll-subjects { list-style: none; margin: 0; padding: 0; }
.adm-enroll-subject {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 10px 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-enroll-subject:first-child { border-top: 0; }
.adm-enroll-subject--dropped { opacity: .78; }
.adm-enroll-subject-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: var(--lms-primary-light);
    color: var(--lms-brand);
    font-size: .85rem;
}
.adm-enroll-subject--completed .adm-enroll-subject-icon { background: var(--lms-success-light); color: var(--lms-success); }
.adm-enroll-subject--dropped .adm-enroll-subject-icon { background: var(--lms-surface-alt); color: var(--lms-text-muted); }
.adm-enroll-subject--pending .adm-enroll-subject-icon { background: var(--lms-warning-light); color: var(--lms-accent-hover); }
.adm-enroll-subject-copy { min-width: 0; }
.adm-enroll-subject-copy strong { display: block; font-size: .92rem; }
.adm-enroll-subject-copy span { font-size: .78rem; color: var(--lms-text-muted); }
.adm-enroll-subject-actions { display: flex; gap: 6px; justify-content: flex-end; }

@media (max-width: 960px) {
    .adm-enroll-layout,
    .adm-enroll-focus { grid-template-columns: 1fr; }
    .adm-enroll-subject { grid-template-columns: auto minmax(0, 1fr) auto; }
    .adm-enroll-subject-actions { grid-column: 2 / -1; justify-content: flex-start; }
}

/* --- People hub: student profile --- */
.adm-stu { display: flex; flex-direction: column; gap: 16px; }
.adm-stu-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    padding: 18px 20px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
}
.adm-stu-hero-id { display: flex; gap: 16px; align-items: center; min-width: 0; }
.adm-stu-hero-copy { min-width: 0; }
.adm-stu-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-stu-hero-copy h2 {
    margin: 0 0 4px;
    font-size: 1.45rem;
    line-height: 1.2;
}
.adm-stu-hero-copy p {
    margin: 0;
    font-size: .88rem;
    color: var(--lms-text-secondary);
}
.adm-stu-avatar {
    width: 72px;
    height: 72px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    font-weight: 700;
    background: var(--lms-accent-soft);
    color: var(--lms-accent-hover);
    flex-shrink: 0;
}
.adm-stu-avatar--img { object-fit: cover; padding: 0; }
.adm-stu-hero-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}
.adm-stu-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.adm-stu-facts {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}
.adm-stu-facts > div {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius);
    padding: 12px 14px;
}
.adm-stu-facts dt {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
    margin-bottom: 4px;
}
.adm-stu-facts dd { margin: 0; font-weight: 600; font-size: .95rem; }
.adm-stu-facts dd.is-due { color: var(--lms-danger); }
.adm-stu-facts dd.is-clear { color: var(--lms-success); }
.adm-stu-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .75fr);
    gap: 16px;
    align-items: start;
}
.adm-stu-main, .adm-stu-aside { display: flex; flex-direction: column; gap: 16px; }
.adm-stu-seats { list-style: none; margin: 0; padding: 0; }
.adm-stu-seats li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-stu-seats li:first-child { border-top: 0; }
.adm-stu-seats strong { display: block; }
.adm-stu-seats span:not(.lms-badge) { font-size: .78rem; color: var(--lms-text-muted); }
.adm-stu-seat-icon {
    width: 34px; height: 34px; border-radius: 10px;
    display: grid; place-items: center;
    background: var(--lms-primary-light); color: var(--lms-brand);
}
.adm-stu-note { margin: 0 0 12px; font-size: .88rem; color: var(--lms-text-secondary); }
.adm-stu-grade-form, .adm-stu-parent-form { display: flex; flex-direction: column; gap: 12px; }
.adm-stu-grade-form label, .adm-stu-parent-form label:not(.adm-stu-check) { display: flex; flex-direction: column; gap: 6px; }
.adm-stu-grade-form label span, .adm-stu-parent-form label span {
    font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--lms-text-muted);
}
.adm-stu-check { display: flex; gap: 8px; align-items: center; cursor: pointer; font-size: .9rem; }
.adm-stu-parent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.adm-stu-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.adm-stu-split > .lms-card {
    display: flex;
    flex-direction: column;
    margin-top: 0 !important;
    height: auto;
    align-self: start;
    width: 100%;
}
.adm-stu-split > .lms-card > .lms-card-header {
    min-height: 56px;
    box-sizing: border-box;
}
.adm-stu-split > .lms-card > .lms-card-body { flex: 1; }
.adm-stu-quiet {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.adm-stu-quiet strong { font-size: .95rem; color: var(--lms-text); }
.adm-stu-quiet span, .adm-stu-quiet-line { font-size: .875rem; color: var(--lms-text-muted); }
.adm-stu-course { border-top: 1px solid var(--lms-border-light); }
.adm-stu-course:first-of-type { border-top: 0; }
.adm-stu-course h4 {
    margin: 0;
    padding: 12px 16px 8px;
    font-size: .82rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-stu-subh { margin: 0 0 8px; font-size: .9rem; }
.adm-stu-plain { margin: 0 0 16px; padding: 0; list-style: none; display: grid; gap: 8px; }
.adm-stu-plain li { font-size: .9rem; }
.adm-stu-plain small { display: block; color: var(--lms-text-muted); }
.adm-stu-details {
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius);
    margin-bottom: 10px;
    background: var(--lms-surface);
    overflow: hidden;
}
.adm-stu-details > summary {
    cursor: pointer;
    list-style: none;
    padding: 12px 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    justify-content: space-between;
    background: var(--lms-surface-alt);
}
.adm-stu-details > summary::-webkit-details-marker { display: none; }
.adm-stu-details[open] > summary { border-bottom: 1px solid var(--lms-border); }
.adm-stu-details-score { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.adm-stu-details-score strong.is-ok, .adm-stu .is-ok { color: var(--lms-success); }
.adm-stu-details-score strong.is-bad, .adm-stu .is-bad { color: var(--lms-danger); }
.adm-stu-details-body { padding: 12px 14px 14px; }
.adm-stu-meta { font-size: .8rem; color: var(--lms-text-muted); }
.adm-stu-q {
    padding: 12px 14px;
    border-left: 3px solid var(--lms-border);
    margin: 10px 0;
    background: var(--lms-surface-alt);
    border-radius: 0 8px 8px 0;
}
.adm-stu-q.is-ok { border-left-color: var(--lms-success); }
.adm-stu-q.is-bad { border-left-color: var(--lms-danger); }
.adm-stu-q p { margin: 6px 0 0; font-size: .9rem; }
.adm-stu-msg {
    padding: 10px 14px;
    margin: 8px 0;
    border-radius: 8px;
    font-size: .9rem;
    line-height: 1.55;
    white-space: pre-wrap;
}
.adm-stu-msg.is-user { background: var(--lms-primary-light); border: 1px solid #c5d4e4; }
.adm-stu-msg.is-ai { background: var(--lms-surface-alt); border: 1px solid var(--lms-border); }
.adm-stu-pre {
    margin: 8px 0 0;
    padding: 12px;
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 8px;
    overflow: auto;
    font-size: .75rem;
    max-height: 240px;
}

@media (max-width: 1100px) {
    .adm-stu-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .adm-stu-layout, .adm-stu-split { grid-template-columns: 1fr; }
    .adm-stu-hero-side { align-items: flex-start; }
    .adm-stu-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- Content hub: lessons catalog --- */
.adm-lessons { display: flex; flex-direction: column; gap: 16px; }
.adm-lessons-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}
.adm-lessons-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-lessons-lead {
    margin: 0;
    max-width: 44rem;
    font-size: .92rem;
    color: var(--lms-text-secondary);
}
.adm-lessons-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 14px;
    align-items: flex-end;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
}
.adm-lessons-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adm-lessons-field--grow { flex: 1 1 200px; }
.adm-lessons-field span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-lessons-field .lms-form-select,
.adm-lessons-field .lms-input { width: 100%; max-width: none; }
.adm-lessons-filter-actions { display: flex; gap: 8px; flex-wrap: wrap; padding-bottom: 2px; }
.adm-lessons-empty {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border-light);
    border-radius: var(--lms-radius-lg);
}
.adm-lessons-groups { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.adm-lessons-group {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    box-shadow: var(--lms-shadow-xs);
    overflow: hidden;
}
.adm-lessons-group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 16px;
    background: linear-gradient(180deg, var(--lms-surface) 0%, var(--lms-surface-alt) 100%);
    border-bottom: 1px solid var(--lms-border-light);
}
.adm-lessons-group-head h3 { margin: 0; font-size: 1.05rem; }
.adm-lessons-group-head p { margin: 4px 0 0; font-size: .8rem; color: var(--lms-text-muted); }
.adm-lessons-group-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.adm-lessons-items { list-style: none; margin: 0; padding: 0; }
.adm-lessons-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 12px 14px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-lessons-item:first-child { border-top: 0; }
.adm-lessons-item--draft { background: linear-gradient(90deg, var(--lms-accent-soft), transparent 48%); }
.adm-lessons-ord {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    font-size: .8rem;
    font-weight: 700;
    background: var(--lms-primary-light);
    color: var(--lms-brand);
}
.adm-lessons-copy { min-width: 0; }
.adm-lessons-copy strong { display: block; font-size: .95rem; }
.adm-lessons-copy span { font-size: .78rem; color: var(--lms-text-muted); }
.adm-lessons-item-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-lessons-item-actions form { display: inline; }

@media (max-width: 960px) {
    .adm-lessons-item { grid-template-columns: auto minmax(0, 1fr) auto; }
    .adm-lessons-item-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* --- Assessments hub: quizzes --- */
.adm-assess { display: flex; flex-direction: column; gap: 16px; }
.adm-assess-toolbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.adm-assess-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-assess-lead {
    margin: 0;
    max-width: 44rem;
    font-size: .92rem;
    color: var(--lms-text-secondary);
}
.adm-assess-sub { margin: 4px 0 0; font-size: .82rem; color: var(--lms-text-muted); font-weight: 400; }
.adm-assess-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .75fr);
    gap: 16px;
    align-items: start;
}
.adm-assess-main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.adm-assess-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    padding: 12px 14px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
}
.adm-assess-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adm-assess-field--grow { flex: 1 1 180px; }
.adm-assess-field span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-assess-field .lms-input, .adm-assess-field .lms-form-select { width: 100%; max-width: none; }
.adm-assess-filter-actions { display: flex; gap: 8px; padding-bottom: 2px; }
.adm-assess-form-card { margin: 0; }
.adm-assess-form { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; }
.adm-assess-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.adm-assess-hint { margin: 0; font-size: .8rem; color: var(--lms-text-muted); line-height: 1.45; }
.adm-assess-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.adm-assess-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; background: var(--lms-surface); border: 1px solid var(--lms-border); border-radius: var(--lms-radius-lg); overflow: hidden; box-shadow: var(--lms-shadow-xs); }
.adm-assess-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-assess-item:first-child { border-top: 0; }
.adm-assess-item.is-editing { background: var(--lms-accent-soft); }
.adm-assess-type {
    width: 36px; height: 36px; border-radius: 10px;
    display: grid; place-items: center;
    font-size: .78rem; font-weight: 700;
    background: var(--lms-primary-light); color: var(--lms-brand);
}
.adm-assess-type--auto { background: var(--lms-accent-soft); color: var(--lms-accent-hover); }
.adm-assess-avatar {
    width: 36px; height: 36px; border-radius: 10px;
    display: grid; place-items: center;
    font-weight: 700; background: var(--lms-accent-soft); color: var(--lms-accent-hover);
}
.adm-assess-copy { min-width: 0; }
.adm-assess-copy strong { display: block; font-size: .95rem; }
.adm-assess-copy span { font-size: .78rem; color: var(--lms-text-muted); }
.adm-assess-item-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-assess-item-actions form { display: inline; }
.adm-assess-pills { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.adm-assess-score { font-weight: 700; }
.adm-assess-score.is-ok, .adm-assess .is-ok { color: var(--lms-success); }
.adm-assess-score.is-bad, .adm-assess .is-bad { color: var(--lms-danger); }
.adm-assess-muted { font-size: .8rem; color: var(--lms-text-muted); }
.adm-assess-scoreline { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 16px; }
.adm-assess-scoreline strong { font-size: 1.4rem; }
.adm-assess-q {
    padding: 12px 14px;
    border-left: 3px solid var(--lms-border);
    margin: 0 0 10px;
    background: var(--lms-surface-alt);
    border-radius: 0 8px 8px 0;
}
.adm-assess-q.is-ok { border-left-color: var(--lms-success); }
.adm-assess-q.is-bad { border-left-color: var(--lms-danger); }
.adm-assess-q p { margin: 6px 0 0; font-size: .88rem; }
.adm-assess-override { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--lms-border-light); }
.adm-assess-override h4 { margin: 0 0 12px; font-size: .95rem; }

@media (max-width: 960px) {
    .adm-assess-layout { grid-template-columns: 1fr; }
    .adm-assess-item { grid-template-columns: auto minmax(0, 1fr); }
    .adm-assess-item-actions, .adm-assess-pills { grid-column: 1 / -1; }
}

.adm-bank { display: flex; flex-direction: column; gap: 16px; }
.adm-bank-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    flex-wrap: wrap;
}
.adm-bank-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-bank-lead {
    margin: 0;
    max-width: 44rem;
    font-size: .92rem;
    color: var(--lms-text-secondary);
}
.adm-bank-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    padding: 12px 14px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
}
.adm-bank-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adm-bank-field--grow { flex: 1 1 200px; }
.adm-bank-field span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-bank-field .lms-input,
.adm-bank-field .lms-form-select { width: 100%; max-width: none; }
.adm-bank-filter-actions { display: flex; gap: 8px; padding-bottom: 2px; }
.adm-bank-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .75fr);
    gap: 16px;
    align-items: start;
}
.adm-bank-layout > .lms-card + .lms-card { margin-top: 0 !important; }
.adm-bank-main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.adm-bank-aside { margin: 0 !important; }
.adm-bank-focus {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
}
.adm-bank-focus strong { display: block; font-size: 1.05rem; }
.adm-bank-focus span { font-size: .8rem; color: var(--lms-text-muted); }
.adm-bank-groups { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.adm-bank-group {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
}
.adm-bank-group-head {
    padding: 12px 16px;
    border-bottom: 1px solid var(--lms-border-light);
    background: var(--lms-surface-alt);
}
.adm-bank-group-head h3 { margin: 0; font-size: .95rem; }
.adm-bank-lessons, .adm-bank-quizpick { list-style: none; margin: 0; padding: 0; }
.adm-bank-lesson, .adm-bank-quiz {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
    text-decoration: none;
    color: inherit;
}
.adm-bank-lessons li:first-child .adm-bank-lesson,
.adm-bank-quizpick li:first-child .adm-bank-quiz { border-top: 0; }
.adm-bank-lesson:hover, .adm-bank-quiz:hover { background: var(--lms-accent-soft); }
.adm-bank-lesson strong, .adm-bank-quiz strong { font-size: .95rem; }
.adm-bank-lesson span, .adm-bank-quiz span { font-size: .78rem; color: var(--lms-text-muted); }
.adm-bank-quizpick {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
}
.adm-bank-quiz { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
.adm-bank-quiz strong { flex: 1; }
.adm-bank-qlist { list-style: none; margin: 0; padding: 0; background: var(--lms-surface); border: 1px solid var(--lms-border); border-radius: var(--lms-radius-lg); overflow: hidden; }
.adm-bank-qlist--card { box-shadow: var(--lms-shadow-xs); }
.adm-bank-q {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    padding: 12px 14px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-bank-q:first-child { border-top: 0; }
.adm-bank-q.is-off { opacity: .62; }
.adm-bank-q.is-editing { background: var(--lms-accent-soft); }
.adm-bank-ord {
    width: 28px; height: 28px; border-radius: 8px;
    display: grid; place-items: center;
    font-size: .75rem; font-weight: 700;
    background: var(--lms-primary-light); color: var(--lms-brand);
}
.adm-bank-qcopy { min-width: 0; }
.adm-bank-qcopy strong { display: block; font-size: .9rem; }
.adm-bank-qcopy span { font-size: .75rem; color: var(--lms-text-muted); }
.adm-bank-qactions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-bank-qactions form { display: inline; margin: 0; }
.adm-bank-check, .adm-bank-checkall { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.adm-bank-bulkbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    margin-bottom: 8px;
    background: var(--lms-accent-soft);
    border-radius: var(--lms-radius);
}
.adm-bank-bulkbar[hidden] { display: none; }
.adm-bank-hidden-form { display: none; }
.adm-bank-gen { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; }
.adm-bank-gen--gap { border-top: 1px solid var(--lms-border-light); }
.adm-bank-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.adm-bank-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.adm-bank-hint { margin: 0; padding: 0 18px 16px; font-size: .8rem; color: var(--lms-text-muted); line-height: 1.45; }
.adm-bank-ai { margin-top: 4px; }
.adm-bank-ai-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.adm-bank-ai-controls .adm-bank-field { min-width: 140px; }
.adm-bank-ai-status { margin-top: 12px; padding: 10px 12px; border-radius: var(--lms-radius-sm); font-size: .85rem; }
.adm-bank-ai-status[hidden], #aiResults[hidden] { display: none; }
.adm-bank-ai-toolbar { display: flex; gap: 8px; align-items: center; margin: 14px 0 10px; }
.adm-bank-ai-toolbar strong { flex: 1; }
.adm-bank-ai-item {
    padding: 12px 14px;
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-sm);
    margin-bottom: 8px;
    background: var(--lms-surface);
}
.adm-bank-ai-item-top { display: flex; align-items: flex-start; gap: 10px; }
.adm-bank-ai-meta { display: flex; gap: 8px; margin-bottom: 4px; }
.adm-bank-ai-opts { margin-top: 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: .81rem; color: var(--lms-text-secondary); }
.adm-bank-ai-opts .is-ok { color: var(--lms-success); font-weight: 600; }
.adm-bank-ai-save { margin-top: 12px; display: flex; gap: 10px; align-items: center; }
.adm-bank-ai .adm-bank-hint { padding: 0; margin-bottom: 12px; }

@media (max-width: 960px) {
    .adm-bank-layout { grid-template-columns: 1fr; }
    .adm-bank-q { grid-template-columns: auto minmax(0, 1fr); }
    .adm-bank-qactions, .adm-bank-q .lms-badge { grid-column: 1 / -1; }
    .adm-bank-quiz { flex-direction: column; align-items: flex-start; }
}

.adm-prog { display: flex; flex-direction: column; gap: 16px; }
.adm-prog-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    flex-wrap: wrap;
}
.adm-prog-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.adm-prog-kicker {
    margin: 0 0 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-prog-lead {
    margin: 0;
    max-width: 46rem;
    font-size: .92rem;
    color: var(--lms-text-secondary);
}
.adm-prog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    padding: 12px 14px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
}
.adm-prog-field { display: flex; flex-direction: column; gap: 6px; min-width: 140px; }
.adm-prog-field--grow { flex: 1 1 200px; }
.adm-prog-field span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lms-text-muted);
}
.adm-prog-field .lms-input,
.adm-prog-field .lms-form-select { width: 100%; max-width: none; }
.adm-prog-filter-actions { display: flex; gap: 8px; padding-bottom: 2px; }
.adm-prog-count { margin: 0; font-size: .82rem; color: var(--lms-text-muted); }
.adm-prog-groups { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.adm-prog-group {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
}
.adm-prog-group-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--lms-surface-alt);
    border-bottom: 1px solid var(--lms-border-light);
}
.adm-prog-avatar {
    width: 36px; height: 36px; border-radius: 10px;
    display: grid; place-items: center;
    font-weight: 700;
    background: var(--lms-accent-soft);
    color: var(--lms-accent-hover);
    flex-shrink: 0;
}
.adm-prog-copy { min-width: 0; flex: 1; }
.adm-prog-copy strong { display: block; }
.adm-prog-copy span { font-size: .78rem; color: var(--lms-text-muted); }
.adm-prog-subjects { list-style: none; margin: 0; padding: 0; }
.adm-prog-subjects--flat {
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
}
.adm-prog-subject {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-prog-group .adm-prog-subject:first-child,
.adm-prog-subjects--flat .adm-prog-subject:first-child { border-top: 0; }
.adm-prog-subject.is-risk { background: rgba(180, 83, 9, .06); }
.adm-prog-who { font-size: .82rem; }
.adm-prog-bar {
    height: 6px;
    margin: 8px 0 6px;
    background: var(--lms-border);
    border-radius: 999px;
    overflow: hidden;
}
.adm-prog-bar span { display: block; height: 100%; background: var(--lms-brand, var(--lms-primary)); }
.adm-prog-bar.is-risk span { background: var(--lms-warning); }
.adm-prog-bar.is-done span { background: var(--lms-success); }
.adm-prog-meta { font-size: .75rem; color: var(--lms-text-muted); }
.adm-prog-pills { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-prog-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.adm-prog-ai-list {
    list-style: none; margin: 0; padding: 0;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
    overflow: hidden;
}
.adm-prog-ai-item {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-prog-ai-item:first-child { border-top: 0; }
.adm-prog-focus {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    padding: 14px 16px;
    background: var(--lms-surface);
    border: 1px solid var(--lms-border);
    border-radius: var(--lms-radius-lg);
}
.adm-prog-focus strong { display: block; font-size: 1.05rem; }
.adm-prog-focus span { font-size: .82rem; color: var(--lms-text-muted); }
.adm-prog-focus-barwrap { flex: 1 1 220px; max-width: 420px; }
.adm-prog-coverage-meta {
    display: flex;
    justify-content: space-between;
    font-size: .78rem;
    color: var(--lms-text-muted);
    margin-bottom: 6px;
}
.adm-prog-reasons {
    margin: 0;
    padding-left: 18px;
    color: var(--lms-text-muted);
    font-size: .85rem;
}
.adm-prog-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, .7fr);
    gap: 16px;
    align-items: start;
}
.adm-prog-detail-grid > .lms-card { margin: 0 !important; }
.adm-prog-lesson-list, .adm-prog-assign-list { list-style: none; margin: 0; padding: 0; }
.adm-prog-lesson, .adm-prog-assign-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid var(--lms-border-light);
}
.adm-prog-assign-list li { grid-template-columns: minmax(0, 1fr) auto auto; }
.adm-prog-lesson:first-child, .adm-prog-assign-list li:first-child { border-top: 0; }
.adm-prog-ord {
    width: 28px; height: 28px; border-radius: 8px;
    display: grid; place-items: center;
    font-size: .75rem; font-weight: 700;
    background: var(--lms-primary-light); color: var(--lms-brand);
}
.adm-prog-lesson.is-done { background: rgba(22, 163, 74, .05); }
.adm-prog-ai-body h3 { margin: 16px 0 8px; font-size: .95rem; }
.adm-prog-ai-body p, .adm-prog-ai-body ul { margin: 0 0 8px; }
.adm-prog-ai-kpis { display: flex; flex-wrap: wrap; gap: 16px; color: var(--lms-text-muted); font-size: .88rem; }
.adm-prog-pre { white-space: pre-wrap; font-size: .85rem; margin: 0; }

@media (max-width: 960px) {
    .adm-prog-subject { grid-template-columns: minmax(0, 1fr); }
    .adm-prog-pills, .adm-prog-actions { justify-content: flex-start; }
    .adm-prog-detail-grid { grid-template-columns: 1fr; }
    .adm-prog-ai-item { flex-direction: column; align-items: flex-start; }
}

