.ucm {
    --ucm-bg: #071018;
    --ucm-panel: #ffffff;
    --ucm-border: #dfe5e9;
    --ucm-text: #101820;
    --ucm-muted: #59636b;
    --ucm-green: #35c84a;
    --ucm-red: #ef4545;
    --ucm-map-height: 680px;
    width: 100%;
    background: var(--ucm-bg) !important;
    color: #fff !important;
    font-family: Arial, sans-serif !important;
    overflow: hidden;
    isolation: isolate;
}

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

.ucm__topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 24px 24px 16px;
    background: var(--ucm-bg) !important;
}

.ucm__heading { display:flex; align-items:center; gap:22px; min-width:0; }
.ucm .ucm__heading h2 {
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    background:none !important;
    font-family:Arial,sans-serif !important;
    font-size:clamp(25px,3vw,42px) !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    letter-spacing:-.02em !important;
}
.ucm__brand { display:flex; align-items:center; min-width:0; }
.ucm__brand img {
    display:block !important;
    width:auto !important;
    max-width:190px !important;
    height:auto !important;
    max-height:54px !important;
    object-fit:contain;
    filter:none !important;
}
.ucm__brand span { color:#fff !important; font-size:clamp(15px,2vw,26px); letter-spacing:.08em; }

.ucm__legend { display:flex; gap:26px; flex-wrap:wrap; font-size:14px; color:#e8ecef !important; }
.ucm__legend span { display:flex; align-items:center; gap:9px; color:#e8ecef !important; }
.ucm__dot { display:inline-block; width:11px; height:11px; border-radius:50%; flex:0 0 auto; }
.ucm__dot--upcoming { background:var(--ucm-green) !important; box-shadow:0 0 12px rgba(53,200,74,.42); }
.ucm__dot--past { background:var(--ucm-red) !important; box-shadow:0 0 12px rgba(239,69,69,.36); }

.ucm__filters { display:flex; gap:8px; flex-wrap:wrap; padding:0 24px 16px; background:var(--ucm-bg) !important; }
.ucm .ucm__filter {
    appearance:none !important;
    -webkit-appearance:none !important;
    min-height:44px !important;
    padding:0 18px !important;
    margin:0 !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:8px !important;
    background:#0b1720 !important;
    color:#e7ecef !important;
    box-shadow:none !important;
    cursor:pointer;
    font-family:Arial,sans-serif !important;
    font-weight:700 !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    font-size:12px !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:8px;
    transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.ucm .ucm__filter:hover { background:#13232e !important; color:#fff !important; border-color:rgba(255,255,255,.34) !important; }
.ucm .ucm__filter.is-active { background:#fff !important; color:#101820 !important; border-color:#fff !important; }
.ucm .ucm__filter.is-active .ucm__dot { box-shadow:none; }
.ucm .ucm__filter:focus-visible { outline:2px solid #fff !important; outline-offset:2px; }

.ucm__layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    border-top:1px solid rgba(255,255,255,.14);
    background:#fff !important;
}
.ucm__map-wrap { position:relative; min-width:0; overflow:hidden; background:#fff; }
.ucm__map { width:100%; height:var(--ucm-map-height); min-height:420px; background:#f5f7f8 !important; }
.ucm__sidebar {
    height:var(--ucm-map-height);
    min-height:420px;
    background:#fff !important;
    border-left:1px solid var(--ucm-border);
    display:flex;
    flex-direction:column;
    color:var(--ucm-text) !important;
}
.ucm .ucm__sidebar h3 {
    margin:0 !important;
    padding:23px 22px 17px !important;
    color:#111820 !important;
    background:#fff !important;
    border:0 !important;
    border-bottom:1px solid var(--ucm-border) !important;
    font-family:Arial,sans-serif !important;
    font-size:19px !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    text-transform:uppercase !important;
}
.ucm__events { overflow:auto; flex:1; background:#fff !important; scrollbar-color:#c6cfd5 #fff; scrollbar-width:thin; }
.ucm__loading, .ucm__empty { padding:22px; color:#333d45 !important; background:#fff !important; }

.ucm .ucm__event {
    appearance:none !important;
    -webkit-appearance:none !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    border-bottom:1px solid var(--ucm-border) !important;
    background:#fff !important;
    background-image:none !important;
    color:#111820 !important;
    box-shadow:none !important;
    display:grid !important;
    grid-template-columns:66px minmax(0,1fr) 24px;
    gap:16px;
    align-items:center;
    padding:14px 20px !important;
    text-align:left !important;
    cursor:pointer;
    font-family:Arial,sans-serif !important;
    line-height:1.25 !important;
    text-transform:none !important;
    transition:background .2s ease;
}
.ucm .ucm__event:hover, .ucm .ucm__event.is-active { background:#f4f7f8 !important; }
.ucm .ucm__event:focus-visible { outline:2px solid #111820 !important; outline-offset:-3px; }
.ucm__datebox {
    min-height:66px;
    border:2px solid #cdd4d8;
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#fff !important;
    color:#111820 !important;
}
.ucm__event--upcoming .ucm__datebox { border-color:var(--ucm-green) !important; }
.ucm__event--past .ucm__datebox { border-color:var(--ucm-red) !important; }
.ucm__datebox strong { color:#111820 !important; font-size:27px !important; font-weight:800 !important; line-height:1 !important; }
.ucm__datebox span { font-size:11px; margin-top:5px; color:#111820 !important; font-weight:700; }
.ucm__event-main { min-width:0; }
.ucm__event-main strong { display:block; color:#111820 !important; font-size:18px !important; font-weight:800 !important; line-height:1.25 !important; text-transform:none !important; }
.ucm__event-main small { display:block; font-size:14px !important; line-height:1.3 !important; margin-top:3px; text-transform:none !important; }
.ucm__event-city { color:#111820 !important; font-weight:600 !important; }
.ucm__event-venue { color:#4f5961 !important; font-weight:400 !important; }
.ucm__event-status { display:inline-block; margin-top:8px; padding:3px 8px; border-radius:7px; border:1px solid currentColor; font-size:10px; font-weight:800; text-transform:uppercase; background:#fff; }
.ucm__event--upcoming .ucm__event-status { color:#208e31 !important; }
.ucm__event--past .ucm__event-status { color:#c42f2f !important; }
.ucm__event-arrow { font-size:28px; line-height:1; color:#111820 !important; }

.ucm__hint {
    position:absolute;
    left:20px;
    bottom:18px;
    z-index:500;
    max-width:330px;
    background:rgba(255,255,255,.96) !important;
    border:1px solid #d3dade;
    border-radius:10px;
    padding:12px 15px;
    font-size:13px;
    color:#111820 !important;
    box-shadow:0 5px 18px rgba(0,0,0,.12);
    pointer-events:none;
}
.ucm__note {
    margin:0 !important;
    padding:12px 24px !important;
    text-align:center;
    color:#bdc5ca !important;
    background:var(--ucm-bg) !important;
    font-size:12px !important;
    line-height:1.4 !important;
    border-top:1px solid rgba(255,255,255,.12);
}

/* Jasny Leaflet / OpenStreetMap — bez filtrów przyciemniających. */
.ucm .leaflet-container { background:#f4f6f7 !important; font-family:Arial,sans-serif !important; }
.ucm .leaflet-tile-pane { filter:none !important; opacity:1 !important; }
.ucm .leaflet-control-zoom { border:1px solid #cdd5da !important; box-shadow:0 2px 7px rgba(0,0,0,.12) !important; }
.ucm .leaflet-control-zoom a { background:#fff !important; color:#111820 !important; border-bottom-color:#dde3e7 !important; }
.ucm .leaflet-control-zoom a:hover { background:#f1f4f5 !important; color:#000 !important; }
.ucm .leaflet-control-attribution { background:rgba(255,255,255,.88) !important; color:#444 !important; font-size:10px !important; }
.ucm .leaflet-control-attribution a { color:#1d4c77 !important; }
.ucm .leaflet-popup-content-wrapper { border-radius:14px !important; padding:0 !important; overflow:hidden; background:#fff !important; box-shadow:0 18px 45px rgba(0,0,0,.24) !important; }
.ucm .leaflet-popup-content { margin:0 !important; width:292px !important; }
.ucm .leaflet-popup-tip { background:#fff !important; }
.ucm .leaflet-popup-close-button { color:#111820 !important; font-size:23px !important; top:7px !important; right:7px !important; }

.ucm-popup { padding:18px; color:#111820 !important; background:#fff !important; font-family:Arial,sans-serif !important; }
.ucm-popup__badge { display:inline-block; margin-bottom:13px; padding:5px 9px; border-radius:6px; font-size:10px; font-weight:800; text-transform:uppercase; }
.ucm-popup__badge--upcoming { color:#176d23 !important; background:#dff5e1 !important; }
.ucm-popup__badge--past { color:#9f2525 !important; background:#fde2e2 !important; }
.ucm-popup__logo { min-height:34px; margin:0 32px 14px 0; display:flex; align-items:center; }
.ucm-popup__logo img { display:block !important; width:auto !important; max-width:190px !important; height:auto !important; max-height:54px !important; object-fit:contain; filter:none !important; }
.ucm-popup__brand-text { color:#101820 !important; font-size:25px; line-height:1; font-weight:900; font-style:italic; letter-spacing:-.05em; margin-bottom:14px; }
.ucm .ucm-popup h4 { margin:0 !important; padding:0 !important; color:#111820 !important; background:none !important; font:800 24px/1.08 Arial,sans-serif !important; text-transform:uppercase !important; }
.ucm-popup__city { font-size:18px; color:#111820 !important; font-weight:600; margin:4px 0 12px; }
.ucm-popup__meta { border-top:1px solid #dce2e5; padding-top:11px; display:grid; gap:7px; color:#111820 !important; font-size:13px; }
.ucm-popup__meta div { color:#111820 !important; }
.ucm-popup__date { color:#111820 !important; font-weight:800; }
.ucm-popup__venue { color:#111820 !important; font-weight:600; }
.ucm-popup__address { color:#3d474f !important; }
.ucm .ucm-popup__button { display:block !important; margin-top:14px !important; padding:12px 13px !important; border:0 !important; border-radius:7px !important; background:#0a1117 !important; color:#fff !important; box-shadow:none !important; text-decoration:none !important; text-align:center !important; text-transform:uppercase !important; font:700 11px/1.25 Arial,sans-serif !important; }
.ucm .ucm-popup__button:hover { background:#17232c !important; color:#fff !important; }

/* Pojedyncze markery */
.ucm-marker-wrap { background:none !important; border:0 !important; overflow:visible !important; }
.ucm-marker { display:flex; align-items:center; gap:8px; white-space:nowrap; transform:translate(-15px,-15px); pointer-events:auto; }
.ucm-marker__pin { width:30px; height:30px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:grid; place-items:center; border:2px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.18),0 3px 10px rgba(0,0,0,.22); flex:0 0 auto; }
.ucm-marker__pin::after { content:''; width:8px; height:8px; border-radius:50%; background:#fff; }
.ucm-marker--upcoming .ucm-marker__pin { background:var(--ucm-green) !important; }
.ucm-marker--past .ucm-marker__pin { background:var(--ucm-red) !important; }
.ucm-marker__label { padding:5px 8px 6px; border-radius:7px; background:rgba(255,255,255,.96); border:1px solid #d5dce0; box-shadow:0 3px 10px rgba(0,0,0,.10); color:#111820 !important; line-height:1.05; }
.ucm-marker__label strong { display:block; color:#111820 !important; font-size:14px !important; font-weight:800 !important; }
.ucm-marker__label small { display:block; margin-top:3px; color:#111820 !important; font-size:11px !important; font-weight:600 !important; }
.ucm-marker--compact .ucm-marker__label { display:none; }
.ucm-marker--city .ucm-marker__label small { display:none; }

/* Własne grupowanie markerów — bez zewnętrznej biblioteki MarkerCluster. */
.ucm-cluster-wrap { background:transparent !important; border:0 !important; overflow:visible !important; }
.ucm .ucm-cluster { min-width:48px; height:48px; padding:0 11px; border-radius:24px; display:flex; align-items:center; justify-content:center; gap:7px; background:#fff !important; color:#111820 !important; border:2px solid #cfd7dc; box-shadow:0 4px 14px rgba(0,0,0,.20); white-space:nowrap; }
.ucm .ucm-cluster strong { color:#111820 !important; font-size:16px !important; line-height:1 !important; font-weight:900 !important; }
.ucm .ucm-cluster small { color:#111820 !important; font-size:11px !important; font-weight:800 !important; text-transform:uppercase; letter-spacing:.02em; }
.ucm .ucm-cluster--upcoming { border-color:var(--ucm-green) !important; box-shadow:0 0 0 3px rgba(53,200,74,.13),0 4px 14px rgba(0,0,0,.18); }
.ucm .ucm-cluster--past { border-color:var(--ucm-red) !important; box-shadow:0 0 0 3px rgba(239,69,69,.11),0 4px 14px rgba(0,0,0,.18); }
.ucm .ucm-cluster--mixed { border-color:var(--ucm-green) !important; background:linear-gradient(135deg,#fff 0%,#fff 76%,#ffe3e3 77%,#ffe3e3 100%) !important; }
.ucm .leaflet-marker-pane .leaflet-div-icon { background:transparent !important; border:0 !important; }

@media (max-width: 980px) {
    .ucm__topbar { align-items:flex-start; flex-direction:column; }
    .ucm__layout { grid-template-columns:1fr; }
    .ucm__sidebar { height:auto; min-height:0; border-left:0; border-top:1px solid var(--ucm-border); }
    .ucm__events { max-height:none; }
}

@media (max-width: 640px) {
    .ucm__topbar, .ucm__filters { padding-left:14px; padding-right:14px; }
    .ucm__heading { flex-direction:column; align-items:flex-start; gap:10px; }
    .ucm__brand img { max-width:155px !important; max-height:44px !important; }
    .ucm__legend { gap:12px; font-size:12px; }
    .ucm .ucm__filter { flex:1 1 auto; padding:0 10px !important; }
    .ucm__map { height:480px !important; min-height:480px !important; }
    .ucm__hint { left:10px; right:10px; bottom:10px; max-width:none; text-align:center; }
    .ucm__note { padding-left:14px !important; padding-right:14px !important; }
    .ucm .leaflet-popup-content { width:255px !important; }
    .ucm-popup__logo img { max-width:160px !important; max-height:44px !important; }
    .ucm .ucm__event { grid-template-columns:58px minmax(0,1fr) 18px; gap:12px; padding:12px 14px !important; }
    .ucm__datebox { min-height:58px; }
    .ucm__datebox strong { font-size:24px !important; }
}
