/* ==========================================================================
   THEME SYSTEM — Nihongo AI Coach
   Premium Light / Dark Mode with CSS Custom Properties
   ========================================================================== */

/* === Smooth Theme Transition === */
html.theme-transition,
html.theme-transition *,
html.theme-transition *::before,
html.theme-transition *::after {
    transition: background-color 0.35s ease, color 0.35s ease,
                border-color 0.35s ease, box-shadow 0.35s ease,
                fill 0.35s ease, stroke 0.35s ease,
                backdrop-filter 0.35s ease !important;
}

/* ============================================================
   LIGHT MODE
   ============================================================ */
[data-theme="light"] {
    /* Backgrounds */
    --bg-main: #f6f8fc;
    --bg-page: #f8fafc;
    --bg-soft: #eef3fb;
    --bg-card: #ffffff;
    --bg-card-2: #f8fbff;
    --bg-card-hover: #f1f7ff;
    --bg-input: #ffffff;
    --bg-navbar: rgba(255, 255, 255, 0.92);
    --bg-footer: rgba(255, 255, 255, 0.8);
    --bg-dropdown: #ffffff;
    --bg-dropdown-hover: #f0f7ff;
    --bg-modal: #ffffff;
    --bg-overlay: rgba(15, 23, 42, 0.45);
    --bg-code: #f1f5f9;
    --bg-table-header: #f8fafc;
    --bg-table-hover: #f8fafc;

    /* Text — WCAG AA compliant contrast ratios */
    --text-main: #0f172a;          /* 15.4:1 on #ffffff */
    --text-soft: #334155;          /* 8.6:1 on #ffffff */
    --text-muted: #64748b;         /* 4.6:1 on #ffffff — AA pass */
    --text-disabled: #6b7280;      /* 4.8:1 on #ffffff — AA pass for disabled/placeholder */
    --text-link: #1d4ed8;          /* 7.0:1 on #ffffff — AA pass, enhanced from #2563eb */
    --text-link-hover: #1e40af;    /* 9.3:1 on #ffffff */

    /* Borders */
    --border-soft: rgba(15, 23, 42, 0.08);
    --border-medium: rgba(15, 23, 42, 0.14);
    --border-strong: rgba(15, 23, 42, 0.22);
    --border-input: rgba(15, 23, 42, 0.18);
    --border-input-focus: #1d4ed8;

    /* Inputs */
    --input-bg: #ffffff;
    --input-text: #0f172a;
    --input-placeholder: #6b7280;  /* 4.8:1 on #ffffff — AA pass */
    --input-border: rgba(15, 23, 42, 0.18);

    /* Primary & Accent */
    --primary: #2563eb;
    --primary-hover: #1d4ed8;
    --primary-soft: rgba(37, 99, 235, 0.10);
    --accent-sakura: #f43f7f;
    --accent-sakura-soft: rgba(244, 63, 127, 0.12);
    --accent-green: #58c83d;
    --accent-green-hover: #49a92f;
    --accent-green-soft: rgba(88, 200, 61, 0.14);
    --accent-green-bg: linear-gradient(135deg, var(--mint, #edf9e5), #d1fae5);
    --accent-yellow: #eab308;
    --accent-yellow-bg: #fefce8;
    --accent-orange: #f97316;
    --accent-orange-soft: rgba(249, 115, 22, 0.12);
    --accent-purple: #7c3aed;
    --accent-purple-soft: rgba(124, 58, 237, 0.12);

    /* Semantic */
    --success-bg: #eaf8e6;
    --success-text: #2f8a1f;
    --warning-bg: #fff2df;
    --warning-text: #c2410c;
    --danger-bg: #ffe8ee;
    --danger-text: #be123c;
    --info-bg: #e8f1ff;
    --info-text: #1d4ed8;

    /* Accent Tints */
    --accent-purple-bg: #f1edff;
    --accent-purple-text: #7c3aed;
    --accent-blue-bg: #e8f5ff;
    --accent-blue-text: #2563eb;
    --accent-rose-bg: #fff1f2;
    --accent-rose-text: #e11d48;

    /* Shadows */
    --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.04);
    --shadow-md: 0 8px 24px rgba(15, 23, 42, 0.06);
    --shadow-lg: 0 20px 50px rgba(15, 23, 42, 0.08);
    --shadow-card: 0 16px 40px rgba(15, 23, 42, 0.08);
    --shadow-card-hover: 0 20px 50px rgba(15, 23, 42, 0.12);
    --shadow-soft: 0 10px 26px rgba(15, 23, 42, 0.06);

    /* Body Gradient */
    --gradient-body: linear-gradient(135deg, #f6f8fc 0%, #eef3fb 45%, #fff7fb 100%);

    /* Glass */
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-border: rgba(255, 255, 255, 0.8);
    --glass-blur: blur(16px);

    /* Scrollbar */
    --scrollbar-track: #f1f5f9;
    --scrollbar-thumb: #cbd5e1;
    --scrollbar-thumb-hover: #94a3b8;

    /* Streak */
    --streak-bg: #fff2df;
    --streak-text: #c2410c;
    --streak-border: rgba(249, 115, 22, 0.35);
    --streak-shadow: 0 8px 26px rgba(249, 115, 22, 0.12);

    /* Notification */
    --notif-unread-bg: #fff5f5;

    /* Flashcard */
    --fc-face-bg:
        radial-gradient(circle at top left, rgba(255, 228, 236, 0.6), transparent 35%),
        radial-gradient(circle at bottom right, rgba(232, 245, 255, 0.5), transparent 35%),
        #ffffff;
    --fc-watermark: rgba(88, 200, 61, 0.04);
}

/* ============================================================
   DARK MODE
   ============================================================ */
[data-theme="dark"] {
    /* Backgrounds */
    --bg-main: #070b16;
    --bg-page: #0b1020;
    --bg-soft: #0f172a;
    --bg-card: #111827;
    --bg-card-2: #162033;
    --bg-card-hover: #1b2740;
    --bg-input: #172033;
    --bg-navbar: rgba(7, 11, 22, 0.92);
    --bg-footer: rgba(7, 11, 22, 0.85);
    --bg-dropdown: #1e293b;
    --bg-dropdown-hover: #253449;
    --bg-modal: #1e293b;
    --bg-overlay: rgba(0, 0, 0, 0.65);
    --bg-code: #1e293b;
    --bg-table-header: #1e293b;
    --bg-table-hover: #1e293b;

    /* Text — WCAG AA compliant contrast ratios on dark backgrounds */
    --text-main: #f8fafc;          /* 15.7:1 on #111827 */
    --text-soft: #cbd5e1;          /* 10.5:1 on #111827 */
    --text-muted: #94a3b8;         /* 7.3:1 on #111827 — AA pass */
    --text-disabled: #94a3b8;      /* 7.3:1 on #111827 — AA pass (was #64748b = 3.8:1 FAIL) */
    --text-link: #60a5fa;          /* 6.0:1 on #111827 — AA pass */
    --text-link-hover: #93c5fd;    /* 10.2:1 on #111827 */

    /* Borders */
    --border-soft: rgba(148, 163, 184, 0.18);
    --border-medium: rgba(148, 163, 184, 0.28);
    --border-strong: rgba(148, 163, 184, 0.38);
    --border-input: rgba(148, 163, 184, 0.28);
    --border-input-focus: #60a5fa;

    /* Inputs */
    --input-bg: #172033;
    --input-text: #f8fafc;
    --input-placeholder: #94a3b8;  /* 7.3:1 on #172033 — AA pass */
    --input-border: rgba(148, 163, 184, 0.28);

    /* Primary & Accent */
    --primary: #63b3ff;
    --primary-hover: #3b82f6;
    --primary-soft: rgba(99, 179, 255, 0.14);
    --accent-sakura: #ff5c8a;
    --accent-sakura-soft: rgba(255, 92, 138, 0.16);
    --accent-green: #65c747;
    --accent-green-hover: #55b63a;
    --accent-green-soft: rgba(101, 199, 71, 0.16);
    --accent-green-bg: rgba(101, 199, 71, 0.16);
    --accent-yellow: #facc15;
    --accent-yellow-bg: rgba(250, 204, 21, 0.12);
    --accent-orange: #fb923c;
    --accent-orange-soft: rgba(251, 146, 60, 0.16);
    --accent-purple: #a78bfa;
    --accent-purple-soft: rgba(167, 139, 250, 0.16);

    /* Semantic */
    --success-bg: rgba(34, 197, 94, 0.16);
    --success-text: #86efac;
    --warning-bg: rgba(251, 146, 60, 0.16);
    --warning-text: #fdba74;
    --danger-bg: rgba(244, 63, 94, 0.16);
    --danger-text: #fda4af;
    --info-bg: rgba(59, 130, 246, 0.16);
    --info-text: #93c5fd;

    /* Accent Tints */
    --accent-purple-bg: rgba(167, 139, 250, 0.16);
    --accent-purple-text: #c4b5fd;
    --accent-blue-bg: rgba(99, 179, 255, 0.12);
    --accent-blue-text: #93c5fd;
    --accent-rose-bg: rgba(255, 92, 138, 0.12);
    --accent-rose-text: #fda4af;

    /* Shadows */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.5);
    --shadow-card: 0 20px 50px rgba(0, 0, 0, 0.35);
    --shadow-card-hover: 0 25px 60px rgba(0, 0, 0, 0.45);
    --shadow-soft: 0 12px 30px rgba(0, 0, 0, 0.22);

    /* Body Gradient */
    --gradient-body:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.16), transparent 32%),
        radial-gradient(circle at top right, rgba(99, 179, 255, 0.14), transparent 30%),
        #070b16;

    /* Glass */
    --glass-bg: rgba(17, 24, 39, 0.75);
    --glass-border: rgba(148, 163, 184, 0.12);
    --glass-blur: blur(20px);

    /* Scrollbar */
    --scrollbar-track: #0f172a;
    --scrollbar-thumb: #334155;
    --scrollbar-thumb-hover: #475569;

    /* Streak */
    --streak-bg: rgba(251, 146, 60, 0.16);
    --streak-text: #fdba74;
    --streak-border: rgba(251, 146, 60, 0.35);
    --streak-shadow: 0 8px 26px rgba(251, 146, 60, 0.18);

    /* Notification */
    --notif-unread-bg: rgba(255, 92, 138, 0.08);

    /* Flashcard */
    --fc-face-bg:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.08), transparent 35%),
        radial-gradient(circle at bottom right, rgba(99, 179, 255, 0.06), transparent 35%),
        #111827;
    --fc-watermark: rgba(101, 199, 71, 0.03);
}

/* ============================================================
   APPLY THEME TO CORE ELEMENTS
   ============================================================ */

/* Body */
[data-theme="dark"] body {
    background: var(--gradient-body) !important;
    color: var(--text-main);
}

/* Scrollbar */
[data-theme="dark"] ::-webkit-scrollbar { width: 8px; height: 8px; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--scrollbar-track); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 4px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); }

/* ============================================================
   HEADER ACTIONS LAYOUT
   ============================================================ */

.header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-left: auto;
}

.header-action-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Shared icon button style */
.icon-button,
.theme-toggle-button {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
    background: var(--bg-card);
    color: var(--text-soft);
    box-shadow: var(--shadow-sm);
    transition: all 0.2s ease;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}

.icon-button:hover,
.theme-toggle-button:hover {
    transform: translateY(-1px);
    background: var(--bg-card-hover);
    border-color: var(--border-strong);
    color: var(--primary);
    box-shadow: var(--shadow-md);
}

.icon-button:active,
.theme-toggle-button:active {
    transform: translateY(0) scale(0.96);
}

.icon-button:focus-visible,
.theme-toggle-button:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

/* Theme toggle specific */
.theme-toggle-button svg {
    transition: transform 0.3s ease;
}

.theme-toggle-button:hover svg {
    transform: rotate(20deg);
}

/* Streak pill */
.streak-pill {
    height: 44px;
    padding: 0 16px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--streak-border);
    background: var(--streak-bg);
    color: var(--streak-text);
    font-weight: 700;
    font-size: 0.9rem;
    box-shadow: var(--streak-shadow);
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.streak-pill:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 30px rgba(251, 146, 60, 0.25);
}

/* Notification button */
.notification-button {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-soft);
    background: var(--bg-card);
    color: var(--text-soft);
    box-shadow: var(--shadow-sm);
    transition: all 0.2s ease;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    text-decoration: none;
}

.notification-button:hover {
    transform: translateY(-1px);
    background: var(--bg-card-hover);
    border-color: var(--border-strong);
    color: var(--primary);
}

/* Profile menu */
.profile-menu {
    height: 48px;
    padding: 4px 14px 4px 6px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--border-soft);
    background: var(--bg-card);
    color: var(--text-main);
    box-shadow: var(--shadow-sm);
    transition: all 0.2s ease;
    cursor: pointer;
    flex-shrink: 0;
}

.profile-menu:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
}

/* ============================================================
   NAVBAR
   ============================================================ */
.soft-navbar,
.soft-navbar * {
    font-family: 'Nunito', 'Noto Sans JP', sans-serif !important;
}

.soft-navbar .nav-link,
.soft-navbar .nav-dropdown-toggle {
    font-size: 0.95rem !important;
    font-weight: 600 !important;
}

.soft-navbar .navbar-brand {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
}

[data-theme="dark"] .soft-navbar {
    background: var(--bg-navbar);
    border-bottom-color: var(--border-soft);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .soft-navbar .nav-link {
    color: var(--text-soft);
}

[data-theme="dark"] .soft-navbar .nav-link:hover {
    background: var(--accent-green-bg);
    color: var(--accent-green);
}

[data-theme="dark"] .soft-navbar .nav-link.active {
    color: var(--accent-green);
}

[data-theme="dark"] .brand-icon {
    background: var(--accent-sakura-bg);
}

[data-theme="dark"] .nav-dropdown-menu {
    background: var(--bg-dropdown);
    border-color: var(--border-soft);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .nav-dropdown-item {
    color: var(--text-main);
}

[data-theme="dark"] .nav-dropdown-item:hover {
    background: var(--bg-dropdown-hover);
    color: var(--accent-green);
}

[data-theme="dark"] .nav-dropdown-section {
    color: var(--text-muted);
}

[data-theme="dark"] .nav-arrow {
    color: var(--text-muted);
}

/* Navbar buttons (legacy) */
[data-theme="dark"] .navbar-user-btn {
    background: var(--bg-card);
    border-color: var(--border-soft);
    color: var(--text-main);
}

[data-theme="dark"] .navbar-user-btn:hover {
    border-color: var(--primary);
    background: var(--primary-bg);
}

[data-theme="dark"] .navbar-streak-badge {
    background: var(--streak-bg);
    color: var(--streak-text);
    border-color: var(--streak-border);
}

[data-theme="dark"] .navbar-xp-badge {
    background: var(--accent-green-bg);
    color: var(--accent-green);
}

[data-theme="dark"] .navbar-bloomed-badge {
    background: var(--accent-rose-bg);
    color: var(--accent-sakura);
}

/* User dropdown */
[data-theme="dark"] .user-dropdown {
    background: var(--bg-dropdown);
    border-color: var(--border-soft);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .user-dropdown .dropdown-item {
    color: var(--text-main);
}

[data-theme="dark"] .user-dropdown .dropdown-item:hover {
    background: var(--bg-dropdown-hover);
    color: var(--accent-green);
}

[data-theme="dark"] .dropdown-item-logout:hover {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .dropdown-user-info {
    color: var(--text-main);
}

/* Notification dropdown */
[data-theme="dark"] #notificationDropdown .dropdown-item {
    color: var(--text-main);
}

[data-theme="dark"] #notificationDropdown .dropdown-item:hover {
    background: var(--bg-dropdown-hover);
}

[data-theme="dark"] #notificationDropdown .small.text-dark {
    color: var(--text-main) !important;
}

[data-theme="dark"] #notificationDropdown .text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] #notificationDropdown .text-dark {
    color: var(--text-main) !important;
}

/* Unread notification highlight */
[data-theme="dark"] #notificationDropdown .dropdown-item[style*="background: #fff5f5"],
[data-theme="dark"] #notificationDropdown .dropdown-item[style*="background:#fff5f5"] {
    background: var(--notif-unread-bg) !important;
}

/* Navbar toggler */
[data-theme="dark"] .navbar-toggler {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .navbar-toggler-icon {
    filter: invert(1);
}

/* ============================================================
   FOOTER
   ============================================================ */
[data-theme="dark"] .soft-footer {
    background: var(--bg-footer);
    border-top-color: var(--border-soft);
}

[data-theme="dark"] .soft-footer h5 {
    color: var(--text-main);
}

[data-theme="dark"] .soft-footer .text-muted {
    color: var(--text-muted) !important;
}

/* ============================================================
   CARDS
   ============================================================ */
[data-theme="dark"] .feature-card {
    background: var(--bg-card);
    box-shadow: var(--shadow-card);
    border: 1px solid var(--border-soft);
}

[data-theme="dark"] .feature-card:hover {
    box-shadow: var(--shadow-card-hover);
}

[data-theme="dark"] .feature-card h4 {
    color: var(--text-main);
}

[data-theme="dark"] .feature-card p {
    color: var(--text-muted);
}

[data-theme="dark"] .feature-icon {
    background: var(--accent-green-bg);
}

[data-theme="dark"] .learning-card {
    background: var(--bg-card);
    box-shadow: var(--shadow-lg);
    border-color: var(--border-soft);
}

[data-theme="dark"] .responsive-card {
    background: var(--bg-card);
    box-shadow: var(--shadow-card);
    border-color: var(--border-soft);
}

/* ============================================================
   HERO SECTION
   ============================================================ */
[data-theme="dark"] .soft-badge {
    background: var(--bg-card);
    border-color: var(--accent-green-bg);
    color: var(--accent-green);
    box-shadow: var(--shadow-md);
}

[data-theme="dark"] .hero-stats div {
    background: var(--bg-card);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-soft);
}

[data-theme="dark"] .hero-stats span {
    color: var(--text-muted);
}

[data-theme="dark"] .hero-stats strong {
    color: var(--text-main);
}

/* ============================================================
   BUTTONS
   ============================================================ */
[data-theme="dark"] .btn-outline-success {
    color: var(--accent-green);
    border-color: var(--accent-green);
}

[data-theme="dark"] .btn-outline-success:hover {
    background: var(--accent-green-bg);
    color: var(--accent-green);
    border-color: var(--accent-green);
}

[data-theme="dark"] .btn-success {
    background: var(--accent-green);
    border-color: var(--accent-green);
}

[data-theme="dark"] .btn-outline-secondary {
    color: var(--text-muted);
    border-color: var(--border-strong);
}

[data-theme="dark"] .btn-outline-secondary:hover {
    background: var(--bg-card-hover);
    color: var(--text-main);
    border-color: var(--border-strong);
}

[data-theme="dark"] .btn-outline-danger {
    color: var(--danger-text);
    border-color: var(--danger-text);
}

[data-theme="dark"] .btn-outline-danger:hover {
    background: var(--danger-bg);
    color: var(--danger-text);
}

[data-theme="dark"] .btn-light {
    background: var(--bg-card);
    border-color: var(--border-soft);
    color: var(--text-main);
}

[data-theme="dark"] .btn-light:hover {
    background: var(--bg-card-hover);
    border-color: var(--border-strong);
    color: var(--text-main);
}

/* ============================================================
   FORM ELEMENTS
   ============================================================ */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--bg-input);
    border-color: var(--border-input);
    color: var(--text-main);
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--bg-input);
    border-color: var(--border-input-focus);
    color: var(--text-main);
    box-shadow: 0 0 0 3px rgba(99, 179, 255, 0.15);
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--text-muted);
}

[data-theme="dark"] .form-label {
    color: var(--text-main);
}

[data-theme="dark"] .input-group-text {
    background-color: var(--bg-card-hover);
    border-color: var(--border-input);
    color: var(--text-muted);
}

/* ============================================================
   TABLES
   ============================================================ */
[data-theme="dark"] .table { color: var(--text-main); border-color: var(--border-soft); }
[data-theme="dark"] .table thead th { background: var(--bg-table-header); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .table tbody td { border-color: var(--border-soft); }
[data-theme="dark"] .table-hover tbody tr:hover { background: var(--bg-table-hover); }
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) { background: rgba(255, 255, 255, 0.02); }
[data-theme="dark"] .table-responsive-soft { border-color: var(--border-soft); }

/* ============================================================
   BADGES
   ============================================================ */
[data-theme="dark"] .badge.bg-success { background: var(--success-bg) !important; color: var(--success-text) !important; }
[data-theme="dark"] .badge.bg-danger { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
[data-theme="dark"] .badge.bg-warning { background: var(--warning-bg) !important; color: var(--warning-text) !important; }
[data-theme="dark"] .badge.bg-info { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .badge.bg-primary { background: var(--primary-bg) !important; color: var(--primary) !important; }

/* ============================================================
   PROGRESS BARS
   ============================================================ */
[data-theme="dark"] .soft-progress { background: var(--bg-card-hover); }
[data-theme="dark"] .progress { background-color: var(--bg-card-hover); }

/* ============================================================
   ALERTS
   ============================================================ */
[data-theme="dark"] .alert-success { background: var(--success-bg); border-color: var(--success-bg); color: var(--success-text); }
[data-theme="dark"] .alert-danger { background: var(--danger-bg); border-color: var(--danger-bg); color: var(--danger-text); }
[data-theme="dark"] .alert-warning { background: var(--warning-bg); border-color: var(--warning-bg); color: var(--warning-text); }
[data-theme="dark"] .alert-info { background: var(--info-bg); border-color: var(--info-bg); color: var(--info-text); }

/* ============================================================
   MODALS
   ============================================================ */
[data-theme="dark"] .modal-content { background: var(--bg-modal); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .modal-header { border-bottom-color: var(--border-soft); }
[data-theme="dark"] .modal-footer { border-top-color: var(--border-soft); }
[data-theme="dark"] .custom-modal-card { background: var(--bg-modal); border-color: var(--border-soft); }
[data-theme="dark"] .custom-modal-overlay { background: var(--bg-overlay); }

/* ============================================================
   DROPDOWNS
   ============================================================ */
[data-theme="dark"] .dropdown-menu { background: var(--bg-dropdown); border-color: var(--border-soft); box-shadow: var(--shadow-lg); }
[data-theme="dark"] .dropdown-item { color: var(--text-main); }
[data-theme="dark"] .dropdown-item:hover, [data-theme="dark"] .dropdown-item:focus { background: var(--bg-dropdown-hover); color: var(--text-main); }
[data-theme="dark"] .dropdown-divider { border-color: var(--border-soft); }

/* ============================================================
   ACCORDION
   ============================================================ */
[data-theme="dark"] .accordion-item { background: var(--bg-card); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .accordion-button { background: var(--bg-card); color: var(--text-main); }
[data-theme="dark"] .accordion-button:not(.collapsed) { background: var(--accent-green-bg); color: var(--text-main); }
[data-theme="dark"] .accordion-button::after { filter: invert(1); }
[data-theme="dark"] .accordion-body { background: var(--bg-card); color: var(--text-main); }

/* ============================================================
   TABS & NAV PILLS
   ============================================================ */
[data-theme="dark"] .nav-pills .nav-link { color: var(--text-muted); }
[data-theme="dark"] .nav-pills .nav-link.active { background: var(--accent-green-bg); color: var(--accent-green); }
[data-theme="dark"] .nav-tabs { border-color: var(--border-soft); }
[data-theme="dark"] .nav-tabs .nav-link { color: var(--text-muted); }
[data-theme="dark"] .nav-tabs .nav-link.active { background: var(--bg-card); color: var(--text-main); border-color: var(--border-soft); border-bottom-color: var(--bg-card); }

/* ============================================================
   TOAST
   ============================================================ */
[data-theme="dark"] .toast { background: var(--bg-card); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .toast-header { background: var(--bg-card-hover); border-bottom-color: var(--border-soft); color: var(--text-main); }

/* ============================================================
   PAGINATION
   ============================================================ */
[data-theme="dark"] .page-link { background: var(--bg-card); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .page-link:hover { background: var(--bg-card-hover); color: var(--text-main); }
[data-theme="dark"] .page-item.active .page-link { background: var(--accent-green-bg); border-color: var(--accent-green); color: var(--accent-green); }

/* ============================================================
   CARD (Bootstrap)
   ============================================================ */
[data-theme="dark"] .card { background: var(--bg-card); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .card-header { background: var(--bg-card-hover); border-color: var(--border-soft); }
[data-theme="dark"] .card-footer { background: var(--bg-card-hover); border-color: var(--border-soft); }

/* ============================================================
   LIST GROUP
   ============================================================ */
[data-theme="dark"] .list-group-item { background: var(--bg-card); border-color: var(--border-soft); color: var(--text-main); }
[data-theme="dark"] .list-group-item:hover { background: var(--bg-card-hover); }
[data-theme="dark"] .list-group-item.active { background: var(--accent-green-bg); border-color: var(--accent-green); color: var(--accent-green); }

/* ============================================================
   TEXT UTILITIES
   ============================================================ */
[data-theme="dark"] .text-dark { color: var(--text-main) !important; }
[data-theme="dark"] .text-muted { color: var(--text-muted) !important; }
[data-theme="dark"] .text-body { color: var(--text-main) !important; }
[data-theme="dark"] .text-secondary { color: var(--text-muted) !important; }

/* ============================================================
   BACKGROUND UTILITIES
   ============================================================ */
[data-theme="dark"] .bg-white { background-color: var(--bg-card) !important; }
[data-theme="dark"] .bg-light { background-color: var(--bg-soft) !important; }
[data-theme="dark"] .bg-body { background-color: var(--bg-main) !important; }
[data-theme="dark"] .bg-body-tertiary { background-color: var(--bg-soft) !important; }

/* ============================================================
   BORDER UTILITIES
   ============================================================ */
[data-theme="dark"] .border { border-color: var(--border-soft) !important; }
[data-theme="dark"] .border-top { border-top-color: var(--border-soft) !important; }
[data-theme="dark"] .border-bottom { border-bottom-color: var(--border-soft) !important; }

/* ============================================================
   LINKS
   ============================================================ */
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):not(.nav-dropdown-item) {
    color: var(--text-link);
}
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.page-link):not(.nav-dropdown-item):hover {
    color: var(--text-link-hover);
}

/* ============================================================
   RUBY / FURIGANA
   ============================================================ */
[data-theme="dark"] rt { color: var(--text-muted); }

/* ============================================================
   TRANSCRIPT LINES
   ============================================================ */
[data-theme="dark"] .transcript-line { background: rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .transcript-line:hover { background: rgba(255, 255, 255, 0.06) !important; }
[data-theme="dark"] .active-transcript-line { background: var(--accent-green-bg) !important; }

/* ============================================================
   AI CARDS
   ============================================================ */
[data-theme="dark"] .ai-analysis-card {
    background: var(--bg-card);
    background-image: linear-gradient(var(--bg-modal), var(--bg-modal)),
                      linear-gradient(135deg, #a855f7 0%, #ec4899 100%);
    box-shadow: 0 15px 40px rgba(168, 85, 247, 0.15);
}

[data-theme="dark"] .ai-tip { background: var(--accent-purple-bg); }
[data-theme="dark"] .example-box { background: var(--accent-blue-bg); }
[data-theme="dark"] .level-pill { background: var(--accent-green-bg); color: var(--accent-green); }

/* ============================================================
   FLOATING BUTTON
   ============================================================ */
[data-theme="dark"] .floating-submit-btn { box-shadow: 0 8px 24px rgba(101, 199, 71, 0.3); }
[data-theme="dark"] .floating-submit-btn:hover { box-shadow: 0 12px 30px rgba(101, 199, 71, 0.5); }

/* ============================================================
   BOOTSTRAP SUBTLE BACKGROUNDS
   ============================================================ */
[data-theme="dark"] .bg-success-subtle { background-color: var(--success-bg) !important; }
[data-theme="dark"] .bg-danger-subtle { background-color: var(--danger-bg) !important; }
[data-theme="dark"] .bg-warning-subtle { background-color: var(--warning-bg) !important; }
[data-theme="dark"] .bg-info-subtle { background-color: var(--info-bg) !important; }

/* ============================================================
   TODAY PAGE — STAT CARDS
   ============================================================ */
[data-theme="dark"] .stat-card {
    background: var(--bg-card);
    border-color: var(--border-soft);
    box-shadow: var(--shadow-card);
}

[data-theme="dark"] .stat-card:hover {
    box-shadow: var(--shadow-card-hover);
}

[data-theme="dark"] .stat-card .stat-value {
    color: var(--text-main);
}

[data-theme="dark"] .stat-card .stat-label {
    color: var(--text-muted);
}

/* Glass panel */
[data-theme="dark"] .glass-panel {
    background: var(--glass-bg);
    border-color: var(--border-soft);
    box-shadow: var(--shadow-md);
}

/* Task items */
[data-theme="dark"] .task-item {
    background: var(--bg-card);
    border-color: var(--border-soft);
}

[data-theme="dark"] .task-item:hover {
    border-color: var(--accent-sakura);
    box-shadow: var(--shadow-md);
}

[data-theme="dark"] .task-title { color: var(--text-main); }
[data-theme="dark"] .task-desc { color: var(--text-muted); }

[data-theme="dark"] .task-icon-container {
    background: var(--accent-sakura-bg);
    border-color: rgba(255, 92, 138, 0.2);
}

[data-theme="dark"] .task-completed {
    background: var(--bg-soft);
    border-color: var(--border-soft);
    opacity: 0.7;
}

[data-theme="dark"] .task-completed .task-title {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .task-completed .task-icon-container {
    background: var(--bg-card-hover);
    border-color: var(--border-soft);
}

/* Soft buttons */
[data-theme="dark"] .btn-soft-primary {
    background: var(--primary-bg);
    color: var(--primary);
    border-color: rgba(99, 179, 255, 0.2);
}

[data-theme="dark"] .btn-soft-primary:hover {
    background: var(--primary);
    color: #fff;
}

[data-theme="dark"] .btn-soft-success {
    background: var(--success-bg);
    color: var(--accent-green);
    border-color: rgba(101, 199, 71, 0.2);
}

[data-theme="dark"] .btn-soft-success:hover:not(:disabled) {
    background: var(--accent-green);
    color: #fff;
}

[data-theme="dark"] .btn-soft-success:disabled {
    background: var(--bg-card-hover);
    color: var(--text-muted);
    border-color: var(--border-soft);
}

/* AI avatar */
[data-theme="dark"] .ai-avatar-circle {
    background: var(--accent-sakura-bg);
    border-color: rgba(255, 92, 138, 0.25);
}

/* ============================================================
   DASHBOARD PAGE
   ============================================================ */
[data-theme="dark"] .dash-greeting { color: var(--text-main); }
[data-theme="dark"] .jp-greeting { color: var(--accent-green); }
[data-theme="dark"] .greeting-name { color: var(--accent-green); }
[data-theme="dark"] .dash-subtitle { color: var(--text-muted); }

/* Daily mission */
[data-theme="dark"] .daily-mission {
    background: var(--bg-card);
    border-color: var(--border-soft);
    box-shadow: var(--shadow-card);
}

[data-theme="dark"] .mission-header {
    border-bottom-color: var(--border-soft);
}

[data-theme="dark"] .mission-title { color: var(--text-main); }
[data-theme="dark"] .mission-item { color: var(--text-main); }

[data-theme="dark"] .mission-item:hover {
    background: var(--accent-green-bg);
    color: var(--accent-green);
}

/* Stats card */
[data-theme="dark"] .dash-stats-card {
    background: var(--bg-card);
    border-color: var(--border-soft);
    box-shadow: var(--shadow-card);
}

[data-theme="dark"] .stat-streak { background: var(--warning-bg); }
[data-theme="dark"] .stat-xp { background: var(--accent-yellow-bg); }
[data-theme="dark"] .stat-mastered { background: var(--accent-green-bg); }
[data-theme="dark"] .stat-reviewing { background: var(--accent-purple-bg); }

[data-theme="dark"] .stat-value { color: var(--text-main); }
[data-theme="dark"] .stat-label { color: var(--text-muted); }

[data-theme="dark"] .stats-message {
    background: var(--accent-green-bg);
    color: var(--accent-green);
}

/* Section card */
[data-theme="dark"] .section-card {
    background: var(--bg-card);
    border-color: var(--border-soft);
    box-shadow: var(--shadow-card);
}

[data-theme="dark"] .section-title { color: var(--text-main); }

/* Action cards */
[data-theme="dark"] .action-card {
    box-shadow: var(--shadow-sm);
}

[data-theme="dark"] .action-card:hover {
    box-shadow: var(--shadow-md);
}

[data-theme="dark"] .action-label { color: var(--text-main); }
[data-theme="dark"] .action-desc { color: var(--text-muted); }

[data-theme="dark"] .action-green { background: var(--bg-card); border-color: rgba(101, 199, 71, 0.15); }
[data-theme="dark"] .action-green .action-icon { background: var(--accent-green-bg); }
[data-theme="dark"] .action-green:hover { border-color: var(--accent-green); }

[data-theme="dark"] .action-blue { background: var(--bg-card); border-color: rgba(99, 179, 255, 0.15); }
[data-theme="dark"] .action-blue .action-icon { background: var(--accent-blue-bg); }
[data-theme="dark"] .action-blue:hover { border-color: var(--primary); }

[data-theme="dark"] .action-orange { background: var(--bg-card); border-color: rgba(251, 146, 60, 0.15); }
[data-theme="dark"] .action-orange .action-icon { background: var(--accent-orange-bg); }
[data-theme="dark"] .action-orange:hover { border-color: var(--accent-orange); }

[data-theme="dark"] .action-purple { background: var(--bg-card); border-color: rgba(139, 92, 246, 0.15); }
[data-theme="dark"] .action-purple .action-icon { background: var(--accent-purple-bg); }
[data-theme="dark"] .action-purple:hover { border-color: var(--accent-purple-text); }

/* Quiz results */
[data-theme="dark"] .quiz-result-item {
    background: var(--bg-soft);
    color: var(--text-main);
}

[data-theme="dark"] .quiz-result-item:hover {
    background: var(--accent-green-bg);
}

[data-theme="dark"] .quiz-result-type { color: var(--text-main); }
[data-theme="dark"] .quiz-result-bar { background: var(--bg-card-hover); }
[data-theme="dark"] .quiz-result-date { color: var(--text-muted); }

/* AI suggestion */
[data-theme="dark"] .ai-suggestion-card {
    background: var(--accent-green-bg);
    border-color: rgba(101, 199, 71, 0.2);
}

[data-theme="dark"] .ai-suggestion-title { color: var(--accent-green); }
[data-theme="dark"] .ai-suggestion-text { color: var(--text-main); }

[data-theme="dark"] .topic-stat-item {
    background: var(--bg-soft);
    border-color: var(--border-soft);
}

[data-theme="dark"] .topic-stat-name { color: var(--text-main); }
[data-theme="dark"] .topic-stat-count { color: var(--danger-text); background: var(--danger-bg); }

[data-theme="dark"] .ai-feedback-item {
    background: var(--bg-soft);
    border-color: var(--border-soft);
}

[data-theme="dark"] .ai-feedback-item:hover {
    border-color: var(--accent-green);
    background: var(--accent-green-bg);
}

[data-theme="dark"] .ai-feedback-text { color: var(--text-main); }

/* Focus room */
[data-theme="dark"] .focus-room-card {
    background: var(--bg-card) !important;
    border-color: var(--accent-sakura-bg) !important;
    box-shadow: var(--shadow-card);
}

[data-theme="dark"] .focus-stat-item {
    background: var(--bg-card);
    border-color: var(--border-soft);
}

[data-theme="dark"] .focus-history-item {
    background: var(--bg-card);
    border-color: var(--border-soft);
}

[data-theme="dark"] .focus-history-item:hover {
    background: var(--bg-card-hover);
}

[data-theme="dark"] .text-rose { color: var(--accent-sakura) !important; }
[data-theme="dark"] .bg-rose-subtle { background-color: var(--accent-sakura-bg) !important; color: var(--accent-sakura) !important; }

/* ============================================================
   INLINE STYLE OVERRIDES (best-effort for Thymeleaf templates)
   ============================================================ */

/* Dark text → light text */
[data-theme="dark"] [style*="color: #1e293b"],
[data-theme="dark"] [style*="color:#1e293b"],
[data-theme="dark"] [style*="color: #0f172a"],
[data-theme="dark"] [style*="color:#0f172a"],
[data-theme="dark"] [style*="color: #2d3748"],
[data-theme="dark"] [style*="color:#2d3748"],
[data-theme="dark"] [style*="color: #334155"],
[data-theme="dark"] [style*="color:#334155"],
[data-theme="dark"] [style*="color: #1e2a3a"],
[data-theme="dark"] [style*="color:#1e2a3a"],
[data-theme="dark"] [style*="color: #374151"],
[data-theme="dark"] [style*="color:#374151"],
[data-theme="dark"] [style*="color: #4a5568"],
[data-theme="dark"] [style*="color:#4a5568"] {
    color: var(--text-main) !important;
}

/* Muted text → theme muted */
[data-theme="dark"] [style*="color: #6b7280"],
[data-theme="dark"] [style*="color:#6b7280"],
[data-theme="dark"] [style*="color: #718096"],
[data-theme="dark"] [style*="color:#718096"],
[data-theme="dark"] [style*="color: #64748b"],
[data-theme="dark"] [style*="color:#64748b"],
[data-theme="dark"] [style*="color: #a0aec0"],
[data-theme="dark"] [style*="color:#a0aec0"],
[data-theme="dark"] [style*="color: #94a3b8"],
[data-theme="dark"] [style*="color:#94a3b8"] {
    color: var(--text-muted) !important;
}

/* Light backgrounds → dark backgrounds */
[data-theme="dark"] [style*="background: #fff5f5"],
[data-theme="dark"] [style*="background:#fff5f5"],
[data-theme="dark"] [style*="background: #fff1f2"],
[data-theme="dark"] [style*="background:#fff1f2"] {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] [style*="background: #f0fdf4"],
[data-theme="dark"] [style*="background:#f0fdf4"],
[data-theme="dark"] [style*="background: #dcfce7"],
[data-theme="dark"] [style*="background:#dcfce7"] {
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] [style*="background: #e8f5ff"],
[data-theme="dark"] [style*="background:#e8f5ff"],
[data-theme="dark"] [style*="background: #dbeafe"],
[data-theme="dark"] [style*="background:#dbeafe"] {
    background: var(--accent-blue-bg) !important;
}

[data-theme="dark"] [style*="background: #f1edff"],
[data-theme="dark"] [style*="background:#f1edff"],
[data-theme="dark"] [style*="background: #f3e8ff"],
[data-theme="dark"] [style*="background:#f3e8ff"] {
    background: var(--accent-purple-bg) !important;
}

[data-theme="dark"] [style*="background: #fffbeb"],
[data-theme="dark"] [style*="background:#fffbeb"] {
    background: var(--accent-yellow-bg) !important;
}

[data-theme="dark"] [style*="background: #fff7ed"],
[data-theme="dark"] [style*="background:#fff7ed"] {
    background: var(--accent-orange-bg) !important;
}

/* ============================================================
   COMPREHENSIVE COMPONENT DARK MODE OVERRIDES
   Fixes all hardcoded colors found in audit
   ============================================================ */

/* --- Vocab Toolbar / Search / Filter Bar --- */
[data-theme="dark"] .vocab-toolbar,
[data-theme="dark"] .status-tabs,
[data-theme="dark"] .flashcard-topbar,
[data-theme="dark"] .flashcard-lesson-bar,
[data-theme="dark"] .flashcard-week-tabs,
[data-theme="dark"] .flashcard-legend {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

/* --- Vocab Cards --- */
[data-theme="dark"] .vocab-card,
[data-theme="dark"] .vocab-quiz-card,
[data-theme="dark"] .vocab-quiz-question,
[data-theme="dark"] .lesson-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .vocab-card:hover,
[data-theme="dark"] .lesson-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .vocab-word,
[data-theme="dark"] .vocab-word-compact,
[data-theme="dark"] .vocab-meaning,
[data-theme="dark"] .vocab-meaning-compact,
[data-theme="dark"] .lesson-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .vocab-kana,
[data-theme="dark"] .vocab-kana-compact,
[data-theme="dark"] .lesson-count,
[data-theme="dark"] .lesson-stats {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .vocab-details {
    border-top-color: var(--border-soft) !important;
}

/* --- Vocab Empty / Admin Cards --- */
[data-theme="dark"] .vocab-empty,
[data-theme="dark"] .admin-table-card,
[data-theme="dark"] .admin-form-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

/* --- Flashcard --- */
[data-theme="dark"] .flashcard-shell {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .flashcard-face {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.1), transparent 35%),
        radial-gradient(circle at bottom right, rgba(99, 179, 255, 0.08), transparent 35%),
        var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .flashcard-word,
[data-theme="dark"] .flashcard-meaning {
    color: var(--text-main) !important;
}

[data-theme="dark"] .flashcard-kana {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .flashcard-example {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
}

[data-theme="dark"] .flashcard-counter,
[data-theme="dark"] .flashcard-toast,
[data-theme="dark"] .flashcard-mini-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .flashcard-lesson-pill {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .flashcard-lesson-pill:hover {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-lesson-pill.active {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

/* Flashcard rating buttons */
[data-theme="dark"] .btn-again {
    background-color: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.25) !important;
}
[data-theme="dark"] .btn-again:hover {
    background-color: #ef4444 !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-hard {
    background-color: var(--warning-bg) !important;
    color: var(--warning-text) !important;
    border-color: rgba(251, 146, 60, 0.25) !important;
}
[data-theme="dark"] .btn-hard:hover {
    background-color: #d97706 !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-good {
    background-color: var(--info-bg) !important;
    color: var(--info-text) !important;
    border-color: rgba(99, 179, 255, 0.25) !important;
}
[data-theme="dark"] .btn-good:hover {
    background-color: #2563eb !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-easy {
    background-color: var(--success-bg) !important;
    color: var(--success-text) !important;
    border-color: rgba(101, 199, 71, 0.25) !important;
}
[data-theme="dark"] .btn-easy:hover {
    background-color: #16a34a !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-undo {
    background-color: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-soft) !important;
}
[data-theme="dark"] .btn-undo:hover {
    background-color: var(--border-strong) !important;
    color: var(--text-main) !important;
}

/* Status tabs */
[data-theme="dark"] .status-tab {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .status-tab:hover {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .status-tab.active {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .badge-count {
    background: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .status-tab.active .badge-count {
    background: rgba(255, 255, 255, 0.25) !important;
}

/* Vocab quiz options */
[data-theme="dark"] .vocab-quiz-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .vocab-quiz-option:hover {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .vocab-quiz-option.correct {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .vocab-quiz-option.wrong {
    border-color: #ef4444 !important;
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

/* Progress bars in vocab */
[data-theme="dark"] .flashcard-progress,
[data-theme="dark"] .vocab-quiz-progress,
[data-theme="dark"] .lesson-progress {
    background: var(--bg-card-hover) !important;
}

/* Keyboard key */
[data-theme="dark"] .kbd-key {
    background-color: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    box-shadow: 0 1.5px 0 var(--border-soft), 0 2px 0 rgba(0, 0, 0, 0.2) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .legend-divider {
    background-color: var(--border-soft) !important;
}

[data-theme="dark"] .legend-item {
    color: var(--text-main) !important;
}

[data-theme="dark"] .legend-title {
    color: var(--text-muted) !important;
}

/* --- Grammar Components --- */
[data-theme="dark"] .grammar-card,
[data-theme="dark"] .grammar-lesson-card,
[data-theme="dark"] .grammar-detail-card,
[data-theme="dark"] .grammar-quiz-card,
[data-theme="dark"] .grammar-example-box,
[data-theme="dark"] .grammar-content-box {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .grammar-card:hover,
[data-theme="dark"] .grammar-lesson-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .grammar-card h4,
[data-theme="dark"] .grammar-card h5,
[data-theme="dark"] .grammar-lesson-card h4,
[data-theme="dark"] .grammar-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-card p,
[data-theme="dark"] .grammar-desc,
[data-theme="dark"] .grammar-meaning {
    color: var(--text-muted) !important;
}

/* Grammar tabs */
[data-theme="dark"] .grammar-tab {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .grammar-tab.active,
[data-theme="dark"] .grammar-tab:hover {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
    border-color: var(--accent-green) !important;
}

/* Grammar quiz options */
[data-theme="dark"] .grammar-quiz-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-quiz-option:hover {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
}

[data-theme="dark"] .grammar-quiz-option.correct {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .grammar-quiz-option.wrong {
    border-color: #ef4444 !important;
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

/* Grammar AI translation */
[data-theme="dark"] .ai-translation-box,
[data-theme="dark"] .ai-feedback-box {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-highlight {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

/* --- Kanji Components --- */
[data-theme="dark"] .kanji-card,
[data-theme="dark"] .kanji-detail-card,
[data-theme="dark"] .kanji-jlpt-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kanji-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .kanji-char {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-meaning,
[data-theme="dark"] .kanji-reading,
[data-theme="dark"] .kanji-example {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-level-badge {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

/* Kanji JLPT flashcard components */
[data-theme="dark"] .flashcard-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .flashcard-card:hover {
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .flashcard-card.flipped {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-kanji,
[data-theme="dark"] .fc-list-kanji {
    color: var(--text-main) !important;
}

[data-theme="dark"] .flashcard-reading,
[data-theme="dark"] .fc-list-reading {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-word,
[data-theme="dark"] .fc-list-word {
    color: var(--text-soft) !important;
}

[data-theme="dark"] .flashcard-example,
[data-theme="dark"] .fc-list-example {
    color: var(--text-muted) !important;
    background: var(--bg-card-hover) !important;
    border-left-color: var(--primary) !important;
}

[data-theme="dark"] .flashcard-flip-hint {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .flashcard-back {
    border-top-color: rgba(101, 199, 71, 0.2) !important;
}

[data-theme="dark"] .flashcard-back-title {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-back-answer {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-back-question {
    color: var(--text-main) !important;
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .flashcard-back-source {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .fc-choice {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .fc-choice-correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .flashcard-meta .flashcard-freq {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.2) !important;
}

[data-theme="dark"] .flashcard-meta .flashcard-exams {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
    border-color: rgba(59, 130, 246, 0.2) !important;
}

[data-theme="dark"] .flashcard-meta .flashcard-part {
    background: var(--success-bg) !important;
    color: var(--success-text) !important;
    border-color: rgba(34, 197, 94, 0.2) !important;
}

[data-theme="dark"] .flashcard-view-toggle {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .view-btn {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .view-btn:hover {
    color: var(--text-soft) !important;
    background: var(--bg-card) !important;
}

[data-theme="dark"] .view-btn.active {
    background: var(--bg-card) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .flashcard-header h3 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-grade {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
    border-color: rgba(59, 130, 246, 0.2) !important;
}

/* --- JLPT Test Components --- */
[data-theme="dark"] .jlpt-level-card,
[data-theme="dark"] .jlpt-exam-card,
[data-theme="dark"] .jlpt-section-card,
[data-theme="dark"] .jlpt-score-card,
[data-theme="dark"] .jlpt-history-card,
[data-theme="dark"] .jlpt-quiz-card,
[data-theme="dark"] .jlpt-question-card,
[data-theme="dark"] .jlpt-explanation-box {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .jlpt-level-card:hover,
[data-theme="dark"] .jlpt-exam-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .jlpt-level-card h4,
[data-theme="dark"] .jlpt-exam-card h5,
[data-theme="dark"] .jlpt-section-card h5 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-level-card p,
[data-theme="dark"] .jlpt-exam-card p {
    color: var(--text-muted) !important;
}

/* JLPT sidebar navigator */
[data-theme="dark"] .jlpt-sidebar,
[data-theme="dark"] .jlpt-question-nav {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-nav-item {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-nav-item.active {
    background: var(--primary-bg) !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .jlpt-nav-item.answered {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

/* JLPT quiz options */
[data-theme="dark"] .quiz-option,
[data-theme="dark"] .jlpt-quiz-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-option:hover,
[data-theme="dark"] .jlpt-quiz-option:hover {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
}

[data-theme="dark"] .quiz-option.selected,
[data-theme="dark"] .jlpt-quiz-option.selected {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .quiz-option.correct,
[data-theme="dark"] .jlpt-quiz-option.correct {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .quiz-option.wrong,
[data-theme="dark"] .jlpt-quiz-option.wrong {
    border-color: #ef4444 !important;
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

/* JLPT timer */
[data-theme="dark"] .jlpt-timer {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* --- Community Components --- */
[data-theme="dark"] .post-card,
[data-theme="dark"] .comment-box,
[data-theme="dark"] .community-panel,
[data-theme="dark"] .friend-request-card,
[data-theme="dark"] .suggestion-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .post-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .post-content,
[data-theme="dark"] .comment-text,
[data-theme="dark"] .post-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .post-meta,
[data-theme="dark"] .comment-meta,
[data-theme="dark"] .post-time {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .post-actions,
[data-theme="dark"] .comment-actions {
    border-top-color: var(--border-soft) !important;
}

/* Community sidebar panels */
[data-theme="dark"] .community-sidebar-card,
[data-theme="dark"] .friend-suggestion-panel,
[data-theme="dark"] .friend-request-panel {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

/* --- Friends Components --- */
[data-theme="dark"] .friend-card,
[data-theme="dark"] .user-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .friend-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .friend-name,
[data-theme="dark"] .user-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .friend-info,
[data-theme="dark"] .user-info {
    color: var(--text-muted) !important;
}

/* --- Achievements Components --- */
[data-theme="dark"] .achievement-card,
[data-theme="dark"] .achievement-badge,
[data-theme="dark"] .achievement-stat-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .achievement-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .achievement-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .achievement-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .achievement-progress {
    background: var(--bg-card-hover) !important;
}

/* --- Profile Components --- */
[data-theme="dark"] .profile-card,
[data-theme="dark"] .profile-stat-card,
[data-theme="dark"] .profile-action-card,
[data-theme="dark"] .profile-settings-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .profile-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .profile-bio,
[data-theme="dark"] .profile-info {
    color: var(--text-muted) !important;
}

/* --- Kaiwa Components --- */
[data-theme="dark"] .kaiwa-card,
[data-theme="dark"] .kaiwa-session-card,
[data-theme="dark"] .kaiwa-report-card,
[data-theme="dark"] .kaiwa-scenario-card,
[data-theme="dark"] .kaiwa-hint-box {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kaiwa-card:hover {
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .kaiwa-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-desc {
    color: var(--text-muted) !important;
}

/* Kaiwa chat bubbles */
[data-theme="dark"] .kaiwa-user-bubble {
    background: var(--primary-bg) !important;
    color: var(--text-main) !important;
    border-color: rgba(99, 179, 255, 0.2) !important;
}

[data-theme="dark"] .kaiwa-ai-bubble {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    color: var(--text-main) !important;
    border-color: var(--border-soft) !important;
}

/* --- AI Chat Components --- */
[data-theme="dark"] .chat-container {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .chat-user-bubble {
    background: var(--primary-bg) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .chat-ai-bubble {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .chat-input-area {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .chat-input {
    background: var(--input-bg) !important;
    color: var(--input-text) !important;
    border-color: var(--input-border) !important;
}

[data-theme="dark"] .chat-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .chat-typing-indicator {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    color: var(--text-muted) !important;
}

/* --- Listening Dictation Components --- */
[data-theme="dark"] .dictation-card,
[data-theme="dark"] .dictation-workspace,
[data-theme="dark"] .dictation-sidebar,
[data-theme="dark"] .dictation-result-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-input {
    background: var(--input-bg) !important;
    color: var(--input-text) !important;
    border-color: var(--input-border) !important;
}

[data-theme="dark"] .dictation-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .dictation-blank {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-blank.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .dictation-blank.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

/* --- Messages Components --- */
[data-theme="dark"] .message-sidebar,
[data-theme="dark"] .message-chat-area,
[data-theme="dark"] .message-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .message-item:hover {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .message-item.active {
    background: var(--primary-bg) !important;
    border-color: var(--primary) !important;
}

[data-theme="dark"] .message-sender {
    color: var(--text-main) !important;
}

[data-theme="dark"] .message-preview {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .message-user-bubble {
    background: var(--primary-bg) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .message-other-bubble {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    color: var(--text-main) !important;
}

/* --- Quiz Game Components --- */
[data-theme="dark"] .qg-card,
[data-theme="dark"] .qg-question-card,
[data-theme="dark"] .qg-answer-btn,
[data-theme="dark"] .qg-completion-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .qg-answer-btn:hover {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
}

[data-theme="dark"] .qg-answer-btn.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .qg-answer-btn.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

/* --- Auth Components --- */
[data-theme="dark"] .auth-card,
[data-theme="dark"] .login-card,
[data-theme="dark"] .register-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .auth-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .auth-subtitle {
    color: var(--text-muted) !important;
}

/* --- Study Room Components --- */
[data-theme="dark"] .study-room-card,
[data-theme="dark"] .study-room-panel {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

/* --- Generic Form Inputs --- */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--input-bg) !important;
    border-color: var(--primary) !important;
    color: var(--input-text) !important;
    box-shadow: 0 0 0 3px var(--primary-soft) !important;
}

[data-theme="dark"] .form-control::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .form-label {
    color: var(--text-main) !important;
}

[data-theme="dark"] .input-group-text {
    background-color: var(--bg-card-hover) !important;
    border-color: var(--input-border) !important;
    color: var(--text-muted) !important;
}

/* --- Generic Table --- */
[data-theme="dark"] .table {
    color: var(--text-main) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .table thead th {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .table tbody td {
    border-color: var(--border-soft) !important;
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .table-hover tbody tr:hover td {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) td {
    background: var(--bg-card-2, rgba(255, 255, 255, 0.02)) !important;
}

/* --- Generic Progress Bar --- */
[data-theme="dark"] .progress {
    background-color: var(--bg-card-hover) !important;
}

[data-theme="dark"] .progress-bar {
    background-color: var(--accent-green) !important;
}

/* --- Generic Badge --- */
[data-theme="dark"] .badge.bg-success { background: var(--success-bg) !important; color: var(--success-text) !important; }
[data-theme="dark"] .badge.bg-danger { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
[data-theme="dark"] .badge.bg-warning { background: var(--warning-bg) !important; color: var(--warning-text) !important; }
[data-theme="dark"] .badge.bg-info { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .badge.bg-primary { background: var(--primary-soft) !important; color: var(--primary) !important; }
[data-theme="dark"] .badge.bg-secondary { background: var(--bg-card-hover) !important; color: var(--text-muted) !important; }

/* --- Generic Alert --- */
[data-theme="dark"] .alert {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .alert-success { background: var(--success-bg) !important; color: var(--success-text) !important; border-color: rgba(34, 197, 94, 0.2) !important; }
[data-theme="dark"] .alert-danger { background: var(--danger-bg) !important; color: var(--danger-text) !important; border-color: rgba(244, 63, 94, 0.2) !important; }
[data-theme="dark"] .alert-warning { background: var(--warning-bg) !important; color: var(--warning-text) !important; border-color: rgba(251, 146, 60, 0.2) !important; }
[data-theme="dark"] .alert-info { background: var(--info-bg) !important; color: var(--info-text) !important; border-color: rgba(59, 130, 246, 0.2) !important; }

/* --- Generic Modal --- */
[data-theme="dark"] .modal-content {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .modal-header {
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .modal-footer {
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .modal-title {
    color: var(--text-main) !important;
}

/* --- Generic Dropdown --- */
[data-theme="dark"] .dropdown-menu {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dropdown-divider {
    border-color: var(--border-soft) !important;
}

/* --- Generic Accordion --- */
[data-theme="dark"] .accordion-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .accordion-button {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .accordion-button:not(.collapsed) {
    background: var(--accent-green-bg) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .accordion-body {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
}

/* --- Generic Tabs --- */
[data-theme="dark"] .nav-pills .nav-link {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .nav-pills .nav-link.active {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .nav-tabs {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .nav-tabs .nav-link {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
    border-color: var(--border-soft) !important;
    border-bottom-color: var(--bg-card) !important;
}

/* --- Generic Pagination --- */
[data-theme="dark"] .page-link {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .page-link:hover {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .page-item.active .page-link {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

/* --- Generic Toast --- */
[data-theme="dark"] .toast {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .toast-header {
    background: var(--bg-card-hover) !important;
    border-bottom-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* --- Generic List Group --- */
[data-theme="dark"] .list-group-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .list-group-item:hover {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .list-group-item.active {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

/* --- Generic Card (Bootstrap) --- */
[data-theme="dark"] .card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .card-header {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .card-footer {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .card-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .card-text {
    color: var(--text-muted) !important;
}

/* --- Inline style overrides for background colors --- */
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: #ffffff"],
[data-theme="dark"] [style*="background-color:#ffffff"] {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] [style*="background: #f8fafc"],
[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background: #f9fafb"],
[data-theme="dark"] [style*="background:#f9fafb"],
[data-theme="dark"] [style*="background: #f1f5f9"],
[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background: #f3f4f6"],
[data-theme="dark"] [style*="background:#f3f4f6"],
[data-theme="dark"] [style*="background: #edf2f7"],
[data-theme="dark"] [style*="background:#edf2f7"] {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] [style*="background: #e2e8f0"],
[data-theme="dark"] [style*="background:#e2e8f0"],
[data-theme="dark"] [style*="background: #e5e7eb"],
[data-theme="dark"] [style*="background:#e5e7eb"] {
    background: var(--border-soft) !important;
}

/* Inline border color overrides */
[data-theme="dark"] [style*="border-color: #e2e8f0"],
[data-theme="dark"] [style*="border-color:#e2e8f0"],
[data-theme="dark"] [style*="border-color: #e5e7eb"],
[data-theme="dark"] [style*="border-color:#e5e7eb"],
[data-theme="dark"] [style*="border-color: #edf2f7"],
[data-theme="dark"] [style*="border-color:#edf2f7"],
[data-theme="dark"] [style*="border: 1px solid #e2e8f0"],
[data-theme="dark"] [style*="border: 1px solid #e5e7eb"],
[data-theme="dark"] [style*="border: 2px solid #e5e7eb"],
[data-theme="dark"] [style*="border: 2px solid #edf2f7"] {
    border-color: var(--border-soft) !important;
}

/* Inline style overrides for text colors */
[data-theme="dark"] [style*="color: #475569"],
[data-theme="dark"] [style*="color:#475569"],
[data-theme="dark"] [style*="color: #4b5563"],
[data-theme="dark"] [style*="color:#4b5563"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color: #111827"],
[data-theme="dark"] [style*="color:#111827"],
[data-theme="dark"] [style*="color: #1e2a3a"],
[data-theme="dark"] [style*="color:#1e2a3a"] {
    color: var(--text-main) !important;
}

/* --- Review page specific --- */
[data-theme="dark"] .review-card,
[data-theme="dark"] .monthly-review-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* --- Admin page specific --- */
[data-theme="dark"] .admin-panel,
[data-theme="dark"] .admin-card,
[data-theme="dark"] .import-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .admin-title {
    color: var(--text-main) !important;
}

/* --- Utility: Theme-aware classes for direct use --- */
.theme-card {
    background: var(--bg-card);
    color: var(--text-main);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-card);
}

.theme-card-soft {
    background: var(--bg-card-2);
    color: var(--text-main);
    border: 1px solid var(--border-soft);
}

.theme-panel {
    background: var(--bg-soft);
    color: var(--text-main);
    border: 1px solid var(--border-soft);
}

.theme-title { color: var(--text-main); }
.theme-subtitle { color: var(--text-soft); }
.theme-muted { color: var(--text-muted); }

.theme-input {
    background: var(--input-bg);
    color: var(--input-text);
    border: 1px solid var(--input-border);
}

.theme-input::placeholder {
    color: var(--input-placeholder);
}

.theme-select {
    background: var(--input-bg);
    color: var(--input-text);
    border: 1px solid var(--input-border);
}

.theme-button-primary {
    background: var(--accent-green);
    color: #ffffff;
    border: 1px solid transparent;
}

.theme-button-primary:hover {
    background: var(--accent-green-hover);
}

.theme-button-secondary {
    background: var(--primary-soft);
    color: var(--primary);
    border: 1px solid var(--border-soft);
}

.theme-button-outline {
    background: transparent;
    color: var(--text-main);
    border: 1px solid var(--border-medium);
}

.theme-badge-success { background: var(--success-bg); color: var(--success-text); }
.theme-badge-warning { background: var(--warning-bg); color: var(--warning-text); }
.theme-badge-danger { background: var(--danger-bg); color: var(--danger-text); }
.theme-badge-info { background: var(--info-bg); color: var(--info-text); }

/* ============================================================
   GRAMMAR PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .grammar-toolbar {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .grammar-section-box {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .grammar-section-box h4 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .common-mistake-box {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .comparison-box {
    background: var(--accent-purple-bg) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-empty,
[data-theme="dark"] .admin-grammar-table-card,
[data-theme="dark"] .admin-grammar-form-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .grammar-lesson-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-lesson-preview {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .grammar-structure {
    background: var(--accent-blue-bg) !important;
    color: var(--text-main) !important;
}

/* Grammar tabs (nav-link based) */
[data-theme="dark"] .grammar-tabs .nav-link {
    color: var(--text-muted) !important;
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
}

[data-theme="dark"] .grammar-tabs .nav-link.active,
[data-theme="dark"] .grammar-tabs .nav-link:hover {
    color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

/* ============================================================
   KANJI PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .kanji-tabs {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .kanji-tab {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-tab:hover {
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .kanji-tab.active {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kanji-char {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-reading {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-word {
    color: var(--text-soft) !important;
}

[data-theme="dark"] .kanji-meaning {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-empty {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .tab-count {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-tab.active .tab-count {
    background: rgba(255, 255, 255, 0.25) !important;
}

/* ============================================================
   COMMUNITY PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .community-header {
    color: var(--text-main) !important;
}

[data-theme="dark"] .community-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .community-subtitle {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .community-tabs {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .community-tab {
    color: var(--text-muted) !important;
    background: transparent !important;
}

[data-theme="dark"] .community-tab:hover {
    background: var(--bg-card-hover) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .community-tab.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .category-pill {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .category-pill:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .category-pill.active {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .composer-card {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .composer-input {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .composer-input:hover {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .post-author-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .post-time {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .role-badge-user {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .role-badge-admin {
    background: linear-gradient(135deg, var(--accent-orange), #d97706) !important;
    color: #fff !important;
}

[data-theme="dark"] .post-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .post-card .glass-panel {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
}

/* Category badges */
[data-theme="dark"] .badge-translation { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
[data-theme="dark"] .badge-japanese_learning { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .badge-study_in_japan { background: var(--success-bg) !important; color: var(--success-text) !important; }
[data-theme="dark"] .badge-japanese_job { background: var(--warning-bg) !important; color: var(--warning-text) !important; }
[data-theme="dark"] .badge-japanese_culture { background: var(--accent-rose-bg) !important; color: var(--accent-rose-text) !important; }
[data-theme="dark"] .badge-jlpt { background: var(--accent-orange-bg) !important; color: var(--accent-orange) !important; }
[data-theme="dark"] .badge-grammar { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .badge-vocabulary { background: var(--accent-purple-bg) !important; color: var(--accent-purple-text) !important; }
[data-theme="dark"] .badge-experience { background: var(--success-bg) !important; color: var(--success-text) !important; }
[data-theme="dark"] .badge-qna { background: var(--danger-bg) !important; color: var(--danger-text) !important; }

[data-theme="dark"] .community-glass-panel,
[data-theme="dark"] .glass-panel {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

/* ============================================================
   FRIENDS PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .friends-hero {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .hero-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .hero-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .search-panel {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .search-input-group input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .search-input-group input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .search-input-group input:focus {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 0.25rem rgba(255, 92, 138, 0.15) !important;
}

[data-theme="dark"] .friends-tab-link {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .friends-tab-link:hover {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .friends-tab-link.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .user-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .card-fullname {
    color: var(--text-main) !important;
}

[data-theme="dark"] .card-jlpt {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .card-stat-val {
    color: var(--text-main) !important;
}

[data-theme="dark"] .card-stat-lbl {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .card-avatar-wrapper {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--bg-card) !important;
}

/* ============================================================
   ACHIEVEMENTS PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .achievements-hero {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .stat-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .stat-icon {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .stat-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .stat-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .filter-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .filter-btn:hover {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .filter-btn.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .badge-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .badge-card.locked {
    background: rgba(17, 24, 39, 0.5) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .badge-card.locked .badge-icon-container {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .badge-icon-container {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .badge-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .badge-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .badge-progress {
    background: var(--bg-card-hover) !important;
}

/* ============================================================
   PROFILE PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .profile-card-left {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .profile-avatar-large {
    border-color: var(--bg-card) !important;
}

[data-theme="dark"] .profile-detail-row {
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .profile-detail-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .profile-detail-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .profile-stat-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .profile-stat-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .profile-stat-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .profile-stat-icon {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .icon-streak { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
[data-theme="dark"] .icon-longest { background: var(--warning-bg) !important; color: var(--warning-text) !important; }
[data-theme="dark"] .icon-xp { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .icon-quizzes { background: var(--accent-purple-bg) !important; color: var(--accent-purple-text) !important; }

[data-theme="dark"] .dashboard-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dashboard-card-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .progress-value-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dashboard-reminder {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dashboard-reminder.warning {
    background: var(--warning-bg) !important;
    border-color: rgba(251, 146, 60, 0.2) !important;
    color: var(--warning-text) !important;
}

[data-theme="dark"] .dashboard-reminder.success {
    background: var(--success-bg) !important;
    border-color: rgba(34, 197, 94, 0.2) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .profile-action-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .profile-action-btn:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .action-btn-label {
    color: var(--text-main) !important;
}

/* ============================================================
   AI CHAT PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .ai-chat-layout {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .ai-chat-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-chat-header-info {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-chat-clear-btn {
    background: var(--bg-card) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .ai-chat-clear-btn:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .ai-chip {
    background: var(--bg-card) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .ai-chip:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .ai-msg-wrapper.assistant .ai-msg-bubble {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-msg-wrapper.user .ai-msg-bubble {
    background: linear-gradient(135deg, var(--accent-sakura), #e11d48) !important;
    color: #fff !important;
}

[data-theme="dark"] .ai-msg-time {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .ai-msg-bubble code {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-msg-wrapper.user .ai-msg-bubble code {
    background: rgba(255, 255, 255, 0.2) !important;
}

[data-theme="dark"] .ai-msg-wrapper.user .ai-msg-avatar {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .ai-msg-wrapper.assistant .ai-msg-avatar {
    background: var(--info-bg) !important;
}

[data-theme="dark"] .ai-typing-indicator {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .ai-chat-messages::-webkit-scrollbar-thumb {
    background: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .ai-welcome-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-welcome-desc {
    color: var(--text-muted) !important;
}

/* ============================================================
   KAIWA PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .kaiwa-setup-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .kaiwa-section-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-mode-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-mode-card:hover {
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-mode-card.active {
    border-color: var(--accent-sakura) !important;
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .kaiwa-mode-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-mode-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-mode-jp {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-level-pill {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-level-pill:hover {
    border-color: var(--accent-sakura) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-level-pill.active {
    background: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .kaiwa-topic-input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .kaiwa-topic-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .kaiwa-topic-input:focus {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 3px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .kaiwa-style-content {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-style-option:hover .kaiwa-style-content {
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-style-option.active .kaiwa-style-content {
    border-color: var(--accent-sakura) !important;
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .kaiwa-style-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-style-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-outline-btn {
    color: var(--accent-sakura) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-outline-btn:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-chat-layout {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .kaiwa-chat-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-chat-messages::-webkit-scrollbar-thumb {
    background: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .kaiwa-input-area {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .kaiwa-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .kaiwa-send-btn {
    background: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .kaiwa-report-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-report-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-report-text {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-scenario-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-scenario-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-scenario-desc {
    color: var(--text-muted) !important;
}

/* ============================================================
   MESSAGES PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .messages-layout {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .messages-sidebar {
    background: var(--bg-card) !important;
    border-right-color: var(--border-soft) !important;
}

[data-theme="dark"] .messages-sidebar-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .messages-conversation-item {
    color: var(--text-main) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .messages-conversation-item:hover {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .messages-conversation-item.active {
    background: rgba(255, 92, 138, 0.08) !important;
    border-left-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .messages-conv-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .messages-conv-preview {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .messages-conv-time {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .messages-no-chat {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .messages-chat-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .messages-back-btn {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .messages-chat-header-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .bubble-theirs {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
    border: 1px solid var(--border-soft) !important;
}

[data-theme="dark"] .bubble-mine {
    background: linear-gradient(135deg, var(--accent-sakura), #e11d48) !important;
    color: #fff !important;
}

[data-theme="dark"] .messages-chat-input-area {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .messages-chat-input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .messages-chat-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .messages-send-btn {
    background: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .messages-conv-avatar {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .messages-chat-header-avatar {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .messages-bubble-avatar {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
}

[data-theme="dark"] .messages-sidebar-list::-webkit-scrollbar-thumb {
    background: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .messages-list::-webkit-scrollbar-thumb {
    background: rgba(255, 92, 138, 0.15) !important;
}

/* ============================================================
   LISTENING DICTATION PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .dictation-hero {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-hero .soft-badge {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-hero .hero-title span {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-level-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-level-card:hover {
    border-color: rgba(255, 92, 138, 0.2) !important;
    box-shadow: var(--shadow-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-level-card h4 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-exam-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .dictation-exam-card:hover {
    border-color: rgba(255, 92, 138, 0.15) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-exam-card .exam-info h5 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-config-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-config-card .form-label {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-config-card .form-select,
[data-theme="dark"] .dictation-config-card .form-control {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .dictation-config-card .form-select:focus,
[data-theme="dark"] .dictation-config-card .form-control:focus {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 3px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .dictation-item-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .dictation-item-card.active-item {
    border-color: rgba(255, 92, 138, 0.3) !important;
    box-shadow: 0 8px 30px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .dictation-textarea {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .dictation-textarea::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .dictation-textarea:focus {
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-progress {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .dictation-sidebar {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-sidebar-item {
    color: var(--text-muted) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-sidebar-item.active {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-sidebar-item.correct {
    background: var(--success-bg) !important;
    color: var(--success-text) !important;
    border-color: rgba(34, 197, 94, 0.3) !important;
}

[data-theme="dark"] .dictation-sidebar-item.wrong {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.3) !important;
}

[data-theme="dark"] .speed-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .speed-btn.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-result-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-result-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-result-text {
    color: var(--text-main) !important;
}

/* ============================================================
   QUIZ GAME PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .quiz-game-body {
    background: var(--bg-main) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-game-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .quiz-logo {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-type-label {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-score {
    background: var(--warning-bg) !important;
    color: var(--warning-text) !important;
}

[data-theme="dark"] .quiz-combo {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .timer-track {
    stroke: var(--bg-card-hover) !important;
}

[data-theme="dark"] .timer-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-progress-bar {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .quiz-progress-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-question-card-game {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-question-number {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
}

[data-theme="dark"] .quiz-question-text-game {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-answer-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-answer-btn:hover {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
}

[data-theme="dark"] .quiz-answer-btn.selected {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .quiz-answer-btn.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .quiz-answer-btn.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .quiz-next-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .quiz-submit-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .quiz-exit-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-completion-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .completion-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .completion-stat-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-game-setup-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .quiz-game-setup-title {
    color: var(--text-main) !important;
}

/* ============================================================
   JLPT TESTS PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .exam-page {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.12), transparent 40%),
        radial-gradient(circle at top right, rgba(99, 179, 255, 0.1), transparent 45%),
        var(--bg-main) !important;
}

[data-theme="dark"] .jlpt-hero .hero-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-hero .hero-title span {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-hero .hero-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-hero .btn-light {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-hero .btn-light:hover {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .jlpt-level-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .jlpt-level-card::before {
    opacity: 0.6;
}

[data-theme="dark"] .jlpt-level-card::after {
    opacity: 0.02;
}

[data-theme="dark"] .jlpt-level-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-level-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-exam-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .jlpt-exam-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-exam-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-section-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-section-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-score-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .jlpt-score-number {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-score-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-history-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-history-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-history-date {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-question-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-question-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-question-number {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-explanation-box {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-explanation-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-quiz-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-quiz-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-timer {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-timer-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-sidebar {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-sidebar-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-question-nav {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .jlpt-nav-item {
    background: var(--bg-card-2, var(--bg-card-hover)) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-nav-item.active {
    background: var(--primary-bg) !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .jlpt-nav-item.answered {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-quiz-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-quiz-option:hover {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
}

[data-theme="dark"] .jlpt-quiz-option.selected {
    border-color: var(--primary) !important;
    background: var(--primary-bg) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .jlpt-quiz-option.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .jlpt-quiz-option.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

/* ============================================================
   AUTH PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .auth-section {
    background: var(--bg-main) !important;
}

[data-theme="dark"] .auth-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .auth-visual {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.12), transparent 34%),
        radial-gradient(circle at bottom right, rgba(99, 179, 255, 0.1), transparent 34%),
        var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .auth-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .auth-subtitle {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .form-soft-control {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .form-soft-control::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .form-soft-control:focus {
    border-color: var(--accent-green) !important;
    box-shadow: 0 0 0 0.22rem rgba(101, 199, 71, 0.14) !important;
}

[data-theme="dark"] .form-label {
    color: var(--text-main) !important;
}

[data-theme="dark"] .auth-helper {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .auth-helper a {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .mini-progress-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .floating-bubble {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

/* ============================================================
   QUIZ PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .quiz-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-question-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-question-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-option:hover {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .result-score-card {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.12), transparent 34%),
        radial-gradient(circle at bottom right, rgba(99, 179, 255, 0.1), transparent 34%),
        var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .answer-review-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .answer-review-card.correct {
    border-color: rgba(101, 199, 71, 0.3) !important;
}

[data-theme="dark"] .answer-review-card.wrong {
    border-color: rgba(244, 63, 94, 0.3) !important;
}

[data-theme="dark"] .admin-question-card,
[data-theme="dark"] .question-form-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .ai-feedback-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-feedback-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-feedback-text {
    color: var(--text-muted) !important;
}

/* ============================================================
   STUDY ROOM — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .study-room-wrapper {
    background: var(--bg-main) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .study-top-bar {
    background: rgba(17, 24, 39, 0.4) !important;
    border-bottom-color: rgba(148, 163, 184, 0.1) !important;
}

[data-theme="dark"] .btn-back-home {
    background: rgba(148, 163, 184, 0.1) !important;
    border-color: rgba(148, 163, 184, 0.1) !important;
    color: var(--text-soft) !important;
}

[data-theme="dark"] .btn-back-home:hover {
    background: rgba(148, 163, 184, 0.2) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .room-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .study-top-badge {
    background: rgba(148, 163, 184, 0.1) !important;
    color: var(--text-soft) !important;
}

[data-theme="dark"] .study-left-toolbar {
    background: rgba(17, 24, 39, 0.5) !important;
    border-color: rgba(148, 163, 184, 0.1) !important;
}

[data-theme="dark"] .toolbar-btn:hover {
    background: rgba(148, 163, 184, 0.15) !important;
}

[data-theme="dark"] .toolbar-btn::after {
    background: rgba(17, 24, 39, 0.9) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .timer-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .study-badge {
    background: rgba(148, 163, 184, 0.15) !important;
    color: var(--text-soft) !important;
}

[data-theme="dark"] .study-timer-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .study-timer-label {
    color: var(--text-muted) !important;
}

/* ============================================================
   STREAK ANIMATION — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .streak-fire-card {
    background: linear-gradient(135deg, rgba(17, 24, 39, 0.95) 0%, rgba(30, 41, 59, 0.95) 100%) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .streak-fire-title {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .streak-fire-subtitle {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .streak-fire-overlay {
    background: rgba(0, 0, 0, 0.7) !important;
}

/* ============================================================
   ANTI-INSPECT — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .anti-inspect-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .anti-inspect-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .anti-inspect-desc {
    color: var(--text-muted) !important;
}

/* ============================================================
   REVIEW PAGE — MISSING OVERRIDES
   ============================================================ */
[data-theme="dark"] .review-card,
[data-theme="dark"] .monthly-review-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .review-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .review-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .review-stat-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .review-stat-label {
    color: var(--text-muted) !important;
}

/* ============================================================
   ADDITIONAL INLINE STYLE OVERRIDES
   ============================================================ */

/* More text color overrides for templates */
[data-theme="dark"] [style*="color: #2D3748"],
[data-theme="dark"] [style*="color:#2D3748"],
[data-theme="dark"] [style*="color: #4A5568"],
[data-theme="dark"] [style*="color:#4A5568"],
[data-theme="dark"] [style*="color: #718096"],
[data-theme="dark"] [style*="color:#718096"],
[data-theme="dark"] [style*="color: #a0aec0"],
[data-theme="dark"] [style*="color:#a0aec0"],
[data-theme="dark"] [style*="color: #4d586b"],
[data-theme="dark"] [style*="color:#4d586b"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color: #172033"],
[data-theme="dark"] [style*="color:#172033"],
[data-theme="dark"] [style*="color: #1a1a2e"],
[data-theme="dark"] [style*="color:#1a1a2e"] {
    color: var(--text-main) !important;
}

/* Background overrides for remaining patterns */
[data-theme="dark"] [style*="background: #fffdf8"],
[data-theme="dark"] [style*="background:#fffdf8"],
[data-theme="dark"] [style*="background: #FAF9F6"],
[data-theme="dark"] [style*="background:#FAF9F6"],
[data-theme="dark"] [style*="background: #fafaf9"],
[data-theme="dark"] [style*="background:#fafaf9"],
[data-theme="dark"] [style*="background: #f5f5f4"],
[data-theme="dark"] [style*="background:#f5f5f4"],
[data-theme="dark"] [style*="background: #fffdfd"],
[data-theme="dark"] [style*="background:#fffdfd"] {
    background: var(--bg-card) !important;
}

[data-theme="dark"] [style*="background: #fff0f3"],
[data-theme="dark"] [style*="background:#fff0f3"],
[data-theme="dark"] [style*="background: #ffe4e6"],
[data-theme="dark"] [style*="background:#ffe4e6"],
[data-theme="dark"] [style*="background: #fce7f3"],
[data-theme="dark"] [style*="background:#fce7f3"] {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] [style*="background: #fef3c7"],
[data-theme="dark"] [style*="background:#fef3c7"],
[data-theme="dark"] [style*="background: #ffedd5"],
[data-theme="dark"] [style*="background:#ffedd5"],
[data-theme="dark"] [style*="background: #fff2df"],
[data-theme="dark"] [style*="background:#fff2df"] {
    background: var(--warning-bg) !important;
}

[data-theme="dark"] [style*="background: #fefce8"],
[data-theme="dark"] [style*="background:#fefce8"],
[data-theme="dark"] [style*="background: #FEFCBF"],
[data-theme="dark"] [style*="background:#FEFCBF"] {
    background: var(--accent-yellow-bg) !important;
}

[data-theme="dark"] [style*="background: #e0e7ff"],
[data-theme="dark"] [style*="background:#e0e7ff"],
[data-theme="dark"] [style*="background: #ede9fe"],
[data-theme="dark"] [style*="background:#ede9fe"],
[data-theme="dark"] [style*="background: #faf5ff"],
[data-theme="dark"] [style*="background:#faf5ff"] {
    background: var(--accent-purple-bg) !important;
}

[data-theme="dark"] [style*="background: #fee2e2"],
[data-theme="dark"] [style*="background:#fee2e2"],
[data-theme="dark"] [style*="background: #FFF5F5"],
[data-theme="dark"] [style*="background:#FFF5F5"] {
    background: var(--danger-bg) !important;
}

[data-theme="dark"] [style*="background: #E6FFFA"],
[data-theme="dark"] [style*="background:#E6FFFA"],
[data-theme="dark"] [style*="background: #ecfdf5"],
[data-theme="dark"] [style*="background:#ecfdf5"],
[data-theme="dark"] [style*="background: #d1fae5"],
[data-theme="dark"] [style*="background:#d1fae5"] {
    background: var(--success-bg) !important;
}

[data-theme="dark"] [style*="background: #E5DEFF"],
[data-theme="dark"] [style*="background:#E5DEFF"] {
    background: var(--accent-purple-bg) !important;
}

/* Border color overrides for remaining patterns */
[data-theme="dark"] [style*="border-color: #CBD5E0"],
[data-theme="dark"] [style*="border-color:#CBD5E0"],
[data-theme="dark"] [style*="border-color: #cbd5e0"],
[data-theme="dark"] [style*="border-color:#cbd5e0"],
[data-theme="dark"] [style*="border-color: rgba(0, 0, 0, 0.06)"],
[data-theme="dark"] [style*="border-color:rgba(0,0,0,0.06)"],
[data-theme="dark"] [style*="border-color: rgba(0, 0, 0, 0.08)"],
[data-theme="dark"] [style*="border-color:rgba(0,0,0,0.08)"],
[data-theme="dark"] [style*="border-color: rgba(0, 0, 0, 0.05)"],
[data-theme="dark"] [style*="border-color:rgba(0,0,0,0.05)"],
[data-theme="dark"] [style*="border: 1px solid rgba(0, 0, 0, 0.05)"],
[data-theme="dark"] [style*="border: 1px solid rgba(0,0,0,0.05)"],
[data-theme="dark"] [style*="border: 1px solid rgba(0, 0, 0, 0.06)"],
[data-theme="dark"] [style*="border: 1px solid rgba(0,0,0,0.06)"] {
    border-color: var(--border-soft) !important;
}

/* Border overrides for pink/sakura themed borders */
[data-theme="dark"] [style*="border-color: rgba(255, 182, 193"],
[data-theme="dark"] [style*="border-color:rgba(255,182,193"],
[data-theme="dark"] [style*="border-color: rgba(244, 63, 94"],
[data-theme="dark"] [style*="border-color:rgba(244,63,94"],
[data-theme="dark"] [style*="border: 1px solid rgba(255, 182, 193"],
[data-theme="dark"] [style*="border: 1px solid rgba(255,182,193"] {
    border-color: rgba(255, 92, 138, 0.15) !important;
}

/* Shadow overrides for light shadows */
[data-theme="dark"] [style*="box-shadow: 0 8px 32px rgba(244, 63, 94"],
[data-theme="dark"] [style*="box-shadow:0 8px 32px rgba(244,63,94"],
[data-theme="dark"] [style*="box-shadow: 0 20px 60px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 20px 60px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 10px 30px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 10px 30px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 28px 80px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 28px 80px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 20px 50px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 20px 50px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 20px 55px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 20px 55px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 16px 45px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 16px 45px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 14px 40px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 14px 40px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 18px 50px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 18px 50px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 12px 32px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 12px 32px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 10px 28px rgba(15, 23, 42"],
[data-theme="dark"] [style*="box-shadow:0 10px 28px rgba(15,23,42"],
[data-theme="dark"] [style*="box-shadow: 0 8px 30px rgba(36, 48, 68"],
[data-theme="dark"] [style*="box-shadow:0 8px 30px rgba(36,48,68"],
[data-theme="dark"] [style*="box-shadow: 0 4px 15px rgba(30, 41, 59"],
[data-theme="dark"] [style*="box-shadow:0 4px 15px rgba(30,41,59"],
[data-theme="dark"] [style*="box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02)"],
[data-theme="dark"] [style*="box-shadow:0 4px 12px rgba(0,0,0,0.02)"],
[data-theme="dark"] [style*="box-shadow: 0 8px 32px 0 rgba(31, 38, 135"],
[data-theme="dark"] [style*="box-shadow:0 8px 32px 0 rgba(31,38,135"] {
    box-shadow: var(--shadow-card) !important;
}

/* Additional background overrides for remaining template patterns */
[data-theme="dark"] [style*="background: #e6f9ed"],
[data-theme="dark"] [style*="background:#e6f9ed"] {
    background: var(--success-bg) !important;
}

[data-theme="dark"] [style*="background: #e8f0fe"],
[data-theme="dark"] [style*="background:#e8f0fe"] {
    background: var(--info-bg) !important;
}

[data-theme="dark"] [style*="background: #bbf7d0"],
[data-theme="dark"] [style*="background:#bbf7d0"] {
    background: var(--success-bg) !important;
}

[data-theme="dark"] [style*="background: #fecdd3"],
[data-theme="dark"] [style*="background:#fecdd3"],
[data-theme="dark"] [style*="background: #fda4af"],
[data-theme="dark"] [style*="background:#fda4af"] {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] [style*="background: #E2E8F0"],
[data-theme="dark"] [style*="background:#E2E8F0"],
[data-theme="dark"] [style*="background: #EDF2F7"],
[data-theme="dark"] [style*="background:#EDF2F7"] {
    background: var(--bg-card-hover) !important;
}

/* Additional text color overrides */
[data-theme="dark"] [style*="color: #333"],
[data-theme="dark"] [style*="color:#333"],
[data-theme="dark"] [style*="color: #333333"],
[data-theme="dark"] [style*="color:#333333"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] [style*="color: #15803d"],
[data-theme="dark"] [style*="color:#15803d"] {
    color: var(--success-text) !important;
}

[data-theme="dark"] [style*="color: #e53e3e"],
[data-theme="dark"] [style*="color:#e53e3e"],
[data-theme="dark"] [style*="color: #ef4444"],
[data-theme="dark"] [style*="color:#ef4444"] {
    color: var(--danger-text) !important;
}

[data-theme="dark"] [style*="color: #1a73e8"],
[data-theme="dark"] [style*="color:#1a73e8"] {
    color: var(--info-text) !important;
}

[data-theme="dark"] [style*="color: #10b981"],
[data-theme="dark"] [style*="color:#10b981"] {
    color: var(--accent-green) !important;
}

[data-theme="dark"] [style*="color: #d97706"],
[data-theme="dark"] [style*="color:#d97706"] {
    color: var(--warning-text) !important;
}

[data-theme="dark"] [style*="color: #319795"],
[data-theme="dark"] [style*="color:#319795"] {
    color: var(--accent-green) !important;
}

[data-theme="dark"] [style*="color: #6d28d9"],
[data-theme="dark"] [style*="color:#6d28d9"] {
    color: var(--accent-purple-text) !important;
}

[data-theme="dark"] [style*="color: #2563eb"],
[data-theme="dark"] [style*="color:#2563eb"] {
    color: var(--text-link) !important;
}

[data-theme="dark"] [style*="color: #f43f5e"],
[data-theme="dark"] [style*="color:#f43f5e"] {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] [style*="color: #e11d48"],
[data-theme="dark"] [style*="color:#e11d48"] {
    color: var(--accent-sakura) !important;
}

/* Additional border color overrides */
[data-theme="dark"] [style*="border-color: #bbf7d0"],
[data-theme="dark"] [style*="border-color:#bbf7d0"] {
    border-color: rgba(101, 199, 71, 0.2) !important;
}

[data-theme="dark"] [style*="border-color: #f43f5e"],
[data-theme="dark"] [style*="border-color:#f43f5e"] {
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] [style*="border-color: #fbcfe8"],
[data-theme="dark"] [style*="border-color:#fbcfe8"],
[data-theme="dark"] [style*="border-color: rgba(203, 213, 225"],
[data-theme="dark"] [style*="border-color:rgba(203,213,225"] {
    border-color: var(--border-soft) !important;
}

/* Spinner color overrides */
[data-theme="dark"] [style*="color: #6dbe45"],
[data-theme="dark"] [style*="color:#6dbe45"],
[data-theme="dark"] [style*="color: #6DBE45"],
[data-theme="dark"] [style*="color:#6DBE45"] {
    color: var(--accent-green) !important;
}

[data-theme="dark"] [style*="color: #a855f7"],
[data-theme="dark"] [style*="color:#a855f7"] {
    color: var(--accent-purple) !important;
}

/* Background gradient overrides for avatars */
[data-theme="dark"] [style*="background: linear-gradient(135deg, #fecdd3"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#fecdd3"],
[data-theme="dark"] [style*="background: linear-gradient(135deg, #fce4ec"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#fce4ec"],
[data-theme="dark"] [style*="background: linear-gradient(135deg, #f8bbd0"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#f8bbd0"] {
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] [style*="background: linear-gradient(135deg, #dbeafe"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#dbeafe"],
[data-theme="dark"] [style*="background: linear-gradient(135deg, #bfdbfe"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#bfdbfe"] {
    background: var(--info-bg) !important;
}

[data-theme="dark"] [style*="background: linear-gradient(135deg, #e0f2fe"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#e0f2fe"],
[data-theme="dark"] [style*="background: linear-gradient(135deg, #bae6fd"],
[data-theme="dark"] [style*="background:linear-gradient(135deg,#bae6fd"] {
    background: var(--info-bg) !important;
}

/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */
@media (max-width: 991px) {
    .header-actions {
        gap: 10px;
    }

    .icon-button,
    .theme-toggle-button,
    .notification-button {
        width: 40px;
        height: 40px;
    }

    .streak-pill {
        height: 40px;
        padding: 0 12px;
        font-size: 0.85rem;
    }

    .profile-menu {
        height: 44px;
        padding: 3px 10px 3px 4px;
        gap: 8px;
    }
}

@media (max-width: 576px) {
    .header-actions {
        gap: 8px;
    }

    .header-action-group {
        gap: 6px;
    }
}

/* ============================================================
   FINAL COMPREHENSIVE FIXES
   Based on actual page audits
   ============================================================ */

/* --- Dashboard stat items with gradient backgrounds --- */
[data-theme="dark"] .stat-streak {
    background: var(--warning-bg) !important;
}

[data-theme="dark"] .stat-xp {
    background: var(--accent-yellow-bg) !important;
}

[data-theme="dark"] .stat-mastered {
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .stat-reviewing {
    background: var(--accent-purple-bg) !important;
}

/* Dashboard inner bg-white card */
[data-theme="dark"] .dash-hero .bg-white,
[data-theme="dark"] .daily-mission .bg-white {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

/* Dashboard achievement items bg-light */
[data-theme="dark"] .dash-stats-card .bg-light,
[data-theme="dark"] .dash-stats-card .border {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dash-stats-card .text-dark {
    color: var(--text-main) !important;
}

/* --- JLPT exam-page body background --- */
[data-theme="dark"] .exam-page {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.1), transparent 40%),
        radial-gradient(circle at top right, rgba(99, 179, 255, 0.08), transparent 45%),
        var(--bg-main) !important;
}

/* JLPT level cards */
[data-theme="dark"] .jlpt-level-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .jlpt-level-card:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .level-card-header h3 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .level-desc {
    color: var(--text-muted) !important;
}

/* JLPT level difficulty badges */
[data-theme="dark"] .level-n1 .level-difficulty { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
[data-theme="dark"] .level-n2 .level-difficulty { background: var(--accent-orange-bg) !important; color: var(--accent-orange) !important; }
[data-theme="dark"] .level-n3 .level-difficulty { background: var(--success-bg) !important; color: var(--success-text) !important; }
[data-theme="dark"] .level-n4 .level-difficulty { background: var(--info-bg) !important; color: var(--info-text) !important; }
[data-theme="dark"] .level-n5 .level-difficulty { background: var(--accent-purple-bg) !important; color: var(--accent-purple-text) !important; }

/* JLPT hero buttons */
[data-theme="dark"] .jlpt-hero .btn-light {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .jlpt-hero .btn-light:hover {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

/* JLPT stats card */
[data-theme="dark"] .level-stats-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .level-stat-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .level-stat-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .level-stat-label {
    color: var(--text-muted) !important;
}

/* JLPT section cards */
[data-theme="dark"] .jlpt-section-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .jlpt-section-card h5 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-section-card p {
    color: var(--text-muted) !important;
}

/* JLPT history section */
[data-theme="dark"] .jlpt-history-section {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .jlpt-history-empty {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-score-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .glass-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .score-text {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .section-score-item {
    border-bottom-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .best-scores-card,
[data-theme="dark"] .recent-attempts-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .card-badge {
    background: var(--success-bg) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .attempt-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .attempt-date {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .attempt-score {
    color: var(--text-main) !important;
}

/* --- Listening dictation play page --- */
[data-theme="dark"] body.bg-light {
    background: var(--gradient-body) !important;
}

[data-theme="dark"] .dictation-sidebar .bg-white {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .dictation-sidebar .text-dark {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-main-content .card-header.bg-white {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-play-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-play-card .card-header {
    background: var(--bg-card-hover) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-play-card .card-body {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-mode-tabs {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .dictation-tabs-pill {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-tab {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .dictation-tab.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .dictation-tab:hover:not(.active) {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .btn-icon-nav {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .btn-icon-nav:hover {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .btn-play-pause {
    background: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .dictation-workspace {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-audio-player {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-japanese-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-meaning-text {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .sidebar-menu-item {
    color: var(--text-muted) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .sidebar-menu-item.active {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .sidebar-menu-item.completed {
    background: var(--success-bg) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .sidebar-menu-item.incorrect {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

/* --- Quiz game setup card --- */
[data-theme="dark"] .setup-quiz-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-empty-state {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-empty-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-empty-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-option-radio {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-option-radio:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .quiz-option-radio.active {
    background: var(--primary-bg) !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

/* Quiz answer buttons */
[data-theme="dark"] .quiz-answer-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: 0 4px 0 var(--border-soft) !important;
}

[data-theme="dark"] .quiz-answer-btn:hover:not(:disabled) {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-strong) !important;
    box-shadow: 0 4px 0 var(--border-strong) !important;
}

[data-theme="dark"] .answer-label {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .answer-text {
    color: var(--text-main) !important;
}

/* Quiz next button */
[data-theme="dark"] .quiz-next-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .quiz-next-btn:hover {
    background: var(--accent-green-hover) !important;
}

/* Quiz submit button */
[data-theme="dark"] .quiz-submit-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

/* Quiz exit button */
[data-theme="dark"] .quiz-exit-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

/* Quiz completion card */
[data-theme="dark"] .quiz-completion-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .completion-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .completion-stat-label {
    color: var(--text-muted) !important;
}

/* Quiz lesson list */
[data-theme="dark"] .lesson-quiz-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .lesson-quiz-item:hover {
    background: var(--bg-card-hover) !important;
    border-color: var(--primary) !important;
}

[data-theme="dark"] .lesson-quiz-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .lesson-quiz-count {
    color: var(--text-muted) !important;
}

/* --- Kanji JLPT page --- */
[data-theme="dark"] .kanji-hero {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-hero .hero-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-hero .hero-title span {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-hero .hero-desc {
    color: var(--text-muted) !important;
}

/* Kanji tabs */
[data-theme="dark"] .kanji-tabs {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kanji-tab {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-tab:hover {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-tab.active {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .tab-count {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-tab.active .tab-count {
    background: rgba(255, 255, 255, 0.25) !important;
}

/* Kanji cards */
[data-theme="dark"] .kanji-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kanji-card:hover {
    border-color: var(--accent-green) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .kanji-char {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-reading {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-word {
    color: var(--text-soft) !important;
}

[data-theme="dark"] .kanji-meaning {
    color: var(--text-muted) !important;
}

/* Kanji flashcard filter tabs */
[data-theme="dark"] .flashcard-filter-tabs {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .flashcard-filter-tab {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .flashcard-filter-tab:hover {
    background: var(--accent-green-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .flashcard-filter-tab.active {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .fc-tab-count {
    background: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .flashcard-filter-tab.active .fc-tab-count {
    background: rgba(255, 255, 255, 0.25) !important;
}

/* Kanji flashcard view toggle */
[data-theme="dark"] .flashcard-view-toggle {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .view-btn {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .view-btn.active {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .view-btn:hover:not(.active) {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

/* Kanji detail list */
[data-theme="dark"] .kanji-detail-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kanji-detail-char {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-detail-reading {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kanji-detail-meaning {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kanji-detail-example {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* Kanji JLPT card */
[data-theme="dark"] .kanji-jlpt-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kanji-jlpt-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kanji-jlpt-desc {
    color: var(--text-muted) !important;
}

/* --- AI Chat remaining fixes --- */
[data-theme="dark"] .ai-typing-bubble {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-typing-dots span {
    background: var(--text-muted) !important;
}

[data-theme="dark"] .ai-chat-input-area {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-chat-input-form {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .ai-chat-input-form:focus-within {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 3px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .ai-chat-input {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-chat-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .ai-chat-send-btn {
    background: linear-gradient(135deg, var(--accent-sakura), #e11d48) !important;
}

[data-theme="dark"] .ai-chat-footer-text {
    color: var(--text-muted) !important;
}

/* --- Kaiwa session page --- */
[data-theme="dark"] .voice-call-canvas {
    background: var(--bg-main) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .voice-call-container {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .voice-call-status {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .blossom-glow-circle {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .waveform-canvas-box {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .subtitle-jp {
    color: var(--text-main) !important;
}

[data-theme="dark"] .subtitle-vi {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .float-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .float-btn:hover {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .float-btn.active {
    background: var(--accent-sakura) !important;
    color: #fff !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .float-btn.hangup {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.2) !important;
}

[data-theme="dark"] .smart-hints-overlay {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .smart-hints-header {
    color: var(--text-main) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .smart-hint-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hint-item:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .smart-hint-jp {
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hint-vi {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .volume-slider-container {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .volume-slider {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .volume-slider::-webkit-slider-thumb {
    background: var(--accent-sakura) !important;
}

[data-theme="dark"] .volume-slider::-moz-range-thumb {
    background: var(--accent-sakura) !important;
}

/* --- Grammar lessons detail page --- */
[data-theme="dark"] .grammar-detail-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .grammar-tabs .nav-link {
    color: var(--text-muted) !important;
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .grammar-tabs .nav-link.active {
    color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .grammar-content-section {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .grammar-content-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-content-text {
    color: var(--text-soft) !important;
}

[data-theme="dark"] .grammar-content-example {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-content-meaning {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .grammar-exercise-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .grammar-exercise-question {
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-exercise-option {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-exercise-option:hover {
    background: var(--bg-card-hover) !important;
    border-color: var(--primary) !important;
}

[data-theme="dark"] .grammar-exercise-option.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .grammar-exercise-option.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .grammar-exercise-feedback {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* Grammar lesson detail - btn-light */
[data-theme="dark"] .grammar-hero .btn-light {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .grammar-hero .btn-light:hover {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-strong) !important;
}

/* --- Vocabulary quiz setup page --- */
[data-theme="dark"] .vocab-quiz-setup {
    background: var(--bg-main) !important;
}

[data-theme="dark"] .vocab-quiz-setup h1,
[data-theme="dark"] .grammar-quiz-setup h1 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .vocab-quiz-setup h3,
[data-theme="dark"] .grammar-quiz-setup h3 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .vocab-quiz-setup .text-secondary,
[data-theme="dark"] .grammar-quiz-setup .text-secondary {
    color: var(--text-muted) !important;
}

/* Select border fix */
[data-theme="dark"] .form-select[style*="border-color:#E2E8F0"],
[data-theme="dark"] .form-select[style*="border-color: #E2E8F0"] {
    border-color: var(--border-soft) !important;
}

/* --- JLPT quiz page fixes --- */
[data-theme="dark"] .jlpt-quiz-page {
    background: var(--bg-main) !important;
}

[data-theme="dark"] .jlpt-quiz-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-quiz-content {
    background: var(--bg-card) !important;
}

[data-theme="dark"] .jlpt-question-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-option-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-explanation-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-explanation-box {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-score-display {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .jlpt-score-number {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-score-label {
    color: var(--text-muted) !important;
}

/* JLPT quiz - spinner and time display overrides */
[data-theme="dark"] .spinner-border[style*="color: #6dbe45"],
[data-theme="dark"] .spinner-border[style*="color:#6dbe45"],
[data-theme="dark"] .spinner-border[style*="color: #6DBE45"],
[data-theme="dark"] .spinner-border[style*="color:#6DBE45"] {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .spinner-border[style*="color: #a855f7"],
[data-theme="dark"] .spinner-border[style*="color:#a855f7"] {
    color: var(--accent-purple) !important;
}

/* Time display in quiz */
[data-theme="dark"] .time-display {
    color: var(--text-muted) !important;
}

/* Score number in quiz */
[data-theme="dark"] .score-number {
    color: var(--accent-green) !important;
}

/* Quiz feedback in quiz-play */
[data-theme="dark"] .quiz-feedback.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .quiz-feedback.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .quiz-feedback.timeout {
    background: var(--info-bg) !important;
    border-color: var(--primary) !important;
    color: var(--info-text) !important;
}

/* Quiz progress fill */
[data-theme="dark"] .quiz-progress-fill {
    background: linear-gradient(90deg, var(--accent-green), #55b63a) !important;
}

/* --- Listening dictation result page --- */
[data-theme="dark"] .dictation-result-hero {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-result-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-result-subtitle {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .dictation-result-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .dictation-result-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dictation-result-item.correct {
    border-left-color: var(--accent-green) !important;
}

[data-theme="dark"] .dictation-result-item.incorrect {
    border-left-color: #ef4444 !important;
}

[data-theme="dark"] .dictation-result-question {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-result-answer {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .dictation-result-correct {
    color: var(--success-text) !important;
}

[data-theme="dark"] .dictation-result-wrong {
    color: var(--danger-text) !important;
}

/* --- Listening dictation index page --- */
[data-theme="dark"] .dictation-hero .hero-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-hero .hero-title span {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .dictation-hero .hero-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .dictation-level-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-level-card:hover {
    border-color: rgba(255, 92, 138, 0.2) !important;
    box-shadow: var(--shadow-card-hover) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-level-card h4 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-exam-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-exam-card:hover {
    border-color: rgba(255, 92, 138, 0.15) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .dictation-exam-card h5 {
    color: var(--text-main) !important;
}

/* --- Community page body override --- */
[data-theme="dark"] body {
    background: var(--gradient-body) !important;
}

/* --- Additional generic fixes --- */

/* Fix for bg-white on cards in dark mode */
[data-theme="dark"] .rounded-4.bg-white {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

/* Fix for border-light in dark mode */
[data-theme="dark"] .border-light {
    border-color: var(--border-soft) !important;
}

/* Fix for text-dark in dark mode */
[data-theme="dark"] .text-dark {
    color: var(--text-main) !important;
}

/* Fix for btn-close in dark mode */
[data-theme="dark"] .btn-close {
    filter: invert(1);
}

/* Fix for dropdown-menu-dark in dark mode */
[data-theme="dark"] .dropdown-menu-dark {
    background: var(--bg-dropdown) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .dropdown-menu-dark .dropdown-item {
    color: var(--text-main) !important;
}

[data-theme="dark"] .dropdown-menu-dark .dropdown-item:hover {
    background: var(--bg-dropdown-hover) !important;
    color: var(--text-main) !important;
}

/* Fix for form-control-plaintext in dark mode */
[data-theme="dark"] .form-control-plaintext {
    color: var(--text-main) !important;
}

/* Fix for form-text in dark mode */
[data-theme="dark"] .form-text {
    color: var(--text-muted) !important;
}

/* Fix for input-group in dark mode */
[data-theme="dark"] .input-group {
    color: var(--text-main) !important;
}

/* Fix for visually-hidden in dark mode */
[data-theme="dark"] .visually-hidden {
    color: var(--text-main) !important;
}

/* ============================================================
   JLPT QUIZ PAGE — COMPLETE DARK MODE OVERRIDES
   Covers: vocabulary, grammar_reading, listening sections
   ============================================================ */

/* --- Part blocks --- */
[data-theme="dark"] .part-block {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .part-header {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .part-header h5 {
    color: var(--text-main) !important;
}

/* --- Audio blocks --- */
[data-theme="dark"] .audio-block {
    background: var(--info-bg) !important;
    border-color: rgba(99, 179, 255, 0.15) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .audio-block.custom-audio-player {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .custom-mini-audio-player {
    background: var(--info-bg) !important;
    border-color: rgba(99, 179, 255, 0.12) !important;
    box-shadow: var(--shadow-sm) !important;
}

/* Audio seek buttons */
[data-theme="dark"] .custom-audio-player .seek-btn,
[data-theme="dark"] .custom-mini-audio-player .seek-btn {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .custom-audio-player .seek-btn:hover,
[data-theme="dark"] .custom-mini-audio-player .seek-btn:hover {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

/* Audio range input track */
[data-theme="dark"] .custom-audio-player input[type="range"].form-range,
[data-theme="dark"] .custom-mini-audio-player input[type="range"].form-range {
    background: var(--bg-card-hover) !important;
}

/* Audio slider thumb border */
[data-theme="dark"] .custom-audio-player input[type="range"].form-range::-webkit-slider-thumb,
[data-theme="dark"] .custom-mini-audio-player input[type="range"].form-range::-webkit-slider-thumb {
    border-color: var(--bg-card) !important;
}

[data-theme="dark"] .custom-audio-player input[type="range"].form-range::-moz-range-thumb,
[data-theme="dark"] .custom-mini-audio-player input[type="range"].form-range::-moz-range-thumb {
    border-color: var(--bg-card) !important;
}

/* Time display */
[data-theme="dark"] .time-display {
    color: var(--text-muted) !important;
}

/* Transcript container */
[data-theme="dark"] .transcript-container {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

[data-theme="dark"] .transcript-container::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb) !important;
}

[data-theme="dark"] .transcript-line {
    color: var(--text-main) !important;
}

[data-theme="dark"] .transcript-line:hover {
    background: rgba(255, 255, 255, 0.06) !important;
}

[data-theme="dark"] .transcript-line.active-transcript-line {
    background: var(--accent-green-bg) !important;
    border-left-color: var(--accent-green) !important;
}

[data-theme="dark"] .transcript-line.active-transcript-line .jp-text {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .transcript-line .jp-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .transcript-line .vi-text {
    color: var(--text-muted) !important;
}

/* --- Reading passage --- */
[data-theme="dark"] .reading-passage-block {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .reading-passage-block h6 {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .reading-passage-text {
    color: var(--text-main) !important;
}

/* --- Quiz cards --- */
[data-theme="dark"] .quiz-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-card:hover {
    border-color: rgba(101, 199, 71, 0.2) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .quiz-question-text {
    color: var(--text-main) !important;
}

/* --- Quiz choice items --- */
[data-theme="dark"] .quiz-choice-label {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .quiz-choice-label:hover {
    border-color: var(--accent-green) !important;
    background: var(--accent-green-bg) !important;
}

[data-theme="dark"] .quiz-choice-label strong {
    color: var(--accent-green) !important;
}

/* Choice correct/wrong states */
[data-theme="dark"] .choice-correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
    box-shadow: 0 0 0 3px rgba(101, 199, 71, 0.15) !important;
}

[data-theme="dark"] .choice-correct strong {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .choice-wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

[data-theme="dark"] .choice-wrong strong {
    color: #ef4444 !important;
}

/* --- Quiz feedback --- */
[data-theme="dark"] .quiz-feedback {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

/* --- Timer card --- */
[data-theme="dark"] .timer-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .timer-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .timer-display {
    color: var(--text-main) !important;
}

[data-theme="dark"] .timer-normal {
    color: var(--accent-green) !important;
    border-color: rgba(101, 199, 71, 0.3) !important;
}

[data-theme="dark"] .timer-warning {
    color: var(--accent-orange) !important;
    border-color: rgba(251, 146, 60, 0.3) !important;
}

[data-theme="dark"] .timer-danger {
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.3) !important;
}

/* --- Question navigator --- */
[data-theme="dark"] .question-navigator {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .navigator-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .navigator-progress-text {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .nav-progress-bar {
    background: var(--bg-card-hover) !important;
}

/* Question number buttons */
[data-theme="dark"] .question-number-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .question-number-btn:hover {
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .question-number-btn.answered {
    background: var(--accent-green) !important;
    color: #fff !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .question-number-btn.current {
    outline-color: rgba(99, 179, 255, 0.2) !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .question-number-btn.correct {
    background: var(--success-bg) !important;
    color: var(--accent-green) !important;
    border-color: rgba(101, 199, 71, 0.3) !important;
}

[data-theme="dark"] .question-number-btn.correct:hover {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .question-number-btn.wrong {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.3) !important;
}

[data-theme="dark"] .question-number-btn.wrong:hover {
    background: #ef4444 !important;
    color: #fff !important;
}

/* --- Score area --- */
[data-theme="dark"] .score-area {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .exam-sidebar .score-area {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .exam-sidebar .score-area h5 {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .score-area h5 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .score-area .btn-outline-primary {
    color: var(--accent-green) !important;
    border-color: var(--accent-green) !important;
}

[data-theme="dark"] .score-area .btn-outline-primary:hover {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .score-area .btn-light {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .score-area .btn-light:hover {
    background: var(--bg-card-hover) !important;
}

/* --- AI explanation box --- */
[data-theme="dark"] .ai-explanation-box {
    background: var(--accent-purple-bg) !important;
    border-color: rgba(167, 139, 250, 0.15) !important;
}

[data-theme="dark"] .ai-explanation-content {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-explanation-content strong {
    color: var(--accent-purple) !important;
}

/* --- AI analysis card --- */
[data-theme="dark"] .ai-analysis-card {
    background: var(--bg-card) !important;
    border-color: rgba(167, 139, 250, 0.15) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .ai-content-body {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-content-body strong {
    color: var(--accent-purple) !important;
}

/* --- Level stats card --- */
[data-theme="dark"] .level-stats-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .level-stat-item {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .level-stat-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .level-stat-label {
    color: var(--text-muted) !important;
}

/* Stat icon backgrounds */
[data-theme="dark"] .stat-exams .stat-icon { background: var(--accent-green-bg) !important; }
[data-theme="dark"] .stat-vocab .stat-icon { background: var(--accent-rose-bg) !important; }
[data-theme="dark"] .stat-grammar .stat-icon { background: var(--accent-blue-bg) !important; }
[data-theme="dark"] .stat-listening .stat-icon { background: var(--accent-purple-bg) !important; }

/* --- JLPT exam cards --- */
[data-theme="dark"] .jlpt-exam-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .jlpt-exam-card h5 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-exam-card:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

/* Badge variants */
[data-theme="dark"] .badge-vocab {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
    border-color: rgba(101, 199, 71, 0.2) !important;
}

[data-theme="dark"] .badge-grammar {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
    border-color: rgba(99, 179, 255, 0.2) !important;
}

[data-theme="dark"] .badge-listening {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
    border-color: rgba(167, 139, 250, 0.2) !important;
}

[data-theme="dark"] .badge-level-pill {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

/* --- JLPT section cards --- */
[data-theme="dark"] .jlpt-section-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .jlpt-section-card h4 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-section-card:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

/* Section color overrides */
[data-theme="dark"] .section-vocab { --section-bg: var(--accent-green-bg); }
[data-theme="dark"] .section-grammar { --section-bg: var(--info-bg); }
[data-theme="dark"] .section-listening { --section-bg: var(--accent-purple-bg); }

[data-theme="dark"] .section-icon {
    box-shadow: var(--shadow-sm) !important;
}

/* --- Year badge --- */
[data-theme="dark"] .year-badge {
    background: var(--accent-green) !important;
    color: #fff !important;
}

/* --- Submit button --- */
[data-theme="dark"] #submitBtn {
    background: var(--accent-green) !important;
    border-color: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] #submitBtn:hover {
    background: var(--accent-green-hover) !important;
    border-color: var(--accent-green-hover) !important;
}

/* Sidebar submit button */
[data-theme="dark"] .sidebar-submit-btn {
    background: var(--accent-green) !important;
    border-color: var(--accent-green) !important;
    color: #fff !important;
}

/* --- Exit/Timeout modal buttons --- */
[data-theme="dark"] #btnCancelSubmit,
[data-theme="dark"] #btnCancelExit {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] #btnCancelSubmit:hover,
[data-theme="dark"] #btnCancelExit:hover {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-strong) !important;
}

[data-theme="dark"] #btnConfirmSubmit {
    background: linear-gradient(135deg, var(--accent-green) 0%, var(--accent-green-hover) 100%) !important;
    color: #fff !important;
}

[data-theme="dark"] #btnConfirmExit {
    background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%) !important;
    color: #fff !important;
}

[data-theme="dark"] #btnConfirmTimeout {
    background: linear-gradient(135deg, var(--accent-orange) 0%, #d97706 100%) !important;
    color: #fff !important;
}

/* --- Modal overlay --- */
[data-theme="dark"] .custom-modal-overlay {
    background: var(--bg-overlay) !important;
}

[data-theme="dark"] .custom-modal-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .custom-modal-header h4 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .custom-modal-body p {
    color: var(--text-muted) !important;
}

/* --- JLPT hero --- */
[data-theme="dark"] .jlpt-hero .hero-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-hero .hero-title span {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .jlpt-hero .hero-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .jlpt-hero .btn-light {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .jlpt-hero .btn-light:hover {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

/* --- Level pills --- */
[data-theme="dark"] .level-pill {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .soft-badge {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

/* --- Toggle transcript button --- */
[data-theme="dark"] .toggle-transcript-btn {
    border-color: var(--accent-green) !important;
    color: var(--accent-green) !important;
    background: transparent !important;
}

[data-theme="dark"] .toggle-transcript-btn:hover {
    background: var(--accent-green) !important;
    color: #fff !important;
}

/* --- JLPT score card (exam page) --- */
[data-theme="dark"] .jlpt-score-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .glass-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .score-text {
    color: var(--accent-green) !important;
}

[data-theme="dark"] .section-score-item {
    border-bottom-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .best-scores-card,
[data-theme="dark"] .recent-attempts-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .card-badge {
    background: var(--success-bg) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .attempt-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .attempt-date {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .attempt-score {
    color: var(--text-main) !important;
}

/* --- Inline styles in quiz template --- */
[data-theme="dark"] [style*="color: #64748b"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color:#64748b"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color: #475569"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color:#475569"] {
    color: var(--text-muted) !important;
}

[data-theme="dark"] [style*="color: #1e293b"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] [style*="color:#1e293b"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] [style*="color: #334155"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] [style*="color:#334155"] {
    color: var(--text-main) !important;
}

[data-theme="dark"] [style*="color: #d97706"] {
    color: var(--warning-text) !important;
}

[data-theme="dark"] [style*="color:#d97706"] {
    color: var(--warning-text) !important;
}

[data-theme="dark"] [style*="background: rgba(255, 255, 255, 0.95)"] {
    background: var(--bg-card) !important;
}

[data-theme="dark"] [style*="background:rgba(255,255,255,0.95)"] {
    background: var(--bg-card) !important;
}

[data-theme="dark"] [style*="background: rgba(232, 245, 255"] {
    background: var(--info-bg) !important;
}

[data-theme="dark"] [style*="background:rgba(232,245,255"] {
    background: var(--info-bg) !important;
}

[data-theme="dark"] [style*="background: rgba(168, 85, 247"] {
    background: var(--accent-purple-bg) !important;
}

[data-theme="dark"] [style*="background:rgba(168,85,247"] {
    background: var(--accent-purple-bg) !important;
}

[data-theme="dark"] [style*="background: rgba(255,255,255,0.75)"] {
    background: var(--bg-card) !important;
}

[data-theme="dark"] [style*="background:rgba(255,255,255,0.75)"] {
    background: var(--bg-card) !important;
}

[data-theme="dark"] [style*="border: 1px solid rgba(0,0,0,0.08)"] {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] [style*="border: 1px solid rgba(0, 0, 0, 0.08)"] {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] [style*="border: 1.5px solid rgba(16, 185, 129"] {
    border-color: rgba(101, 199, 71, 0.3) !important;
}

[data-theme="dark"] [style*="border:1.5px solid rgba(16,185,129"] {
    border-color: rgba(101, 199, 71, 0.3) !important;
}

[data-theme="dark"] [style*="border: 1px solid rgba(0,0,0,0.05)"] {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] [style*="border: 1px solid rgba(0, 0, 0, 0.05)"] {
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] [style*="border-left: 6px solid var(--green)"] {
    border-left-color: var(--accent-green) !important;
}

/* Volume slider in dark mode */
[data-theme="dark"] .volume-container input[type="range"].volume-slider {
    background: var(--bg-card-hover) !important;
}

/* Part level audio progress bar */
[data-theme="dark"] .audio-progress {
    background: var(--bg-card-hover) !important;
}

/* ============================================================
   QUIZ GAME SETUP & RESULT — ADDITIONAL OVERRIDES
   ============================================================ */

/* Lesson select cards */
[data-theme="dark"] .lesson-select-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .lesson-select-card:hover {
    border-color: var(--border-strong) !important;
    box-shadow: var(--shadow-card-hover) !important;
}

[data-theme="dark"] .lesson-badge {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .lesson-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .lesson-info {
    color: var(--text-muted) !important;
}

/* Completion stats */
[data-theme="dark"] .completion-stat {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .completion-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .completion-stat-value {
    color: var(--primary) !important;
}

[data-theme="dark"] .completion-stat-label {
    color: var(--text-muted) !important;
}

/* Result page */
[data-theme="dark"] .result-hero-game {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .result-score-big {
    color: var(--primary) !important;
}

[data-theme="dark"] .result-xp-badge {
    background: var(--warning-bg) !important;
    color: var(--warning-text) !important;
    border-color: rgba(251, 146, 60, 0.2) !important;
}

[data-theme="dark"] .result-stat-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .result-stat-num {
    color: var(--text-main) !important;
}

[data-theme="dark"] .result-stat-label {
    color: var(--text-muted) !important;
}

/* Answer review cards */
[data-theme="dark"] .answer-review-game {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    border-left-color: var(--border-strong) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .answer-review-game.is-correct {
    border-left-color: var(--accent-green) !important;
}

[data-theme="dark"] .answer-review-game.is-wrong {
    border-left-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .answer-review-game.is-skipped {
    border-left-color: var(--text-muted) !important;
}

[data-theme="dark"] .answer-status-badge.skipped {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .review-detail-box {
    background: var(--bg-card-hover) !important;
    color: var(--text-main) !important;
}

/* AI tutor card */
[data-theme="dark"] .ai-tutor-card {
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .ai-tutor-name {
    color: var(--accent-purple-text) !important;
}

[data-theme="dark"] .ai-tutor-feedback-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .ai-tutor-review-box {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
    border-color: rgba(167, 139, 250, 0.2) !important;
}

/* Quiz back button */
[data-theme="dark"] .quiz-back-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-back-btn:hover {
    background: var(--bg-card-hover) !important;
}

/* Quiz submit button */
[data-theme="dark"] .quiz-submit-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .quiz-submit-btn:hover {
    background: var(--accent-green-hover) !important;
}

/* Quiz empty state */
[data-theme="dark"] .quiz-empty-state {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .quiz-empty-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-empty-desc {
    color: var(--text-muted) !important;
}

/* Quiz game body */
[data-theme="dark"] .quiz-game-body {
    background: var(--bg-main) !important;
    color: var(--text-main) !important;
}

/* Quiz game main */
[data-theme="dark"] .quiz-game-main {
    color: var(--text-main) !important;
}

/* Quiz type label */
[data-theme="dark"] .quiz-type-label {
    background: var(--bg-card-hover) !important;
    color: var(--text-muted) !important;
}

/* Quiz logo */
[data-theme="dark"] .quiz-logo {
    color: var(--text-main) !important;
}

/* Quiz score */
[data-theme="dark"] .quiz-score {
    background: var(--warning-bg) !important;
    color: var(--warning-text) !important;
}

/* Quiz combo */
[data-theme="dark"] .quiz-combo {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

/* Timer track */
[data-theme="dark"] .timer-track {
    stroke: var(--bg-card-hover) !important;
}

/* Timer value */
[data-theme="dark"] .timer-value {
    color: var(--text-main) !important;
}

/* Quiz progress bar */
[data-theme="dark"] .quiz-progress-bar {
    background: var(--bg-card-hover) !important;
}

/* Quiz progress text */
[data-theme="dark"] .quiz-progress-text {
    color: var(--text-main) !important;
}

/* Quiz question card game */
[data-theme="dark"] .quiz-question-card-game {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

/* Quiz question number */
[data-theme="dark"] .quiz-question-number {
    background: var(--info-bg) !important;
    color: var(--info-text) !important;
}

/* Quiz question text game */
[data-theme="dark"] .quiz-question-text-game {
    color: var(--text-main) !important;
}

/* Quiz answer buttons */
[data-theme="dark"] .quiz-answer-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: 0 4px 0 var(--border-soft) !important;
}

[data-theme="dark"] .quiz-answer-btn:hover:not(:disabled) {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-strong) !important;
    box-shadow: 0 4px 0 var(--border-strong) !important;
}

[data-theme="dark"] .answer-label {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .answer-text {
    color: var(--text-main) !important;
}

/* Quiz next button */
[data-theme="dark"] .quiz-next-btn {
    background: var(--accent-green) !important;
    color: #fff !important;
}

[data-theme="dark"] .quiz-next-btn:hover {
    background: var(--accent-green-hover) !important;
}

/* Quiz feedback */
[data-theme="dark"] .quiz-feedback.correct {
    background: var(--success-bg) !important;
    border-color: var(--accent-green) !important;
    color: var(--success-text) !important;
}

[data-theme="dark"] .quiz-feedback.wrong {
    background: var(--danger-bg) !important;
    border-color: #ef4444 !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .quiz-feedback.timeout {
    background: var(--info-bg) !important;
    border-color: var(--primary) !important;
    color: var(--info-text) !important;
}

/* Quiz completion card */
[data-theme="dark"] .quiz-completion-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

/* Quiz option radio */
[data-theme="dark"] .quiz-option-radio {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .quiz-option-radio:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

[data-theme="dark"] .quiz-option-radio.active {
    background: var(--primary-bg) !important;
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}

/* Setup quiz card */
[data-theme="dark"] .setup-quiz-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

/* Lesson grid */
[data-theme="dark"] .lesson-grid {
    color: var(--text-main) !important;
}

/* Result actions */
[data-theme="dark"] .result-actions {
    color: var(--text-main) !important;
}

/* Quiz game header */
[data-theme="dark"] .quiz-game-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .quiz-header-left {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-header-center {
    color: var(--text-main) !important;
}

[data-theme="dark"] .quiz-header-right {
    color: var(--text-main) !important;
}

/* Quiz progress fill */
[data-theme="dark"] .quiz-progress-fill {
    background: linear-gradient(90deg, var(--accent-green), #55b63a) !important;
}

/* Inline style overrides for quiz pages */
[data-theme="dark"] [style*="border-color:#E2E8F0"],
[data-theme="dark"] [style*="border-color: #E2E8F0"] {
    border-color: var(--border-soft) !important;
}

/* ============================================================
   KAIWA VOICE CALL SESSION — COMPLETE DARK MODE OVERRIDES
   ============================================================ */

/* Voice call canvas (full-screen background) */
[data-theme="dark"] .voice-call-canvas {
    background:
        radial-gradient(circle at top left, rgba(255, 92, 138, 0.12), transparent 40%),
        radial-gradient(circle at top right, rgba(99, 179, 255, 0.1), transparent 40%),
        var(--bg-main) !important;
}

/* Voice call status bar */
[data-theme="dark"] .voice-call-status {
    background: var(--bg-card) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-sm) !important;
}

/* Blossom glow circle */
[data-theme="dark"] .blossom-glow-circle {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: 0 0 40px rgba(255, 92, 138, 0.2), inset 0 0 20px rgba(255, 92, 138, 0.08) !important;
}

/* Waveform canvas box */
[data-theme="dark"] .waveform-canvas-box {
    background: var(--bg-card-hover) !important;
    border-radius: 16px;
}

/* Volume slider container */
[data-theme="dark"] .volume-slider-container {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .volume-slider-container:hover {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .volume-slider {
    background: var(--bg-card-hover) !important;
}

[data-theme="dark"] .volume-slider::-webkit-slider-thumb {
    background: var(--accent-sakura) !important;
}

[data-theme="dark"] .volume-slider::-moz-range-thumb {
    background: var(--accent-sakura) !important;
}

/* Subtitles container */
[data-theme="dark"] .subtitles-container {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .subtitle-jp {
    color: var(--text-main) !important;
    text-shadow: none !important;
}

[data-theme="dark"] .subtitle-vi {
    color: var(--text-muted) !important;
}

/* Floating control buttons */
[data-theme="dark"] .float-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .float-btn:hover {
    background: var(--bg-card-hover) !important;
    color: var(--accent-sakura) !important;
    box-shadow: 0 12px 30px rgba(255, 92, 138, 0.15) !important;
}

[data-theme="dark"] .float-btn.active {
    background: var(--accent-sakura-bg) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .float-btn.hangup {
    background: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: rgba(244, 63, 94, 0.2) !important;
}

[data-theme="dark"] .float-btn.hangup:hover {
    background: #ef4444 !important;
    color: #fff !important;
    box-shadow: 0 12px 30px rgba(239, 68, 68, 0.3) !important;
}

/* Voice call instruction */
[data-theme="dark"] .voice-call-instruction {
    background: var(--bg-card) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-soft) !important;
}

/* End call button */
[data-theme="dark"] .end-call-btn {
    background: linear-gradient(135deg, var(--accent-purple), var(--accent-sakura)) !important;
    color: #fff !important;
    box-shadow: 0 8px 25px rgba(167, 139, 250, 0.3) !important;
}

[data-theme="dark"] .end-call-btn:hover {
    box-shadow: 0 12px 30px rgba(167, 139, 250, 0.45) !important;
}

/* Smart hints overlay (already dark themed, but ensure consistency) */
[data-theme="dark"] .smart-hints-overlay {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hints-header {
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .smart-hints-header h6 {
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hint-item {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hint-item:hover {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .smart-hint-jp {
    color: var(--text-main) !important;
}

[data-theme="dark"] .smart-hint-vi {
    color: var(--text-muted) !important;
}

/* Settings modal in voice call */
[data-theme="dark"] .kaiwa-settings-modal {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kaiwa-settings-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-settings-label {
    color: var(--text-muted) !important;
}

/* Kaiwa chat session components */
[data-theme="dark"] .kaiwa-chat-layout {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .kaiwa-chat-header {
    background: var(--bg-card) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-chat-header-info {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-header-btn {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-header-btn:hover {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-finish-btn:hover {
    background: var(--danger-bg) !important;
    border-color: rgba(239, 68, 68, 0.3) !important;
    color: var(--danger-text) !important;
}

[data-theme="dark"] .kaiwa-msg-counter {
    color: var(--text-muted) !important;
}

/* Kaiwa message bubbles */
[data-theme="dark"] .kaiwa-msg-wrapper.ai .kaiwa-msg-bubble {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-main) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .kaiwa-msg-wrapper.user .kaiwa-msg-bubble {
    background: linear-gradient(135deg, var(--accent-sakura), #e11d48) !important;
    color: #fff !important;
}

[data-theme="dark"] .kaiwa-msg-wrapper.system .kaiwa-msg-bubble {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
}

[data-theme="dark"] .kaiwa-msg-jp {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-msg-vi {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-msg-time {
    color: var(--text-disabled) !important;
}

/* Kaiwa correction card */
[data-theme="dark"] .kaiwa-correction {
    background: var(--warning-bg) !important;
    border-color: rgba(251, 146, 60, 0.2) !important;
}

[data-theme="dark"] .kaiwa-correction-toggle {
    color: var(--warning-text) !important;
}

[data-theme="dark"] .kaiwa-correction-toggle:hover {
    background: rgba(251, 146, 60, 0.1) !important;
}

[data-theme="dark"] .kaiwa-correction-original {
    color: var(--danger-text) !important;
}

[data-theme="dark"] .kaiwa-correction-corrected {
    color: var(--success-text) !important;
}

[data-theme="dark"] .kaiwa-correction-explain {
    color: var(--text-muted) !important;
}

/* Kaiwa suggestion chips */
[data-theme="dark"] .kaiwa-suggestion-chip {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-suggestion-chip:hover {
    background: rgba(255, 92, 138, 0.2) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
}

/* Kaiwa encouragement */
[data-theme="dark"] .kaiwa-encouragement {
    color: var(--accent-sakura) !important;
}

/* Kaiwa typing indicator */
[data-theme="dark"] .kaiwa-typing-bubble {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-typing-dots span {
    background: var(--accent-sakura) !important;
}

/* Kaiwa hint panel */
[data-theme="dark"] .kaiwa-hint-panel {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-hint-tier {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-hint-tier:hover {
    border-color: rgba(255, 92, 138, 0.3) !important;
    box-shadow: var(--shadow-sm) !important;
}

[data-theme="dark"] .kaiwa-hint-tier-text {
    color: var(--text-main) !important;
}

/* Kaiwa input area */
[data-theme="dark"] .kaiwa-chat-input-area {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-chat-input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .kaiwa-chat-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .kaiwa-chat-input:focus {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 3px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .kaiwa-send-btn {
    background: linear-gradient(135deg, var(--accent-sakura), #e11d48) !important;
    color: #fff !important;
}

/* Kaiwa chat completed */
[data-theme="dark"] .kaiwa-chat-completed {
    background: var(--bg-card) !important;
    border-top-color: var(--border-soft) !important;
}

/* Kaiwa voice settings bar */
[data-theme="dark"] .kaiwa-voice-settings-bar {
    background: var(--accent-rose-bg) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-rate-select {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .kaiwa-mic-btn {
    background: var(--bg-card) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .kaiwa-mic-btn:hover {
    border-color: var(--accent-sakura) !important;
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .kaiwa-mic-btn.is-listening {
    border-color: #ef4444 !important;
    background: var(--danger-bg) !important;
}

[data-theme="dark"] .kaiwa-interim-text {
    color: var(--text-muted) !important;
    background: var(--bg-card-hover) !important;
    border-left-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-voice-btn {
    background: var(--bg-card) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-voice-btn:hover {
    background: var(--accent-sakura) !important;
    color: #fff !important;
    border-color: var(--accent-sakura) !important;
}

/* Kaiwa scenario info panel */
[data-theme="dark"] .kaiwa-scenario-info-panel {
    background: var(--accent-purple-bg) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-scenario-info-content {
    color: var(--accent-purple-text) !important;
}

/* Kaiwa report components */
[data-theme="dark"] .kaiwa-report-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card) !important;
}

[data-theme="dark"] .kaiwa-report-section {
    background: var(--bg-card-hover) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-report-text {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-mistake-item {
    background: var(--bg-card) !important;
    border-left-color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-mistake-original {
    color: var(--danger-text) !important;
}

[data-theme="dark"] .kaiwa-mistake-corrected {
    color: var(--success-text) !important;
}

[data-theme="dark"] .kaiwa-mistake-explain {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-score-bg {
    stroke: var(--bg-card-hover) !important;
}

[data-theme="dark"] .kaiwa-score-text {
    fill: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-score-label {
    color: var(--text-muted) !important;
}

/* Kaiwa setup components */
[data-theme="dark"] .kaiwa-setup-card {
    background: var(--glass-bg) !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .kaiwa-section-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-mode-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-mode-card:hover {
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-mode-card.active {
    border-color: var(--accent-sakura) !important;
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .kaiwa-mode-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-mode-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-mode-jp {
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-level-pill {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-level-pill:hover {
    border-color: var(--accent-sakura) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-level-pill.active {
    background: var(--accent-sakura) !important;
    border-color: var(--accent-sakura) !important;
    color: #fff !important;
}

[data-theme="dark"] .kaiwa-topic-input {
    background: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--input-text) !important;
}

[data-theme="dark"] .kaiwa-topic-input::placeholder {
    color: var(--input-placeholder) !important;
}

[data-theme="dark"] .kaiwa-topic-input:focus {
    border-color: var(--accent-sakura) !important;
    box-shadow: 0 0 0 3px rgba(255, 92, 138, 0.1) !important;
}

[data-theme="dark"] .kaiwa-style-content {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-style-option:hover .kaiwa-style-content {
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-style-option.active .kaiwa-style-content {
    border-color: var(--accent-sakura) !important;
    background: var(--accent-rose-bg) !important;
}

[data-theme="dark"] .kaiwa-style-name {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-style-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-outline-btn {
    color: var(--accent-sakura) !important;
    border-color: rgba(255, 92, 138, 0.3) !important;
}

[data-theme="dark"] .kaiwa-outline-btn:hover {
    background: var(--accent-rose-bg) !important;
    border-color: var(--accent-sakura) !important;
}

/* Kaiwa scenario cards */
[data-theme="dark"] .kaiwa-scenario-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-scenario-card:hover {
    border-color: rgba(255, 92, 138, 0.2) !important;
    box-shadow: var(--shadow-md) !important;
}

[data-theme="dark"] .kaiwa-scenario-title {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-scenario-desc {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-badge-mode {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-badge-level {
    background: var(--accent-green-bg) !important;
    color: var(--accent-green) !important;
}

[data-theme="dark"] .kaiwa-badge-topic {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
}

[data-theme="dark"] .kaiwa-badge-ai {
    background: var(--accent-rose-bg) !important;
    color: var(--accent-sakura) !important;
}

[data-theme="dark"] .kaiwa-badge-public {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
}

/* Kaiwa preview card */
[data-theme="dark"] .kaiwa-preview-card {
    background: var(--bg-card) !important;
    border-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-preview-label {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-preview-role-label {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .kaiwa-preview-role-value {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-opening-prompt {
    background: var(--accent-rose-bg) !important;
    border-color: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .kaiwa-opening-prompt .kaiwa-msg-jp {
    color: var(--text-main) !important;
}

[data-theme="dark"] .kaiwa-goals-list li {
    color: var(--text-main) !important;
    border-bottom-color: var(--border-soft) !important;
}

[data-theme="dark"] .kaiwa-preview-tag.grammar {
    background: var(--accent-purple-bg) !important;
    color: var(--accent-purple-text) !important;
}

[data-theme="dark"] .kaiwa-preview-tag.vocab {
    background: var(--warning-bg) !important;
    color: var(--warning-text) !important;
}

[data-theme="dark"] .kaiwa-starter-reply {
    background: var(--success-bg) !important;
    border-color: rgba(101, 199, 71, 0.2) !important;
}

/* Kaiwa empty state */
[data-theme="dark"] .kaiwa-empty-state {
    color: var(--text-muted) !important;
}

/* Kaiwa chat messages scrollbar */
[data-theme="dark"] .kaiwa-chat-messages::-webkit-scrollbar-thumb {
    background: rgba(255, 92, 138, 0.2) !important;
}

[data-theme="dark"] .kaiwa-chat-messages::-webkit-scrollbar-track {
    background: var(--scrollbar-track) !important;
}

/* ============================================================
   PRINT: always light
   ============================================================ */
@media print {
    [data-theme="dark"] { color-scheme: light; }
}
