body {
    background-color: #0A0C10;
    color: #ffffff;
    overflow-x: hidden;
}

/* Utility Gradients & Overlays */
.hero-bg-img {
    filter: brightness(1.35) contrast(1.1);
    opacity: 0.9;
    /* transform: translateX(-100px); */
}

.hero-gradient {
    background: linear-gradient(180deg, rgba(10, 12, 16, 0) 0%, rgba(10, 12, 16, 0.3) 70%, #0A0C10 100%);
}

.hero-radial {
    background: radial-gradient(circle at 75% 50%, rgba(255, 255, 255, 0) 25%, rgba(10, 12, 16, 0.5) 100%);
}

/* Role Cards - Gradient Borders */
.gradient-border-blue {
    background: linear-gradient(180deg, #3B82F6 0%, transparent 100%);
}

.gradient-border-orange {
    background: linear-gradient(180deg, #F97316 0%, transparent 100%);
}

.gradient-border-teal {
    background: linear-gradient(180deg, #14B8A6 0%, transparent 100%);
}

.gradient-border-purple {
    background: linear-gradient(180deg, #8B5CF6 0%, transparent 100%);
}

/* Role Cards - Inner Glows (Subtle Ambient) */
.inner-glow-blue {
    box-shadow: inset 0px 20px 40px -20px rgba(59, 130, 246, 0.35);
}

.inner-glow-orange {
    box-shadow: inset 0px 20px 40px -20px rgba(249, 115, 22, 0.35);
}

.inner-glow-teal {
    box-shadow: inset 0px 20px 40px -20px rgba(20, 184, 166, 0.35);
}

.inner-glow-purple {
    box-shadow: inset 0px 20px 40px -20px rgba(139, 92, 246, 0.35);
}

/* Role Cards - Top 20% Glowing Aura (Subtle & Soft) */
.card-glow-blue {
    background: radial-gradient(ellipse 110% 100% at 50% 0%, rgba(96, 165, 250, 0.3) 0%, rgba(59, 130, 246, 0.12) 45%, rgba(59, 130, 246, 0.03) 75%, transparent 100%);
    mix-blend-mode: screen;
}

.card-glow-orange {
    background: radial-gradient(ellipse 110% 100% at 50% 0%, rgba(251, 146, 60, 0.3) 0%, rgba(249, 115, 22, 0.12) 45%, rgba(249, 115, 22, 0.03) 75%, transparent 100%);
    mix-blend-mode: screen;
}

.card-glow-teal {
    background: radial-gradient(ellipse 110% 100% at 50% 0%, rgba(45, 212, 191, 0.3) 0%, rgba(20, 184, 166, 0.12) 45%, rgba(20, 184, 166, 0.03) 75%, transparent 100%);
    mix-blend-mode: screen;
}

.card-glow-purple {
    background: radial-gradient(ellipse 110% 100% at 50% 0%, rgba(192, 132, 252, 0.3) 0%, rgba(139, 92, 246, 0.12) 45%, rgba(139, 92, 246, 0.03) 75%, transparent 100%);
    mix-blend-mode: screen;
}

/* Ecosystem Feature Cards */
.eco-card {
    background-color: rgba(18, 20, 29, 0.7);
    backdrop-filter: blur(10px);
    border: 1px solid #1F222E;
    transition: all 0.3s ease;
}

.eco-card:hover {
    transform: translateY(-3px);
}

/* Map Marker Pulsing Animation */
.pulse-marker {
    position: absolute;
    width: 12px;
    height: 12px;
    background-color: #00E5FF;
    border-radius: 50%;
    box-shadow: 0 0 10px #00E5FF, 0 0 20px #00E5FF;
    transform: translate(-50%, -50%);
}

.pulse-marker::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: 2px solid #00E5FF;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes pulse-ring {
    0% {
        width: 12px;
        height: 12px;
        opacity: 1;
    }

    100% {
        width: 40px;
        height: 40px;
        opacity: 0;
    }
}

/* Image Masking for cards - removed dark top fade */
.card-image-mask {
    -webkit-mask-image: none;
    mask-image: none;
}

.role-card-img {
    filter: brightness(0.95) contrast(1.02);
    opacity: 0.85;
}

/* Role Cards Text (Crisp, High-Contrast & Slightly Brighter) */
.role-card-title {
    color: #ffffff !important;
    font-weight: 800 !important;
    text-shadow: 0 0 1px #ffffff, 0 0 10px rgba(255, 255, 255, 0.45), 0 2px 8px rgba(0, 0, 0, 0.95) !important;
}

.role-card-desc {
    color: #ffffff !important;
    font-weight: 600 !important;
    text-shadow: 0 0 1px #ffffff, 0 0 8px rgba(255, 255, 255, 0.35), 0 1px 5px rgba(0, 0, 0, 0.95) !important;
    letter-spacing: 0.01em;
}

/* ========================================================
   Interactive Telematics Map Element (Kolkata Hub)
   ======================================================== */

/* Dedicated interactive map container */
#fleet-map,
#fleet-map.leaflet-container {
    background-color: #0A0C10 !important;
    background: #0A0C10 !important;
    font-family: 'Inter', sans-serif !important;
    width: 100% !important;
    height: 100% !important;
    outline: none;
}

/* Atmospheric visual filter on abstract map tiles (deep dark tones, high contrast) */
#fleet-map .leaflet-tile-pane {
    filter: brightness(0.65) contrast(1.3) saturate(0.4);
}

/* Discreet attribution style */
#fleet-map .leaflet-control-attribution {
    background: rgba(10, 12, 16, 0.75) !important;
    color: #4b5563 !important;
    font-size: 10px !important;
    backdrop-filter: blur(6px);
    border-radius: 4px;
    padding: 2px 8px !important;
    margin: 8px !important;
}

#fleet-map .leaflet-control-attribution a {
    color: #6b7280 !important;
    text-decoration: none;
}

#fleet-map .leaflet-control-attribution a:hover {
    color: #00E5FF !important;
}

/* Prominent Glowing Beacon for Kolkata (22.5726° N, 88.3639° E) */
.kolkata-beacon-wrapper {
    position: relative;
    width: 90px;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.kolkata-beacon-core {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-color: #00E5FF;
    border: 3px solid #ffffff;
    box-shadow: 0 0 16px #00E5FF, 0 0 32px #00E5FF, 0 0 55px rgba(0, 229, 255, 0.95);
    position: relative;
    z-index: 5;
    transition: transform 0.2s ease;
}

.kolkata-beacon-wrapper:hover .kolkata-beacon-core {
    transform: scale(1.15);
}

.kolkata-radar-wave {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 1.5px solid #00E5FF;
    background: radial-gradient(circle, rgba(0, 229, 255, 0.25) 0%, rgba(0, 229, 255, 0.05) 55%, transparent 75%);
    pointer-events: none;
    animation: kolkata-radar 3s cubic-bezier(0.1, 0.7, 0.1, 1) infinite;
}

.kolkata-radar-wave.wave-2 {
    animation-delay: 1s;
}

.kolkata-radar-wave.wave-3 {
    animation-delay: 2s;
}

@keyframes kolkata-radar {
    0% {
        width: 18px;
        height: 18px;
        opacity: 1;
        box-shadow: 0 0 10px #00E5FF;
    }

    100% {
        width: 130px;
        height: 130px;
        opacity: 0;
        box-shadow: 0 0 35px #00E5FF;
    }
}

/* Kolkata Sci-Fi HUD Label */
.kolkata-hud-tooltip {
    background: rgba(10, 12, 16, 0.9) !important;
    border: 1px solid rgba(0, 229, 255, 0.45) !important;
    border-radius: 10px !important;
    padding: 8px 12px !important;
    font-family: 'Inter', sans-serif !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8), 0 0 20px rgba(0, 229, 255, 0.2) !important;
    backdrop-filter: blur(12px) !important;
    color: #ffffff !important;
}

.kolkata-hud-tooltip::before {
    border-top-color: rgba(0, 229, 255, 0.45) !important;
}

.kolkata-hud-content .hud-top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 2px;
}

.kolkata-hud-content .hud-indicator {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #00E5FF;
    box-shadow: 0 0 8px #00E5FF;
    animation: ping 1.8s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.kolkata-hud-content .hud-title {
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.06em;
    color: #ffffff;
}

.kolkata-hud-content .hud-badge {
    font-size: 9px;
    font-weight: 700;
    color: #00E5FF;
    background: rgba(0, 229, 255, 0.15);
    border: 1px solid rgba(0, 229, 255, 0.35);
    padding: 1px 6px;
    border-radius: 9999px;
    letter-spacing: 0.05em;
}

.kolkata-hud-content .hud-sub {
    font-size: 10px;
    color: #94a3b8;
    font-family: monospace, sans-serif;
    letter-spacing: 0.02em;
}