/* =====================================================================
   RoadEye — Liquid Glass theme (Apple-style fluid glass)
   Activated by the `theme-glass` class on <html>. Fully removable: with
   the class absent, none of these rules apply and the site looks normal.
   Configurable via data-attributes / CSS variables (see :root.theme-glass).
   ===================================================================== */

:root.theme-glass {
    /* Light glass material — more transparent, true frosted-glass look */
    --glass-bg:            rgba(255, 255, 255, 0.34);
    --glass-bg-strong:     rgba(255, 255, 255, 0.52);
    --glass-bg-soft:       rgba(255, 255, 255, 0.18);
    --glass-border:        rgba(255, 255, 255, 0.55);
    --glass-hairline:      rgba(255, 255, 255, 0.40);
    --glass-text:          #0f172a;
    --glass-text-soft:     #475569;

    /* Dark glass material (navbar, footer, sidebar, mobile menu) */
    --glass-dark-bg:       rgba(15, 23, 42, 0.40);
    --glass-dark-border:   rgba(255, 255, 255, 0.14);

    /* Effect tuning — change --glass-blur / --glass-saturate to taste.
       Higher blur keeps text legible even though surfaces are very transparent. */
    --glass-blur:          28px;
    --glass-saturate:      190%;
    --glass-radius:        22px;
    --glass-shadow:        0 10px 40px rgba(15, 23, 42, 0.14);
    --glass-shadow-lg:     0 18px 60px rgba(15, 23, 42, 0.20);
    --glass-ease:          cubic-bezier(0.22, 1, 0.36, 1);

    /* Ambient accent blobs */
    --aura-1: rgba(16, 185, 129, 0.32);
    --aura-2: rgba(56, 130, 246, 0.28);
    --aura-3: rgba(168, 85, 247, 0.24);
}

/* Lower-intensity preset (data-glass-intensity="soft") */
:root.theme-glass[data-glass-intensity="soft"]   { --glass-blur: 18px; --glass-saturate: 150%; --glass-bg: rgba(255,255,255,0.48); --glass-dark-bg: rgba(15,23,42,0.55); }
/* Higher-intensity preset (data-glass-intensity="vivid") — most transparent */
:root.theme-glass[data-glass-intensity="vivid"]  { --glass-blur: 34px; --glass-saturate: 220%; --glass-bg: rgba(255,255,255,0.24); --glass-dark-bg: rgba(15,23,42,0.30); }

/* ---------- Ambient fluid background ---------- */
.theme-glass body {
    background: linear-gradient(180deg, #eef2f7 0%, #e7edf5 40%, #eaf3ee 100%);
    position: relative;
}

.theme-glass body::before {
    content: "";
    position: fixed;
    inset: -25%;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(38% 38% at 18% 18%, var(--aura-1), transparent 70%),
        radial-gradient(42% 42% at 82% 24%, var(--aura-2), transparent 70%),
        radial-gradient(46% 46% at 50% 92%, var(--aura-3), transparent 72%);
    filter: blur(48px) saturate(140%);
    animation: glassDrift 26s var(--glass-ease) infinite alternate;
}

@keyframes glassDrift {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(2%, -2%, 0) scale(1.06); }
    100% { transform: translate3d(-2%, 2%, 0) scale(1.03); }
}

/* ---------- Core glass surface ---------- */
.theme-glass .glass,
.theme-glass .bg-white.rounded-lg,
.theme-glass .bg-white.rounded-xl,
.theme-glass .bg-white.rounded-2xl,
.theme-glass .bg-white.rounded-3xl,
.theme-glass .bg-white.shadow,
.theme-glass .bg-white.shadow-sm,
.theme-glass .bg-white.shadow-md,
.theme-glass .bg-white.shadow-lg,
.theme-glass .bg-white.shadow-xl,
.theme-glass .bg-white.shadow-2xl {
    background: var(--glass-bg) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    border: 1px solid var(--glass-border) !important;
    box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
    transition: box-shadow .4s var(--glass-ease), transform .4s var(--glass-ease), background .4s var(--glass-ease);
}

/* Specular top highlight — the "liquid" sheen */
.theme-glass .glass,
.theme-glass .bg-white.rounded-xl,
.theme-glass .bg-white.rounded-2xl,
.theme-glass .bg-white.rounded-3xl {
    position: relative;
}
.theme-glass .glass::after,
.theme-glass .bg-white.rounded-2xl::after,
.theme-glass .bg-white.rounded-3xl::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(150deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.06) 32%, rgba(255,255,255,0) 60%);
    mix-blend-mode: screen;
    opacity: .8;
}

/* ---------- Dark glass surfaces (navbar / search bar / footer / mobile menu / sidebar) ---------- */
.theme-glass #navbar,
.theme-glass .bg-\[\#0f172a\],
.theme-glass footer.bg-\[\#0f172a\] {
    background: var(--glass-dark-bg) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    border-color: var(--glass-dark-border) !important;
}

.theme-glass #navbar.nav-scrolled {
    background: rgba(15, 23, 42, 0.62) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18) !important;
}

/* Mobile slide-out menu — deep frosted glass */
.theme-glass #mobileMenu {
    background: rgba(15, 23, 42, 0.42) !important;
    -webkit-backdrop-filter: blur(30px) saturate(200%);
    backdrop-filter: blur(30px) saturate(200%);
    border-left: 1px solid var(--glass-dark-border);
    box-shadow: -20px 0 60px rgba(0, 0, 0, 0.35);
}
/* Dim + blur what's behind the menu so it reads as glass over the page */
.theme-glass #mobileOverlay {
    background: rgba(0, 0, 0, 0.30) !important;
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

/* ---------- Inputs ---------- */
.theme-glass input[type="text"],
.theme-glass input[type="email"],
.theme-glass input[type="tel"],
.theme-glass input[type="search"],
.theme-glass input[type="password"],
.theme-glass input[type="date"],
.theme-glass textarea,
.theme-glass select {
    background-color: rgba(255, 255, 255, 0.45) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-color: var(--glass-hairline) !important;
    transition: background-color .3s var(--glass-ease), box-shadow .3s var(--glass-ease);
}
.theme-glass input:focus,
.theme-glass textarea:focus,
.theme-glass select:focus {
    background-color: rgba(255, 255, 255, 0.7) !important;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.25) !important;
}
/* Search inputs that live on dark glass bars */
.theme-glass .bg-\[\#0f172a\] input {
    background-color: rgba(255, 255, 255, 0.12) !important;
}

/* ---------- Buttons: liquid sheen + springy press ---------- */
.theme-glass button,
.theme-glass .btn,
.theme-glass a[class*="bg-emerald-6"],
.theme-glass button[class*="bg-emerald-6"] {
    transition: transform .25s var(--glass-ease), box-shadow .25s var(--glass-ease), filter .25s var(--glass-ease);
}
.theme-glass a[class*="bg-emerald-6"]:hover,
.theme-glass button[class*="bg-emerald-6"]:hover {
    box-shadow: 0 8px 24px rgba(16, 185, 129, 0.4);
    filter: saturate(115%);
}
.theme-glass a[class*="bg-emerald-6"]:active,
.theme-glass button[class*="bg-emerald-6"]:active {
    transform: scale(0.96);
}

/* ---------- Floating action buttons (Report / Vehicle Chat) ---------- */
.theme-glass .fixed.bottom-6.right-6 a {
    -webkit-backdrop-filter: blur(10px) saturate(160%);
    backdrop-filter: blur(10px) saturate(160%);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.25), inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

/* ---------- Notification dropdown / cards-in-navbar ---------- */
.theme-glass #notifDropdown {
    background: var(--glass-bg-strong) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    border-color: var(--glass-border) !important;
}

/* ---------- Chat page ---------- */
.theme-glass .chat-container {
    background: var(--glass-bg-soft) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
}
.theme-glass #leftPanel,
.theme-glass #rightPanel { background: transparent !important; }
.theme-glass .conversation-item:hover { background-color: rgba(255, 255, 255, 0.45) !important; }
.theme-glass .conversation-item.active {
    background-color: rgba(16, 185, 129, 0.14) !important;
    border-left-color: #059669 !important;
}
/* Received bubbles become frosted glass; sent stays solid emerald for contrast */
.theme-glass .msg-received {
    background-color: rgba(255, 255, 255, 0.6) !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.5);
}
.theme-glass #chatInput,
.theme-glass #chatHeader {
    background: rgba(255, 255, 255, 0.5) !important;
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    backdrop-filter: blur(16px) saturate(160%);
}

/* ---------- Admin shell ---------- */
.theme-glass.admin body,
.theme-glass body.admin { background: linear-gradient(180deg, #eef2f7, #e8eef6); }
.theme-glass #adminSidebar {
    background: rgba(15, 23, 42, 0.66) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    border-right: 1px solid var(--glass-dark-border);
}
.theme-glass header.bg-white {
    background: var(--glass-bg) !important;
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
}

/* ---------- Theme toggle control ---------- */
.glass-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    color: #cbd5e1;
    transition: all .3s var(--glass-ease);
    position: relative;
}
.glass-toggle:hover { color: #fff; background: rgba(255,255,255,0.1); }
.theme-glass .glass-toggle.is-on,
.glass-toggle.is-on {
    color: #fff;
    background: linear-gradient(135deg, rgba(16,185,129,0.9), rgba(56,130,246,0.85));
    box-shadow: 0 4px 16px rgba(16,185,129,0.45), inset 0 1px 0 rgba(255,255,255,0.5);
}

/* ---------- Accessibility / fallbacks ---------- */
@media (prefers-reduced-motion: reduce) {
    .theme-glass body::before { animation: none; }
    .theme-glass * { transition: none !important; }
}

/* Browsers without backdrop-filter: fall back to more-opaque surfaces */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .theme-glass .bg-white.rounded-xl,
    .theme-glass .bg-white.rounded-2xl,
    .theme-glass .bg-white.shadow-sm { background: rgba(255, 255, 255, 0.92) !important; }
    .theme-glass #navbar,
    .theme-glass .bg-\[\#0f172a\] { background: rgba(15, 23, 42, 0.95) !important; }
}
