/* Manual AdSense placements. Slots stay collapsed until ads.js activates them. */
.ad-slot {
    display: none;
    box-sizing: border-box;
}

.ad-slot *,
.ad-slot *::before,
.ad-slot *::after {
    box-sizing: border-box;
}

body.ads-on .ad-slot.ad-slot--ready {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    overflow: hidden;
    background: var(--panel, #101722);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

.ad-slot::before {
    content: "Advertisement";
    position: absolute;
    top: 7px;
    left: 50%;
    z-index: 1;
    transform: translateX(-50%);
    color: var(--muted, #9ca3af);
    font: 500 9px/1.2 system-ui, sans-serif;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    pointer-events: none;
}

.ad-slot > .adsbygoogle {
    width: 100%;
}

.ad-slot--leaderboard {
    max-width: 970px;
    min-height: 112px;
    margin: 32px auto 40px;
    padding: 20px 8px 4px;
}

.ad-slot--incontent {
    max-width: 760px;
    min-height: 280px;
    margin: 44px auto;
    padding: 20px 8px 4px;
}

/* The map unit is intentionally desktop-only and occupies one predictable spot. */
#ad-overlay.ad-slot--map {
    position: fixed;
    left: 12px;
    right: auto;
    bottom: 42px;
    z-index: 1002;
    width: 300px;
    height: 270px;
    padding-top: 20px;
    border: 0;
    border-radius: 8px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

body.ad-loaded #ad-overlay.ad-slot--map {
    opacity: 1;
    pointer-events: auto;
}


.ad-slot--popup {
    width: 100%;
    min-height: 90px;
    margin: 10px auto 0;
    padding: 16px 4px 2px;
    border-radius: 8px !important;
}

.ad-slot--sidebar {
    width: calc(100% - 24px);
    max-width: 336px;
    min-height: 250px;
    margin: 0 auto 12px;
    padding: 20px 4px 4px;
    flex-shrink: 0;
}

/* Local-only creative used to judge spacing without requesting real ads. */
.ad-preview-creative {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--muted, #9ca3af);
    background:
        radial-gradient(circle at 20% 0%, rgba(37, 99, 235, 0.13), transparent 38%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01));
    text-align: center;
}

.ad-preview-creative strong {
    color: var(--text, #e5e7eb);
    font: 650 13px/1.4 system-ui, sans-serif;
}

.ad-preview-creative span {
    margin-top: 4px;
    font: 400 11px/1.4 system-ui, sans-serif;
}

ins.adsbygoogle[data-ad-status="unfilled"] {
    display: none !important;
}

@media (max-width: 768px) {
    #ad-overlay.ad-slot--map {
        display: none !important;
    }


    .ad-slot--sidebar {
        display: none !important;
    }

    .ad-slot--popup {
        min-height: 100px;
    }

    .leaflet-popup-content {
        width: calc(100vw - 118px);
        min-width: 0;
    }

    .ad-slot--leaderboard,
    .ad-slot--incontent {
        width: calc(100% + 8px);
        margin: 28px -4px 34px;
        border-radius: 10px;
    }

    .ad-slot--leaderboard {
        min-height: 120px;
    }

    .ad-slot--incontent {
        min-height: 260px;
    }
}

@media print {
    .ad-slot {
        display: none !important;
    }
}
