:root {
    --sidebar-bg: #0b0b0f;
    --sidebar-accent: #ff3347;
    --content-bg: #f5f5f5;
    --card-bg: #ffffff;
    --text-main: #15151b;
    --text-soft: #6d6d78;
    --border-soft: #e7e7ea;
    --success-soft: #ffe3e7;
    --brand-dark: #0b0b0f;
    --brand-deep-red: #b3001b;
    --brand-bright-red: #ff3347;
    --brand-light: #f5f5f5;
    --brand-light-red: #ffd9de;
    --surface-glass: rgba(255, 255, 255, 0.78);
    --shadow-soft: 0 18px 36px rgba(11, 11, 15, 0.06);
    --shadow-lift: 0 24px 44px rgba(11, 11, 15, 0.12);
    --focus-ring: rgba(179, 0, 27, 0.18);
    color-scheme: light;
}

.theme-dark {
    --sidebar-bg: #06070a;
    --content-bg: #0f1117;
    --card-bg: #171a22;
    --text-main: #f5f7fb;
    --text-soft: #a4adbb;
    --border-soft: #272c37;
    --brand-light: #101219;
    --brand-light-red: rgba(255, 51, 71, 0.16);
    --surface-glass: rgba(23, 26, 34, 0.82);
    --shadow-soft: 0 18px 36px rgba(0, 0, 0, 0.28);
    --shadow-lift: 0 24px 44px rgba(0, 0, 0, 0.36);
    color-scheme: dark;
}

.btn-primary {
    --bs-btn-bg: var(--brand-deep-red);
    --bs-btn-border-color: var(--brand-deep-red);
    --bs-btn-hover-bg: #920016;
    --bs-btn-hover-border-color: #920016;
    --bs-btn-active-bg: #7f0013;
    --bs-btn-active-border-color: #7f0013;
    --bs-btn-focus-shadow-rgb: 179, 0, 27;
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-deep-red);
    --bs-btn-border-color: var(--brand-deep-red);
    --bs-btn-hover-bg: var(--brand-deep-red);
    --bs-btn-hover-border-color: var(--brand-deep-red);
    --bs-btn-active-bg: #920016;
    --bs-btn-active-border-color: #920016;
    --bs-btn-focus-shadow-rgb: 179, 0, 27;
}

.page-link {
    color: var(--brand-deep-red);
}

.page-item.active .page-link {
    background-color: var(--brand-deep-red);
    border-color: var(--brand-deep-red);
}

body {
    margin: 0;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    background:
        radial-gradient(circle at top left, rgba(179, 0, 27, 0.12), transparent 25%),
        radial-gradient(circle at bottom right, rgba(255, 51, 71, 0.1), transparent 20%),
        linear-gradient(135deg, #f0f0f1 0%, var(--brand-light) 100%);
    color: var(--text-main);
}

.theme-dark body {
    background:
        radial-gradient(circle at top left, rgba(255, 51, 71, 0.14), transparent 25%),
        radial-gradient(circle at bottom right, rgba(58, 160, 255, 0.08), transparent 22%),
        linear-gradient(135deg, #0f1117 0%, #11141c 100%);
}

.js:not(.aos-ready) [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

body.sidebar-open {
    overflow: hidden;
}

body.loading-active {
    overflow: hidden;
}

.app-shell {
    min-height: 100vh;
    display: flex;
    overflow-x: hidden;
}

.sidebar-panel {
    width: 244px;
    background:
        radial-gradient(circle at top left, rgba(255, 51, 71, 0.18), transparent 28%),
        linear-gradient(180deg, #15151b 0%, var(--brand-dark) 100%);
    color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100vh;
    overflow: hidden;
    z-index: 1020;
}

.sidebar-inner {
    padding: 1rem 0.85rem;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.sidebar-brand-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.sidebar-close {
    display: none;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.sidebar-backdrop {
    display: none;
}

.brand {
    text-decoration: none;
    color: #fff;
    display: flex;
    gap: 0.7rem;
    align-items: center;
    min-width: 0;
}

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-deep-red), var(--brand-bright-red));
    font-weight: 700;
    font-size: 1.2rem;
}

.brand-logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
    filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.28));
    flex-shrink: 0;
}

.brand-name {
    font-weight: 700;
    letter-spacing: 0.02em;
    font-size: 0.92rem;
    line-height: 1.15;
}

.brand small {
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.72rem;
}

.sidebar-nav {
    gap: 0.22rem;
    margin-top: 1rem;
    padding-right: 0.25rem;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}

.sidebar-nav::-webkit-scrollbar {
    width: 6px;
}

.sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.22);
    border-radius: 999px;
}

.admin-sidebar-nav {
    gap: 0.72rem;
}

.sidebar-menu-group {
    display: flex;
    flex-direction: column;
    gap: 0.14rem;
}

.sidebar-menu-label {
    padding: 0 0.5rem 0.2rem;
    color: rgba(255, 255, 255, 0.44);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(255, 255, 255, 0.82);
    border-radius: 10px;
    padding: 0.48rem 0.58rem;
    transition: all 0.2s ease;
    min-height: 40px;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.15;
}

.admin-sidebar-surface .sidebar-link {
    gap: 0.46rem;
    min-height: 32px;
    padding: 0.34rem 0.46rem;
    border-radius: 8px;
    font-size: 0.8rem;
    line-height: 1.1;
}

.admin-sidebar-surface .sidebar-link > span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-icon {
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.07);
    color: #fff;
    font-size: 0.92rem;
}

.admin-sidebar-surface .sidebar-icon {
    width: 24px;
    height: 24px;
    min-width: 24px;
    border-radius: 7px;
    font-size: 0.76rem;
}

.sidebar-link:hover,
.sidebar-link.active {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    transform: translateX(3px);
}

.sidebar-link.active .sidebar-icon,
.sidebar-link:hover .sidebar-icon {
    background: linear-gradient(135deg, var(--brand-deep-red), var(--brand-bright-red));
}

.sidebar-footer {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.65);
    flex-shrink: 0;
}

.content-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin-left: 244px;
    min-height: 100vh;
}

.topbar {
    padding: 1.5rem 2rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.topbar-title-wrap {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}

.sidebar-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 14px;
    background: #ffffff;
    color: var(--brand-deep-red);
    font-size: 1.3rem;
    box-shadow: 0 12px 24px rgba(11, 11, 15, 0.06);
}

.topbar-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    overflow: visible;
}

.topbar-search {
    align-items: center;
    gap: 0.55rem;
    min-width: 320px;
    height: 48px;
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 16px;
    padding: 0 0.9rem;
    background: var(--surface-glass);
    color: var(--text-soft);
    box-shadow: 0 14px 28px rgba(11, 11, 15, 0.05);
    backdrop-filter: blur(10px);
}

.topbar-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text-main);
    font-size: 0.92rem;
}

.topbar-search:focus-within {
    border-color: rgba(179, 0, 27, 0.22);
    box-shadow: 0 0 0 0.25rem var(--focus-ring);
}

.theme-toggle {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 16px;
    background: var(--surface-glass);
    color: var(--brand-deep-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 14px 28px rgba(11, 11, 15, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.theme-toggle:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lift);
}

.notification-button {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 16px;
    background: var(--surface-glass);
    color: var(--brand-deep-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0 14px 28px rgba(11, 11, 15, 0.05);
}

.notification-button:hover,
.notification-button.show {
    border-color: rgba(179, 0, 27, 0.18);
    box-shadow: 0 16px 32px rgba(11, 11, 15, 0.08);
}

.notification-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--brand-bright-red);
    border: 2px solid #ffffff;
    position: absolute;
    top: 10px;
    right: 11px;
}

.notification-dropdown {
    width: min(340px, 92vw);
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    box-shadow: 0 18px 38px rgba(11, 11, 15, 0.12);
    padding: 0.65rem;
    background: var(--card-bg);
}

.notification-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0.55rem 0.65rem;
}

.notification-item {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 12px;
    text-decoration: none;
    color: var(--text-main);
}

.notification-item:hover {
    background: var(--brand-light-red);
}

.notification-item small {
    display: block;
    color: var(--text-soft);
}

.notification-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.notification-icon.warning {
    background: #fef3c7;
    color: #854d0e;
}

.notification-icon.danger {
    background: #fee2e2;
    color: #991b1b;
}

.notification-icon.success {
    background: #dcfce7;
    color: #166534;
}

.page-title {
    font-size: 1.7rem;
    font-weight: 700;
}

.user-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    background: var(--surface-glass);
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 18px;
    padding: 0.6rem 0.85rem;
    box-shadow: 0 14px 28px rgba(11, 11, 15, 0.05);
}

.user-chip-button {
    border: 1px solid rgba(179, 0, 27, 0.08);
    color: var(--text-main);
    cursor: pointer;
}

.user-chip-button:hover,
.user-chip-button.show {
    border-color: rgba(179, 0, 27, 0.18);
    box-shadow: 0 16px 32px rgba(11, 11, 15, 0.08);
}

.user-chip-caret {
    color: var(--text-soft);
    font-size: 0.85rem;
}

.user-dropdown-menu {
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    box-shadow: 0 18px 38px rgba(11, 11, 15, 0.12);
    padding: 0.5rem;
    background: var(--card-bg);
    min-width: 220px;
    margin-top: 0.6rem !important;
    z-index: 1090;
}

.user-dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    border-radius: 10px;
    padding: 0.65rem 0.8rem;
}

.user-chip-avatar {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-deep-red), var(--brand-bright-red));
    color: #fff;
    font-size: 1.15rem;
    box-shadow: 0 10px 20px rgba(179, 0, 27, 0.22);
    overflow: hidden;
}

.user-chip-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.account-avatar {
    width: 72px;
    height: 72px;
    min-width: 72px;
    min-height: 72px;
    font-size: 1.55rem;
}

.user-chip-meta {
    line-height: 1.2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
}

.user-chip-meta .fw-semibold {
    margin-bottom: 0.15rem;
}

.content-wrap {
    padding: 0 2rem 2rem;
    min-width: 0;
}

.content-card > .table-responsive,
.dashboard-card > .table-responsive {
    margin-bottom: 0;
}

.dashboard-hero {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 26%),
        radial-gradient(circle at bottom left, rgba(255, 51, 71, 0.16), transparent 30%),
        linear-gradient(135deg, #19191f, var(--brand-dark) 62%, var(--brand-deep-red) 135%);
    border-radius: 28px;
    padding: 2rem;
    color: #fff;
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    box-shadow: 0 26px 50px rgba(15, 23, 42, 0.16);
    position: relative;
    overflow: hidden;
}

.dashboard-hero::after {
    content: "";
    position: absolute;
    inset: auto -5% -48% 42%;
    height: 180px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    transform: rotate(-8deg);
    pointer-events: none;
}

.dashboard-hero > * {
    position: relative;
    z-index: 1;
}

.dashboard-hero-copy {
    max-width: 680px;
}

.dashboard-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

.dashboard-hero-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.dashboard-hero-text {
    color: rgba(255, 255, 255, 0.8);
    max-width: 560px;
    margin-bottom: 1.25rem;
}

.dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.btn-dashboard {
    border-radius: 999px;
    padding: 0.75rem 1.1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.dashboard-hero-side {
    min-width: 220px;
    display: grid;
    gap: 1rem;
    align-content: start;
}

.hero-mini-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 20px;
    padding: 1rem 1.1rem;
    backdrop-filter: blur(6px);
}

.hero-mini-label {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.72);
}

.hero-mini-value {
    font-size: 1.4rem;
    font-weight: 700;
}

.dashboard-card,
.content-card {
    background: var(--card-bg);
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    box-shadow: var(--shadow-soft);
    transition: background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.dashboard-card {
    padding: 1.25rem;
    height: 100%;
}

.stat-card {
    --stat-accent: var(--brand-deep-red);
    --stat-accent-soft: rgba(179, 0, 27, 0.1);
    --stat-tint: #fff4f5;
    position: relative;
    overflow: hidden;
    color: var(--text-main);
    background:
        linear-gradient(135deg, var(--stat-tint), rgba(255, 255, 255, 0.96) 44%),
        var(--card-bg);
    border-color: rgba(179, 0, 27, 0.1);
}

.stat-card::after {
    content: "";
    position: absolute;
    top: -28px;
    right: -28px;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    opacity: 0.85;
    background: rgba(179, 0, 27, 0.08);
}

.stat-card::before {
    content: "";
    position: absolute;
    inset: auto -28px -42px auto;
    width: 145px;
    height: 145px;
    border-radius: 50%;
    opacity: 0.78;
    background: rgba(11, 11, 15, 0.05);
}

.stat-card-blue {
    --stat-accent: #b3001b;
    --stat-accent-soft: rgba(179, 0, 27, 0.11);
    --stat-tint: #fff1f3;
}

.stat-card-amber {
    --stat-accent: #15151b;
    --stat-accent-soft: rgba(21, 21, 27, 0.08);
    --stat-tint: #fff6f7;
}

.stat-card-green {
    --stat-accent: #8f0016;
    --stat-accent-soft: rgba(143, 0, 22, 0.1);
    --stat-tint: #f8f8f9;
}

.stat-card-warning {
    --stat-accent: #c51d2f;
    --stat-accent-soft: rgba(197, 29, 47, 0.11);
    --stat-tint: #fff4f5;
}

.stat-card-rose {
    --stat-accent: #0b0b0f;
    --stat-accent-soft: rgba(11, 11, 15, 0.08);
    --stat-tint: #fff0f2;
}

.stat-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}

.stat-card-link:visited,
.stat-card-link:hover,
.stat-card-link:active {
    color: inherit;
    text-decoration: none;
}

.stat-card-link:hover,
.stat-card-link:focus-visible {
    transform: translateY(-4px);
    border-color: rgba(179, 0, 27, 0.2);
    box-shadow: var(--shadow-lift);
}

.stat-card-link:focus-visible {
    outline: 3px solid rgba(179, 0, 27, 0.18);
    outline-offset: 2px;
}

.stat-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: #15151b;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #ffffff, var(--stat-accent-soft));
    box-shadow: 0 14px 30px rgba(11, 11, 15, 0.08);
    position: relative;
    z-index: 1;
}

.stat-label,
.stat-note,
.stat-link-text,
.metric-value {
    position: relative;
    z-index: 1;
}

.stat-label {
    color: #5f6068;
    font-weight: 600;
    letter-spacing: 0;
}

.metric-value {
    font-size: 1.9rem;
    font-weight: 700;
    color: #15151b;
    margin-top: 0.1rem;
}

.theme-dark .metric-value,
.theme-dark .stat-link-text,
.theme-dark .stat-icon,
.theme-dark .quick-action-btn,
.theme-dark .notification-item,
.theme-dark .user-chip-button {
    color: var(--text-main);
}

.theme-dark .stat-card {
    background:
        linear-gradient(135deg, rgba(255, 51, 71, 0.1), rgba(23, 26, 34, 0.96) 44%),
        var(--card-bg);
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .stat-label,
.theme-dark .stat-note,
.theme-dark .table thead th,
.theme-dark .text-muted {
    color: var(--text-soft) !important;
}

.dashboard-live {
    opacity: 1;
    transform: none;
}

.js .dashboard-live {
    opacity: 1;
    transform: none;
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.js .dashboard-live.is-ready {
    opacity: 1;
    transform: translateY(0);
}

.dashboard-chart-card {
    min-height: 100%;
}

.chart-wrap {
    position: relative;
    min-height: 280px;
}

.chart-wrap-sm {
    min-height: 245px;
}

.chart-wrap canvas {
    width: 100% !important;
}

.stat-note {
    display: block;
    color: var(--text-soft);
}

.stat-link-text {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.95rem;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0;
    color: #15151b;
}

.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background:
        radial-gradient(circle at 14% 12%, rgba(255, 255, 255, 0.96) 0 32px, transparent 33px),
        radial-gradient(circle at 86% 84%, rgba(255, 255, 255, 0.9) 0 42px, transparent 43px),
        linear-gradient(135deg, rgba(255, 51, 71, 0.2), transparent 34%),
        linear-gradient(315deg, rgba(179, 0, 27, 0.14), transparent 36%),
        #f5f5f5;
    position: relative;
    overflow-x: hidden;
    overflow-y: auto;
}

.login-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 8% 72%, rgba(179, 0, 27, 0.14) 0 46px, transparent 47px),
        radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.96) 0 22px, transparent 23px),
        linear-gradient(135deg, transparent 0 14%, rgba(255, 51, 71, 0.12) 14% 18%, transparent 18% 100%),
        linear-gradient(90deg, transparent 0 48%, rgba(179, 0, 27, 0.06) 48% 52%, transparent 52%),
        linear-gradient(0deg, transparent 0 48%, rgba(11, 11, 15, 0.05) 48% 52%, transparent 52%);
    background-size: auto, auto, auto, 150px 150px, 150px 150px;
    mask-image: linear-gradient(135deg, rgba(0, 0, 0, 0.65), transparent 72%);
}

.login-page::after {
    content: "";
    position: fixed;
    width: 170px;
    height: 170px;
    right: 7%;
    bottom: 8%;
    border: 24px solid rgba(179, 0, 27, 0.12);
    border-radius: 50%;
    pointer-events: none;
}

.login-shell {
    width: 100%;
    max-width: 1040px;
    min-height: 620px;
    display: grid;
    grid-template-columns: 1.18fr 0.82fr;
    overflow: hidden;
    border-radius: 22px;
    background: #ffffff;
    box-shadow:
        0 34px 80px rgba(11, 11, 15, 0.18),
        -26px 28px 0 rgba(179, 0, 27, 0.08),
        26px -24px 0 rgba(255, 51, 71, 0.08);
    position: relative;
    z-index: 1;
    animation: loginShellIn 0.7s ease both;
}

.login-shell::before {
    content: "";
    position: absolute;
    width: 210px;
    height: 120px;
    left: -132px;
    top: 54px;
    border: 18px solid rgba(11, 11, 15, 0.08);
    border-radius: 999px;
    transform: rotate(-34deg);
    z-index: -1;
}

.login-shell::after {
    display: none;
}

.login-showcase {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(11, 11, 15, 0.72)),
        url("../images/login-hero.jpg"),
        linear-gradient(145deg, #f5f5f5 0%, #ffffff 24%, #ff3347 72%, #b3001b 130%);
    background-size: cover;
    background-position: center;
    color: #fff;
    min-height: 620px;
    position: relative;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    animation: loginPanelIn 0.75s ease 0.08s both;
}

.login-showcase::before {
    display: none;
}

.login-showcase::after {
    display: none;
}

.login-showcase-overlay {
    width: 100%;
    padding: 2.4rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 34%),
        linear-gradient(0deg, rgba(11, 11, 15, 0.72), transparent 58%);
    position: relative;
    z-index: 1;
}

.login-badge {
    display: inline-flex;
    width: fit-content;
    padding: 0.42rem 0.8rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    font-size: 0.78rem;
    text-transform: uppercase;
    margin-bottom: 1rem;
    backdrop-filter: blur(8px);
}

.login-showcase-title {
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1.05;
    max-width: 580px;
    margin-bottom: 1rem;
}

.login-showcase-title span {
    color: var(--brand-bright-red);
}

.login-showcase-text {
    max-width: 520px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1rem;
    margin-bottom: 1.75rem;
}

.login-showcase-points {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}

.login-point {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(8px);
    font-size: 0.9rem;
}

.login-point i {
    color: var(--brand-bright-red);
}

.login-card {
    width: 100%;
    max-width: none;
    background: #ffffff;
    padding: 3.2rem 3rem;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 3;
    animation: loginFormIn 0.7s ease 0.18s both;
}

.login-card::before {
    content: "";
    position: absolute;
    left: 2rem;
    right: 2rem;
    top: 1.5rem;
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--brand-deep-red), var(--brand-bright-red), #15151b);
}

@keyframes loginShellIn {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes loginPanelIn {
    from {
        opacity: 0;
        transform: translateX(-24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes loginFormIn {
    from {
        opacity: 0;
        transform: translateX(24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-shell,
    .login-showcase,
    .login-card {
        animation: none;
    }
}

.auth-logo {
    display: block;
    width: 118px;
    max-width: 100%;
    height: auto;
    margin: 0 auto 0.75rem;
}

.login-card-title {
    color: var(--brand-bright-red);
    font-size: 2.2rem;
    font-weight: 700;
}

.login-card .form-label {
    color: var(--brand-deep-red);
    font-size: 0.82rem;
    font-weight: 700;
}

.login-input-group {
    position: relative;
}

.login-input-group i {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--brand-deep-red);
    z-index: 2;
}

.login-input {
    min-height: 46px;
    border-radius: 8px;
    border-color: #cfd7e3;
    padding-left: 2.75rem;
    font-size: 0.95rem;
}

.login-input:focus {
    border-color: rgba(179, 0, 27, 0.35);
    box-shadow: 0 0 0 0.25rem rgba(179, 0, 27, 0.12);
}

.login-submit {
    min-height: 46px;
    border-radius: 8px;
    font-weight: 600;
    box-shadow: 0 12px 24px rgba(179, 0, 27, 0.22);
}

.login-demo {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-soft);
    font-size: 0.92rem;
    text-align: center;
}

.section-title {
    font-size: 1.1rem;
    font-weight: 700;
}

.modern-table tbody tr td {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.table thead th {
    color: var(--text-soft);
    font-weight: 600;
    font-size: 0.92rem;
}

.badge-soft {
    background: var(--brand-light-red);
    color: var(--brand-deep-red);
}

.badge-status-active {
    background: #dcfce7;
    color: #166534;
}

.theme-dark .badge-status-active {
    background: rgba(34, 197, 94, 0.18);
    color: #bbf7d0;
    border: 1px solid rgba(34, 197, 94, 0.28);
}

.badge-status-inactive {
    background: #e5e7eb;
    color: #374151;
}

.badge-membership-expiring {
    background: #fef3c7;
    color: #854d0e;
}

.badge-membership-expired {
    background: #fee2e2;
    color: #991b1b;
}

.badge-invoice-emailed {
    background: #dcfce7;
    color: #166534;
}

.badge-invoice-pending {
    background: #fef3c7;
    color: #854d0e;
}

.invoice-status-paid {
    background: #dcfce7;
    color: #166534;
}

.invoice-status-partial {
    background: #fef3c7;
    color: #854d0e;
}

.invoice-status-unpaid {
    background: #fee2e2;
    color: #991b1b;
}

.belt-badge {
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 600;
    max-width: 260px;
    white-space: normal;
    text-align: left;
}

.belt-badge-white {
    background: #ffffff;
    border-color: #d7d7dc;
    color: #303038;
}

.belt-badge-yellow {
    background: #fef3c7;
    color: #854d0e;
}

.belt-badge-green {
    background: #dcfce7;
    color: #166534;
}

.belt-badge-blue {
    background: #dbeafe;
    color: #1e40af;
}

.belt-badge-red {
    background: #fee2e2;
    color: #991b1b;
}

.belt-badge-black {
    background: #15151b;
    color: #ffffff;
}

.belt-badge-orange {
    background: #ffedd5;
    color: #9a3412;
}

.belt-badge-default {
    background: #f1f5f9;
    color: #475569;
}

.student-table-photo,
.user-table-photo,
.student-photo-thumb,
.student-profile-photo {
    border-radius: 999px;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 8px 18px rgba(11, 11, 15, 0.12);
    background: #f5f5f5;
}

.student-table-photo,
.user-table-photo {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
}

.student-table-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.students-table {
    table-layout: fixed;
}

.students-table .students-col-number {
    width: 8%;
}

.students-table .students-col-name {
    width: 12%;
}

.students-table .students-col-program {
    width: 12%;
}

.students-table .students-col-belt {
    width: 11%;
}

.students-table .students-col-contact {
    width: 16%;
}

.students-table .students-col-membership {
    width: 9%;
}

.students-table .students-col-status {
    width: 6%;
}

.students-table .students-col-joined {
    width: 8%;
}

.students-table .students-col-action {
    width: 18%;
}

.students-table td,
.students-table th {
    overflow-wrap: anywhere;
}

.students-table td[data-label="Name"] span,
.students-table td[data-label="Contact"] div,
.students-table td[data-label="Contact"] small {
    overflow-wrap: anywhere;
}

.students-table .membership-end-date {
    white-space: nowrap;
}

.students-table td[data-label="Joined"] {
    white-space: nowrap;
}

.students-table .student-table-actions {
    flex-wrap: nowrap;
    gap: 0.35rem;
}

.students-table .student-table-actions .btn {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    white-space: nowrap;
}

.invoice-email-status {
    min-width: 140px;
}

.invoice-table-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.classes-status-col,
.classes-status-cell {
    width: 120px;
    text-align: center;
    vertical-align: middle;
}

.classes-action-col,
.classes-action-cell {
    width: 190px;
    vertical-align: middle;
}

.classes-table-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.student-photo-thumb {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
}

.student-profile-photo {
    width: 86px;
    height: 86px;
    flex: 0 0 86px;
}

.qr-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    padding: 1.25rem;
    background: linear-gradient(135deg, #ffffff, #fff5f6);
}

.student-qr-code {
    width: 150px;
    height: 150px;
    border-radius: 12px;
    border: 1px solid var(--border-soft);
    background: #ffffff;
    padding: 0.5rem;
}

.quick-list li {
    padding: 0.55rem 0;
    border-bottom: 1px solid #edf2f7;
}

.quick-list li:last-child {
    border-bottom: 0;
}

.insight-card {
    background:
        radial-gradient(circle at top right, rgba(255, 51, 71, 0.14), transparent 30%),
        var(--card-bg);
}

.quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.quick-action-btn {
    text-decoration: none;
    color: var(--text-main);
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 120px;
    background: linear-gradient(180deg, var(--card-bg), rgba(255, 51, 71, 0.05));
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.quick-action-btn i {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.12), rgba(255, 51, 71, 0.16));
    color: var(--brand-deep-red);
    font-size: 1.15rem;
}

.quick-action-btn:hover {
    transform: translateY(-2px);
    border-color: #f0bcc4;
    box-shadow: 0 18px 34px rgba(11, 11, 15, 0.08);
}

.content-card:hover {
    border-color: rgba(179, 0, 27, 0.16);
}

.modern-table tbody tr {
    transition: background-color 0.18s ease, transform 0.18s ease;
}

.modern-table tbody tr:hover {
    background: rgba(179, 0, 27, 0.035);
}

.theme-dark .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--text-main);
    --bs-table-border-color: var(--border-soft);
    --bs-table-hover-color: var(--text-main);
}

.theme-dark .dropdown-menu,
.theme-dark .form-control,
.theme-dark .form-select {
    background-color: var(--card-bg);
    border-color: var(--border-soft);
    color: var(--text-main);
}

.theme-dark .content-card,
.theme-dark .dashboard-card,
.theme-dark .section-block,
.theme-dark .membership-panel,
.theme-dark .qr-card,
.theme-dark .bg-light,
.theme-dark .bg-light-subtle,
.theme-dark .bg-white {
    background: var(--card-bg) !important;
    color: var(--text-main);
}

.theme-dark .form-label,
.theme-dark label,
.theme-dark .section-title,
.theme-dark .section-label,
.theme-dark .fw-semibold,
.theme-dark .fw-bold,
.theme-dark .h1,
.theme-dark .h2,
.theme-dark .h3,
.theme-dark .h4,
.theme-dark .h5,
.theme-dark .h6,
.theme-dark h1,
.theme-dark h2,
.theme-dark h3,
.theme-dark h4,
.theme-dark h5,
.theme-dark h6 {
    color: var(--text-main);
}

.theme-dark .form-text,
.theme-dark small,
.theme-dark .small,
.theme-dark .helper-text,
.theme-dark .section-label,
.theme-dark .table thead th,
.theme-dark .text-muted {
    color: var(--text-soft) !important;
}

.theme-dark .table,
.theme-dark .table th,
.theme-dark .table td,
.theme-dark .table-bordered,
.theme-dark .table-bordered th,
.theme-dark .table-bordered td {
    color: var(--text-main);
    border-color: var(--border-soft);
}

.theme-dark .table-hover > tbody > tr:hover > * ,
.theme-dark .modern-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.03) !important;
    color: var(--text-main);
}

.theme-dark .form-check,
.theme-dark .form-check-label,
.theme-dark [data-recipient-list],
.theme-dark [data-recipient-list] span,
.theme-dark [data-recipient-list] label {
    color: var(--text-main);
}

.theme-dark [data-recipient-list] {
    background: #1a1f29 !important;
    border-color: var(--border-soft) !important;
}

.theme-dark [data-recipient-list] .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.45rem 0;
    margin-bottom: 0;
    min-height: 32px;
}

.theme-dark .form-check-input {
    background-color: #11151d;
    border-color: #4b5563;
    margin-top: 0.2rem;
    margin-left: 0;
    flex: 0 0 auto;
}

.theme-dark [data-recipient-list] .form-check-label {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem;
    line-height: 1.45;
    margin: 0;
}

.theme-dark [data-recipient-list] .form-check-label small {
    display: inline;
}

.theme-dark .form-check-input:checked {
    background-color: var(--brand-bright-red);
    border-color: var(--brand-bright-red);
}

.theme-dark .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(255, 51, 71, 0.2);
}

.theme-dark .btn-outline-secondary {
    color: #dbe4f0;
    border-color: #4b5563;
    background: transparent;
}

.theme-dark .btn-outline-secondary:hover,
.theme-dark .btn-outline-secondary:focus,
.theme-dark .btn-outline-secondary:active {
    color: #ffffff;
    border-color: #6b7280;
    background: rgba(255, 255, 255, 0.08);
}

.theme-dark .btn-outline-secondary i,
.theme-dark .btn-outline-primary i,
.theme-dark .btn-primary i {
    color: inherit;
}

.theme-dark .btn-check + .btn-outline-secondary,
.theme-dark .btn-check + .btn-outline-primary {
    color: var(--text-main);
    border-color: #4b5563;
    background: rgba(255, 255, 255, 0.02);
}

.theme-dark .btn-check:checked + .btn-outline-secondary,
.theme-dark .btn-check:checked + .btn-outline-primary,
.theme-dark .btn-check:active + .btn-outline-secondary,
.theme-dark .btn-check:active + .btn-outline-primary {
    color: #ffffff;
    border-color: var(--brand-bright-red);
    background: rgba(255, 51, 71, 0.18);
    box-shadow: inset 0 0 0 1px rgba(255, 51, 71, 0.18);
}

.theme-dark .form-control::placeholder,
.theme-dark textarea::placeholder,
.theme-dark input::placeholder {
    color: #8893a5;
}

.theme-dark input[type="date"]::-webkit-calendar-picker-indicator,
.theme-dark input[type="time"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.15);
}

.theme-dark input[type="file"] {
    color: var(--text-main);
}

.theme-dark input[type="file"]::file-selector-button {
    background: #232936;
    color: var(--text-main);
    border: 1px solid #3a4354;
    padding: 0.45rem 0.85rem;
    margin-right: 0.75rem;
}

.theme-dark .alert {
    border-color: var(--border-soft);
}

.theme-dark .alert-success {
    background: rgba(22, 101, 52, 0.22);
    border-color: rgba(74, 222, 128, 0.32);
    color: #dcfce7;
}

.theme-dark .alert-danger {
    background: rgba(127, 29, 29, 0.28);
    border-color: rgba(248, 113, 113, 0.34);
    color: #fee2e2;
}

.theme-dark .alert-warning {
    background: rgba(113, 63, 18, 0.28);
    border-color: rgba(250, 204, 21, 0.36);
    color: #fef3c7;
}

.theme-dark .alert-info {
    background: rgba(30, 64, 175, 0.24);
    border-color: rgba(96, 165, 250, 0.34);
    color: #dbeafe;
}

.theme-dark .login-card,
.theme-dark .flash-popup-card,
.theme-dark .form-loading-card {
    background: var(--card-bg);
    color: var(--text-main);
}

.theme-dark .login-card .form-label,
.theme-dark .login-input-group i {
    color: #fca5a5;
}

.theme-dark .dropdown-item {
    color: var(--text-main);
}

.theme-dark .dropdown-item:hover {
    background: rgba(255, 51, 71, 0.12);
}

.theme-dark .alert .btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
    opacity: 0.8;
}

.theme-dark .alert .btn-close:hover,
.theme-dark .alert .btn-close:focus {
    opacity: 1;
}

.btn,
.sidebar-link,
.quick-action-btn,
.notification-button,
.user-chip-button {
    position: relative;
    overflow: hidden;
}

.btn::after,
.quick-action-btn::after,
.sidebar-link::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: rgba(255, 255, 255, 0.28);
    opacity: 0;
    transform: scale(0);
    transition: transform 0.35s ease, opacity 0.35s ease;
    pointer-events: none;
}

.btn:active::after,
.quick-action-btn:active::after,
.sidebar-link:active::after {
    opacity: 1;
    transform: scale(1.8);
}

.invoice-list li {
    padding: 0.8rem 0;
}

.invoice-dashboard {
    display: grid;
    gap: 1.5rem;
}

.invoice-summary-card {
    min-height: 100%;
}

.invoice-summary-money {
    font-size: clamp(1.35rem, 2vw, 2rem);
}

.invoice-filter-form {
    background: linear-gradient(180deg, rgba(255, 244, 245, 0.92), rgba(255, 255, 255, 0.98));
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 20px;
    padding: 1.1rem;
}

.invoice-dashboard-table thead th,
.mobile-card-table thead th {
    white-space: nowrap;
}

.invoice-progress-copy {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-bottom: 0.45rem;
}

.invoice-progress-bar {
    width: 100%;
    height: 0.5rem;
    border-radius: 999px;
    background: #f1f5f9;
    overflow: hidden;
    margin-bottom: 0.4rem;
}

.invoice-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #b3001b, #ff5067);
}

.invoice-due-overdue {
    background: #fee2e2;
    color: #991b1b;
}

.invoice-due-today {
    background: #fef3c7;
    color: #854d0e;
}

.invoice-due-upcoming {
    background: #e0f2fe;
    color: #075985;
}

.invoice-due-settled {
    background: #e5e7eb;
    color: #374151;
}

.invoice-empty-state {
    max-width: 420px;
    margin: 0 auto;
}

.invoice-empty-icon {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.12), rgba(255, 80, 103, 0.18));
    color: var(--brand-deep-red);
    font-size: 1.5rem;
}

.theme-dark .invoice-filter-form {
    background: linear-gradient(180deg, rgba(23, 26, 34, 0.96), rgba(23, 26, 34, 0.92));
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .invoice-progress-bar {
    background: rgba(255, 255, 255, 0.08);
}

.invoice-page-actions,
.invoice-filter-actions,
.invoice-submit-actions {
    flex-wrap: wrap;
}

.invoice-form-table-wrap {
    -webkit-overflow-scrolling: touch;
}

.invoice-form-table {
    min-width: 1120px;
}

.invoice-view-table td[data-label],
.invoice-dashboard-table td[data-label],
.invoice-form-table td[data-label],
.mobile-card-table td[data-label] {
    position: relative;
}

@media (max-width: 767.98px) {
    .invoice-dashboard {
        gap: 1rem;
    }

    .invoice-page-head {
        align-items: flex-start !important;
    }

    .invoice-page-actions,
    .invoice-filter-actions,
    .invoice-submit-actions {
        width: 100%;
    }

    .invoice-page-actions > .btn,
    .invoice-page-actions > .dropdown,
    .invoice-filter-actions > .btn,
    .invoice-submit-actions > .btn {
        flex: 1 1 100%;
    }

    .invoice-page-actions > .dropdown > .btn {
        width: 100%;
    }

    .invoice-filter-form {
        padding: 0.95rem;
        border-radius: 16px;
    }

    .invoice-summary-grid .col-md-6,
    .invoice-summary-grid .col-xl {
        flex: 0 0 100%;
        width: 100%;
    }

    .invoice-form-table-wrap {
        overflow: visible;
    }

    .invoice-form-table {
        min-width: 0 !important;
        border-collapse: separate;
        border-spacing: 0;
    }

    .invoice-form-table thead {
        display: none;
    }

    .invoice-form-table,
    .invoice-form-table tbody,
    .invoice-form-table tfoot,
    .invoice-form-table tr,
    .invoice-form-table td,
    .invoice-form-table th {
        display: block;
        width: 100%;
    }

    .invoice-form-table tbody {
        counter-reset: invoice-item;
    }

    .invoice-form-table tbody tr {
        counter-increment: invoice-item;
        position: relative;
        margin-bottom: 1rem;
        border: 1px solid var(--border-soft);
        border-radius: 18px;
        padding: 2.75rem 1rem 1rem;
        background: var(--card-bg);
        box-shadow: var(--shadow-soft);
    }

    .invoice-form-table tbody tr::before {
        content: "Item " counter(invoice-item);
        position: absolute;
        top: 1rem;
        left: 1rem;
        font-size: 0.76rem;
        font-weight: 800;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--brand-deep-red);
    }

    .invoice-form-table tbody td {
        border: 0;
        padding: 0.45rem 0;
    }

    .invoice-form-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 0.28rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--text-soft);
    }

    .invoice-form-table tbody td[data-label="Action"]::before {
        display: none;
    }

    .invoice-form-table tbody .form-control,
    .invoice-form-table tbody .form-select {
        width: 100%;
    }

    .invoice-form-table [data-remove-invoice-row] {
        width: 100%;
        margin-top: 0.25rem;
    }

    .invoice-form-table [data-remove-invoice-row]::after {
        content: " Remove item";
    }

    .invoice-form-table tfoot {
        margin-top: 0.25rem;
        border: 1px solid var(--border-soft);
        border-radius: 18px;
        padding: 0.25rem 1rem;
        background: color-mix(in srgb, var(--surface-glass) 94%, transparent);
        box-shadow: var(--shadow-soft);
    }

    .invoice-form-table tfoot tr {
        padding: 0.75rem 0;
    }

    .invoice-form-table tfoot tr + tr {
        border-top: 1px solid var(--border-soft);
    }

    .invoice-form-table tfoot th {
        border: 0;
        padding: 0;
        text-align: left !important;
    }

    .invoice-form-table tfoot th[colspan] {
        margin-bottom: 0.35rem;
        color: var(--text-soft);
        font-size: 0.76rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .invoice-dashboard-table,
    .mobile-card-table,
    .invoice-view-table {
        min-width: 0 !important;
    }

    .invoice-dashboard-table thead,
    .mobile-card-table thead,
    .invoice-view-table thead {
        display: none;
    }

    .invoice-dashboard-table,
    .invoice-dashboard-table tbody,
    .invoice-dashboard-table tr,
    .invoice-dashboard-table td,
    .mobile-card-table,
    .mobile-card-table tbody,
    .mobile-card-table tr,
    .mobile-card-table td,
    .invoice-view-table,
    .invoice-view-table tbody,
    .invoice-view-table tr,
    .invoice-view-table td {
        display: block;
        width: 100%;
    }

    .invoice-dashboard-table tbody tr,
    .mobile-card-table tbody tr,
    .invoice-view-table tbody tr {
        margin-bottom: 0.9rem;
        border: 1px solid var(--border-soft);
        border-radius: 18px;
        padding: 0.3rem 0;
        background: var(--card-bg);
        box-shadow: var(--shadow-soft);
    }

    .invoice-dashboard-table tbody tr:last-child,
    .mobile-card-table tbody tr:last-child,
    .invoice-view-table tbody tr:last-child {
        margin-bottom: 0;
    }

    .invoice-dashboard-table tbody td,
    .mobile-card-table tbody td,
    .invoice-view-table tbody td {
        border: 0;
        padding: 0.55rem 1rem;
    }

    .invoice-dashboard-table tbody td[data-label]::before,
    .mobile-card-table tbody td[data-label]::before,
    .invoice-view-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 0.24rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--text-soft);
    }

    .invoice-table-actions,
    .student-table-actions,
    .classes-table-actions,
    .mobile-card-table td[data-label="Action"].d-flex,
    .mobile-card-table td[data-label="Actions"].d-flex,
    .mobile-card-table td[data-label="Action"] > .student-billing-actions,
    .mobile-card-table td[data-label="Actions"] > .student-billing-actions,
    .mobile-card-table td[data-label="Action"] > .d-flex,
    .mobile-card-table td[data-label="Actions"] > .d-flex {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
    }

    .mobile-card-table td[data-label="Action"].d-flex::before,
    .mobile-card-table td[data-label="Actions"].d-flex::before {
        width: 100%;
    }

    .invoice-table-actions .btn,
    .invoice-table-actions .dropdown,
    .invoice-table-actions .dropdown .btn,
    .student-table-actions .btn,
    .classes-table-actions .btn,
    .mobile-card-table td[data-label="Action"] > .btn,
    .mobile-card-table td[data-label="Actions"] > .btn,
    .mobile-card-table td[data-label="Action"].d-flex .btn,
    .mobile-card-table td[data-label="Actions"].d-flex .btn,
    .mobile-card-table td[data-label="Action"] > .student-billing-actions .btn,
    .mobile-card-table td[data-label="Actions"] > .student-billing-actions .btn,
    .mobile-card-table td[data-label="Action"] > .d-flex .btn,
    .mobile-card-table td[data-label="Actions"] > .d-flex .btn {
        width: 100%;
    }

    .invoice-progress-copy {
        margin-bottom: 0.35rem;
    }

    .invoice-email-status {
        min-width: 0;
    }
}

.dashboard-stack-row {
    align-items: stretch;
}

.dashboard-stack-col {
    display: flex;
    flex-direction: column;
}

.dashboard-stack-col > .content-card:last-child,
.dashboard-fill-card {
    flex: 1 1 auto;
}

.flash-popup-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1095;
    background: rgba(15, 23, 42, 0.28);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    animation: flashPopupFadeIn 0.2s ease;
}

.flash-popup-backdrop.is-closing {
    opacity: 0;
    transition: opacity 0.18s ease;
}

.flash-popup-card {
    position: relative;
    width: min(320px, 92vw);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(11, 11, 15, 0.24);
    animation: flashPopupCardIn 0.24s ease;
}

.flash-popup-band {
    min-height: 88px;
    padding: 1.1rem 1rem 1.7rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background:
        radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.22) 0 2px, transparent 3px),
        radial-gradient(circle at 76% 26%, rgba(255, 255, 255, 0.18) 0 2px, transparent 3px),
        linear-gradient(135deg, var(--flash-popup-accent), var(--flash-popup-accent-dark));
}

.flash-popup-icon {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #ffffff;
    color: var(--flash-popup-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    box-shadow: 0 12px 20px rgba(11, 11, 15, 0.16);
}

.flash-popup-body {
    padding: 1rem 1.15rem 1.15rem;
    text-align: center;
}

.flash-popup-title {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.4rem;
    color: var(--text-main);
}

.flash-popup-message {
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--text-soft);
    min-height: 2.4em;
}

.flash-popup-button {
    margin-top: 0.9rem;
    border: 0;
    border-radius: 999px;
    padding: 0.6rem 1.3rem;
    font-size: 0.9rem;
    font-weight: 600;
    background: var(--flash-popup-soft);
    color: var(--flash-popup-accent-dark);
}

.flash-popup-button:hover {
    filter: brightness(0.98);
}

.flash-popup-close {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.flash-popup-success {
    --flash-popup-accent: #34d399;
    --flash-popup-accent-dark: #10b981;
    --flash-popup-soft: #dcfce7;
}

.flash-popup-danger {
    --flash-popup-accent: #fb7185;
    --flash-popup-accent-dark: #f43f5e;
    --flash-popup-soft: #ffe4e6;
}

.flash-popup-warning {
    --flash-popup-accent: #facc15;
    --flash-popup-accent-dark: #eab308;
    --flash-popup-soft: #fef9c3;
}

.flash-popup-info {
    --flash-popup-accent: #60a5fa;
    --flash-popup-accent-dark: #3b82f6;
    --flash-popup-soft: #dbeafe;
}

.confirm-popup-card .flash-popup-message {
    min-height: auto;
}

.confirm-popup-actions {
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

.confirm-popup-actions .flash-popup-button {
    margin-top: 0;
    min-width: 108px;
}

.confirm-popup-button-secondary {
    background: #f3f4f6;
    color: #374151;
}

.confirm-popup-button-primary {
    background: var(--flash-popup-accent-dark);
    color: #ffffff;
}

@keyframes flashPopupFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes flashPopupCardIn {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.form-loading-overlay {
    position: fixed;
    inset: 0;
    background: rgba(11, 11, 15, 0.48);
    z-index: 1070;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.form-loading-card {
    min-width: min(360px, 92vw);
    background: #ffffff;
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    box-shadow: 0 24px 48px rgba(11, 11, 15, 0.18);
    padding: 1.5rem;
    text-align: center;
}

.portal-email-preview-popup {
    border-radius: 0.85rem;
}

.portal-email-preview {
    text-align: left;
    color: #111827;
}

.portal-email-preview-meta {
    display: grid;
    gap: 0.4rem;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #f9fafb;
    color: #374151;
    font-size: 0.92rem;
}

.portal-email-preview-body {
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #ffffff;
    line-height: 1.6;
}

.portal-email-preview-body p {
    margin: 0 0 0.85rem;
}

.portal-email-preview-body p:last-child {
    margin-bottom: 0;
}

.portal-email-preview-box {
    display: grid;
    gap: 0.45rem;
    margin: 0.95rem 0;
    padding: 0.9rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.65rem;
    background: #fafafa;
    font-size: 0.92rem;
}

.portal-email-preview-warning {
    margin: 0.95rem 0;
    padding: 0.85rem 0.9rem;
    border-radius: 0.65rem;
    background: #fef3c7;
    color: #92400e;
    font-size: 0.92rem;
}

.attendance-student-picker {
    display: grid;
    gap: 0.65rem;
    max-height: 420px;
    overflow: auto;
    padding-right: 0.25rem;
}

.attendance-student-option {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.attendance-student-option:hover,
.attendance-student-option:has(input:checked) {
    border-color: #b3001b;
    background: #fff7f8;
    box-shadow: 0 10px 24px rgba(179, 0, 27, 0.08);
}

.attendance-student-option-content {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.attendance-student-option-content small {
    overflow-wrap: anywhere;
}

.attendance-selected-summary {
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    padding: 0.9rem;
    background: #f9fafb;
}

.landing-page {
    --landing-scroll-offset: 6.5rem;
    font-family: "Barlow", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    min-height: 100vh;
    color: #15151b;
    background:
        radial-gradient(circle at top left, rgba(255, 76, 110, 0.16), transparent 24%),
        radial-gradient(circle at 85% 12%, rgba(255, 215, 160, 0.22), transparent 20%),
        linear-gradient(145deg, #fff8f2 0%, #fffdf9 46%, #f4f7fb 100%);
    overflow-x: hidden;
    position: relative;
    scroll-padding-top: var(--landing-scroll-offset);
}

.landing-page-subtle {
    background:
        radial-gradient(circle at top left, rgba(255, 76, 110, 0.12), transparent 24%),
        linear-gradient(145deg, #fff7f3 0%, #f8fafc 100%);
    color: #15151b;
}

.landing-page-subtle .registration-title-block h1,
.landing-page-subtle .registration-title-block p,
.landing-page-subtle .registration-back,
.landing-page-subtle .landing-feature-list div {
    color: #15151b;
}

.theme-dark .landing-page {
    color: #f5f7fb;
    background:
        radial-gradient(circle at top left, rgba(255, 76, 110, 0.24), transparent 24%),
        radial-gradient(circle at 85% 12%, rgba(255, 215, 160, 0.16), transparent 20%),
        linear-gradient(145deg, #090b11 0%, #10131b 46%, #161118 100%);
}

.landing-grid {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(17, 24, 39, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(17, 24, 39, 0.05) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.9), transparent 88%);
}

.theme-dark .landing-grid {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
}

.landing-glow {
    position: fixed;
    border-radius: 999px;
    filter: blur(12px);
    pointer-events: none;
    opacity: 0.68;
    animation: landingFloat 14s ease-in-out infinite;
}

.landing-glow-one {
    width: 260px;
    height: 260px;
    top: 88px;
    right: 8%;
    background: rgba(255, 76, 110, 0.22);
}

.landing-glow-two {
    width: 220px;
    height: 220px;
    bottom: 120px;
    left: 2%;
    background: rgba(255, 183, 77, 0.14);
    animation-delay: -6s;
}

.landing-container {
    width: min(1180px, calc(100vw - 2rem));
}

.landing-nav {
    padding: 0.9rem 0;
    position: sticky;
    top: 0;
    z-index: 1020;
    backdrop-filter: blur(18px);
    background: rgba(255, 252, 247, 0.86);
    border-bottom: 1px solid rgba(179, 0, 27, 0.08);
    box-shadow: 0 18px 32px rgba(17, 24, 39, 0.04);
}

.landing-nav .landing-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.landing-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 800;
    color: #15151b;
    text-decoration: none;
}

.landing-brand img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.24));
    flex-shrink: 0;
}

.landing-brand-copy {
    min-width: 0;
}

.landing-brand span {
    display: block;
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 0.94rem;
    letter-spacing: 0.04em;
    line-height: 1.15;
}

.landing-nav .nav-link {
    color: rgba(21, 21, 27, 0.72);
    font-weight: 600;
    position: relative;
    transition: color 0.2s ease;
}

.landing-nav .nav-link::after {
    content: "";
    position: absolute;
    left: 0.5rem;
    right: 0.5rem;
    bottom: 0.25rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ff4c6e, #ffb24d);
    opacity: 0;
    transform: scaleX(0.7);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.landing-nav .nav-link:hover {
    color: #15151b;
}

.landing-nav .nav-link:hover::after,
.landing-nav .nav-link:focus-visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.landing-nav-actions {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.landing-header-controls {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-left: auto;
}

.landing-nav-btn {
    border-radius: 999px;
    background: linear-gradient(135deg, #15151b, #2a3140);
    color: #ffffff;
    border: 0;
    padding: 0.62rem 1rem;
    font-weight: 700;
}

.landing-theme-toggle {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(179, 0, 27, 0.12);
    background: rgba(255, 255, 255, 0.72);
    color: #b3001b;
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.08);
}

.landing-toggler {
    color: #15151b;
    border: 1px solid rgba(179, 0, 27, 0.12);
    border-radius: 14px;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.82);
}

.landing-nav .navbar-collapse {
    flex-basis: 100%;
}

.landing-page main[id],
.landing-section {
    scroll-margin-top: var(--landing-scroll-offset);
}

@media (min-width: 992px) {
    .landing-nav .landing-container {
        flex-wrap: nowrap;
    }

    .landing-nav .navbar-collapse {
        flex-basis: auto;
        flex-grow: 1;
        justify-content: flex-end;
    }
}

.landing-hero {
    padding: 3.8rem 0 2.5rem;
    position: relative;
    z-index: 1;
}

.landing-hero-shell {
    display: grid;
    gap: 1.7rem;
    align-items: start;
}

.landing-hero-copy > * {
    animation: landingFadeUp 0.72s ease both;
}

.landing-hero-copy > *:nth-child(2) {
    animation-delay: 0.08s;
}

.landing-hero-copy > *:nth-child(3) {
    animation-delay: 0.16s;
}

.landing-hero-copy > *:nth-child(4) {
    animation-delay: 0.24s;
}

.landing-hero-copy > *:nth-child(5) {
    animation-delay: 0.32s;
}

.landing-hero-copy > *:nth-child(6) {
    animation-delay: 0.4s;
}

.landing-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(179, 0, 27, 0.08);
    color: #b3001b;
    padding: 0.58rem 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.77rem;
    margin-bottom: 1.2rem;
    border: 1px solid rgba(179, 0, 27, 0.08);
}

.landing-hero-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
    gap: 1.4rem;
    align-items: start;
}

.landing-hero-side-cta {
    display: grid;
    gap: 0.85rem;
    justify-items: stretch;
    align-self: center;
    margin-top: 4.5rem;
}

.landing-hero h1,
.registration-title-block h1 {
    font-family: "Sora", "Barlow", sans-serif;
    font-size: clamp(2.95rem, 5vw, 4.95rem);
    line-height: 0.98;
    margin-bottom: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.05em;
    color: #15151b;
    max-width: 10.8ch;
}

.landing-lead,
.registration-title-block p {
    font-size: 1.02rem;
    line-height: 1.7;
    color: rgba(21, 21, 27, 0.72);
    max-width: 38rem;
}

.landing-cta-group {
    display: flex;
    gap: 0.85rem;
    width: 100%;
    flex-direction: column;
}

.landing-cta-secondary {
    display: contents;
}

.landing-btn-primary,
.landing-btn-secondary,
.landing-btn-ghost,
.landing-btn-library {
    --landing-btn-bg: rgba(255, 255, 255, 0.9);
    --landing-btn-border: rgba(17, 24, 39, 0.1);
    --landing-btn-text: #15151b;
    --landing-btn-shadow: 0 12px 24px rgba(17, 24, 39, 0.06);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    border-radius: 999px;
    width: 100%;
    min-width: 0;
    padding: 0.92rem 1.2rem;
    font-weight: 700;
    border: 1px solid var(--landing-btn-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0)) padding-box,
        var(--landing-btn-bg);
    box-shadow: var(--landing-btn-shadow);
    text-align: center;
    white-space: normal;
    color: var(--landing-btn-text);
    text-decoration: none;
    backdrop-filter: blur(14px);
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease,
        filter 0.22s ease;
}

.landing-btn-primary i,
.landing-btn-secondary i,
.landing-btn-ghost i,
.landing-btn-library i {
    width: 1.2rem;
    min-width: 1.2rem;
    text-align: center;
    opacity: 0.95;
}

.landing-btn-primary {
    --landing-btn-bg: linear-gradient(135deg, #ff4f6d 0%, #ff6b4a 55%, #ff8a47 100%);
    --landing-btn-border: rgba(255, 107, 74, 0.32);
    --landing-btn-text: #ffffff;
    --landing-btn-shadow: 0 20px 38px rgba(255, 98, 86, 0.28);
    letter-spacing: 0.01em;
}

.landing-btn-primary:hover,
.landing-btn-secondary:hover,
.landing-btn-ghost:hover,
.landing-btn-library:hover,
.landing-btn-primary-solid:hover,
.landing-btn-secondary-solid:hover,
.landing-btn-contact:hover,
.landing-card-link:hover,
.landing-nav-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lift);
    filter: saturate(1.04);
}

.landing-btn-secondary {
    --landing-btn-bg: linear-gradient(135deg, #ffffff 0%, #f4f2f1 100%);
    --landing-btn-border: rgba(29, 34, 47, 0.08);
    --landing-btn-text: #1c1e27;
    --landing-btn-shadow: 0 14px 28px rgba(31, 41, 55, 0.08);
}

.landing-btn-secondary:hover,
.landing-btn-ghost:hover,
.landing-card-link:hover,
.landing-nav-btn:hover {
    color: inherit;
}

.landing-btn-ghost {
    --landing-btn-bg: linear-gradient(135deg, rgba(255, 249, 247, 0.96), rgba(255, 241, 237, 0.88));
    --landing-btn-border: rgba(151, 37, 57, 0.22);
    --landing-btn-text: #8d1029;
    --landing-btn-shadow: 0 14px 30px rgba(127, 0, 19, 0.08);
}

.landing-sub-cta {
    display: grid;
    gap: 0.75rem;
    width: 100%;
}

.landing-sub-cta .btn {
    width: 100%;
}

.landing-btn-library {
    --landing-btn-bg: linear-gradient(135deg, #ffffff 0%, #fff5f2 100%);
    --landing-btn-border: rgba(179, 0, 27, 0.14);
    --landing-btn-text: #8f162f;
    --landing-btn-shadow: 0 14px 28px rgba(179, 0, 27, 0.08);
}

.landing-btn-inquiry-hero {
    --landing-btn-bg: linear-gradient(135deg, #fffefb 0%, #fff2ec 100%);
    --landing-btn-border: rgba(179, 0, 27, 0.18);
    --landing-btn-text: #96172e;
}

.landing-hero-stage {
    position: relative;
    align-self: stretch;
    display: grid;
    gap: 1rem;
}

.landing-stage-panel,
.registration-plan-panel {
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    padding: 1.6rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 246, 0.9)),
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 246, 239, 0.96));
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 28px 54px rgba(17, 24, 39, 0.1);
}

.landing-stage-panel::before,
.registration-plan-panel::before {
    content: "";
    position: absolute;
    inset: auto -14% -24% auto;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 91, 122, 0.34), transparent 62%);
}

.landing-photo-collage-box {
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    padding: 1rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 245, 241, 0.9)),
        radial-gradient(circle at 18% 18%, rgba(255, 82, 116, 0.16), transparent 34%),
        radial-gradient(circle at 88% 84%, rgba(255, 146, 70, 0.14), transparent 34%);
    border: 1px solid rgba(179, 0, 27, 0.1);
    box-shadow: 0 24px 48px rgba(17, 24, 39, 0.1);
}

.landing-photo-collage-box::before {
    content: "";
    position: absolute;
    inset: 0.6rem;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.68);
    pointer-events: none;
}

.landing-photo-highlight {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(110px, 0.85fr);
    grid-template-rows: repeat(3, minmax(76px, 1fr));
    gap: 0.7rem;
    height: clamp(260px, 28vw, 340px);
}

.landing-photo-card {
    position: relative;
    overflow: hidden;
    margin: 0;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    box-shadow: 0 16px 30px rgba(17, 24, 39, 0.14);
}

.landing-photo-card button {
    width: 100%;
    height: 100%;
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.landing-photo-card button:focus-visible {
    outline: 3px solid rgba(179, 0, 27, 0.36);
    outline-offset: -5px;
}

.landing-photo-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.16), transparent 42%),
        linear-gradient(180deg, transparent 45%, rgba(13, 17, 28, 0.16) 100%);
    pointer-events: none;
}

.landing-photo-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.landing-photo-card-main {
    grid-row: 1 / span 3;
}

.landing-photo-modal .modal-content {
    position: relative;
    z-index: 1;
    overflow: hidden;
    border: 0;
    border-radius: 24px;
    background: #fffaf7;
    box-shadow: 0 30px 70px rgba(17, 24, 39, 0.22);
}

.landing-photo-modal.is-open {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow-y: auto;
}

.landing-photo-modal.is-open::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(10, 13, 20, 0.72);
}

.landing-photo-modal .modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1120px, 100%);
    margin: auto;
}

.landing-photo-modal .modal-header {
    padding: 1rem 1.2rem;
    border-bottom: 1px solid rgba(17, 24, 39, 0.08);
}

.landing-photo-modal .modal-title {
    color: #15151b;
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 1rem;
    font-weight: 800;
}

.landing-photo-modal .modal-body {
    padding: 0;
    background: #0f1117;
}

.landing-photo-modal img {
    width: 100%;
    max-height: min(78vh, 760px);
    display: block;
    object-fit: contain;
}

body.landing-photo-modal-open {
    overflow: hidden;
}

.landing-stage-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.landing-stage-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.48rem 0.78rem;
    border-radius: 999px;
    background: rgba(179, 0, 27, 0.08);
    color: #b3001b;
    font-size: 0.78rem;
    font-weight: 700;
}

.landing-stage-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ff4c6e, #ffb24d);
    box-shadow: 0 0 0 8px rgba(255, 76, 110, 0.12);
}

.landing-stage-copy {
    position: relative;
    z-index: 1;
    margin-top: 1rem;
    text-align: center;
}

.landing-stage-copy span {
    display: inline-flex;
    color: #b3001b;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.76rem;
    font-weight: 800;
    margin-bottom: 0.45rem;
}

.landing-stage-copy h2 {
    margin: 0;
    color: #15151b;
    font-family: "Sora", "Barlow", sans-serif;
    font-size: clamp(1.25rem, 1.9vw, 1.75rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
    max-width: none;
    margin-inline: auto;
}

.landing-stage-logo {
    width: min(290px, 100%);
    display: block;
    margin: 1.35rem auto 1rem;
    filter: drop-shadow(0 24px 34px rgba(0, 0, 0, 0.2));
}

.landing-stage-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.landing-stage-summary div {
    padding: 0.95rem 1rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(17, 24, 39, 0.08);
}

.landing-stage-summary span {
    display: block;
    color: rgba(21, 21, 27, 0.58);
    font-size: 0.82rem;
    margin-bottom: 0.25rem;
}

.landing-stage-summary strong {
    display: block;
    color: #15151b;
    font-size: 0.98rem;
}

.landing-stage-cards {
    display: grid;
    gap: 0.9rem;
    position: relative;
    z-index: 1;
}

.landing-feature-chip {
    display: flex;
    gap: 0.9rem;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 14px 26px rgba(17, 24, 39, 0.06);
}

.landing-feature-chip i {
    font-size: 1.15rem;
    color: #b3001b;
}

.landing-feature-chip strong,
.landing-mini-stat strong {
    display: block;
    color: #15151b;
}

.landing-feature-chip span,
.landing-mini-stat span {
    color: rgba(21, 21, 27, 0.66);
    font-size: 0.92rem;
}

.landing-stage-mini-grid {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
    position: relative;
    z-index: 1;
}

.landing-mini-stat {
    padding: 1rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 12px 22px rgba(17, 24, 39, 0.05);
}

.landing-section {
    position: relative;
    z-index: 1;
    padding: 4.2rem 0;
}

.landing-section-dark {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)),
        radial-gradient(circle at top right, rgba(255, 76, 110, 0.08), transparent 24%);
}

.landing-section-soft {
    background:
        linear-gradient(180deg, rgba(255, 101, 132, 0.08), rgba(255, 255, 255, 0)),
        radial-gradient(circle at left center, rgba(255, 178, 77, 0.1), transparent 24%);
}

.landing-section-heading {
    max-width: 760px;
    margin-bottom: 2rem;
}

.landing-section-heading span,
.landing-contact-copy > span {
    color: #b3001b;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.8rem;
}

.landing-section-heading h2,
.landing-contact-copy h2 {
    font-family: "Sora", "Barlow", sans-serif;
    font-size: clamp(2rem, 3vw, 3.2rem);
    margin-top: 0.7rem;
    margin-bottom: 0.8rem;
    font-weight: 800;
    color: #15151b;
    letter-spacing: -0.04em;
}

.landing-section-heading p,
.landing-contact-copy p {
    color: rgba(21, 21, 27, 0.72);
    line-height: 1.8;
}

.landing-section-heading-inverse h2 {
    color: #15151b;
}

.landing-section-heading-inverse p {
    color: rgba(21, 21, 27, 0.72);
}

.landing-info-card,
.landing-plan-card,
.landing-testimonial-card,
.landing-contact-card,
.landing-empty-card,
.registration-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.82));
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 28px;
    box-shadow: 0 18px 40px rgba(17, 24, 39, 0.08);
    backdrop-filter: blur(12px);
}

.landing-program-card {
    background: linear-gradient(180deg, rgba(21, 21, 27, 0.9), rgba(25, 33, 46, 0.92));
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 28px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(12px);
}

.landing-info-card,
.landing-program-card,
.landing-plan-card,
.landing-testimonial-card,
.landing-empty-card {
    height: 100%;
    padding: 1.6rem;
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease,
        background 0.22s ease;
}

.landing-info-card:hover,
.landing-program-card:hover,
.landing-plan-card:hover,
.landing-testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 42px rgba(17, 24, 39, 0.12);
}

.landing-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.16), rgba(255, 178, 77, 0.24));
    border: 1px solid rgba(179, 0, 27, 0.14);
    color: #b3001b;
    font-size: 1.35rem;
    box-shadow: 0 12px 24px rgba(179, 0, 27, 0.12);
}

.landing-info-card h3,
.landing-plan-card h3,
.landing-testimonial-card strong {
    color: #15151b;
}

.landing-info-card p,
.landing-plan-card p,
.landing-testimonial-card p {
    color: rgba(21, 21, 27, 0.72);
    line-height: 1.75;
}

.landing-program-card h3 {
    color: #ffffff;
}

.landing-program-card p {
    color: rgba(245, 247, 251, 0.72);
}

.landing-program-top,
.landing-plan-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.landing-program-badge,
.landing-program-tag {
    display: inline-flex;
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.landing-program-badge {
    background: rgba(255, 76, 110, 0.14);
    color: #ffb7c4;
}

.landing-program-tag {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.72);
}

.landing-card-link {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-weight: 700;
    padding: 0.8rem 1rem;
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        background-color 0.22s ease;
}

.landing-plan-top small {
    color: #b3001b;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
}

.landing-plan-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent);
}

.landing-plan-price {
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 2rem;
    font-weight: 800;
    color: #15151b;
    margin-bottom: 0.8rem;
    letter-spacing: -0.05em;
}

.landing-testimonial-card {
    position: relative;
    display: grid;
    gap: 0.65rem;
}

.landing-quote-mark {
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 3rem;
    line-height: 1;
    color: rgba(255, 183, 160, 0.58);
    margin-bottom: 0.5rem;
}

.landing-testimonial-card small {
    color: rgba(21, 21, 27, 0.56);
}

.landing-contact-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.9fr);
    gap: 1.7rem;
    align-items: stretch;
}

.landing-contact-copy {
    align-self: center;
}

.landing-contact-card {
    padding: 1.5rem;
    display: grid;
    gap: 0.95rem;
    align-self: stretch;
}

.landing-contact-card-head h3 {
    margin: 0 0 0.35rem;
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 1.3rem;
    color: #15151b;
}

.landing-contact-card-head p {
    margin: 0;
    color: rgba(21, 21, 27, 0.64);
}

.landing-contact-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.landing-contact-quick-card {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    padding: 1rem 1.05rem;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 10px 22px rgba(17, 24, 39, 0.05);
}

.landing-contact-quick-card i {
    color: #b3001b;
    font-size: 1.2rem;
}

.landing-contact-quick-card strong {
    display: block;
    color: #15151b;
}

.landing-contact-quick-card span {
    color: rgba(21, 21, 27, 0.66);
    font-size: 0.94rem;
}

.landing-contact-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    color: rgba(21, 21, 27, 0.84);
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(17, 24, 39, 0.08);
}

.landing-contact-row i {
    color: #ffb49d;
}

.landing-contact-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 0.7rem;
}

.landing-btn-contact {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(17, 24, 39, 0.1);
    color: #15151b;
    font-weight: 700;
    padding: 0.85rem 1.1rem;
    text-align: center;
}

.landing-btn-primary-solid,
.landing-btn-secondary-solid {
    border-radius: 999px;
    font-weight: 700;
    padding: 0.85rem 1.1rem;
    text-align: center;
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease,
        background-color 0.22s ease;
}

.landing-btn-primary-solid {
    background: linear-gradient(135deg, #d10026, #ff5a4f);
    border: 1px solid transparent;
    color: #ffffff;
    box-shadow: 0 14px 26px rgba(209, 0, 38, 0.18);
}

.landing-btn-secondary-solid {
    background: #202636;
    border: 1px solid #202636;
    color: #ffffff;
}

.landing-btn-inquiry {
    border-color: rgba(179, 0, 27, 0.16);
    color: #b3001b;
}

.landing-btn-contact,
.landing-nav-btn,
.landing-card-link {
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease;
}

.landing-btn-appointment {
    border-color: rgba(32, 38, 54, 0.14);
    color: #202636;
}

.landing-footer {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(17, 24, 39, 0.08);
    background: rgba(255, 255, 255, 0.56);
    padding: 1rem 0 1.4rem;
    text-align: center;
}

.landing-footer p {
    color: rgba(21, 21, 27, 0.64);
    font-size: 0.92rem;
}

.registration-shell {
    position: relative;
    z-index: 1;
}

.registration-header {
    max-width: 860px;
    margin-bottom: 2.2rem;
}

.registration-back {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    color: #f5f7fb;
    text-decoration: none;
    font-weight: 600;
}

.registration-card {
    padding: 2rem;
    border-radius: 30px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 252, 248, 0.9)),
        linear-gradient(135deg, rgba(255, 76, 110, 0.06), rgba(255, 178, 77, 0.05));
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 24px 48px rgba(17, 24, 39, 0.08);
}

.registration-header-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.25rem;
}

.registration-header-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(179, 0, 27, 0.08);
    color: #15151b;
    font-weight: 600;
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.05);
}

.registration-header-chip i {
    color: #b3001b;
}

.registration-form {
    align-items: start;
}

.registration-section {
    padding: 1.4rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.64);
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 14px 30px rgba(17, 24, 39, 0.05);
}

.registration-section + .registration-section {
    margin-top: 1rem;
}

.registration-section-head {
    margin-bottom: 1.1rem;
}

.registration-section-head span {
    display: inline-flex;
    color: #b3001b;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.76rem;
    font-weight: 800;
    margin-bottom: 0.45rem;
}

.registration-section-head h2 {
    margin: 0 0 0.45rem;
    color: #15151b;
    font-family: "Sora", "Barlow", sans-serif;
    font-size: 1.35rem;
    letter-spacing: -0.03em;
}

.registration-title-block h1 {
    max-width: none;
    font-size: clamp(2.45rem, 4.1vw, 4.2rem);
}

.registration-title-block p {
    max-width: 52rem;
}

.registration-section-head p {
    margin: 0;
    color: rgba(21, 21, 27, 0.66);
    line-height: 1.7;
}

.registration-label {
    color: #202636;
    font-weight: 700;
    margin-bottom: 0.45rem;
}

.registration-input {
    min-height: 52px;
    border-radius: 16px;
    border: 1px solid rgba(17, 24, 39, 0.12);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.registration-input:focus {
    border-color: rgba(179, 0, 27, 0.28);
    box-shadow: 0 0 0 0.25rem rgba(179, 0, 27, 0.12);
}

.registration-textarea {
    min-height: 108px;
    padding-top: 0.85rem;
    resize: vertical;
}

.registration-help {
    margin-top: 0.45rem;
    color: rgba(21, 21, 27, 0.6);
}

.registration-plan-head {
    margin-bottom: 1.25rem;
}

.registration-plan-panel {
    position: sticky;
    top: 6.25rem;
}

.registration-plan-list {
    position: relative;
    z-index: 1;
}

.registration-plan-option {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 20px;
    padding: 1rem 1.05rem;
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.registration-plan-option input {
    margin-top: 0.3rem;
    accent-color: #b3001b;
}

.registration-plan-option span {
    display: grid;
    gap: 0.25rem;
}

.registration-plan-option strong {
    color: #15151b;
    font-size: 1rem;
}

.registration-plan-option small {
    color: #b3001b;
    font-weight: 700;
}

.registration-plan-option em {
    color: rgba(21, 21, 27, 0.66);
    line-height: 1.6;
    font-style: normal;
}

.registration-plan-option:hover {
    transform: translateY(-2px);
    border-color: rgba(179, 0, 27, 0.16);
    box-shadow: 0 18px 30px rgba(17, 24, 39, 0.08);
}

.registration-plan-alert {
    border-radius: 18px;
    border: 1px solid rgba(255, 193, 7, 0.28);
    background: rgba(255, 243, 205, 0.78);
    position: relative;
    z-index: 1;
}

.registration-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    align-items: center;
    justify-content: flex-start;
    padding-top: 0.4rem;
}

.registration-submit-btn,
.registration-secondary-btn {
    border-radius: 999px;
    min-height: 54px;
    padding-inline: 1.4rem;
}

.registration-secondary-btn {
    margin-left: 0;
}

.registration-alert {
    border-radius: 18px;
    margin-bottom: 1.25rem;
}

.landing-feature-list {
    display: grid;
    gap: 0.85rem;
}

.landing-feature-list div {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #f5f7fb;
}

.login-back-link {
    text-decoration: none;
    color: var(--brand-deep-red);
    font-weight: 700;
}

.login-back-link:hover {
    color: #7f0013;
}

.theme-dark .login-page {
    background:
        radial-gradient(circle at 14% 12%, rgba(255, 138, 71, 0.08) 0 42px, transparent 43px),
        radial-gradient(circle at 86% 84%, rgba(115, 130, 255, 0.12) 0 50px, transparent 51px),
        linear-gradient(135deg, rgba(255, 76, 110, 0.14), transparent 34%),
        linear-gradient(315deg, rgba(255, 178, 77, 0.1), transparent 36%),
        linear-gradient(145deg, #090b11 0%, #10131b 50%, #171119 100%);
}

.theme-dark .login-page::before {
    background:
        radial-gradient(circle at 8% 72%, rgba(255, 138, 71, 0.12) 0 48px, transparent 49px),
        radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.08) 0 24px, transparent 25px),
        linear-gradient(135deg, transparent 0 14%, rgba(255, 76, 110, 0.1) 14% 18%, transparent 18% 100%),
        linear-gradient(90deg, transparent 0 48%, rgba(255, 255, 255, 0.04) 48% 52%, transparent 52%),
        linear-gradient(0deg, transparent 0 48%, rgba(255, 255, 255, 0.03) 48% 52%, transparent 52%);
}

.theme-dark .login-page::after {
    border-color: rgba(255, 207, 191, 0.12);
}

.theme-dark .login-shell {
    background: linear-gradient(145deg, rgba(14, 18, 27, 0.98), rgba(21, 25, 36, 0.96));
    box-shadow:
        0 34px 80px rgba(0, 0, 0, 0.36),
        -26px 28px 0 rgba(255, 76, 110, 0.06),
        26px -24px 0 rgba(115, 130, 255, 0.06);
}

.theme-dark .login-shell::before {
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .login-showcase {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(4, 6, 12, 0.78)),
        url("../images/login-hero.jpg"),
        linear-gradient(145deg, #0f131d 0%, #182033 42%, #8c1730 100%);
    background-size: 100% 100%, 108% auto, 100% 100%;
    background-position: center, center 22%, center;
    background-repeat: no-repeat;
}

.theme-dark .login-showcase-overlay {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), transparent 34%),
        linear-gradient(0deg, rgba(4, 6, 12, 0.82), transparent 58%);
}

.theme-dark .login-badge,
.theme-dark .login-point {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

.theme-dark .login-card-title {
    color: #ffffff;
}

.theme-dark .login-back-link {
    color: #ffd7cf;
}

.theme-dark .login-back-link:hover {
    color: #fff1eb;
}

.theme-dark .login-demo {
    border-top-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .login-card .form-check-label,
.theme-dark .login-demo span {
    color: rgba(245, 247, 251, 0.74);
}

.theme-dark .login-input {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.theme-dark .login-input::placeholder {
    color: rgba(245, 247, 251, 0.42);
}

.theme-dark .login-input:focus {
    border-color: rgba(255, 207, 191, 0.34);
    box-shadow: 0 0 0 0.25rem rgba(255, 207, 191, 0.12);
}

.theme-dark .landing-page-subtle .registration-title-block h1,
.theme-dark .landing-page-subtle .registration-title-block p,
.theme-dark .landing-page-subtle .registration-back,
.theme-dark .landing-page-subtle .landing-feature-list div {
    color: #f5f7fb;
}

.theme-dark .registration-back {
    color: #ffd7cf;
}

.theme-dark .registration-back:hover {
    color: #fff0ea;
}

.theme-dark .landing-nav {
    background: rgba(9, 11, 17, 0.68);
    border-bottom-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 20px 34px rgba(0, 0, 0, 0.18);
}

.theme-dark .landing-stage-panel,
.theme-dark .registration-plan-panel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
        linear-gradient(145deg, rgba(19, 22, 31, 0.98), rgba(46, 17, 25, 0.94));
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.28);
}

.theme-dark .landing-photo-card {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.28);
}

.theme-dark .landing-photo-collage-box {
    background:
        linear-gradient(135deg, rgba(23, 27, 37, 0.94), rgba(47, 20, 28, 0.9)),
        radial-gradient(circle at 18% 18%, rgba(255, 82, 116, 0.14), transparent 34%),
        radial-gradient(circle at 88% 84%, rgba(255, 146, 70, 0.12), transparent 34%);
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 26px 52px rgba(0, 0, 0, 0.26);
}

.theme-dark .landing-photo-modal .modal-content {
    background: #121620;
}

.theme-dark .landing-photo-modal .modal-title {
    color: #f8fbff;
}

.theme-dark .landing-photo-modal .modal-header {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.theme-dark .registration-plan-panel::before {
    background: radial-gradient(circle, rgba(255, 124, 112, 0.18), transparent 64%);
}

.theme-dark .landing-brand,
.theme-dark .landing-nav .nav-link,
.theme-dark .landing-hero h1,
.theme-dark .landing-section-heading h2,
.theme-dark .landing-contact-copy h2 {
    color: #ffffff;
}

.theme-dark .landing-brand small {
    color: rgba(255, 255, 255, 0.62);
}

.theme-dark .landing-nav .nav-link:hover {
    color: #ffffff;
}

.theme-dark .landing-nav .nav-link::after {
    background: linear-gradient(90deg, #ff8ea4, #ffd09c);
}

.theme-dark .landing-theme-toggle,
.theme-dark .landing-toggler {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
}

.theme-dark .landing-nav-btn {
    background: linear-gradient(135deg, #ffffff, #ffe3d7);
    color: #12141d;
}

.theme-dark .landing-pill {
    background: rgba(255, 255, 255, 0.08);
    color: #ffd3c7;
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .landing-lead,
.theme-dark .landing-section-heading p,
.theme-dark .landing-contact-copy p,
.theme-dark .landing-stage-summary span {
    color: rgba(245, 247, 251, 0.74);
}

.theme-dark .landing-info-card,
.theme-dark .landing-plan-card,
.theme-dark .landing-testimonial-card,
.theme-dark .landing-contact-card,
.theme-dark .landing-empty-card,
.theme-dark .registration-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
}

.theme-dark .landing-info-card h3,
.theme-dark .landing-plan-card h3,
.theme-dark .landing-testimonial-card strong,
.theme-dark .landing-plan-price,
.theme-dark .landing-stage-copy h2,
.theme-dark .landing-stage-summary strong {
    color: #ffffff;
}

.theme-dark .landing-info-card p,
.theme-dark .landing-plan-card p,
.theme-dark .landing-testimonial-card p,
.theme-dark .landing-contact-row,
.theme-dark .landing-testimonial-card small,
.theme-dark .landing-contact-row span {
    color: rgba(245, 247, 251, 0.72);
}

.theme-dark .registration-header-chip,
.theme-dark .registration-section,
.theme-dark .registration-plan-option,
.theme-dark .registration-plan-alert {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.16);
}

.theme-dark .registration-section-head h2,
.theme-dark .registration-plan-option strong,
.theme-dark .registration-label,
.theme-dark .registration-header-chip {
    color: #ffffff;
}

.theme-dark .registration-section-head p,
.theme-dark .registration-help,
.theme-dark .registration-plan-option em {
    color: rgba(245, 247, 251, 0.68);
}

.theme-dark .registration-section-head span,
.theme-dark .registration-plan-option small,
.theme-dark .registration-header-chip i {
    color: #ffcfbf;
}

.theme-dark .registration-input {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.theme-dark .registration-input::placeholder {
    color: rgba(245, 247, 251, 0.46);
}

.theme-dark .registration-input:focus {
    border-color: rgba(255, 207, 191, 0.34);
    box-shadow: 0 0 0 0.25rem rgba(255, 207, 191, 0.12);
}

.theme-dark .registration-input option {
    background: #171a22;
    color: #ffffff;
}

.theme-dark .registration-plan-alert {
    background: rgba(255, 193, 7, 0.12);
    border-color: rgba(255, 214, 102, 0.22);
    color: #fff4d6;
}

.theme-dark .registration-secondary-btn {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.18);
    color: #f5f7fb;
}

.theme-dark .registration-secondary-btn:hover,
.theme-dark .registration-secondary-btn:focus {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.24);
    color: #ffffff;
}

.theme-dark .landing-feature-chip,
.theme-dark .landing-mini-stat,
.theme-dark .landing-stage-summary div {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .landing-feature-chip strong,
.theme-dark .landing-mini-stat strong {
    color: #ffffff;
}

.theme-dark .landing-feature-list div i {
    color: #ffb49d;
}

.theme-dark .library-access-actions .btn-outline-primary {
    background: rgba(115, 130, 255, 0.12);
    border-color: rgba(173, 186, 255, 0.32);
    color: #edf2ff;
}

.theme-dark .library-access-actions .btn-outline-primary:hover,
.theme-dark .library-access-actions .btn-outline-primary:focus {
    background: rgba(115, 130, 255, 0.2);
    border-color: rgba(200, 210, 255, 0.4);
    color: #ffffff;
}

.theme-dark .library-access-actions .btn-outline-secondary {
    background: rgba(255, 175, 156, 0.12);
    border-color: rgba(255, 215, 207, 0.26);
    color: #ffe6df;
}

.theme-dark .library-access-actions .btn-outline-secondary:hover,
.theme-dark .library-access-actions .btn-outline-secondary:focus {
    background: rgba(255, 175, 156, 0.18);
    border-color: rgba(255, 215, 207, 0.36);
    color: #ffffff;
}

.theme-dark .landing-feature-chip span,
.theme-dark .landing-mini-stat span {
    color: rgba(245, 247, 251, 0.68);
}

.theme-dark .landing-stage-badge {
    background: rgba(255, 255, 255, 0.08);
    color: #ffd7cf;
}

.theme-dark .landing-stage-copy span {
    color: #ffcfbf;
}

.theme-dark .landing-contact-card-head h3,
.theme-dark .landing-contact-quick-card strong {
    color: #ffffff;
}

.theme-dark .landing-contact-card-head p,
.theme-dark .landing-contact-quick-card span {
    color: rgba(245, 247, 251, 0.66);
}

.theme-dark .landing-contact-quick-card {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.theme-dark .landing-contact-row {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .landing-btn-contact {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.theme-dark .landing-btn-secondary-solid {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.12);
}

.theme-dark .landing-section-dark {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0)),
        radial-gradient(circle at top right, rgba(255, 76, 110, 0.12), transparent 26%);
}

.theme-dark .landing-section-soft {
    background:
        linear-gradient(180deg, rgba(255, 101, 132, 0.08), rgba(255, 255, 255, 0)),
        radial-gradient(circle at left center, rgba(255, 178, 77, 0.08), transparent 24%);
}

.theme-dark .landing-footer {
    background: rgba(9, 11, 17, 0.56);
    border-top-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .landing-footer p {
    color: rgba(245, 247, 251, 0.62);
}

.theme-dark .landing-plan-top small {
    color: #ffcfbf;
}

.theme-dark .landing-icon-wrap {
    background: linear-gradient(135deg, rgba(255, 76, 110, 0.22), rgba(255, 178, 77, 0.14));
    border-color: rgba(255, 207, 191, 0.22);
    color: #ffcfbf;
    box-shadow: 0 14px 28px rgba(255, 76, 110, 0.12);
}

.theme-dark .landing-btn-secondary {
    --landing-btn-bg: linear-gradient(135deg, rgba(115, 130, 255, 0.42), rgba(64, 72, 126, 0.82));
    --landing-btn-border: rgba(173, 186, 255, 0.32);
    --landing-btn-text: #f8fbff;
    --landing-btn-shadow: 0 16px 30px rgba(44, 56, 120, 0.32);
}

.theme-dark .landing-btn-ghost {
    --landing-btn-bg: linear-gradient(135deg, rgba(149, 34, 60, 0.72), rgba(88, 18, 41, 0.94));
    --landing-btn-border: rgba(255, 183, 193, 0.24);
    --landing-btn-text: #ffe1e7;
    --landing-btn-shadow: 0 16px 30px rgba(101, 19, 44, 0.34);
}

.theme-dark .landing-btn-library {
    --landing-btn-bg: linear-gradient(135deg, rgba(130, 74, 42, 0.76), rgba(81, 48, 28, 0.94));
    --landing-btn-border: rgba(255, 216, 181, 0.24);
    --landing-btn-text: #fff0df;
    --landing-btn-shadow: 0 16px 30px rgba(77, 43, 19, 0.34);
}

.theme-dark .landing-btn-inquiry-hero {
    --landing-btn-bg: linear-gradient(135deg, rgba(47, 116, 98, 0.8), rgba(24, 70, 62, 0.96));
    --landing-btn-border: rgba(162, 231, 212, 0.24);
    --landing-btn-text: #eafff9;
    --landing-btn-shadow: 0 16px 30px rgba(11, 54, 46, 0.34);
}

.theme-dark .landing-section-heading span,
.theme-dark .landing-contact-copy > span {
    color: #ffb49d;
}

.student-sidebar-panel {
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 28%),
        linear-gradient(180deg, #17141d 0%, #0f1117 100%);
}

.student-sidebar-surface .brand-name,
.student-sidebar-surface small,
.student-sidebar-card small {
    color: rgba(255, 255, 255, 0.72);
}

.student-sidebar-card {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    padding: 1rem;
    text-align: center;
    color: #fff;
}

.student-sidebar-avatar,
.student-chip-photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
}

.student-chip-photo {
    width: 100%;
    height: 100%;
}

.student-topbar {
    background: rgba(255, 255, 255, 0.68);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(179, 0, 27, 0.08);
    position: relative;
    z-index: 1100;
    overflow: visible;
}

.student-topbar-inner,
.student-content-shell {
    width: min(1360px, 100%);
    margin: 0 auto;
}

.student-topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    position: relative;
    z-index: 1101;
    overflow: visible;
}

.student-content-wrap {
    padding-top: 1.4rem;
}

.student-topbar .page-title {
    color: #15151b;
}

.student-topbar .text-muted,
.student-topbar .user-chip-meta small {
    color: #6b7280 !important;
}

.student-topbar .user-chip {
    background: rgba(255, 255, 255, 0.88);
    border-color: rgba(179, 0, 27, 0.08);
}

.student-topbar .user-menu {
    position: relative;
    z-index: 1102;
}

.student-topbar .user-dropdown-menu {
    inset: calc(100% + 0.6rem) 0 auto auto !important;
}

.student-topbar .theme-toggle {
    background: rgba(255, 255, 255, 0.88);
}

.student-dashboard-hero {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 24%),
        linear-gradient(135deg, #0f172a, #7f0013 72%, #111827);
}

.student-metric-text {
    font-size: 1.35rem;
}

.student-classes-hero {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 25%),
        linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(127, 0, 19, 0.9));
    color: #ffffff;
}

.student-billing-hero {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 25%),
        linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(127, 0, 19, 0.9));
    color: #ffffff;
}

.student-classes-hero .section-title,
.student-classes-hero .text-muted,
.student-billing-hero .section-title,
.student-billing-hero .text-muted {
    color: #ffffff !important;
}

.student-classes-hero-badges {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.6rem;
}

.student-billing-hero-actions,
.student-billing-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.student-progress-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.65rem;
}

.student-progress-label {
    color: var(--text-soft);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.student-progress-value {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.student-progress-value-sm {
    font-size: 1.2rem;
    line-height: 1.25;
}

.student-schedule-day-card {
    height: 100%;
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    padding: 1rem;
    background: color-mix(in srgb, var(--surface-glass) 92%, transparent);
}

.student-schedule-day-header {
    margin-bottom: 0.85rem;
    color: var(--text-main);
    font-size: 0.96rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.student-schedule-item + .student-schedule-item {
    margin-top: 0.8rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--border-soft);
}

.student-schedule-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
    margin-top: 0.55rem;
    color: var(--text-soft);
    font-size: 0.85rem;
}

.student-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.student-upcoming-item {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 0.9rem;
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    background: color-mix(in srgb, var(--surface-glass) 94%, transparent);
}

.student-upcoming-date {
    min-width: 64px;
    border-radius: 14px;
    padding: 0.7rem 0.55rem;
    background: var(--brand-light-red);
    color: var(--brand-deep-red);
    text-align: center;
}

.student-upcoming-date strong,
.student-upcoming-date span {
    display: block;
}

.student-upcoming-date strong {
    font-size: 0.9rem;
}

.student-upcoming-date span {
    font-size: 0.82rem;
}

.student-upcoming-copy {
    min-width: 0;
}

.student-billing-table td {
    vertical-align: top;
}

.student-billing-empty {
    max-width: 480px;
    margin: 0 auto;
}

.student-billing-empty-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: rgba(179, 0, 27, 0.08);
    color: var(--brand-deep-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
}

.student-invoice-summary-grid {
    display: grid;
    gap: 0.85rem;
}

.student-invoice-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--border-soft);
}

.student-invoice-summary-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.student-invoice-summary-row span {
    color: var(--text-soft);
}

.student-payment-history {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.student-payment-history-item {
    padding: 0.95rem 1rem;
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    background: color-mix(in srgb, var(--surface-glass) 94%, transparent);
}

@media (max-width: 991.98px) {
    .student-billing-actions,
    .student-billing-hero-actions {
        width: 100%;
    }

    .student-invoice-summary-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.45rem;
    }
}

.theme-dark .student-topbar {
    background: rgba(11, 15, 22, 0.94);
    border-bottom-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
}

.theme-dark .student-topbar .page-title,
.theme-dark .student-topbar .fw-semibold {
    color: #ffffff;
}

.theme-dark .student-topbar .text-muted,
.theme-dark .student-topbar .user-chip-meta small {
    color: #b7c0d1 !important;
}

.theme-dark .student-topbar .user-chip,
.theme-dark .student-topbar .theme-toggle,
.theme-dark .student-topbar .sidebar-toggle {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
}

.theme-dark .student-topbar .theme-toggle i,
.theme-dark .student-topbar .sidebar-toggle i {
    color: #ffffff;
}

.theme-dark .student-schedule-day-card,
.theme-dark .student-upcoming-item,
.theme-dark .student-payment-history-item {
    background: rgba(255, 255, 255, 0.04);
}

.theme-dark .student-upcoming-date {
    background: rgba(255, 51, 71, 0.16);
    color: #ffd7dd;
}

.library-locked-card {
    text-align: center;
    padding-block: 3rem;
}

.library-locked-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: rgba(179, 0, 27, 0.08);
    color: var(--brand-deep-red);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
}

.library-video-thumb,
.library-table-thumb {
    width: 100%;
    height: 210px;
    border-radius: 18px;
    object-fit: cover;
    background: #15151b;
}

.library-table-thumb {
    width: 88px;
    height: 64px;
}

.library-thumb-placeholder {
    object-fit: contain;
    padding: 0.75rem;
    background: #ffffff;
    border: 1px solid rgba(179, 0, 27, 0.12);
}

.theme-dark .library-thumb-placeholder {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(255, 255, 255, 0.14);
}

.library-video-player {
    width: 100%;
    border-radius: 16px;
    background: #111827;
}

.registration-review-card {
    border: 1px solid rgba(179, 0, 27, 0.1);
    border-radius: 18px;
    padding: 1rem;
    background: #ffffff;
}

.student-table-photo-lg {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
}

@keyframes landingFloat {
    0%,
    100% {
        transform: translateY(0) translateX(0);
    }
    50% {
        transform: translateY(-22px) translateX(12px);
    }
}

@keyframes landingFadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes landingMenuIn {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 991px) {
    .landing-page {
        --landing-scroll-offset: 7.75rem;
    }

    .app-shell {
        display: block;
    }

    .sidebar-panel {
        width: min(78vw, 280px);
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1050;
        transform: translateX(-105%);
        transition: transform 0.24s ease;
        box-shadow: 24px 0 44px rgba(11, 11, 15, 0.24);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .content-panel {
        margin-left: 0;
        min-height: auto;
    }

    body.sidebar-open .sidebar-panel {
        transform: translateX(0);
    }

    .sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1040;
        background: rgba(11, 11, 15, 0.52);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease;
    }

    body.sidebar-open .sidebar-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .sidebar-close,
    .sidebar-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .sidebar-inner {
        padding: 0.8rem 0.7rem;
    }

    .sidebar-brand-row {
        gap: 0.75rem;
    }

    .brand {
        gap: 0.6rem;
    }

    .brand-logo {
        width: 42px;
        height: 42px;
    }

    .brand-name {
        font-size: 0.84rem;
    }

    .brand small {
        font-size: 0.68rem;
    }

    .sidebar-nav {
        margin-top: 0.8rem;
        gap: 0.16rem;
        padding-right: 0.1rem;
    }

    .admin-sidebar-nav {
        gap: 0.58rem;
    }

    .sidebar-menu-label {
        padding-left: 0.46rem;
        padding-bottom: 0.16rem;
        font-size: 0.62rem;
    }

    .sidebar-link {
        gap: 0.55rem;
        padding: 0.42rem 0.52rem;
        min-height: 36px;
        font-size: 0.86rem;
        border-radius: 9px;
    }

    .sidebar-icon {
        width: 28px;
        height: 28px;
        min-width: 28px;
        border-radius: 8px;
        font-size: 0.85rem;
    }

    .admin-sidebar-surface .sidebar-link {
        gap: 0.42rem;
        min-height: 30px;
        padding: 0.3rem 0.42rem;
        font-size: 0.76rem;
    }

    .admin-sidebar-surface .sidebar-icon {
        width: 22px;
        height: 22px;
        min-width: 22px;
        font-size: 0.72rem;
    }

    .sidebar-footer {
        padding-top: 0.6rem;
    }

    .content-wrap,
    .topbar {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .content-wrap {
        padding-top: 0.85rem;
        padding-bottom: 1.25rem;
    }

    .topbar {
        position: sticky;
        top: 0;
        z-index: 1010;
        flex-wrap: nowrap;
        background: rgba(245, 245, 245, 0.94);
        backdrop-filter: blur(12px);
        padding-top: 0.85rem;
        padding-bottom: 0.85rem;
        border-bottom: 1px solid rgba(179, 0, 27, 0.08);
    }

    .theme-dark .topbar {
        background: rgba(15, 17, 23, 0.96);
        border-bottom-color: rgba(255, 255, 255, 0.08);
        box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
    }

    .student-topbar-inner {
        width: 100%;
    }

    .theme-dark .page-title {
        color: #ffffff;
        text-shadow: none;
    }

    .theme-dark .sidebar-toggle,
    .theme-dark .theme-toggle,
    .theme-dark .notification-button,
    .theme-dark .user-chip {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.12);
        color: #ffffff;
        box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24);
    }

    .theme-dark .sidebar-toggle i,
    .theme-dark .theme-toggle i,
    .theme-dark .notification-button i {
        color: #ffffff;
    }

    .theme-dark .user-chip-avatar {
        background: linear-gradient(135deg, var(--brand-deep-red), var(--brand-bright-red));
        color: #ffffff;
        box-shadow: 0 10px 22px rgba(255, 51, 71, 0.24);
    }

    .page-title {
        font-size: 1.25rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 46vw;
    }

    .topbar-title-wrap small {
        display: none;
    }

    .user-chip {
        padding: 0.45rem;
        border-radius: 999px;
        gap: 0;
    }

    .topbar-actions {
        gap: 0.5rem;
    }

    .student-classes-hero-badges {
        justify-content: flex-start;
    }

    .student-progress-value {
        font-size: 1.7rem;
    }

    .student-content-wrap {
        padding-top: 1rem;
    }

    .notification-button {
        width: 42px;
        height: 42px;
        border-radius: 999px;
    }

    .user-chip-meta {
        display: none;
    }

    .user-chip-avatar {
        width: 42px;
        height: 42px;
        min-width: 42px;
        min-height: 42px;
    }

    .user-chip-caret {
        display: none;
    }

    .dashboard-hero {
        flex-direction: column;
        padding: 1.4rem;
    }

    .dashboard-hero-title {
        font-size: 1.6rem;
    }

    .quick-actions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .content-card,
    .dashboard-card {
        border-radius: 16px;
    }

    .content-card.p-4,
    .dashboard-card,
    .dashboard-hero,
    .login-card {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
    }

    .content-card .btn,
    .dashboard-card .btn,
    .dashboard-hero .btn {
        white-space: nowrap;
    }

    .content-card .d-flex.justify-content-between,
    .dashboard-card .d-flex.justify-content-between {
        flex-wrap: wrap;
        align-items: flex-start !important;
    }

    .content-card .d-flex.gap-2,
    .content-card .d-flex.gap-3,
    .dashboard-card .d-flex.gap-2,
    .dashboard-card .d-flex.gap-3 {
        flex-wrap: wrap;
    }

    .content-card .table-responsive,
    .dashboard-card .table-responsive {
        margin-left: -0.35rem;
        margin-right: -0.35rem;
        padding-left: 0.35rem;
        padding-right: 0.35rem;
        -webkit-overflow-scrolling: touch;
    }

    .content-card .table-responsive > .table,
    .dashboard-card .table-responsive > .table {
        min-width: 680px;
    }

    .table td.d-flex,
    .table th.d-flex {
        flex-wrap: wrap;
        align-items: flex-start !important;
    }

    .table td.d-flex .btn,
    .table th.d-flex .btn {
        flex: 0 0 auto;
    }

    .pagination {
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .brand-logo {
        width: 56px;
        height: 56px;
    }

    .login-shell {
        grid-template-columns: 1fr;
        min-height: auto;
        border-radius: 18px;
    }

    .login-shell::before,
    .login-shell::after {
        display: none;
    }

    .login-showcase {
        min-height: 330px;
    }

    .login-showcase-title {
        font-size: 1.9rem;
    }

    .login-showcase-overlay {
        padding: 1.5rem;
    }

    .login-showcase::after {
        right: 18px;
        bottom: 70px;
        width: 140px;
    }

    .login-hero-logo {
        width: 112px;
    }

    .login-card {
        padding: 2rem 1.5rem;
    }

    .qr-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .chart-wrap,
    .chart-wrap-sm {
        min-height: 240px;
    }

    .landing-hero {
        padding-top: 3rem;
        padding-bottom: 2rem;
    }

    .landing-hero-shell,
    .landing-contact-shell {
        grid-template-columns: 1fr;
    }

    .landing-hero-main {
        grid-template-columns: 1fr;
        gap: 1.2rem;
    }

    .landing-hero-side-cta {
        margin-top: 0;
        align-self: start;
    }

    .landing-nav .navbar-collapse {
        margin-top: 1rem;
        padding: 1rem 1.1rem;
        border-radius: 24px;
        background: rgba(255, 255, 255, 0.82);
        border: 1px solid rgba(179, 0, 27, 0.1);
        box-shadow: 0 18px 40px rgba(17, 24, 39, 0.1);
        transform-origin: top center;
    }

    .landing-nav .navbar-collapse.show {
        animation: landingMenuIn 0.26s ease;
    }

    .landing-nav .navbar-collapse.collapsing {
        opacity: 0;
        transform: translateY(-8px) scale(0.98);
    }

    .landing-nav .nav-link {
        padding: 0.8rem 0.2rem;
        font-size: 1.04rem;
    }

    .landing-nav .navbar-nav {
        width: 100%;
        align-items: center;
        text-align: center;
    }

    .landing-nav .nav-item {
        width: 100%;
    }

    .landing-hero h1,
    .registration-title-block h1 {
        max-width: none;
        font-size: clamp(2.6rem, 9vw, 4rem);
    }

    .landing-stage-logo {
        width: min(260px, 70%);
    }

    .landing-photo-highlight {
        height: 280px;
        grid-template-columns: minmax(0, 1.35fr) minmax(96px, 0.9fr);
        grid-template-rows: repeat(3, minmax(66px, 1fr));
    }

    .landing-stage-copy h2 {
        max-width: none;
    }

    .landing-stage-mini-grid {
        grid-template-columns: 1fr 1fr;
    }

    .landing-stage-summary {
        grid-template-columns: 1fr 1fr;
    }

    .landing-contact-quick-grid {
        grid-template-columns: 1fr;
    }

    .landing-contact-actions {
        grid-template-columns: 1fr 1fr;
    }

    .registration-plan-panel {
        position: static;
        top: auto;
    }

    .registration-header-highlights {
        gap: 0.7rem;
    }

    .theme-dark .landing-nav .navbar-collapse {
        background: rgba(15, 17, 23, 0.96);
        border-color: rgba(255, 255, 255, 0.1);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
    }
}

@media (max-width: 575px) {
    .landing-page {
        --landing-scroll-offset: 8.25rem;
    }

    .sidebar-panel {
        width: min(74vw, 256px);
    }

    .sidebar-inner {
        padding: 0.7rem 0.6rem;
    }

    .brand-logo {
        width: 38px;
        height: 38px;
    }

    .brand-name {
        font-size: 0.78rem;
    }

    .sidebar-link {
        padding: 0.38rem 0.46rem;
        font-size: 0.82rem;
        min-height: 34px;
    }

    .admin-sidebar-surface .sidebar-link {
        min-height: 29px;
        padding: 0.28rem 0.38rem;
        font-size: 0.74rem;
    }

    .sidebar-icon {
        width: 26px;
        height: 26px;
        min-width: 26px;
        font-size: 0.8rem;
    }

    .admin-sidebar-surface .sidebar-icon {
        width: 21px;
        height: 21px;
        min-width: 21px;
        font-size: 0.68rem;
    }

    .login-page {
        padding: 1rem;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .login-showcase {
        min-height: 280px;
    }

    .login-showcase::before,
    .login-showcase::after,
    .login-page::after {
        display: none;
    }

    .login-showcase-title {
        font-size: 1.55rem;
    }

    .login-showcase-text {
        font-size: 0.92rem;
        margin-bottom: 1rem;
    }

    .login-showcase-points {
        display: none;
    }

    .login-card-title {
        font-size: 1.8rem;
    }

    .content-wrap {
        padding-top: 0.75rem;
        padding-bottom: 1rem;
    }

    .topbar {
        gap: 0.75rem;
    }

    .topbar-title-wrap {
        gap: 0.65rem;
        flex: 1 1 auto;
    }

    .student-topbar-inner {
        align-items: center;
    }

    .dashboard-hero {
        border-radius: 18px;
    }

    .dashboard-card,
    .content-card {
        border-radius: 14px;
    }

    .content-card.p-4,
    .dashboard-card,
    .dashboard-hero,
    .login-card {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .topbar-actions {
        flex-shrink: 0;
    }

    .notification-dropdown,
    .user-dropdown-menu {
        width: min(92vw, 320px);
    }

    .student-upcoming-item {
        align-items: stretch;
        flex-direction: column;
    }

    .student-upcoming-date {
        min-width: 0;
        width: 100%;
    }

    .content-card .btn,
    .dashboard-hero .btn,
    .dashboard-card .btn {
        width: 100%;
        justify-content: center;
    }

    .content-card .d-flex.gap-2 > .btn,
    .content-card .d-flex.gap-3 > .btn,
    .dashboard-card .d-flex.gap-2 > .btn,
    .dashboard-card .d-flex.gap-3 > .btn,
    .dashboard-hero-actions .btn {
        flex: 1 1 100%;
    }

    .content-card .d-flex.justify-content-between > .btn,
    .content-card .d-flex.justify-content-between > .d-flex,
    .dashboard-card .d-flex.justify-content-between > .btn,
    .dashboard-card .d-flex.justify-content-between > .d-flex {
        margin-top: 0.6rem;
    }

    .quick-actions-grid {
        grid-template-columns: 1fr;
    }

    .quick-action-btn {
        min-height: auto;
    }

    .table-responsive {
        margin-left: -0.25rem;
        margin-right: -0.25rem;
    }

    .content-card .table-responsive > .table,
    .dashboard-card .table-responsive > .table {
        min-width: 620px;
    }

    .student-profile-photo {
        width: 72px;
        height: 72px;
        flex-basis: 72px;
    }

    .student-photo-thumb {
        width: 52px;
        height: 52px;
        flex-basis: 52px;
    }

    .student-table-photo {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }

    .confirm-popup-actions {
        flex-direction: column;
    }

    .confirm-popup-actions .flash-popup-button {
        width: 100%;
    }

    .landing-cta-group {
        flex-direction: column;
        justify-content: flex-start;
    }

    .landing-cta-secondary {
        display: contents;
    }

    .landing-cta-group .btn,
    .landing-contact-actions .btn,
    .landing-nav-btn {
        width: 100%;
    }

    .landing-sub-cta {
        justify-content: flex-start;
    }

    .landing-stage-mini-grid {
        grid-template-columns: 1fr;
    }

    .landing-stage-summary {
        grid-template-columns: 1fr;
    }

    .registration-card {
        padding: 1.2rem;
    }

    .registration-header {
        margin-bottom: 1.6rem;
    }

    .registration-header-highlights {
        flex-direction: column;
        align-items: stretch;
    }

    .registration-header-chip,
    .registration-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .registration-section {
        padding: 1rem;
        border-radius: 20px;
    }

    .registration-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .landing-container {
        width: min(100vw - 1rem, 100%);
    }

    .landing-nav {
        padding: 0.75rem 0;
    }

    .landing-section {
        padding: 3.4rem 0;
    }

    .landing-brand {
        gap: 0.55rem;
        max-width: calc(100% - 62px);
    }

    .landing-brand img {
        width: 40px;
        height: 40px;
    }

    .landing-brand-copy {
        display: none;
    }

    .landing-header-controls {
        gap: 0.55rem;
    }

    .landing-nav .navbar-collapse {
        padding: 0.9rem 0.95rem 1rem;
    }

    .landing-nav-actions {
        align-items: center;
        gap: 0.75rem;
    }

    .landing-theme-toggle {
        width: 42px;
        height: 42px;
        flex: 0 0 42px;
    }

    .landing-nav-btn {
        flex: 1 1 auto;
        text-align: center;
        white-space: nowrap;
        min-width: 0;
    }

    .landing-hero {
        padding-top: 2.2rem;
        padding-bottom: 1.5rem;
    }

    .landing-hero-shell {
        gap: 1.4rem;
    }

    .landing-hero-side-cta {
        gap: 0.8rem;
    }

    .landing-cta-group {
        gap: 0.75rem;
    }

    .landing-btn-primary,
    .landing-btn-secondary,
    .landing-btn-ghost,
    .landing-btn-library {
        padding: 0.9rem 1.15rem;
        font-size: 0.98rem;
    }

    .landing-btn-library span {
        text-align: center;
    }

    .landing-sub-cta {
        margin-bottom: 0.35rem;
        grid-template-columns: 1fr;
        justify-items: stretch;
    }

    .landing-sub-cta .btn {
        width: 100%;
        min-width: 0;
        justify-content: center;
    }

    .landing-hero-stage {
        margin-top: 0.45rem;
    }

    .landing-hero h1,
    .registration-title-block h1 {
        font-size: clamp(2.45rem, 12vw, 3.25rem);
        letter-spacing: -0.07em;
    }

    .landing-lead {
        font-size: 1rem;
        line-height: 1.7;
    }

    .landing-pill {
        font-size: 0.72rem;
        padding: 0.5rem 0.85rem;
    }

    .landing-info-card,
    .landing-program-card,
    .landing-plan-card,
    .landing-testimonial-card,
    .landing-contact-card {
        border-radius: 22px;
    }

    .landing-contact-card {
        padding: 1.15rem;
    }

    .landing-contact-actions {
        grid-template-columns: 1fr;
    }

    .landing-contact-quick-card {
        border-radius: 18px;
        padding: 0.9rem;
    }

    .landing-stage-panel,
    .registration-plan-panel {
        padding: 1.15rem;
        border-radius: 24px;
    }

    .landing-photo-collage-box {
        padding: 0.85rem;
        border-radius: 24px;
    }

    .landing-photo-collage-box::before {
        inset: 0.5rem;
        border-radius: 18px;
    }

    .landing-photo-highlight {
        height: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 170px 112px 112px;
        gap: 0.55rem;
    }

    .landing-photo-card {
        border-radius: 14px;
    }

    .landing-photo-card-main {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .landing-photo-card-lineup {
        grid-column: 1 / -1;
    }

    .landing-feature-chip,
    .landing-mini-stat {
        border-radius: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.001ms !important;
    }

    .landing-hero-copy > *,
    .landing-hero-stage,
    .landing-nav .navbar-collapse.show {
        animation: none !important;
    }
}

@media print {
    .sidebar-panel,
    .topbar,
    .btn,
    .pagination {
        display: none !important;
    }

    .app-shell,
    .content-panel {
        display: block;
        min-height: auto;
    }

    .content-wrap {
        padding: 0;
    }

    .content-card {
        border: 0;
        box-shadow: none;
        padding: 0 !important;
    }
}

.sms-selector {
    padding: 0.9rem 1rem;
    border: 1px solid var(--border-soft);
    border-radius: 1.25rem;
    background: color-mix(in srgb, var(--surface-glass) 84%, transparent);
}

.sms-student-list {
    min-height: clamp(20rem, 52vh, 30rem);
    max-height: clamp(20rem, 52vh, 30rem);
    overflow: auto;
    padding: 0.35rem;
}

.sms-student-item {
    display: flex;
    align-items: flex-start;
    gap: 0.62rem;
    padding: 0.5rem 0.62rem;
    border: 1px solid transparent;
    border-radius: 0.85rem;
    cursor: pointer;
    transition: border-color 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.sms-student-item + .sms-student-item {
    margin-top: 0.38rem;
}

.sms-student-item:hover {
    border-color: var(--border-soft);
    background: color-mix(in srgb, var(--surface-glass) 92%, transparent);
    transform: translateY(-1px);
}

.sms-student-item .form-check-input {
    flex: 0 0 auto;
    margin-top: 0.12rem;
}

.sms-student-content {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
}

.sms-student-head,
.sms-student-meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.6rem;
}

.sms-student-name {
    font-size: 0.96rem;
    line-height: 1.15;
}

.sms-student-contact,
.sms-student-program {
    font-size: 0.85rem;
    line-height: 1.2;
}

.sms-student-program {
    text-align: right;
    white-space: nowrap;
}

.sms-student-item.is-selected {
    border-color: rgba(179, 0, 27, 0.2);
    background: rgba(179, 0, 27, 0.06);
}

.sms-student-item.is-disabled {
    cursor: default;
    opacity: 0.88;
}

.sms-selector-locked {
    border-style: dashed;
}

.sms-selection-summary {
    display: flex;
    flex-direction: column;
    min-height: clamp(20rem, 52vh, 30rem);
    max-height: clamp(20rem, 52vh, 30rem);
    background: color-mix(in srgb, var(--surface-glass) 88%, transparent);
}

.sms-selected-list {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 0.38rem;
    overflow: auto;
    padding: 0;
}

.sms-selected-person {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.62rem 0.72rem;
    border: 1px solid var(--border-soft);
    border-radius: 0.82rem;
    background: color-mix(in srgb, var(--surface-glass) 96%, transparent);
}

.sms-selected-person-content {
    flex: 1 1 auto;
    min-width: 0;
}

.sms-selected-person-name {
    font-size: 0.98rem;
    line-height: 1.2;
}

.sms-selected-person-meta {
    font-size: 0.9rem;
    line-height: 1.3;
}

.sms-selected-remove {
    flex: 0 0 auto;
}

.sms-compose-panel {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.85rem;
}

.sms-compose-card {
    min-height: 100%;
}

.sms-compose-card-auto {
    min-height: auto;
}

.sms-message-field {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    height: clamp(16rem, 46vh, 23rem);
    min-height: clamp(16rem, 46vh, 23rem);
    flex: 0 0 auto;
    resize: vertical;
}

.crm-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.crm-toolbar .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.crm-note-box {
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    background: color-mix(in srgb, var(--surface-glass) 86%, transparent);
    padding: 1rem;
    min-height: 5rem;
}

.crm-inbox-list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    max-height: 34rem;
    overflow: auto;
}

.crm-inbox-item {
    display: block;
    border: 1px solid transparent;
    border-radius: 14px;
    padding: 0.85rem;
    color: var(--text-main);
    text-decoration: none;
    transition: border-color 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.crm-inbox-item:hover,
.crm-inbox-item.active {
    border-color: rgba(179, 0, 27, 0.18);
    background: rgba(179, 0, 27, 0.06);
    color: var(--text-main);
    transform: translateY(-1px);
}

.crm-message-thread {
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    background: color-mix(in srgb, var(--surface-glass) 84%, transparent);
    min-height: 20rem;
    max-height: 34rem;
    overflow: auto;
    padding: 1rem;
}

.crm-message {
    display: flex;
    margin-bottom: 0.8rem;
}

.crm-message.admin {
    justify-content: flex-end;
}

.crm-message-bubble {
    width: min(78%, 36rem);
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    padding: 0.75rem 0.9rem;
    background: var(--card-bg);
    color: var(--text-main);
}

.crm-message.admin .crm-message-bubble {
    background: rgba(179, 0, 27, 0.08);
    border-color: rgba(179, 0, 27, 0.16);
}

.crm-message-bubble small {
    display: block;
    margin-top: 0.45rem;
    color: var(--text-soft);
}

.crm-convert-section {
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    padding: 1rem;
    background: color-mix(in srgb, var(--surface-glass) 88%, transparent);
}

.badge-crm-trial {
    background: #f3e8ff;
    color: #6b21a8;
}

.crm-pipeline-board {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.65rem;
    overflow-x: visible;
    padding-bottom: 0;
}

.crm-pipeline-column {
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background: color-mix(in srgb, var(--surface-glass) 82%, transparent);
    min-height: 27rem;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.crm-pipeline-column.is-drop-target {
    border-color: rgba(179, 0, 27, 0.28);
    box-shadow: 0 0 0 0.2rem rgba(179, 0, 27, 0.08);
}

.crm-pipeline-column-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
    padding: 0.7rem 0.75rem 0.55rem;
    border-bottom: 1px solid var(--border-soft);
}

.crm-pipeline-column-head h3 {
    margin: 0;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.2;
}

.crm-pipeline-column-head small {
    color: var(--text-soft);
    font-size: 0.78rem;
}

.crm-pipeline-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    flex: 0 0 auto;
    margin-top: 0.25rem;
}

.pipeline-new .crm-pipeline-dot {
    background: #facc15;
}

.pipeline-contacted .crm-pipeline-dot {
    background: #3b82f6;
}

.pipeline-followup .crm-pipeline-dot {
    background: #f97316;
}

.pipeline-trial .crm-pipeline-dot {
    background: #a855f7;
}

.pipeline-enrolled .crm-pipeline-dot {
    background: #22c55e;
}

.pipeline-lost .crm-pipeline-dot {
    background: #ef4444;
}

.crm-pipeline-dropzone {
    flex: 1 1 auto;
    padding: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.crm-pipeline-card {
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    background: var(--card-bg);
    padding: 0.6rem;
    box-shadow: 0 8px 18px rgba(11, 11, 15, 0.05);
    cursor: grab;
}

.crm-pipeline-card .fw-semibold {
    font-size: 0.9rem;
    line-height: 1.2;
}

.crm-pipeline-card .badge {
    font-size: 0.68rem;
    padding: 0.22rem 0.35rem;
}

.crm-pipeline-card:active {
    cursor: grabbing;
}

.crm-pipeline-card.is-dragging {
    opacity: 0.62;
    transform: rotate(0.5deg);
}

.crm-pipeline-meta {
    display: grid;
    gap: 0.22rem;
    color: var(--text-soft);
    font-size: 0.76rem;
}

.crm-pipeline-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.crm-pipeline-note {
    margin: 0.5rem 0 0;
    color: var(--text-soft);
    font-size: 0.76rem;
    line-height: 1.35;
}

.crm-pipeline-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.crm-pipeline-card-actions .btn {
    padding: 0.22rem 0.45rem;
    font-size: 0.75rem;
    line-height: 1.25;
}

.crm-pipeline-empty {
    border: 1px dashed var(--border-soft);
    border-radius: 10px;
    padding: 0.75rem 0.5rem;
    text-align: center;
    color: var(--text-soft);
    font-size: 0.78rem;
}

.payment-workspace {
    display: grid;
    gap: 1.2rem;
}

.payment-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.payment-stat-card {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background: var(--card-bg);
    box-shadow: var(--shadow-soft);
}

.payment-stat-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 12px;
    background: var(--brand-light-red);
    color: var(--brand-deep-red);
    font-size: 1.1rem;
}

.payment-stat-card small,
.payment-preview-main small,
.payment-preview-grid small {
    display: block;
    color: var(--text-soft);
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.payment-stat-card strong {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--text-main);
    font-size: 1.08rem;
    line-height: 1.2;
}

.payment-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.payment-form-card form {
    display: grid;
    gap: 0.2rem;
}

.payment-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

.payment-preview-card {
    display: flex;
    flex-direction: column;
}

.payment-preview-main {
    padding: 1rem;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.08), rgba(255, 255, 255, 0.72));
}

.payment-preview-main strong {
    display: block;
    color: var(--text-main);
    font-size: 1.15rem;
    line-height: 1.2;
}

.payment-preview-main span {
    display: block;
    margin-top: 0.25rem;
    color: var(--text-soft);
}

.payment-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.payment-preview-grid > div {
    min-width: 0;
    padding: 0.85rem;
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.68);
}

.payment-preview-grid strong {
    display: block;
    color: var(--text-main);
    font-size: 0.98rem;
    overflow-wrap: anywhere;
}

.payment-preview-balance {
    border-color: rgba(179, 0, 27, 0.2) !important;
    background: var(--brand-light-red) !important;
}

.payment-preview-note {
    margin-top: auto;
    padding-top: 1rem;
    color: var(--text-soft);
    font-size: 0.92rem;
}

.payment-history-card {
    margin-top: 0.2rem;
}

.payment-method-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.5rem;
    border-radius: 999px;
    background: rgba(11, 11, 15, 0.06);
    color: var(--text-main);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

.payment-history-table td {
    vertical-align: middle;
}

.theme-dark .payment-stat-card,
.theme-dark .payment-preview-main,
.theme-dark .payment-preview-grid > div {
    background: var(--card-bg);
    border-color: var(--border-soft);
}

.theme-dark .payment-preview-main {
    background: linear-gradient(135deg, rgba(255, 51, 71, 0.12), rgba(255, 255, 255, 0.03));
}

.theme-dark .payment-preview-balance {
    background: rgba(255, 51, 71, 0.14) !important;
}

.theme-dark .payment-method-badge {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-main);
}

.class-calendar-card {
    overflow: hidden;
}

.class-calendar-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.15rem;
}

.class-calendar-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.45rem;
    color: var(--brand-deep-red);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.class-calendar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.class-calendar-count {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0.55rem 0.75rem;
}

.class-calendar-scroll {
    overflow-x: auto;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.72)),
        var(--card-bg);
    -webkit-overflow-scrolling: touch;
}

.class-calendar-grid {
    --calendar-row-height: 62px;
    display: grid;
    grid-template-columns: 88px repeat(7, minmax(158px, 1fr));
    grid-template-rows: auto auto;
    min-width: 1194px;
    width: 100%;
}

.class-calendar-time-head,
.class-calendar-day-head {
    position: sticky;
    top: 0;
    z-index: 4;
    min-height: 58px;
    padding: 0.75rem 0.85rem;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--border-soft);
}

.class-calendar-time-head {
    left: 0;
    grid-column: 1;
    grid-row: 1;
    z-index: 6;
    display: flex;
    align-items: center;
    color: var(--text-soft);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.class-calendar-day-head {
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.16rem;
    border-left: 1px solid var(--border-soft);
}

.class-calendar-day-head span {
    font-weight: 800;
    color: var(--text-main);
}

.class-calendar-day-head small {
    color: var(--text-soft);
    font-size: 0.75rem;
}

.class-calendar-time-column,
.class-calendar-day-column {
    grid-row: 2;
}

.class-calendar-time-column {
    position: sticky;
    left: 0;
    z-index: 3;
    grid-column: 1;
    display: grid;
    grid-template-rows: repeat(var(--calendar-slot-count), var(--calendar-row-height));
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 1px 0 0 var(--border-soft);
}

.class-calendar-time-slot {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    min-height: var(--calendar-row-height);
    padding: 0.35rem 0.7rem 0 0.35rem;
    border-top: 1px solid var(--border-soft);
    color: var(--text-soft);
    font-size: 0.72rem;
    font-weight: 700;
}

.class-calendar-day-column {
    position: relative;
    display: grid;
    grid-template-rows: repeat(var(--calendar-slot-count), var(--calendar-row-height));
    min-width: 0;
    border-left: 1px solid var(--border-soft);
    background:
        linear-gradient(90deg, rgba(11, 11, 15, 0.018), transparent 22%),
        rgba(255, 255, 255, 0.42);
}

.class-calendar-slot-line {
    min-height: var(--calendar-row-height);
    border-top: 1px solid var(--border-soft);
}

.class-schedule-block {
    grid-row: var(--schedule-start) / span var(--schedule-duration);
    position: relative;
    z-index: 2;
    min-height: 50px;
    margin: 4px 6px;
    padding: 0.6rem 0.65rem 2.2rem;
    border: 1px solid rgba(11, 11, 15, 0.08);
    border-left: 4px solid var(--schedule-accent);
    border-radius: 8px;
    background: var(--schedule-bg);
    color: #111827;
    box-shadow: 0 10px 22px rgba(11, 11, 15, 0.08);
    overflow: hidden;
}

.class-schedule-block-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.4rem;
    margin-bottom: 0.24rem;
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.2;
}

.class-schedule-block-head form {
    flex: 0 0 auto;
}

.class-schedule-actions {
    position: absolute;
    right: 0.55rem;
    bottom: 0.5rem;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 0.25rem;
}

.class-schedule-icon-button {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(11, 11, 15, 0.12);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.58);
    color: #991b1b;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.class-schedule-edit {
    color: #1d4ed8;
}

.class-schedule-edit:hover {
    background: #1d4ed8;
    color: #fff;
    transform: translateY(-1px);
}

.class-schedule-delete:hover {
    background: #991b1b;
    color: #fff;
    transform: translateY(-1px);
}

.class-schedule-title {
    margin-bottom: 0.38rem;
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.18;
}

.class-schedule-meta {
    display: grid;
    gap: 0.2rem;
    font-size: 0.73rem;
    font-weight: 600;
    line-height: 1.25;
    color: rgba(17, 24, 39, 0.72);
}

.class-schedule-meta span {
    display: flex;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
}

.class-schedule-meta i {
    flex: 0 0 auto;
    font-size: 0.78rem;
}

.class-schedule-palette-1 {
    --schedule-bg: #dbeafe;
    --schedule-accent: #2563eb;
}

.class-schedule-palette-2 {
    --schedule-bg: #dcfce7;
    --schedule-accent: #16a34a;
}

.class-schedule-palette-3 {
    --schedule-bg: #fef3c7;
    --schedule-accent: #d97706;
}

.class-schedule-palette-4 {
    --schedule-bg: #fce7f3;
    --schedule-accent: #db2777;
}

.class-schedule-palette-5 {
    --schedule-bg: #ede9fe;
    --schedule-accent: #7c3aed;
}

.class-schedule-palette-6 {
    --schedule-bg: #ccfbf1;
    --schedule-accent: #0f766e;
}

.class-calendar-day-empty {
    grid-row: 1 / span var(--calendar-slot-count);
    align-self: start;
    justify-self: center;
    margin-top: 1rem;
    padding: 0.35rem 0.55rem;
    border: 1px dashed var(--border-soft);
    border-radius: 999px;
    color: var(--text-soft);
    font-size: 0.74rem;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.78);
}

.class-calendar-empty {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px dashed var(--border-soft);
    border-radius: 12px;
    color: var(--text-soft);
    background: rgba(255, 255, 255, 0.64);
}

.class-calendar-empty i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 12px;
    background: var(--brand-light-red);
    color: var(--brand-deep-red);
    font-size: 1.25rem;
}

.class-calendar-empty strong {
    display: block;
    color: var(--text-main);
}

.class-schedule-modal {
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    color: var(--text-main);
}

.class-schedule-modal .modal-header,
.class-schedule-modal .modal-footer {
    border-color: var(--border-soft);
}

.theme-dark .modal-content,
.theme-dark .class-schedule-modal,
.theme-dark .class-calendar-scroll {
    background: var(--card-bg);
    color: var(--text-main);
    border-color: var(--border-soft);
}

.theme-dark .modal-header,
.theme-dark .modal-footer {
    border-color: var(--border-soft);
}

.theme-dark .btn-close {
    filter: invert(1) grayscale(100%);
}

.theme-dark .class-calendar-time-head,
.theme-dark .class-calendar-day-head,
.theme-dark .class-calendar-time-column,
.theme-dark .class-calendar-day-empty,
.theme-dark .class-calendar-empty {
    background: rgba(23, 26, 34, 0.96);
}

.theme-dark .class-calendar-day-column {
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.018), transparent 22%),
        rgba(255, 255, 255, 0.02);
}

.theme-dark .class-schedule-block {
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

.theme-dark .class-schedule-icon-button {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.14);
}

@media (max-width: 991.98px) {
    .payment-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .payment-section-head {
        flex-direction: column;
    }

    .payment-preview-grid {
        grid-template-columns: 1fr;
    }

    .class-calendar-toolbar {
        flex-direction: column;
    }

    .class-calendar-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .class-calendar-grid {
        --calendar-row-height: 58px;
        grid-template-columns: 82px repeat(7, minmax(150px, 1fr));
        min-width: 1132px;
    }
}

@media (max-width: 575px) {
    .payment-summary-grid {
        grid-template-columns: 1fr;
    }

    .payment-form-actions .btn {
        width: 100%;
    }

    .payment-form-card .input-group {
        flex-direction: column;
    }

    .payment-form-card .input-group > .form-control,
    .payment-form-card .input-group > .btn {
        width: 100%;
        border-radius: 0.375rem !important;
    }

    .payment-form-card .input-group > .btn {
        margin-top: 0.45rem;
    }

    .class-calendar-actions {
        align-items: stretch;
    }

    .class-calendar-count {
        width: 100%;
        justify-content: center;
    }

    .class-calendar-grid {
        --calendar-row-height: 56px;
        grid-template-columns: 76px repeat(7, minmax(142px, 1fr));
        min-width: 1070px;
    }

    .class-calendar-time-head,
    .class-calendar-day-head {
        min-height: 54px;
        padding: 0.65rem 0.7rem;
    }

    .class-schedule-block {
        padding: 0.5rem 0.55rem 2.1rem;
    }

    .class-schedule-title {
        font-size: 0.84rem;
    }
}

@media (max-width: 1399.98px) {
    .crm-pipeline-board {
        gap: 0.5rem;
    }

    .crm-pipeline-column-head {
        padding-left: 0.6rem;
        padding-right: 0.6rem;
    }

    .crm-pipeline-column-head h3 {
        font-size: 0.8rem;
    }

    .crm-pipeline-dropzone {
        padding: 0.5rem;
    }
}

@media (max-width: 991.98px) {
    .crm-pipeline-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .crm-pipeline-column {
        min-height: 24rem;
    }
}

@media (max-width: 575px) {
    .crm-pipeline-board {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1199.98px) {
    .sms-student-list,
    .sms-selection-summary {
        min-height: clamp(16rem, 40vh, 22rem);
        max-height: clamp(16rem, 40vh, 22rem);
    }

    .sms-message-field {
        height: clamp(14rem, 34vh, 18rem);
        min-height: clamp(14rem, 34vh, 18rem);
    }
}

@media (max-width: 767.98px) {
    .sms-selector {
        padding: 0.8rem;
    }

    .sms-selector .row.g-3.align-items-start {
        gap: 0.75rem !important;
    }

    .sms-student-list,
    .sms-selection-summary {
        min-height: auto;
        max-height: none;
    }

    .sms-student-list {
        max-height: 19rem;
    }

    .sms-selected-list {
        max-height: 14rem;
    }

    .sms-selection-summary {
        min-height: 16rem;
        padding: 0.8rem !important;
    }

    .sms-student-item {
        padding: 0.52rem 0.58rem;
    }

    .sms-student-head {
        flex-direction: column;
        gap: 0.25rem;
    }

    .sms-student-meta {
        flex-direction: column;
        gap: 0.15rem;
    }

    .sms-student-program {
        text-align: left;
        white-space: normal;
    }

    .sms-selected-person {
        align-items: stretch;
        flex-direction: column;
        gap: 0.32rem;
        padding: 0.55rem 0.6rem;
    }

    .sms-selected-person-name,
    .sms-selected-person-meta {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .sms-selected-remove {
        width: 100%;
        margin-top: 0.15rem;
    }

    .sms-compose-card,
    .sms-compose-card-auto {
        min-height: auto;
    }

    .sms-compose-panel {
        gap: 0.7rem;
    }

    .sms-message-field {
        height: 10rem;
        min-height: 10rem;
    }
}

.reports-hero {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.2), transparent 24%),
        radial-gradient(circle at bottom left, rgba(255, 51, 71, 0.16), transparent 32%),
        linear-gradient(135deg, #1b1b22, #101116 62%, var(--brand-deep-red) 132%);
    border-radius: 28px;
    padding: 2rem;
    color: #fff;
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    box-shadow: 0 26px 50px rgba(15, 23, 42, 0.16);
    position: relative;
    overflow: hidden;
}

.reports-hero::after {
    content: "";
    position: absolute;
    inset: auto -2% -52% 44%;
    height: 200px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    transform: rotate(-10deg);
    pointer-events: none;
}

.reports-hero > * {
    position: relative;
    z-index: 1;
}

.reports-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

.reports-hero-copy {
    max-width: 700px;
}

.reports-hero-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.reports-hero-text {
    color: rgba(255, 255, 255, 0.8);
    max-width: 580px;
    margin-bottom: 1.25rem;
}

.reports-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.reports-hero-side {
    min-width: 240px;
    display: grid;
    gap: 1rem;
    align-content: start;
}

.reports-hero-mini {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 20px;
    padding: 1rem 1.1rem;
    backdrop-filter: blur(6px);
}

.reports-hero-mini small {
    display: block;
    color: rgba(255, 255, 255, 0.72);
    margin-bottom: 0.35rem;
}

.reports-hero-mini strong {
    font-size: 1.35rem;
    font-weight: 700;
}

.reports-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.reports-kpi-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 241, 243, 0.92));
    border: 1px solid rgba(179, 0, 27, 0.1);
    border-radius: 22px;
    padding: 1.15rem;
    box-shadow: var(--shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.reports-kpi-icon {
    width: 46px;
    height: 46px;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #ffffff, rgba(179, 0, 27, 0.12));
    color: var(--brand-deep-red);
    font-size: 1.15rem;
    box-shadow: 0 12px 24px rgba(11, 11, 15, 0.08);
    margin-bottom: 0.45rem;
}

.reports-kpi-card small,
.report-preview-item span,
.report-bar-copy span,
.reports-priority-copy small {
    color: var(--text-soft);
}

.reports-kpi-card strong {
    font-size: 1.7rem;
    line-height: 1;
}

.reports-kpi-card span {
    font-size: 0.92rem;
    color: #5f6068;
}

.reports-nav-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.reports-nav-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 1rem;
    border-radius: 999px;
    background: var(--surface-glass);
    border: 1px solid rgba(179, 0, 27, 0.1);
    color: var(--text-main);
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(11, 11, 15, 0.05);
}

.reports-nav-chip:hover {
    background: var(--brand-light-red);
    color: var(--text-main);
}

.reports-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.report-preview-card {
    position: relative;
    background: var(--card-bg);
    border: 1px solid var(--border-soft);
    border-radius: 24px;
    padding: 1.3rem;
    box-shadow: var(--shadow-soft);
    overflow: hidden;
}

.report-preview-card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--brand-deep-red), rgba(255, 51, 71, 0.42));
}

.report-preview-students::after,
.report-preview-payments::after,
.report-preview-attendance::after,
.report-preview-memberships::after {
    content: "";
    position: absolute;
    top: -34px;
    right: -26px;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background: rgba(179, 0, 27, 0.07);
}

.report-preview-head,
.reports-side-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.report-preview-head h3 {
    font-size: 1.2rem;
    margin-bottom: 0.35rem;
}

.report-preview-head p {
    margin-bottom: 0;
    color: var(--text-soft);
}

.report-preview-label {
    display: inline-flex;
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-deep-red);
}

.report-preview-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    border-radius: 999px;
    background: rgba(179, 0, 27, 0.08);
    color: var(--brand-deep-red);
    font-weight: 700;
    padding: 0.45rem 0.75rem;
}

.report-preview-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-bottom: 1rem;
}

.report-preview-stats > div {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(245, 245, 245, 0.9));
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    padding: 0.9rem;
}

.report-preview-stats small {
    display: block;
    color: var(--text-soft);
    margin-bottom: 0.2rem;
}

.report-preview-stats strong {
    font-size: 1.35rem;
    line-height: 1;
}

.report-preview-list {
    display: grid;
    gap: 0.75rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.report-preview-list-tight {
    gap: 0.9rem;
}

.report-preview-item {
    display: flex;
    justify-content: space-between;
    gap: 0.9rem;
    align-items: center;
    padding: 0.9rem 0.95rem;
    border-radius: 16px;
    background: rgba(245, 245, 245, 0.8);
    border: 1px solid rgba(179, 0, 27, 0.06);
}

.report-preview-item strong,
.report-bar-copy strong,
.reports-priority-copy strong {
    display: block;
}

.report-preview-item span,
.report-preview-item .text-end span {
    display: block;
    font-size: 0.85rem;
}

.report-preview-item .text-end strong {
    font-size: 0.98rem;
}

.report-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.report-bar-row {
    display: grid;
    gap: 0.55rem;
}

.report-bar-track {
    width: 100%;
    height: 10px;
    border-radius: 999px;
    background: rgba(179, 0, 27, 0.08);
    overflow: hidden;
}

.report-bar-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-deep-red), var(--brand-bright-red));
}

.report-preview-empty {
    border: 1px dashed rgba(179, 0, 27, 0.18);
    border-radius: 16px;
    padding: 1rem;
    color: var(--text-soft);
    background: rgba(255, 241, 243, 0.44);
}

.reports-side-card {
    border-radius: 24px;
}

.reports-priority-list {
    display: grid;
    gap: 0.9rem;
}

.reports-priority-item {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    text-decoration: none;
    color: var(--text-main);
    padding: 0.95rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 243, 245, 0.86));
    border: 1px solid rgba(179, 0, 27, 0.08);
}

.reports-priority-item:hover {
    color: var(--text-main);
    border-color: rgba(179, 0, 27, 0.18);
    box-shadow: 0 16px 30px rgba(11, 11, 15, 0.06);
}

.reports-priority-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.12), rgba(255, 51, 71, 0.14));
    color: var(--brand-deep-red);
    font-size: 1rem;
}

.reports-priority-copy {
    display: grid;
    gap: 0.15rem;
}

.reports-priority-copy span {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-deep-red);
}

.reports-next-list {
    padding-left: 1.15rem;
    color: var(--text-main);
}

.reports-next-list li + li {
    margin-top: 0.9rem;
}

.theme-dark .reports-kpi-card,
.theme-dark .report-preview-stats > div,
.theme-dark .report-preview-item,
.theme-dark .reports-priority-item {
    background: linear-gradient(180deg, rgba(25, 27, 35, 0.96), rgba(18, 20, 27, 0.92));
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .reports-kpi-card span,
.theme-dark .reports-nav-chip,
.theme-dark .report-preview-badge,
.theme-dark .reports-priority-copy span {
    color: var(--text-main);
}

.theme-dark .reports-nav-chip {
    background: rgba(23, 26, 34, 0.82);
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .reports-nav-chip:hover {
    background: rgba(255, 51, 71, 0.14);
}

.theme-dark .report-preview-empty {
    background: rgba(255, 51, 71, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

@media (max-width: 1399.98px) {
    .reports-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .reports-hero {
        flex-direction: column;
    }

    .reports-hero-side,
    .reports-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .reports-hero,
    .report-preview-card,
    .reports-side-card {
        border-radius: 22px;
    }

    .reports-hero {
        padding: 1.4rem;
    }

    .reports-hero-title {
        font-size: 1.55rem;
    }

    .reports-kpi-grid,
    .report-preview-stats,
    .reports-hero-side {
        grid-template-columns: 1fr;
    }

    .report-preview-item,
    .report-preview-head,
    .reports-priority-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .report-preview-item .text-end {
        text-align: left !important;
    }
}

.library-admin-workspace {
    display: grid;
    gap: 1.5rem;
}

.library-admin-hero {
    overflow: hidden;
    position: relative;
    padding: 1.5rem !important;
}

.library-admin-hero::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--brand-deep-red), rgba(255, 51, 71, 0.38));
}

.library-admin-hero > * {
    position: relative;
    z-index: 1;
}

.library-admin-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
    color: var(--brand-deep-red);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.library-admin-title {
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    font-weight: 750;
}

.library-admin-hero-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
    flex: 0 0 auto;
}

.library-admin-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.9rem;
}

.library-admin-stat {
    min-height: 98px;
    padding: 0.9rem;
    border: 1px solid rgba(179, 0, 27, 0.1);
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 244, 246, 0.88)),
        var(--card-bg);
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    row-gap: 0.1rem;
    align-items: center;
    min-width: 0;
}

.library-admin-stat-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    grid-row: 1 / span 2;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.12), rgba(255, 51, 71, 0.16));
    color: var(--brand-deep-red);
    font-size: 1rem;
}

.library-admin-stat small {
    color: var(--text-soft);
    font-weight: 650;
    line-height: 1.2;
}

.library-admin-stat strong {
    color: var(--text-main);
    font-size: 1.35rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.library-admin-stat-wide strong {
    font-size: 1.1rem;
}

.library-admin-upload-card {
    scroll-margin-top: 1rem;
}

.library-admin-form .form-control,
.library-admin-form .form-select {
    min-height: 44px;
}

.library-admin-file-box {
    height: 100%;
    padding: 1rem;
    border: 1px dashed rgba(179, 0, 27, 0.18);
    border-radius: 16px;
    background: rgba(255, 244, 246, 0.48);
}

.library-admin-current-thumb {
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 190px;
    object-fit: cover;
    border-radius: 12px;
    background: #15151b;
    border: 1px solid rgba(11, 11, 15, 0.08);
}

.library-admin-current-video {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    background: #dcfce7;
    color: #166534;
    font-weight: 700;
}

.library-admin-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(179, 0, 27, 0.1);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.7);
    cursor: pointer;
}

.library-admin-toggle small {
    display: block;
    margin-top: 0.15rem;
    color: var(--text-soft);
}

.library-admin-side-stack {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.library-admin-category-list {
    display: grid;
    gap: 0.75rem;
}

.library-admin-category-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.85rem;
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(245, 245, 245, 0.82));
}

.library-admin-category-item strong,
.library-admin-category-item small {
    display: block;
}

.library-admin-category-item small {
    color: var(--text-soft);
    font-size: 0.82rem;
    line-height: 1.35;
}

.library-admin-category-meta {
    display: inline-flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.library-admin-empty-mini {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem;
    border: 1px dashed rgba(179, 0, 27, 0.2);
    border-radius: 14px;
    color: var(--text-soft);
    background: rgba(255, 244, 246, 0.44);
}

.library-admin-filter-form {
    padding: 0.95rem;
    border: 1px solid rgba(179, 0, 27, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 244, 246, 0.9), rgba(255, 255, 255, 0.96));
}

.library-admin-modal {
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    color: var(--text-main);
    overflow: hidden;
}

.library-admin-modal .modal-header,
.library-admin-modal .modal-footer {
    border-color: var(--border-soft);
}

.library-admin-modal .modal-body {
    background: color-mix(in srgb, var(--card-bg) 96%, transparent);
}

.library-admin-modal-actions {
    gap: 0.5rem;
}

.library-admin-table {
    min-width: 820px;
}

.library-admin-table thead th:first-child {
    width: 42%;
}

.library-admin-video-cell {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.library-admin-table-thumb {
    width: 104px;
    height: 72px;
    flex: 0 0 104px;
    border-radius: 12px;
    border: 1px solid rgba(11, 11, 15, 0.08);
    box-shadow: 0 10px 22px rgba(11, 11, 15, 0.1);
}

.library-admin-video-copy {
    min-width: 0;
}

.library-admin-video-copy small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.35;
}

.library-admin-actions {
    flex-wrap: nowrap;
}

.library-admin-actions form {
    display: inline-flex;
}

.library-admin-empty-state {
    max-width: 440px;
    margin: 0 auto;
}

.library-admin-empty-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(179, 0, 27, 0.12), rgba(255, 51, 71, 0.16));
    color: var(--brand-deep-red);
    font-size: 1.5rem;
}

.theme-dark .library-admin-stat,
.theme-dark .library-admin-file-box,
.theme-dark .library-admin-filter-form,
.theme-dark .library-admin-category-item,
.theme-dark .library-admin-modal .modal-body {
    background: linear-gradient(180deg, rgba(25, 27, 35, 0.96), rgba(18, 20, 27, 0.92));
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .library-admin-toggle {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
}

.theme-dark .library-admin-current-video {
    background: rgba(34, 197, 94, 0.18);
    color: #bbf7d0;
    border: 1px solid rgba(34, 197, 94, 0.26);
}

.theme-dark .library-admin-empty-mini {
    background: rgba(255, 51, 71, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
}

@media (max-width: 1199.98px) {
    .library-admin-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .library-admin-stat-wide {
        grid-column: span 2;
    }

}

@media (max-width: 767.98px) {
    .library-admin-workspace {
        gap: 1rem;
    }

    .library-admin-hero-head,
    .library-admin-section-head {
        flex-direction: column;
    }

    .library-admin-hero-actions {
        width: 100%;
    }

    .library-admin-hero-head .btn,
    .library-admin-section-head .btn,
    .library-admin-form-actions .btn {
        width: 100%;
    }

    .library-admin-stat-grid {
        grid-template-columns: 1fr;
    }

    .library-admin-stat {
        min-height: 0;
    }

    .library-admin-stat-wide {
        grid-column: auto;
    }

    .library-admin-file-box,
    .library-admin-filter-form,
    .library-admin-toggle {
        border-radius: 14px;
    }

    .content-card .table-responsive > .library-admin-table,
    .library-admin-table {
        min-width: 0 !important;
    }

    .library-admin-video-cell {
        align-items: flex-start;
    }

    .library-admin-table-thumb {
        width: 88px;
        height: 64px;
        flex-basis: 88px;
    }

    .library-admin-actions,
    .library-admin-actions form {
        width: 100%;
    }

    .library-admin-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .library-admin-actions form .btn {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .library-admin-video-cell {
        flex-direction: column;
    }

    .library-admin-table-thumb {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        flex-basis: auto;
    }
}

.grading-set-list,
.grading-progress-list,
.grading-roster-list,
.grading-candidate-list,
.grading-event-checklist {
    display: grid;
    gap: 0.75rem;
}

.grading-set-link,
.grading-roster-item,
.grading-candidate-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.85rem;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    color: var(--text-main);
    text-decoration: none;
    background: var(--card-bg);
}

.grading-set-link small,
.grading-roster-item small,
.grading-candidate-item small {
    display: block;
    color: var(--text-soft);
}

.grading-set-link.active,
.grading-roster-item.active {
    border-color: var(--brand-deep-red);
    box-shadow: 0 0 0 3px var(--focus-ring);
}

.grading-requirement-row,
.grading-progress-item,
.grading-event-check-item {
    padding: 1rem;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
}

.theme-dark .grading-requirement-row,
.theme-dark .grading-progress-item,
.theme-dark .grading-event-check-item {
    background: rgba(255, 255, 255, 0.03);
}

.grading-stat-card {
    min-height: 128px;
}

.grading-stat-value {
    margin-top: 0.45rem;
    font-size: 1.35rem;
    font-weight: 750;
    line-height: 1.2;
}

.grading-readiness-list {
    display: grid;
    gap: 0.75rem;
}

.grading-readiness-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-soft);
}

.grading-readiness-list > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.student-eligibility-list {
    gap: 0.65rem;
}

.student-eligibility-list > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    column-gap: 1.25rem;
    row-gap: 0.2rem;
}

.student-eligibility-list span {
    min-width: 0;
    color: var(--text-soft);
    overflow-wrap: anywhere;
}

.student-eligibility-list strong {
    min-width: max-content;
    text-align: right;
    font-weight: 750;
    color: var(--text-main);
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .student-eligibility-list > div {
        grid-template-columns: 1fr;
    }

    .student-eligibility-list strong {
        text-align: left;
    }
}

.grading-student-note {
    padding: 0.75rem;
    border-radius: 8px;
    background: var(--brand-light-red);
    color: var(--text-main);
}

.grading-tablet-roster,
.grading-tablet-panel {
    min-height: 66vh;
}

.grading-roster-item {
    justify-content: flex-start;
}

.grading-roster-item img {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    object-fit: cover;
    flex: 0 0 auto;
}

.grading-result-buttons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.grading-result-choice {
    min-height: 64px;
}

.grading-result-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.grading-result-choice span {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 64px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    font-weight: 700;
    background: var(--card-bg);
    cursor: pointer;
}

.grading-result-choice.is-selected span,
.grading-result-choice input:checked + span {
    border-color: var(--brand-deep-red);
    background: var(--brand-deep-red);
    color: #fff;
}

.grading-candidate-item {
    justify-content: flex-start;
}

.grading-candidate-item.is-disabled {
    opacity: 0.55;
}

@media (max-width: 991.98px) {
    .grading-tablet-roster,
    .grading-tablet-panel {
        min-height: 0;
    }

    .grading-result-buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
