/* ============================================================
   AffiliateTracker — Glass Theme (premium glassmorphism)
   Activated by [data-theme="glass"] on <html>. Loaded after
   app.css and dark-theme.css so these declarations win the
   cascade. Light and Dark themes are untouched here.

   Design language:
     - A slow-drifting multi-blob background mesh feeds colour
       to every frosted panel.
     - Two surface tiers: foreground panels (cards, modals) sit
       on stronger blur; sub-surfaces (chips, inputs) on lighter
       blur to imply depth.
     - Every floating element gets:
         outer drop shadow  → realistic depth
         1px inner stroke   → "light reflection" rim
         top edge highlight → glass refraction cue
     - Hover lifts cards ~2px with brighter rim. Pure CSS, no JS.
   ============================================================ */

html[data-theme="glass"] {
    --primary:        #6366F1;
    --primary-dark:   #4F46E5;
    --primary-light:  rgba(99,102,241,.16);
    --secondary:      #10B981;
    --warning:        #F59E0B;
    --danger:         #EF4444;
    --info:           #3B82F6;

    --bg:             transparent;
    --sidebar-bg:     rgba(255,255,255,.50);
    --card-bg:        rgba(255,255,255,.55);
    --border:         rgba(255,255,255,.70);
    --text:           #0F172A;
    --text-muted:     #475569;
    --text-light:     #64748B;

    /* Multi-layer drop shadow → realistic depth */
    --shadow:         0 1px 1px rgba(31,38,135,.04),
                      0 4px 12px rgba(31,38,135,.08);
    --shadow-md:      0 2px 4px rgba(31,38,135,.06),
                      0 10px 30px rgba(31,38,135,.14),
                      0 24px 48px -16px rgba(31,38,135,.10);

    /* "Light reflection" rim — used as an inset shadow on panels */
    --glass-rim:      inset 0 1px 0 rgba(255,255,255,.65),
                      inset 0 -1px 0 rgba(255,255,255,.20);

    color-scheme: light;
}

/* ── Animated body backdrop ───────────────────────────────
   Slowly drifting mesh gradient. The drift keeps the glass
   refraction visually alive without being distracting and is
   GPU-cheap (background-position only, no repaint). */
html[data-theme="glass"] body {
    background:
        radial-gradient(circle at 10% 15%, rgba(168, 213, 255, .55), transparent 45%),
        radial-gradient(circle at 88%  8%, rgba(255, 200, 235, .55), transparent 45%),
        radial-gradient(circle at 70% 75%, rgba(186, 230, 253, .50), transparent 50%),
        radial-gradient(circle at 20% 92%, rgba(196, 181, 253, .50), transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(255, 237, 213, .35), transparent 60%),
        linear-gradient(135deg, #EEF2FF 0%, #F5F3FF 45%, #ECFEFF 100%);
    background-attachment: fixed;
    background-size: 200% 200%;
    color: var(--text);
    min-height: 100vh;
    animation: glassDrift 30s ease-in-out infinite;
}
@keyframes glassDrift {
    0%,100% { background-position: 0% 0%; }
    50%     { background-position: 100% 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html[data-theme="glass"] body { animation: none; }
}

/* Smooth transitions on chrome (kept lean so tables don't lag) */
html[data-theme="glass"] .sidebar,
html[data-theme="glass"] .topbar,
html[data-theme="glass"] .card,
html[data-theme="glass"] .stat-card,
html[data-theme="glass"] .btn,
html[data-theme="glass"] .nav-link {
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .25s ease, transform .2s ease;
}

/* ── Foreground glass surfaces ──────────────────────────── */
html[data-theme="glass"] .sidebar,
html[data-theme="glass"] .topbar,
html[data-theme="glass"] .card,
html[data-theme="glass"] .stat-card,
html[data-theme="glass"] .panel,
html[data-theme="glass"] .box,
html[data-theme="glass"] .widget,
html[data-theme="glass"] .dropdown-menu,
html[data-theme="glass"] .menu-dropdown,
html[data-theme="glass"] .dd-menu,
html[data-theme="glass"] .modal-content,
html[data-theme="glass"] .modal-dialog {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(22px) saturate(180%);
            backdrop-filter: blur(22px) saturate(180%);
    border: 1px solid rgba(255,255,255,.65) !important;
    box-shadow: var(--shadow-md), var(--glass-rim);
    border-radius: 16px;
}

/* Floating-card hover micro-interaction */
html[data-theme="glass"] .card:hover,
html[data-theme="glass"] .stat-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255,255,255,.85) !important;
    box-shadow:
        0 4px 8px rgba(31,38,135,.10),
        0 18px 40px rgba(31,38,135,.18),
        0 32px 60px -16px rgba(31,38,135,.12),
        inset 0 1px 0 rgba(255,255,255,.85),
        inset 0 -1px 0 rgba(255,255,255,.25);
}
@media (prefers-reduced-motion: reduce) {
    html[data-theme="glass"] .card:hover,
    html[data-theme="glass"] .stat-card:hover { transform: none; }
}

/* No backdrop-filter? Solid fallback so layout still reads well. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    html[data-theme="glass"] .sidebar,
    html[data-theme="glass"] .topbar,
    html[data-theme="glass"] .card,
    html[data-theme="glass"] .stat-card,
    html[data-theme="glass"] .dropdown-menu,
    html[data-theme="glass"] .modal-content {
        background: rgba(255,255,255,.90) !important;
    }
}

/* ── Sidebar / nav ─────────────────────────────────────── */
html[data-theme="glass"] .sidebar {
    border-radius: 0 24px 24px 0;
    border-left: none !important;
    border-top: none !important;
    border-bottom: none !important;
    background: linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.48)) !important;
}
html[data-theme="glass"] .sidebar-section { color: var(--text-light); letter-spacing:.08em; }
html[data-theme="glass"] .nav-link {
    color: #1E293B;
    border-radius: 12px;
    position: relative;
}
html[data-theme="glass"] .nav-link:hover  {
    background: rgba(99,102,241,.14);
    color: #3730A3;
    transform: translateX(2px);
}
html[data-theme="glass"] .nav-link.active {
    background: linear-gradient(135deg, rgba(99,102,241,.25), rgba(99,102,241,.10));
    color: #3730A3;
    box-shadow: inset 0 0 0 1px rgba(99,102,241,.35),
                inset 2px 0 0 0 #6366F1,
                0 4px 12px -4px rgba(99,102,241,.30);
}

/* ── Topbar ───────────────────────────────────────────── */
html[data-theme="glass"] .topbar {
    border-radius: 0;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    background: linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,.45)) !important;
}
html[data-theme="glass"] .topbar-title { color: var(--text); font-weight: 700; letter-spacing:-.01em; }

html[data-theme="glass"] .user-menu {
    background: rgba(255,255,255,.6);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,.70);
    color: var(--text);
    border-radius: 12px;
}
html[data-theme="glass"] .user-menu:hover {
    border-color: var(--primary);
    box-shadow: 0 4px 14px rgba(99,102,241,.18);
}
html[data-theme="glass"] .notification-btn {
    background: rgba(255,255,255,.55);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text-muted);
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 10px;
}
html[data-theme="glass"] .notification-btn:hover {
    background: rgba(99,102,241,.12); color: var(--primary);
    border-color: rgba(99,102,241,.45);
    box-shadow: 0 4px 14px rgba(99,102,241,.20);
}

html[data-theme="glass"] .dropdown-item       { color: var(--text); }
html[data-theme="glass"] .dropdown-item:hover { background: rgba(99,102,241,.12); }
html[data-theme="glass"] .dropdown-divider    { background: rgba(255,255,255,.50); border-color: rgba(255,255,255,.50); }

/* ── Card content ─────────────────────────────────────── */
html[data-theme="glass"] .card-header,
html[data-theme="glass"] .card-title { color: var(--text); border-color: rgba(255,255,255,.50); }
html[data-theme="glass"] .stat-label { color: var(--text-muted); }
html[data-theme="glass"] .stat-value { color: var(--text); }
html[data-theme="glass"] .stat-sub,
html[data-theme="glass"] .text-muted,
html[data-theme="glass"] .text-sm.text-muted { color: var(--text-muted) !important; }

html[data-theme="glass"] .stat-icon.blue   { background: rgba(59,130,246,.18);  color: #1D4ED8; }
html[data-theme="glass"] .stat-icon.green  { background: rgba(16,185,129,.18); color: #047857; }
html[data-theme="glass"] .stat-icon.orange { background: rgba(234,88,12,.18);  color: #9A3412; }
html[data-theme="glass"] .stat-icon.purple { background: rgba(124,58,237,.18); color: #5B21B6; }
html[data-theme="glass"] .stat-icon.red    { background: rgba(220,38,38,.18);  color: #991B1B; }
html[data-theme="glass"] .stat-icon.teal   { background: rgba(15,118,110,.18); color: #134E4A; }

/* ── Tables — semi-transparent rows so mesh peeks through ── */
html[data-theme="glass"] table { color: var(--text); border-radius: 12px; overflow: hidden; }
html[data-theme="glass"] thead th,
html[data-theme="glass"] table thead th {
    background: rgba(255,255,255,.62) !important;
    color: #1E293B !important;
    border-color: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    text-transform: uppercase;
    font-size: 11.5px;
    letter-spacing: .03em;
}
html[data-theme="glass"] tbody tr:nth-child(odd)  td { background: rgba(255,255,255,.40) !important; }
html[data-theme="glass"] tbody tr:nth-child(even) td { background: rgba(255,255,255,.28) !important; }
html[data-theme="glass"] tbody tr:hover td           { background: rgba(99,102,241,.14) !important; }
html[data-theme="glass"] td, html[data-theme="glass"] th { border-color: rgba(255,255,255,.45) !important; }
html[data-theme="glass"] .tbl-secondary { color: var(--text-muted); }
html[data-theme="glass"] .tbl-code      {
    background: rgba(99,102,241,.16); color: #3730A3;
    border-color: rgba(99,102,241,.30);
}

/* ── DataTables shell ────────────────────────────────── */
/* The top toolbar (length + search) and bottom bar (info + paginate)
   carry their own background in app.css — re-tint them to frosted glass
   so neither edge leaks opaque white when glass mode is active. */
html[data-theme="glass"] .dataTables_wrapper { background: transparent !important; }
html[data-theme="glass"] .dataTables_wrapper .dataTables_length,
html[data-theme="glass"] .dataTables_wrapper .dataTables_filter,
html[data-theme="glass"] .dataTables_wrapper .dataTables_info,
html[data-theme="glass"] .dataTables_wrapper .dataTables_paginate {
    background: rgba(255,255,255,.45) !important;
    -webkit-backdrop-filter: blur(14px) saturate(160%);
            backdrop-filter: blur(14px) saturate(160%);
    border-color: rgba(255,255,255,.50) !important;
    color: var(--text-muted) !important;
}
html[data-theme="glass"] .dataTables_wrapper .dataTables_length label,
html[data-theme="glass"] .dataTables_wrapper .dataTables_filter label { color: var(--text-muted) !important; }
html[data-theme="glass"] .dataTables_wrapper .dataTables_filter input::placeholder { color: var(--text-light) !important; }
html[data-theme="glass"] .dataTables_wrapper .dataTables_length select,
html[data-theme="glass"] .dataTables_wrapper .dataTables_filter input {
    background-color: rgba(255,255,255,.72) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text) !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    border-radius: 10px !important;
    background-image: none !important;
}
html[data-theme="glass"] .dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,.20);
}
html[data-theme="glass"] .dataTables_wrapper .dataTables_paginate .paginate_button {
    color: var(--text-muted) !important;
    background: rgba(255,255,255,.55) !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    border-radius: 10px !important;
    margin: 0 2px !important;
}
html[data-theme="glass"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
html[data-theme="glass"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--primary) !important; color: #fff !important; border-color: var(--primary) !important;
    box-shadow: 0 6px 14px rgba(99,102,241,.30);
}

/* ── Forms ───────────────────────────────────────────── */
html[data-theme="glass"] input[type="text"],
html[data-theme="glass"] input[type="email"],
html[data-theme="glass"] input[type="password"],
html[data-theme="glass"] input[type="number"],
html[data-theme="glass"] input[type="search"],
html[data-theme="glass"] input[type="url"],
html[data-theme="glass"] input[type="tel"],
html[data-theme="glass"] input[type="date"],
html[data-theme="glass"] input[type="datetime-local"],
html[data-theme="glass"] input[type="time"],
html[data-theme="glass"] textarea,
html[data-theme="glass"] select,
html[data-theme="glass"] .form-control {
    background-color: rgba(255,255,255,.62) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    border-radius: 10px;
}
html[data-theme="glass"] input::placeholder,
html[data-theme="glass"] textarea::placeholder { color: var(--text-light); }
html[data-theme="glass"] input:focus,
html[data-theme="glass"] textarea:focus,
html[data-theme="glass"] select:focus,
html[data-theme="glass"] .form-control:focus {
    background-color: rgba(255,255,255,.85) !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(99,102,241,.20);
}
html[data-theme="glass"] label,
html[data-theme="glass"] .form-label,
html[data-theme="glass"] .form-group > label { color: var(--text-muted); }

/* ── Buttons ──────────────────────────────────────────── */
html[data-theme="glass"] .btn-primary {
    background: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%);
    border: 1px solid rgba(99,102,241,.55);
    color: #fff;
    box-shadow:
        0 4px 14px rgba(99,102,241,.30),
        inset 0 1px 0 rgba(255,255,255,.20);
}
html[data-theme="glass"] .btn-primary:hover {
    background: linear-gradient(135deg, #4F46E5 0%, #4338CA 100%);
    box-shadow:
        0 8px 22px rgba(99,102,241,.40),
        inset 0 1px 0 rgba(255,255,255,.25);
    transform: translateY(-1px);
}
html[data-theme="glass"] .btn-primary:active { transform: translateY(0); }
html[data-theme="glass"] .btn-secondary {
    background: rgba(255,255,255,.65);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text);
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 10px;
}
html[data-theme="glass"] .btn-secondary:hover {
    background: rgba(255,255,255,.85);
    border-color: rgba(99,102,241,.40);
    box-shadow: 0 4px 12px rgba(99,102,241,.12);
}
html[data-theme="glass"] .btn-outline,
html[data-theme="glass"] .btn-outline-primary {
    color: var(--primary); border-color: rgba(99,102,241,.55);
    background: rgba(255,255,255,.40);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
html[data-theme="glass"] .btn-outline:hover { background: rgba(99,102,241,.10); }
html[data-theme="glass"] .btn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
html[data-theme="glass"] .badge-muted { background: rgba(255,255,255,.55); color: var(--text-muted); }

/* ── Alerts (frosted, tinted) ─────────────────────────── */
html[data-theme="glass"] .alert-info    { background: rgba(59,130,246,.18);  color: #1E3A8A; border: 1px solid rgba(59,130,246,.35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
html[data-theme="glass"] .alert-success { background: rgba(16,185,129,.18); color: #064E3B; border: 1px solid rgba(16,185,129,.35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
html[data-theme="glass"] .alert-warning { background: rgba(245,158,11,.18); color: #78350F; border: 1px solid rgba(245,158,11,.35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
html[data-theme="glass"] .alert-error,
html[data-theme="glass"] .alert-danger  { background: rgba(239,68,68,.18);  color: #7F1D1D; border: 1px solid rgba(239,68,68,.35);  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* ── Modals ─────────────────────────────────────────── */
html[data-theme="glass"] .modal-header,
html[data-theme="glass"] .modal-footer { border-color: rgba(255,255,255,.50); }
html[data-theme="glass"] .modal-backdrop { background: rgba(15,23,42,.30); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* ── Misc ───────────────────────────────────────────── */
html[data-theme="glass"] hr,
html[data-theme="glass"] .divider { border-color: rgba(255,255,255,.50); background: rgba(255,255,255,.50); }
html[data-theme="glass"] code,
html[data-theme="glass"] pre {
    background: rgba(255,255,255,.58); color: #1E293B;
    border: 1px solid rgba(255,255,255,.60);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-radius: 8px;
}
html[data-theme="glass"] h1, html[data-theme="glass"] h2, html[data-theme="glass"] h3,
html[data-theme="glass"] h4, html[data-theme="glass"] h5, html[data-theme="glass"] h6 { color: var(--text); }

/* Scrollbar polish — semi-transparent so the gradient still reads */
html[data-theme="glass"] ::-webkit-scrollbar         { width: 10px; height: 10px; }
html[data-theme="glass"] ::-webkit-scrollbar-track   { background: transparent; }
html[data-theme="glass"] ::-webkit-scrollbar-thumb   { background: rgba(99,102,241,.30); border-radius: 6px; }
html[data-theme="glass"] ::-webkit-scrollbar-thumb:hover { background: rgba(99,102,241,.50); }

/* ── Theme picker ──────────────────────────────────── */
html[data-theme="glass"] .theme-toggle {
    background: rgba(255,255,255,.55);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,.75);
    color: var(--text-muted);
    box-shadow: 0 2px 8px rgba(31,38,135,.08);
}
html[data-theme="glass"] .theme-toggle:hover {
    background: rgba(255,255,255,.85);
    color: var(--primary);
    border-color: var(--primary);
    box-shadow: 0 4px 14px rgba(99,102,241,.22);
}

/* ── Mobile — reduce blur cost on small screens ──── */
@media (max-width: 640px) {
    html[data-theme="glass"] .sidebar,
    html[data-theme="glass"] .topbar,
    html[data-theme="glass"] .card,
    html[data-theme="glass"] .stat-card,
    html[data-theme="glass"] .dropdown-menu,
    html[data-theme="glass"] .modal-content {
        -webkit-backdrop-filter: blur(14px) saturate(150%);
                backdrop-filter: blur(14px) saturate(150%);
        background: rgba(255,255,255,.78) !important;
    }
    html[data-theme="glass"] body { animation: none; }
}

/* ===========================================================
   ── Full-coverage catch-all (Glass Mode enforcement) ──
   Page-level <style> blocks and inline styles in views hardcode
   #fff / #F8FAFC / #E2E8F0 etc. They load AFTER glass-theme.css
   so we need !important + higher specificity to win the cascade.
   Light & Dark themes are untouched — everything here is scoped
   under html[data-theme="glass"]. The glass token reused for all
   surfaces is:
       background: rgba(255,255,255,.55)
       backdrop-filter: blur(18px) saturate(160%)
       border: 1px solid rgba(255,255,255,.65)
       box-shadow: var(--shadow-md), var(--glass-rim)
   =========================================================== */

/* Bootstrap-style utility classes */
html[data-theme="glass"] .bg-white,
html[data-theme="glass"] .bg-light,
html[data-theme="glass"] .bg-body,
html[data-theme="glass"] .bg-default {
    background-color: rgba(255,255,255,.55) !important;
    color: var(--text) !important;
    -webkit-backdrop-filter: blur(18px) saturate(160%);
            backdrop-filter: blur(18px) saturate(160%);
}
html[data-theme="glass"] .text-black,
html[data-theme="glass"] .text-body { color: var(--text) !important; }
html[data-theme="glass"] .border,
html[data-theme="glass"] .border-light,
html[data-theme="glass"] .border-bottom,
html[data-theme="glass"] .border-top { border-color: rgba(255,255,255,.65) !important; }

/* Dashboard card classes used in /views/admin/dashboard.php,
   /views/affiliate_manager/dashboard.php, and similar. The page
   <style> hardcodes solid white. Glass replaces with frosted. */
html[data-theme="glass"] .kpi-card,
html[data-theme="glass"] .chart-card,
html[data-theme="glass"] .metric-card,
html[data-theme="glass"] .info-card,
html[data-theme="glass"] .data-card,
html[data-theme="glass"] .widget-card,
html[data-theme="glass"] .dashboard-card,
html[data-theme="glass"] .stats-card,
html[data-theme="glass"] .filter-bar,
html[data-theme="glass"] .summary-card,
html[data-theme="glass"] .report-card,
html[data-theme="glass"] .an-kpi-card,
html[data-theme="glass"] .an-card,
html[data-theme="glass"] .an-panel,
html[data-theme="glass"] .an-widget,
html[data-theme="glass"] .an-section,
html[data-theme="glass"] .an-box,
html[data-theme="glass"] .aff-card,
html[data-theme="glass"] .aff-panel,
html[data-theme="glass"] .adv-card,
html[data-theme="glass"] .adv-panel,
html[data-theme="glass"] .mgr-card,
html[data-theme="glass"] .mgr-panel {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(22px) saturate(180%);
            backdrop-filter: blur(22px) saturate(180%);
    border: 1px solid rgba(255,255,255,.65) !important;
    color: var(--text) !important;
    box-shadow: var(--shadow-md), var(--glass-rim) !important;
    border-radius: 16px;
}
html[data-theme="glass"] .kpi-card:hover,
html[data-theme="glass"] .chart-card:hover,
html[data-theme="glass"] .an-kpi-card:hover,
html[data-theme="glass"] .an-card:hover,
html[data-theme="glass"] .metric-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255,255,255,.85) !important;
    box-shadow:
        0 4px 8px rgba(31,38,135,.10),
        0 18px 40px rgba(31,38,135,.18),
        0 32px 60px -16px rgba(31,38,135,.12),
        inset 0 1px 0 rgba(255,255,255,.85) !important;
}

/* KPI internals — text colors */
html[data-theme="glass"] .kpi-label,
html[data-theme="glass"] .an-kpi-label   { color: var(--text-muted) !important; }
html[data-theme="glass"] .kpi-value      { color: var(--text)       !important; }
html[data-theme="glass"] .kpi-sub,
html[data-theme="glass"] .an-kpi-sub,
html[data-theme="glass"] .an-meta,
html[data-theme="glass"] .an-hint        { color: var(--text-light) !important; }
html[data-theme="glass"] .an-card-title,
html[data-theme="glass"] .an-section-title { color: var(--text) !important; }

/* KPI trend pills */
html[data-theme="glass"] .kpi-trend.flat,
html[data-theme="glass"] .kpi-trend.neutral { background: rgba(255,255,255,.50) !important; color: var(--text-muted) !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
html[data-theme="glass"] .kpi-trend.up      { background: rgba(16,185,129,.20) !important; color: #047857 !important; border: 1px solid rgba(16,185,129,.30); }
html[data-theme="glass"] .kpi-trend.down    { background: rgba(239,68,68,.20)  !important; color: #991B1B !important; border: 1px solid rgba(239,68,68,.30); }

/* Toggle / pill button groups */
html[data-theme="glass"] .toggle-btns button,
html[data-theme="glass"] .pill-btn,
html[data-theme="glass"] .filter-pill,
html[data-theme="glass"] .seg-btn {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text-muted) !important;
    border: 1px solid rgba(255,255,255,.65) !important;
}
html[data-theme="glass"] .toggle-btns button:hover,
html[data-theme="glass"] .pill-btn:hover,
html[data-theme="glass"] .filter-pill:hover,
html[data-theme="glass"] .seg-btn:hover {
    background: rgba(255,255,255,.80) !important;
    color: var(--text) !important;
    border-color: rgba(99,102,241,.35) !important;
}
html[data-theme="glass"] .toggle-btns button.active,
html[data-theme="glass"] .pill-btn.active,
html[data-theme="glass"] .filter-pill.active,
html[data-theme="glass"] .seg-btn.active {
    background: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%) !important;
    color: #fff !important; border-color: var(--primary) !important;
    box-shadow: 0 4px 14px rgba(99,102,241,.30);
}

/* Page-level analytics-table (admin dashboard) */
html[data-theme="glass"] .analytics-table th {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text) !important;
    border-bottom-color: rgba(255,255,255,.55) !important;
}
html[data-theme="glass"] .analytics-table td      { color: var(--text) !important; border-bottom-color: rgba(255,255,255,.45) !important; background: transparent !important; }
html[data-theme="glass"] .analytics-table tr:hover td { background: rgba(99,102,241,.10) !important; }
html[data-theme="glass"] .analytics-table .green  { color: #047857 !important; }
html[data-theme="glass"] .analytics-table .red    { color: #B91C1C !important; }
html[data-theme="glass"] .cr-bar-inner            { background: rgba(255,255,255,.45) !important; }

/* Date-range picker preset chips */
html[data-theme="glass"] .drp-btn {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text-muted) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
}
html[data-theme="glass"] .drp-btn:hover { background: rgba(255,255,255,.80) !important; color: var(--text) !important; }
html[data-theme="glass"] .drp-btn-active {
    background: linear-gradient(135deg, #6366F1 0%, #4F46E5 100%) !important;
    color: #fff !important; border-color: var(--primary) !important;
    box-shadow: 0 4px 14px rgba(99,102,241,.30);
}

/* Inline-style fallbacks — view ships style="background:#fff" or
   style="background-color:#FFFFFF". Replace with frosted glass.
   SVGs and primary buttons are excluded so brand colours stay. */
html[data-theme="glass"] [style*="background:#fff"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background: #fff"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background:#FFF"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background:#FFFFFF"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background:white"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background-color:#fff"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background-color:#FFF"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background-color:#FFFFFF"]:not(svg):not(path):not(button.btn-primary),
html[data-theme="glass"] [style*="background-color:white"]:not(svg):not(path):not(button.btn-primary) {
    background: rgba(255,255,255,.55) !important;
    background-color: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(18px) saturate(160%);
            backdrop-filter: blur(18px) saturate(160%);
    color: var(--text) !important;
}

/* Common light gray "soft" fills used as section headers / pill
   chips throughout the codebase — map to lighter frosted glass
   so they read as a second layer below the foreground panels. */
html[data-theme="glass"] [style*="background:#F8FAFC"],
html[data-theme="glass"] [style*="background: #F8FAFC"],
html[data-theme="glass"] [style*="background-color:#F8FAFC"],
html[data-theme="glass"] [style*="background:#F1F5F9"],
html[data-theme="glass"] [style*="background-color:#F1F5F9"],
html[data-theme="glass"] [style*="background:#FAFBFF"],
html[data-theme="glass"] [style*="background-color:#FAFBFF"],
html[data-theme="glass"] [style*="background:#EEF2FF"],
html[data-theme="glass"] [style*="background-color:#EEF2FF"],
html[data-theme="glass"] [style*="background:#E2E8F0"],
html[data-theme="glass"] [style*="background-color:#E2E8F0"] {
    background: rgba(255,255,255,.40) !important;
    background-color: rgba(255,255,255,.40) !important;
    -webkit-backdrop-filter: blur(12px) saturate(150%);
            backdrop-filter: blur(12px) saturate(150%);
    color: var(--text) !important;
}

/* Inline borders that hardcode the light-mode line color */
html[data-theme="glass"] [style*="border:1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border: 1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border-color:#E2E8F0"],
html[data-theme="glass"] [style*="border-top:1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border-bottom:1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border-left:1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border-right:1px solid #E2E8F0"],
html[data-theme="glass"] [style*="border-color:#F1F5F9"] { border-color: rgba(255,255,255,.55) !important; }

/* Inline mid-gray slate text colors — re-tint to the glass palette */
html[data-theme="glass"] [style*="color:#64748B"],
html[data-theme="glass"] [style*="color: #64748B"],
html[data-theme="glass"] [style*="color:#94A3B8"],
html[data-theme="glass"] [style*="color:#334155"],
html[data-theme="glass"] [style*="color:#6B7280"],
html[data-theme="glass"] [style*="color: #6B7280"],
html[data-theme="glass"] [style*="color:#9CA3AF"],
html[data-theme="glass"] [style*="color:#D1D5DB"] { color: var(--text-muted) !important; }
html[data-theme="glass"] [style*="color:#1F2937"],
html[data-theme="glass"] [style*="color:#111827"],
html[data-theme="glass"] [style*="color:#374151"],
html[data-theme="glass"] [style*="color: #374151"] { color: var(--text) !important; }

/* Page body / generic containers — stay transparent so the mesh shows */
html[data-theme="glass"] .page-body,
html[data-theme="glass"] .container,
html[data-theme="glass"] .container-fluid,
html[data-theme="glass"] .content,
html[data-theme="glass"] main { background-color: transparent !important; color: var(--text); }

/* Section heading bands (e.g. "Top Profitable Offers") */
html[data-theme="glass"] .section-band,
html[data-theme="glass"] .section-header,
html[data-theme="glass"] .table-section-title {
    background: rgba(255,255,255,.45) !important;
    -webkit-backdrop-filter: blur(12px) saturate(150%);
            backdrop-filter: blur(12px) saturate(150%);
    color: var(--text-muted) !important;
    border-color: rgba(255,255,255,.55) !important;
}

/* Auth / login / register layouts */
html[data-theme="glass"] .auth-shell,
html[data-theme="glass"] .auth-card,
html[data-theme="glass"] .login-card,
html[data-theme="glass"] .register-card,
html[data-theme="glass"] .auth-form {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(22px) saturate(180%);
            backdrop-filter: blur(22px) saturate(180%);
    border: 1px solid rgba(255,255,255,.65) !important;
    color: var(--text) !important;
    box-shadow: var(--shadow-md), var(--glass-rim) !important;
    border-radius: 18px;
}

/* Chart wrappers */
html[data-theme="glass"] canvas { background: transparent !important; }

/* Browser-default form autofill flash */
html[data-theme="glass"] input:-webkit-autofill,
html[data-theme="glass"] input:-webkit-autofill:hover,
html[data-theme="glass"] input:-webkit-autofill:focus,
html[data-theme="glass"] textarea:-webkit-autofill,
html[data-theme="glass"] select:-webkit-autofill {
    -webkit-text-fill-color: var(--text) !important;
    -webkit-box-shadow: 0 0 0 1000px rgba(255,255,255,.75) inset !important;
    caret-color: var(--text);
}

/* Loading overlays — many cards use rgba(255,255,255,.8). Keep
   them lighter than dark mode but still frosted glass. */
html[data-theme="glass"] .loading-overlay,
html[data-theme="glass"] [style*="background:rgba(255,255,255,.8)"],
html[data-theme="glass"] [style*="background:rgba(255,255,255,0.8)"],
html[data-theme="glass"] [style*="background-color:rgba(255,255,255,.8)"] {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(14px) saturate(150%);
            backdrop-filter: blur(14px) saturate(150%);
    color: var(--text);
}

/* Mini bars / progress backgrounds defaulting to slate-200 */
html[data-theme="glass"] [style*="background:#E2E8F0"][style*="height"],
html[data-theme="glass"] [style*="background:#F1F5F9"][style*="height"] {
    background: rgba(99,102,241,.18) !important;
}

/* Bootstrap-style table classes */
html[data-theme="glass"] .table,
html[data-theme="glass"] .table-striped,
html[data-theme="glass"] .table-bordered,
html[data-theme="glass"] .table-hover { color: var(--text) !important; background: transparent !important; }
html[data-theme="glass"] .table-striped > tbody > tr:nth-of-type(odd) > * { background: rgba(255,255,255,.40) !important; color: var(--text) !important; }
html[data-theme="glass"] .table > :not(caption) > * > * { background-color: transparent; color: var(--text); border-color: rgba(255,255,255,.45) !important; }
html[data-theme="glass"] .table-hover > tbody > tr:hover > * { background: rgba(99,102,241,.14) !important; }

/* ===========================================================
   ── Liquid Glass Upgrade (v2) ──
   Layered enhancements applied ON TOP of the base glass rules:
     1. Multi-stop liquid gradient overlay inside cards
     2. Animated shine sweep on hover (cheap: one-shot transform)
     3. Light-refraction top-edge highlight (brighter top border)
     4. Pressed-glass-capsule buttons with dual inset highlights
     5. Soft neon glow on active / focused elements
     6. Slightly stronger blur + saturation on foreground panels
   Performance: animations use transform only; no continuous loops
   on per-card pseudo-elements (only triggered on hover).
   =========================================================== */

html[data-theme="glass"] {
    --liquid-rim:  0 0 0 1px rgba(255,255,255,.55),
                   inset 0 1px 0 rgba(255,255,255,.80),
                   inset 0 -1px 0 rgba(255,255,255,.25);
    --neon-primary: 0 0 0 1px rgba(99,102,241,.55),
                    0 0 20px -4px rgba(99,102,241,.55),
                    0 0 40px -8px rgba(99,102,241,.40);
}

/* Foreground panels — upgrade blur + add liquid overlay & top-edge
   highlight. Uses pseudo-elements so the existing background still
   shows through. `pointer-events:none` keeps clicks unaffected. */
html[data-theme="glass"] .card,
html[data-theme="glass"] .stat-card,
html[data-theme="glass"] .kpi-card,
html[data-theme="glass"] .chart-card,
html[data-theme="glass"] .an-kpi-card,
html[data-theme="glass"] .an-card,
html[data-theme="glass"] .panel,
html[data-theme="glass"] .widget {
    position: relative;
    -webkit-backdrop-filter: blur(26px) saturate(190%) !important;
            backdrop-filter: blur(26px) saturate(190%) !important;
    box-shadow:
        0 1px 1px rgba(31,38,135,.05),
        0 8px 24px rgba(31,38,135,.10),
        0 28px 60px -20px rgba(31,38,135,.20),
        var(--liquid-rim) !important;
}

/* Liquid colour overlay — sits behind content, mimics refracted
   light across the panel. Two soft diagonal blobs at very low
   opacity so text contrast is preserved. */
html[data-theme="glass"] .card::before,
html[data-theme="glass"] .stat-card::before,
html[data-theme="glass"] .kpi-card::after,
html[data-theme="glass"] .chart-card::before,
html[data-theme="glass"] .an-kpi-card::after,
html[data-theme="glass"] .an-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        radial-gradient(120% 60% at 0% 0%,   rgba(129,140,248,.10), transparent 60%),
        radial-gradient(120% 60% at 100% 100%, rgba(236,72,153,.08), transparent 55%);
    pointer-events: none;
    z-index: 0;
    opacity: .9;
    transition: opacity .35s ease;
}

/* Animated shine sweep — only fires on hover, runs once.
   Cheap: animates `transform: translateX` of a single pseudo. */
html[data-theme="glass"] .card::after,
html[data-theme="glass"] .stat-card::after,
html[data-theme="glass"] .chart-card::after,
html[data-theme="glass"] .an-card::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    left: -40%;
    width: 35%;
    border-radius: inherit;
    background: linear-gradient(
        110deg,
        transparent 25%,
        rgba(255,255,255,.45) 50%,
        transparent 75%
    );
    pointer-events: none;
    z-index: 1;
    transform: translateX(0);
    transition: transform 0s;
    opacity: 0;
}
html[data-theme="glass"] .card:hover::after,
html[data-theme="glass"] .stat-card:hover::after,
html[data-theme="glass"] .chart-card:hover::after,
html[data-theme="glass"] .an-card:hover::after {
    opacity: 1;
    transform: translateX(360%);
    transition: transform 1.05s cubic-bezier(.2,.7,.3,1), opacity .35s ease;
}
@media (prefers-reduced-motion: reduce) {
    html[data-theme="glass"] .card::after,
    html[data-theme="glass"] .stat-card::after,
    html[data-theme="glass"] .chart-card::after,
    html[data-theme="glass"] .an-card::after { display: none; }
}

/* Keep direct children above the overlay/shine pseudos */
html[data-theme="glass"] .card > *,
html[data-theme="glass"] .stat-card > *,
html[data-theme="glass"] .kpi-card > *,
html[data-theme="glass"] .chart-card > *,
html[data-theme="glass"] .an-kpi-card > *,
html[data-theme="glass"] .an-card > * { position: relative; z-index: 2; }

/* Hover lift — deeper shadow + brighter top rim */
html[data-theme="glass"] .card:hover,
html[data-theme="glass"] .stat-card:hover,
html[data-theme="glass"] .kpi-card:hover,
html[data-theme="glass"] .chart-card:hover,
html[data-theme="glass"] .an-kpi-card:hover,
html[data-theme="glass"] .an-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 2px 4px rgba(31,38,135,.06),
        0 14px 30px rgba(31,38,135,.16),
        0 36px 72px -20px rgba(31,38,135,.22),
        0 0 0 1px rgba(255,255,255,.75),
        inset 0 1px 0 rgba(255,255,255,.95),
        inset 0 -1px 0 rgba(255,255,255,.30) !important;
}

/* Sidebar / topbar — same liquid treatment plus a stronger top-
   edge light refraction line. Higher blur so the moving body
   gradient really reads as "behind glass". */
html[data-theme="glass"] .sidebar,
html[data-theme="glass"] .topbar {
    -webkit-backdrop-filter: blur(30px) saturate(190%) !important;
            backdrop-filter: blur(30px) saturate(190%) !important;
    box-shadow: var(--liquid-rim), 0 8px 32px -12px rgba(31,38,135,.18) !important;
}

/* Pressed-glass-capsule buttons — primary action */
html[data-theme="glass"] .btn-primary {
    background:
        linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,0) 50%),
        linear-gradient(135deg, #6366F1 0%, #4F46E5 100%) !important;
    border: 1px solid rgba(99,102,241,.65) !important;
    color: #fff !important;
    box-shadow:
        0 6px 18px rgba(99,102,241,.32),
        0 0 0 1px rgba(255,255,255,.18) inset,
        0 1px 0 rgba(255,255,255,.40) inset,
        0 -1px 0 rgba(0,0,0,.10) inset !important;
    border-radius: 12px;
    text-shadow: 0 1px 0 rgba(0,0,0,.15);
    transition: transform .15s ease, box-shadow .25s ease, background .25s ease;
}
html[data-theme="glass"] .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow:
        0 10px 28px rgba(99,102,241,.45),
        0 0 24px -4px rgba(99,102,241,.55),
        0 0 0 1px rgba(255,255,255,.25) inset,
        0 1px 0 rgba(255,255,255,.50) inset,
        0 -1px 0 rgba(0,0,0,.10) inset !important;
}
html[data-theme="glass"] .btn-primary:active {
    transform: translateY(1px);
    box-shadow:
        0 2px 8px rgba(99,102,241,.30),
        0 0 0 1px rgba(255,255,255,.15) inset,
        0 -1px 0 rgba(255,255,255,.20) inset,
        0 1px 0 rgba(0,0,0,.18) inset !important;
}

/* Pressed-glass-capsule buttons — secondary action */
html[data-theme="glass"] .btn-secondary {
    background:
        linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,255,255,.50)) !important;
    -webkit-backdrop-filter: blur(14px) saturate(160%);
            backdrop-filter: blur(14px) saturate(160%);
    color: var(--text) !important;
    border: 1px solid rgba(255,255,255,.80) !important;
    box-shadow:
        0 4px 14px rgba(31,38,135,.10),
        0 1px 0 rgba(255,255,255,.80) inset,
        0 -1px 0 rgba(15,23,42,.05) inset !important;
    border-radius: 12px;
}
html[data-theme="glass"] .btn-secondary:hover {
    background:
        linear-gradient(135deg, rgba(255,255,255,1), rgba(255,255,255,.70)) !important;
    border-color: rgba(99,102,241,.45) !important;
    box-shadow:
        0 8px 22px rgba(99,102,241,.18),
        0 0 0 1px rgba(99,102,241,.30),
        0 1px 0 rgba(255,255,255,.90) inset !important;
    transform: translateY(-1px);
}
html[data-theme="glass"] .btn-secondary:active { transform: translateY(1px); }

/* Soft neon glow on active sidebar item */
html[data-theme="glass"] .nav-link.active {
    background: linear-gradient(135deg, rgba(99,102,241,.28), rgba(99,102,241,.12)) !important;
    color: #3730A3 !important;
    box-shadow:
        inset 0 0 0 1px rgba(99,102,241,.40),
        inset 3px 0 0 0 #6366F1,
        0 0 24px -6px rgba(99,102,241,.55),
        0 4px 14px -6px rgba(99,102,241,.30) !important;
}
html[data-theme="glass"] .nav-link:hover {
    box-shadow: 0 0 18px -8px rgba(99,102,241,.45);
}

/* Focused inputs — soft neon ring */
html[data-theme="glass"] input:focus,
html[data-theme="glass"] textarea:focus,
html[data-theme="glass"] select:focus,
html[data-theme="glass"] .form-control:focus {
    background-color: rgba(255,255,255,.90) !important;
    border-color: rgba(99,102,241,.65) !important;
    box-shadow:
        0 0 0 4px rgba(99,102,241,.18),
        0 0 24px -6px rgba(99,102,241,.45) !important;
}

/* Pill / toggle / segment active = same neon */
html[data-theme="glass"] .toggle-btns button.active,
html[data-theme="glass"] .pill-btn.active,
html[data-theme="glass"] .filter-pill.active,
html[data-theme="glass"] .seg-btn.active,
html[data-theme="glass"] .drp-btn-active {
    box-shadow:
        0 4px 18px rgba(99,102,241,.40),
        0 0 24px -6px rgba(99,102,241,.55) !important;
}

/* Theme picker chip — pressed-glass-capsule look */
html[data-theme="glass"] .theme-toggle {
    background:
        linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,255,255,.45)) !important;
    -webkit-backdrop-filter: blur(14px) saturate(160%);
            backdrop-filter: blur(14px) saturate(160%);
    border: 1px solid rgba(255,255,255,.80) !important;
    box-shadow:
        0 4px 14px rgba(31,38,135,.10),
        0 1px 0 rgba(255,255,255,.85) inset !important;
}

/* Modal — same liquid treatment for foreground dialogs */
html[data-theme="glass"] .modal-content,
html[data-theme="glass"] .modal-dialog {
    -webkit-backdrop-filter: blur(28px) saturate(190%) !important;
            backdrop-filter: blur(28px) saturate(190%) !important;
    box-shadow:
        0 4px 12px rgba(31,38,135,.10),
        0 24px 64px rgba(31,38,135,.25),
        var(--liquid-rim) !important;
}

/* Liquid body backdrop — slightly faster, more colour stops.
   Single animated property (background-position) keeps the GPU
   cost negligible vs. animating filters or transforms. */
html[data-theme="glass"] body {
    background:
        radial-gradient(circle at 10% 12%, rgba(168, 213, 255, .60), transparent 42%),
        radial-gradient(circle at 88%  6%, rgba(255, 200, 235, .60), transparent 42%),
        radial-gradient(circle at 72% 78%, rgba(186, 230, 253, .55), transparent 50%),
        radial-gradient(circle at 18% 90%, rgba(196, 181, 253, .55), transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(255, 237, 213, .40), transparent 55%),
        radial-gradient(circle at 35% 30%, rgba(165, 243, 252, .35), transparent 55%),
        linear-gradient(135deg, #EEF2FF 0%, #F5F3FF 40%, #ECFEFF 80%, #FDF4FF 100%);
    background-attachment: fixed;
    background-size: 220% 220%;
    animation: glassDrift 24s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    html[data-theme="glass"] body { animation: none; }
}

/* Custom scrollbar — translucent capsule that matches the theme */
html[data-theme="glass"] ::-webkit-scrollbar         { width: 12px; height: 12px; }
html[data-theme="glass"] ::-webkit-scrollbar-track   { background: rgba(255,255,255,.20); border-radius: 8px; }
html[data-theme="glass"] ::-webkit-scrollbar-thumb   {
    background: linear-gradient(135deg, rgba(99,102,241,.45), rgba(168,85,247,.40));
    border-radius: 8px;
    border: 2px solid rgba(255,255,255,.20);
}
html[data-theme="glass"] ::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, rgba(99,102,241,.65), rgba(168,85,247,.60));
}

/* Mobile — back off blur on small screens to keep GPU cost low,
   and ensure the heavy overlay/shine pseudos don't fight the
   reduced-blur background. */
@media (max-width: 640px) {
    html[data-theme="glass"] .card,
    html[data-theme="glass"] .stat-card,
    html[data-theme="glass"] .chart-card,
    html[data-theme="glass"] .an-kpi-card,
    html[data-theme="glass"] .an-card {
        -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
                backdrop-filter: blur(16px) saturate(160%) !important;
    }
    html[data-theme="glass"] .card::after,
    html[data-theme="glass"] .stat-card::after,
    html[data-theme="glass"] .chart-card::after,
    html[data-theme="glass"] .an-card::after { display: none; } /* skip shine on mobile */
}

/* ===========================================================
   ── Final-Pass Glass Enforcement (no fallback to solid) ──
   Catches every named panel/card/box/widget across the views
   that wasn't enumerated earlier. We use class-substring
   selectors so any class containing "card", "panel", "box",
   "widget", "section", "tile", "block", or "surface" gets the
   frosted glass treatment. `:not(.btn-primary):not(.btn)` keeps
   brand-coloured action buttons opaque so they stay readable.

   Inline-style sweeps catch:
     - solid white in any common syntax
     - rgba whites with non-100% alpha
     - light slate / indigo washes
     - any inline border / box-shadow hardcoded to the light palette
   =========================================================== */

html[data-theme="glass"] [class*="card"]:not(.btn):not(.dropdown-item):not(.alert):not(.theme-toggle):not(.theme-picker-opt):not(.theme-picker-check):not(.notif-badge):not(.nav-badge):not(.theme-icon-light):not(.theme-icon-dark):not(.theme-icon-glass):not(.kpi-card),
html[data-theme="glass"] [class*="panel"]:not(.btn):not(.alert),
html[data-theme="glass"] [class*="widget"]:not(.btn):not(.alert),
html[data-theme="glass"] [class*="tile"]:not(.btn):not(.alert):not([class*="title"]),
html[data-theme="glass"] [class*="surface"],
html[data-theme="glass"] [class*="-box"]:not(.btn):not([class*="boxed"]):not(.checkbox):not([class*="combobox"]),
html[data-theme="glass"] [class*="-block"]:not([class*="blockquote"]):not(.code-block) {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
            backdrop-filter: blur(20px) saturate(170%) !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    color: var(--text) !important;
    box-shadow:
        0 2px 4px rgba(31,38,135,.06),
        0 10px 30px rgba(31,38,135,.14),
        inset 0 1px 0 rgba(255,255,255,.65),
        inset 0 -1px 0 rgba(255,255,255,.20) !important;
}
html[data-theme="glass"] [class*="card"]:not(.btn) > .card-header,
html[data-theme="glass"] [class*="panel"] > .panel-header,
html[data-theme="glass"] [class*="card"]:not(.btn) > [class*="header"],
html[data-theme="glass"] [class*="panel"]    > [class*="header"] {
    background: transparent !important;
    border-color: rgba(255,255,255,.50) !important;
    color: var(--text) !important;
}

/* Code blocks specifically — keep readable on glass */
html[data-theme="glass"] .code-block,
html[data-theme="glass"] [class*="code-block"] {
    background: rgba(15,23,42,.06) !important;
    border: 1px solid rgba(255,255,255,.55) !important;
    color: #1E293B !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}

/* ── Wider inline-style sweep ─────────────────────────────
   Catches semi-opaque whites, slate fills, and light indigo
   washes that the earlier selectors missed. */
html[data-theme="glass"] [style*="background:rgba(255,255,255,.9"],
html[data-theme="glass"] [style*="background:rgba(255,255,255,0.9"],
html[data-theme="glass"] [style*="background:rgba(255, 255, 255, 0.9"],
html[data-theme="glass"] [style*="background:rgba(255,255,255,.95"],
html[data-theme="glass"] [style*="background:rgba(255,255,255,0.95"],
html[data-theme="glass"] [style*="background:rgba(255,255,255,1"],
html[data-theme="glass"] [style*="background:rgb(255,255,255"],
html[data-theme="glass"] [style*="background-color:rgba(255,255,255"],
html[data-theme="glass"] [style*="background:#F3F4F6"],
html[data-theme="glass"] [style*="background-color:#F3F4F6"],
html[data-theme="glass"] [style*="background:#F9FAFB"],
html[data-theme="glass"] [style*="background-color:#F9FAFB"],
html[data-theme="glass"] [style*="background:#FDFDFD"],
html[data-theme="glass"] [style*="background:#FBFBFB"],
html[data-theme="glass"] [style*="background:#FEFEFE"],
html[data-theme="glass"] [style*="background:#EDF2FF"],
html[data-theme="glass"] [style*="background:#E5E7EB"],
html[data-theme="glass"] [style*="background-color:#E5E7EB"],
html[data-theme="glass"] [style*="background:#D1D5DB"],
html[data-theme="glass"] [style*="background-color:#D1D5DB"] {
    background: rgba(255,255,255,.45) !important;
    background-color: rgba(255,255,255,.45) !important;
    -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
            backdrop-filter: blur(12px) saturate(150%) !important;
    color: var(--text) !important;
}

/* Inline solid box-shadows that paint a fake "white card" effect */
html[data-theme="glass"] [style*="box-shadow:0 4px 24px"][style*="background"],
html[data-theme="glass"] [style*="box-shadow:0 4px 20px"][style*="background"],
html[data-theme="glass"] [style*="box-shadow:0 8px 24px"][style*="background"] {
    box-shadow:
        0 2px 4px rgba(31,38,135,.06),
        0 10px 30px rgba(31,38,135,.14),
        inset 0 1px 0 rgba(255,255,255,.65) !important;
}

/* ── Forms, selects, textareas — anywhere on the page ─── */
html[data-theme="glass"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
html[data-theme="glass"] textarea,
html[data-theme="glass"] select {
    background-color: rgba(255,255,255,.62) !important;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    color: var(--text) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
}

/* ── Tooltips / popovers — common UI library class names ── */
html[data-theme="glass"] .tooltip,
html[data-theme="glass"] .tooltip-inner,
html[data-theme="glass"] .popover,
html[data-theme="glass"] [role="tooltip"],
html[data-theme="glass"] [role="dialog"] {
    background: rgba(255,255,255,.65) !important;
    -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%);
    color: var(--text) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    box-shadow: 0 8px 28px rgba(31,38,135,.20), inset 0 1px 0 rgba(255,255,255,.65) !important;
}

/* ── Section bands inside tables / cards ─── */
html[data-theme="glass"] .card-header,
html[data-theme="glass"] .card-footer,
html[data-theme="glass"] .modal-header,
html[data-theme="glass"] .modal-footer,
html[data-theme="glass"] .table-header,
html[data-theme="glass"] .table-footer,
html[data-theme="glass"] .panel-header,
html[data-theme="glass"] .panel-footer {
    background: transparent !important;
    border-color: rgba(255,255,255,.50) !important;
    color: var(--text) !important;
}

/* ── Status / badge pills using Bootstrap utility classes ─── */
html[data-theme="glass"] .badge-success,
html[data-theme="glass"] .badge.bg-success { background: rgba(16,185,129,.22) !important; color: #064E3B !important; border:1px solid rgba(16,185,129,.35) !important; }
html[data-theme="glass"] .badge-warning,
html[data-theme="glass"] .badge.bg-warning { background: rgba(245,158,11,.22) !important; color: #78350F !important; border:1px solid rgba(245,158,11,.35) !important; }
html[data-theme="glass"] .badge-danger,
html[data-theme="glass"] .badge.bg-danger,
html[data-theme="glass"] .badge-error    { background: rgba(239,68,68,.22)  !important; color: #7F1D1D !important; border:1px solid rgba(239,68,68,.35) !important; }
html[data-theme="glass"] .badge-info,
html[data-theme="glass"] .badge.bg-info,
html[data-theme="glass"] .badge-primary  { background: rgba(99,102,241,.22) !important; color: #3730A3 !important; border:1px solid rgba(99,102,241,.35) !important; }
html[data-theme="glass"] .badge.bg-secondary,
html[data-theme="glass"] .badge-muted    { background: rgba(148,163,184,.22) !important; color: #334155 !important; border:1px solid rgba(148,163,184,.35) !important; }

/* ── Public / marketing pages reuse the same classes ─── */
html[data-theme="glass"] .auth-box,
html[data-theme="glass"] .auth-shell,
html[data-theme="glass"] .form-card,
html[data-theme="glass"] .feature-card,
html[data-theme="glass"] .partner-card,
html[data-theme="glass"] .blog-card,
html[data-theme="glass"] .offer-card,
html[data-theme="glass"] .contact-card,
html[data-theme="glass"] .payment-card,
html[data-theme="glass"] .qr-card,
html[data-theme="glass"] .hero-stat-card,
html[data-theme="glass"] .ref-stat-card,
html[data-theme="glass"] .act-sum-card,
html[data-theme="glass"] .mgr-info-card,
html[data-theme="glass"] .ipban-add-card,
html[data-theme="glass"] .gpt-form-card,
html[data-theme="glass"] .gpt-how-card,
html[data-theme="glass"] .upg-card,
html[data-theme="glass"] .pm-form-card {
    background: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(22px) saturate(180%) !important;
            backdrop-filter: blur(22px) saturate(180%) !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    color: var(--text) !important;
    box-shadow: 0 8px 32px rgba(31,38,135,.15), inset 0 1px 0 rgba(255,255,255,.65) !important;
}

/* ── Universal "anything still flagged white" sweep ──
   Last-resort: any element with an EXACT white inline
   background that slipped past the earlier selectors. */
html[data-theme="glass"] [style*="background: white"]:not(svg):not(path),
html[data-theme="glass"] [style*="background-color: white"]:not(svg):not(path),
html[data-theme="glass"] [style*="background: #ffffff"]:not(svg):not(path),
html[data-theme="glass"] [style*="background-color: #ffffff"]:not(svg):not(path) {
    background: rgba(255,255,255,.55) !important;
    background-color: rgba(255,255,255,.55) !important;
    -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
            backdrop-filter: blur(20px) saturate(170%) !important;
    color: var(--text) !important;
}
