/* Golubarska maps and long-term workspace. All controls are local to these pages. */
.vm-gmap-shell {
    --gm-surface: var(--vm-bg-primary, #fff);
    --gm-soft: var(--vm-bg-secondary, #f1f5f9);
    --gm-text: var(--vm-text-primary, #0f172a);
    --gm-muted: var(--vm-text-secondary, #475569);
    --gm-border: var(--vm-border-color, #cbd5e1);
    color: var(--gm-text); width: 100%; min-width: 0; text-align: left;
}
.vm-gmap-shell *, .vm-ens-page * { box-sizing: border-box; }
.vm-gmap-shell [hidden], .vm-ens-page [hidden] { display: none !important; }
.vm-gmap-toolbar {
    display: flex; flex-wrap: wrap; align-items: end; gap: 12px;
    padding: 14px; margin: 0 0 14px; background: var(--gm-soft);
    border: 1px solid var(--gm-border); border-radius: 14px;
}
.vm-gmap-field { display: flex; flex-direction: column; gap: 6px; min-width: 130px; flex: 1 1 190px; color: var(--gm-muted); font-size: 12px; font-weight: 700; }
.vm-gmap-field > label, .vm-gmap-height > label, .vm-gmap-opacity > label {
    color: var(--gm-muted); font-size: 12px; font-weight: 700; line-height: 1.4;
}
.vm-gmap-shell select, .vm-gmap-shell button, .vm-ens-page .vm-ens-chart-tabs button {
    font: inherit; font-size: 14px; line-height: 1.35;
    color: var(--gm-text, var(--vm-text-primary)); background: var(--gm-surface, var(--vm-bg-primary));
    border: 1px solid var(--gm-border, var(--vm-border-color)); border-radius: 10px;
    min-height: 42px; padding: 9px 12px; box-shadow: none; cursor: pointer;
}
.vm-gmap-shell select { width: 100%; max-width: 100%; padding-right: 30px; }
.vm-gmap-shell button:hover { border-color: #3b82f6; background: var(--gm-soft); }
.vm-gmap-shell button:focus-visible, .vm-gmap-shell select:focus-visible,
.vm-gmap-shell input:focus-visible, .vm-ens-page button:focus-visible, .vm-ens-page summary:focus-visible {
    outline: 3px solid #3b82f6; outline-offset: 3px;
}
.vm-gmap-shell button:disabled, .vm-gmap-shell select:disabled, .vm-gmap-shell input:disabled {
    opacity: .55; cursor: default;
}
.vm-gmap-height { display: flex; flex-direction: column; gap: 6px; flex: 1 1 205px; min-width: 180px; }
.vm-gmap-mode { flex: 0 1 auto; display: flex; gap: 8px; align-items: center; min-height: 42px; padding: 9px 12px; font-size: 14px; font-weight: 600; border: 1px solid var(--gm-border); border-radius: 10px; background: var(--gm-surface); }
.vm-gmap-mode input[type="checkbox"] { width: 18px; height: 18px; min-width: 18px; margin: 0; accent-color: #2563eb; cursor: pointer; }
.vm-gmap-mode:has(input:disabled) { opacity: .6; }
.vm-gmap-mode button[aria-pressed="true"], .vm-gmap-actions button[aria-pressed="true"],
.vm-gmap-shell button.is-active { background: #2563eb; border-color: #2563eb; color: #fff; }
.vm-gmap-opacity { display: flex; flex-direction: column; gap: 9px; flex: 0 1 130px; padding-bottom: 9px; }
.vm-gmap-shell input[type="range"] { width: 100%; min-width: 0; accent-color: #2563eb; cursor: pointer; }
.vm-gmap-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.vm-gmap-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 14px; align-items: stretch; }
.vm-gmap-stage { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--gm-border); border-radius: 16px; background: var(--gm-soft); }
.vm-gmap-stage > .leaflet-container, .vm-gmap-stage > #vm-gol-map, .vm-gmap-stage > #vm-ens-map {
    width: 100%; height: 560px !important; border-radius: 0 !important; box-shadow: none !important;
    padding: 0 !important; margin: 0 !important;
}
.vm-gmap-stage > div.vm-gmap-canvas { position: relative; pointer-events: auto; touch-action: pan-y !important; cursor: default; }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom { border: 1px solid var(--gm-border); border-radius: 12px; box-shadow: 0 1px 4px #0f172a25; }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a {
    width: 36px; height: 36px; line-height: 36px; font-size: 22px; font-weight: 700;
    display: block; min-width: 0; min-height: 0; padding: 0; text-decoration: none !important;
    color: var(--gm-text) !important; background: var(--gm-surface); border-bottom-color: var(--gm-border);
}
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a:hover { background: var(--gm-soft); }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a:first-child { border-radius: 11px 11px 0 0; }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a:last-child { border-radius: 0 0 11px 11px; }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a:focus-visible { outline: 3px solid #3b82f6; outline-offset: 2px; position: relative; z-index: 1; }
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a.leaflet-disabled { color: var(--gm-muted) !important; opacity: .5; cursor: default; }
/* The theme's dark-mode span rule must not hide the zoom glyph on its button. */
.vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a span { color: inherit !important; }
/* Raster overlays are data images: their transparent country mask must reveal the base map. */
.vm-gmap-canvas .leaflet-image-layer { background: none !important; animation: none !important; }
.vm-gmap-sidebar { background: var(--gm-surface); border: 1px solid var(--gm-border); border-radius: 16px; padding: 18px; min-width: 0; max-height: 560px; overflow-y: auto; }
.vm-gmap-sidebar h4 { font-size: 18px; line-height: 1.3; margin: 0 0 7px; color: var(--gm-text); }
.vm-gmap-sidebar p, .vm-gmap-popup p, .vm-gmap-status p { text-align: left !important; font-size: 13px; line-height: 1.5; margin: 7px 0; }
.vm-gmap-selected-value { font-size: 30px; font-weight: 800; line-height: 1.2; margin: 12px 0 16px; color: var(--gm-text); }
.vm-gmap-detail-group { padding: 10px 0; border-top: 1px solid var(--gm-border); font-size: 13px; }
.vm-gmap-detail-group h5 { margin: 4px 0 8px; font-size: 13px; color: var(--gm-muted); }
.vm-gmap-detail-group > div, .vm-gmap-detail-group > dl { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 5px 0; }
.vm-gmap-detail-group dt { color: var(--gm-muted); }
.vm-gmap-detail-group dd { margin: 0; font-weight: 700; text-align: right; }
.vm-gmap-player { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding: 12px 14px; background: var(--gm-soft); border-radius: 12px; border: 1px solid var(--gm-border); }
.vm-gmap-player .vm-gmap-slider { flex: 1 1 160px; width: auto; }
.vm-gmap-player .vm-gmap-time { flex: 0 1 245px; width: auto; }
.vm-gmap-player select:not(.vm-gmap-time) { width: auto; max-width: 110px; }
.vm-gmap-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 15px 2px 6px; font-size: 12px; color: var(--gm-muted); }
.vm-gmap-legend > strong { color: var(--gm-text); flex-basis: 100%; font-size: 13px; }
.vm-gmap-legend > span { display: inline-flex; gap: 5px; align-items: center; }
.vm-gmap-legend-scale { display: flex; flex-wrap: wrap; gap: 6px 12px; }
.vm-gmap-legend-scale > span { display: inline-flex; gap: 5px; align-items: center; }
.vm-gmap-legend p { flex-basis: 100%; text-align: left !important; margin: 2px 0; font-size: 12px; }
.vm-gmap-swatch { display: inline-block; width: 17px; height: 12px; border-radius: 3px; border: 1px solid rgba(128,128,128,.2); }
.vm-gmap-status { min-height: 22px; margin: 7px 0 0; color: var(--gm-muted); font-size: 12px; line-height: 1.5; text-align: left; }
.vm-gmap-marker-wrap { border: 0 !important; background: transparent !important; }
.vm-gmap-marker { position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 0; width: var(--vm-gmap-marker-size, 34px); height: var(--vm-gmap-marker-size, 34px); border: 1.5px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px #0f172a30; font-size: 12px; font-weight: 800; line-height: 1; }
.vm-gmap-marker.is-selected { outline: 2px solid #2563eb; outline-offset: 1px; z-index: 1000; }
.vm-gmap-marker.is-missing { background: #94a3b8 !important; color: #fff !important; }
.vm-gmap-value { display: flex; flex-direction: column; align-items: center; gap: 1px; max-width: 100%; white-space: nowrap; }
.vm-gmap-value-main { font-size: 14px; font-weight: 800; line-height: 1.05; white-space: nowrap; }
.vm-gmap-value-unit { font-size: 9px; font-weight: 700; line-height: 1; white-space: nowrap; }
.vm-gmap-marker.is-compact .vm-gmap-value-main { font-size: 12px; }
.vm-gmap-marker.is-compact .vm-gmap-value-unit { display: none; }
.vm-gmap-marker.is-compact.is-wide .vm-gmap-value-main { font-size: 9px; }
.vm-gmap-marker.is-text .vm-gmap-value-main { font-size: 8px; }
.vm-gmap-weather-icon { display: block; width: var(--vm-gmap-icon-size, 28px); height: var(--vm-gmap-icon-size, 28px); object-fit: contain; max-width: none; }
.vm-gmap-arrow { display: inline-block; font-size: 12px; margin-bottom: 1px; line-height: 1; }
/* Theme dark-mode span colors must not replace the marker's palette contrast. */
.vm-gmap-shell .leaflet-marker-icon .vm-gmap-marker .vm-gmap-value,
.vm-gmap-shell .leaflet-marker-icon .vm-gmap-marker .vm-gmap-value *,
.vm-gmap-shell .leaflet-marker-icon .vm-gmap-marker .vm-gmap-arrow,
.vm-gmap-shell .leaflet-marker-icon .vm-gmap-marker .vm-gmap-arrow * {
    color: inherit !important;
}
.vm-gmap-marker-label { position: absolute; left: 50%; top: calc(var(--vm-gmap-marker-size, 34px) + 3px); transform: translateX(-50%); white-space: nowrap; color: #0f172a; background: #ffffffeb; border: 1px solid #cbd5e1; border-radius: 4px; padding: 2px 3px; font-size: 9px; font-weight: 700; line-height: 1.1; pointer-events: none; }
.vm-gmap-marker-label.is-hidden { visibility: hidden; }
[data-theme="dark"] .vm-gmap-marker-label { color: #f1f5f9; background: #0f172aeb; border-color: #475569; }
.vm-gmap-popup { min-width: 160px; line-height: 1.5; }
.vm-gmap-popup-below .leaflet-popup-tip-container { top: -20px; bottom: auto; transform: rotate(180deg); }
.vm-gmap-shell.is-fullscreen { position: fixed; inset: 0; z-index: 100100; overflow-y: auto; background: var(--gm-surface); padding: 16px; }
.vm-gmap-shell:fullscreen { background: var(--gm-surface); padding: 16px; overflow-y: auto; }
.vm-gmap-shell.is-fullscreen .vm-gmap-stage > .leaflet-container,
.vm-gmap-shell:fullscreen .vm-gmap-stage > .leaflet-container { height: calc(100vh - 240px) !important; min-height: 360px; }
.vm-gmap-shell.is-fullscreen .vm-gmap-sidebar, .vm-gmap-shell:fullscreen .vm-gmap-sidebar { max-height: calc(100vh - 240px); }
#vm-gol-serbia-map { padding: 20px; }
#vm-gol-serbia-map .vm-gol-serbia-map__header { display: block; text-align: left; margin-bottom: 16px; }
#vm-gol-serbia-map .vm-gol-serbia-map__title { justify-content: start; margin: 0 0 6px; font-size: 22px; text-align: left; }
#vm-gol-serbia-map .vm-gol-serbia-map__desc { margin: 0; text-align: left !important; font-size: 14px; }
#vm-gol-map-container { padding: 0; margin: 0; min-height: 560px; }
/* The shared mount sets hidden; old display:flex rules otherwise override it. */
#vm-gol-serbia-map .vm-gol-serbia-map__controls[hidden],
#vm-gol-map-legend[hidden] { display: none !important; }

/* Long-term page: semantic source order is also the visual order. */
body.vm-page-golubarska-longterm .entry-header { display: none; }
.vm-gol-page.vm-ens-page { display: block; width: 100%; max-width: 1240px; padding: 8px 0 24px; margin: 0 auto; }
.vm-ens-page > * { order: initial !important; min-width: 0; }
.vm-ens-page .vm-ens-intro { padding: 22px 26px; margin: 0 0 18px; border-radius: 18px; background: var(--vm-bg-primary); border: 1px solid var(--vm-border-color); box-shadow: none; }
.vm-ens-page .vm-gol-intro__title { font-size: 28px; line-height: 1.2; letter-spacing: -.4px; text-transform: none; text-align: left; margin-bottom: 10px; }
.vm-ens-page .vm-gol-intro__lead { font-size: 15px; line-height: 1.65; text-align: left !important; margin: 0; max-width: 960px; }
.vm-ens-page .vm-gol-intro__features { margin-top: 14px; gap: 8px; }
.vm-ens-page .vm-gol-intro__feature { padding: 10px 12px; border-radius: 10px; background: var(--vm-bg-secondary); box-shadow: none; border: 0; font-size: 13px; }
.vm-ens-page .vm-gol-intro__feature-icon { font-size: 20px; }
.vm-ens-page .vm-gol-header { padding: 20px 24px; margin: 0 0 16px; border-radius: 16px; min-height: 0; }
.vm-ens-page .vm-gol-region-title { font-size: 23px; line-height: 1.3; }
.vm-ens-page .vm-gol-region-cities { font-size: 14px; margin: 7px 0; }
.vm-ens-page .vm-ens-controls { padding: 14px 18px; margin: 0 0 18px; border-radius: 14px; display: flex; gap: 16px; align-items: end; flex-wrap: wrap; }
.vm-ens-page .vm-ens-controls .vm-gol-region-dropdown { flex: 1 1 350px; }
.vm-ens-page .vm-ens-controls .vm-ens-horizon { flex: 0 1 auto; margin: 0; text-align: left; }
.vm-ens-page .vm-ens-horizon-hint { text-align: left !important; line-height: 1.5; }
.vm-ens-page .vm-ens-status { min-height: 0; margin: 8px 0; }
.vm-ens-page .vm-ens-day-cards-wrap { margin: 0 0 22px; }
.vm-ens-page .vm-ens-section-title { font-size: 21px; line-height: 1.3; margin: 18px 0 5px; text-align: left; }
.vm-ens-page .vm-ens-section-desc { margin: 0 0 13px; font-size: 14px; text-align: left !important; }
.vm-ens-page .vm-ens-day-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; overflow: visible; padding: 3px 0; }
.vm-ens-page button.vm-ens-day-card { display: block; min-width: 0; width: 100%; text-align: left; font: inherit; color: var(--vm-text-primary); background: var(--vm-bg-primary); padding: 14px; border: 1px solid var(--vm-border-color); border-radius: 14px; box-shadow: none; cursor: pointer; }
.vm-ens-page button.vm-ens-day-card:hover { border-color: #3b82f6; transform: none; }
.vm-ens-page button.vm-ens-day-card.vm-ens-day-card--active { border-color: #2563eb; box-shadow: inset 0 0 0 1px #2563eb; background: var(--vm-bg-secondary); }
.vm-ens-page .vm-ens-day-card__icon img { width: 44px; height: 44px; }
.vm-ens-page .vm-ens-day-card__date { font-size: 14px; }
.vm-ens-page .vm-ens-day-card__date-full { font-size: 11px; }
.vm-ens-page .vm-ens-map-section { padding: 20px; margin: 0 0 20px; border-radius: 18px; background: var(--vm-bg-primary); border: 1px solid var(--vm-border-color); box-shadow: none; }
.vm-ens-page .vm-ens-selected-summary { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; padding: 14px; background: var(--vm-bg-secondary); border-radius: 12px; font-size: 14px; }
.vm-ens-selected-summary > div { flex: 1 1 140px; }
.vm-ens-selected-summary strong { display: block; }
.vm-ens-selected-summary__heading { flex: 1 1 100% !important; }
.vm-ens-selected-summary__heading > span { display: block; margin-top: 3px; color: var(--vm-text-secondary); font-size: 12px; }
.vm-ens-selected-summary__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; flex: 1 1 100% !important; }
.vm-ens-selected-summary__tile { padding: 12px; border: 1px solid var(--vm-border-color); border-radius: 10px; background: var(--vm-bg-primary); }
.vm-ens-selected-summary__tile > span, .vm-ens-selected-summary__tile small { display: block; color: var(--vm-text-secondary); font-size: 12px; line-height: 1.5; }
.vm-ens-selected-summary__tile strong { margin: 5px 0; font-size: 19px; }
.vm-ens-page .vm-ens-day-card__date, .vm-ens-page .vm-ens-day-card__date-full,
.vm-ens-page .vm-ens-day-card__trange, .vm-ens-page .vm-ens-day-card__conf { display: block; }
.vm-ens-page .vm-ens-day-card__temps { display: flex; flex-direction: row; align-items: baseline; justify-content: flex-start; gap: 10px; margin: 6px 0; }
.vm-ens-page .vm-ens-day-card__row { display: block; margin-top: 5px; font-size: 12px; line-height: 1.45; }
.vm-ens-page .vm-ens-day-card__row > span { display: block; }
.vm-ens-page .vm-ens-day-card__icon { display: block; text-align: left; margin: 7px 0; }
.vm-ens-page .vm-ens-parent-link { display: inline-block; margin-top: 12px; font-size: 13px; }
.vm-ens-page .vm-ens-controls .vm-gol-controls__row { flex: 1 1 350px; }
.vm-ens-page .vm-ens-chart-selector { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0; font-size: 13px; }
.vm-ens-chart-selector select { width: auto; max-width: 100%; min-height: 40px; }
.vm-ens-page .vm-ens-charts { display: block; margin: 0 0 20px; padding: 20px; border: 1px solid var(--vm-border-color); border-radius: 18px; background: var(--vm-bg-primary); }
.vm-ens-chart-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 16px; }
.vm-ens-page .vm-ens-chart-tabs button[aria-selected="true"] { background: #2563eb; color: #fff; border-color: #2563eb; }
.vm-ens-page .vm-ens-chart-panel { min-width: 0; }
.vm-ens-page .vm-ens-chart-card { margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.vm-ens-page .vm-ens-chart-wrap { position: relative; width: 100%; height: 340px; min-height: 340px; }
.vm-ens-page .vm-ens-chart-wrap canvas { width: 100% !important; max-width: 100%; }
.vm-ens-page .vm-ens-table-wrap, .vm-ens-page .vm-ens-notice { margin: 18px 0; padding: 16px 20px; border: 1px solid var(--vm-border-color); border-radius: 14px; background: var(--vm-bg-primary); }
.vm-ens-page .vm-ens-table-wrap > summary, .vm-ens-page .vm-ens-notice > summary { font-size: 17px; font-weight: 700; color: var(--vm-text-primary); cursor: pointer; padding: 3px 0; }
.vm-ens-page .vm-ens-table-scroll { margin-top: 15px; }
.vm-ens-page .vm-ens-notice p, .vm-ens-page .vm-ens-notice li { text-align: left !important; }
.vm-ens-page .vm-ens-back-cta { margin: 14px 0; }
.vm-ens-page .vm-ens-back-cta__link { box-shadow: none; min-height: 48px; padding: 12px 16px; font-size: 14px; }

@media (max-width: 980px) {
    .vm-gmap-layout { grid-template-columns: minmax(0, 1fr); }
    .vm-gmap-sidebar { max-height: 340px; }
    .vm-ens-page .vm-gol-header { padding: 18px; }
}
@media (max-width: 640px) {
    #vm-gol-serbia-map, .vm-ens-page .vm-ens-map-section { padding: 10px; }
    #vm-gol-serbia-map .vm-gol-serbia-map__title { font-size: 19px; }
    #vm-gol-map-container { min-height: 480px; }
    .vm-gmap-toolbar { padding: 10px; gap: 9px; align-items: stretch; }
    .vm-gmap-field { flex: 1 1 100%; }
    .vm-gmap-height { flex: 1 1 85px; }
    .vm-gmap-mode { flex: 1 1 140px; }
    .vm-gmap-mode button { width: 100%; }
    .vm-gmap-opacity { flex: 1 1 100%; }
    .vm-gmap-actions { margin-left: 0; width: 100%; }
    .vm-gmap-actions button { flex: 1 1 auto; }
    .vm-gmap-shell .vm-gmap-stage .vm-gmap-canvas .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; font-size: 24px; }
    .vm-gmap-stage > .leaflet-container, .vm-gmap-stage > #vm-gol-map, .vm-gmap-stage > #vm-ens-map { height: 480px !important; }
    .vm-gmap-sidebar { padding: 14px; max-height: 370px; }
    .vm-gmap-player { display: grid; grid-template-columns: 44px 1fr 44px 90px; padding: 10px; gap: 7px; }
    .vm-gmap-player .vm-gmap-slider, .vm-gmap-player .vm-gmap-time { width: 100%; grid-column: 1 / -1; }
    .vm-gmap-player select:not(.vm-gmap-time) { width: 100%; }
    .vm-gmap-player button { padding: 9px 6px; }
    .vm-gmap-shell.is-fullscreen, .vm-gmap-shell:fullscreen { padding: 10px; }
    .vm-ens-page .vm-ens-intro { padding: 17px; }
    .vm-ens-page .vm-gol-intro__title { font-size: 23px; }
    .vm-ens-page .vm-gol-intro__lead { font-size: 14px; }
    .vm-ens-page .vm-gol-intro__features { grid-template-columns: 1fr 1fr; }
    .vm-ens-page .vm-gol-intro__feature { align-items: start; padding: 9px; }
    .vm-ens-page .vm-gol-intro__feature span:not(.vm-gol-intro__feature-icon) { display: none; }
    .vm-ens-page .vm-ens-controls { padding: 12px; }
    .vm-ens-page .vm-ens-controls .vm-gol-controls__row,
    .vm-ens-page .vm-ens-controls .vm-gol-region-dropdown { flex: 0 0 auto; width: 100%; min-width: 0; }
    .vm-ens-page .vm-ens-controls .vm-gol-region-label { text-align: left; }
    .vm-ens-page .vm-ens-controls .vm-gol-region-trigger { width: 100%; min-height: 44px; }
    .vm-ens-page .vm-ens-controls .vm-ens-horizon { width: 100%; }
    .vm-ens-page .vm-ens-horizon-toggle { display: flex; width: 100%; border-radius: 12px; }
    .vm-ens-page .vm-ens-horizon-btn { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 9px 8px; }
    .vm-ens-page .vm-ens-day-cards { display: flex; overflow-x: auto; gap: 9px; scroll-snap-type: x mandatory; padding: 4px 2px 10px; }
    .vm-ens-page button.vm-ens-day-card { flex: 0 0 160px; scroll-snap-align: start; padding: 12px; }
    .vm-ens-page .vm-ens-charts { padding: 14px; }
    .vm-ens-selected-summary__grid { grid-template-columns: minmax(0, 1fr); }
    .vm-ens-page .vm-ens-chart-tabs { gap: 5px; }
    .vm-ens-page .vm-ens-chart-tabs button { font-size: 13px; padding: 8px 9px; }
    .vm-ens-page .vm-ens-chart-wrap { height: 280px; min-height: 280px; }
    .vm-ens-page .vm-ens-table-wrap, .vm-ens-page .vm-ens-notice { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .vm-gmap-shell *, .vm-ens-page * { transition: none !important; scroll-behavior: auto !important; }
}
/* v4 (10.10.2026.): traka alata sa ikonicama, plutajući prikaz termina, plejer sa vremenskom linijom po danima. */
.vm-gmap-shell { --gm-accent: #2563eb; --gm-accent-soft: rgba(37, 99, 235, .09); --gm-radius: 18px; --gm-map-h: clamp(440px, 64vh, 620px); }
[data-theme="dark"] .vm-gmap-shell { --gm-accent: #60a5fa; --gm-accent-soft: rgba(96, 165, 250, .14); }
.vm-gmap-shell.is-fullscreen, .vm-gmap-shell:fullscreen { --gm-map-h: max(360px, calc(100vh - 300px)); }
.vm-gmap-stage > .leaflet-container, .vm-gmap-stage > #vm-gol-map, .vm-gmap-stage > #vm-ens-map { height: var(--gm-map-h) !important; }
.vm-gmap-sidebar { max-height: var(--gm-map-h); border-radius: var(--gm-radius); }
.vm-gmap-shell .vm-gmap-field--native { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Traka alata: parametri, visina, interpolacija, akcije */
.vm-gmap-shell .vm-gmap-toolbar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 10px; padding: 10px; border-radius: var(--gm-radius); }
.vm-gmap-pillrow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; max-width: 100%; }
.vm-gmap-shell .vm-gmap-pill {
    display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 14px 7px 11px;
    border-radius: 999px; font-size: 13px; font-weight: 650; color: var(--gm-text); background: var(--gm-surface);
    border: 1px solid var(--gm-border); transition: background-color .15s, border-color .15s, color .15s;
}
.vm-gmap-pill-ico { display: block; width: 16px; height: 16px; flex: 0 0 16px; color: var(--gm-accent); }
.vm-gmap-shell .vm-gmap-pill:hover { border-color: var(--gm-accent); background: var(--gm-accent-soft); }
.vm-gmap-shell .vm-gmap-pill.is-active, .vm-gmap-shell .vm-gmap-pill.is-active:hover { background: #2563eb !important; border-color: #2563eb !important; color: #fff !important; box-shadow: 0 6px 14px -8px rgba(37, 99, 235, .9); }
.vm-gmap-shell .vm-gmap-pill.is-active .vm-gmap-pill-ico { color: #fff; }
.vm-gmap-pill-sep { flex: 0 0 1px; width: 1px; height: 22px; margin: 0 3px; background: var(--gm-border); }
.vm-gmap-subbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding-top: 10px; border-top: 1px dashed var(--gm-border); }
.vm-gmap-shell .vm-gmap-pillrow--height { flex: 0 1 auto; flex-wrap: nowrap; gap: 2px; padding: 3px; border-radius: 12px; background: var(--gm-surface); border: 1px solid var(--gm-border); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.vm-gmap-seg-label { flex: 0 0 auto; padding: 0 8px 0 7px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--gm-muted); }
.vm-gmap-shell .vm-gmap-seg { flex: 0 0 auto; min-height: 32px; padding: 5px 11px; border: 0; border-radius: 9px; background: transparent; font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vm-gmap-shell .vm-gmap-seg:hover { background: var(--gm-soft); border: 0; }
.vm-gmap-shell .vm-gmap-seg.is-active, .vm-gmap-shell .vm-gmap-seg.is-active:hover { background: #2563eb !important; color: #fff !important; }
.vm-gmap-shell .vm-gmap-mode { position: relative; gap: 9px; min-height: 40px; padding: 6px 13px 6px 8px; border-radius: 999px; font-size: 13px; font-weight: 650; cursor: pointer; }
.vm-gmap-shell .vm-gmap-mode input[type="checkbox"] { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; margin: 0; opacity: 0; cursor: pointer; }
.vm-gmap-switch { position: relative; flex: 0 0 34px; width: 34px; height: 20px; border-radius: 999px; background: #cbd5e1; transition: background-color .2s; }
.vm-gmap-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, .35); transition: transform .2s; }
.vm-gmap-mode input:checked + .vm-gmap-switch { background: #2563eb; }
.vm-gmap-mode input:checked + .vm-gmap-switch::after { transform: translateX(14px); }
.vm-gmap-mode input:focus-visible + .vm-gmap-switch { outline: 3px solid #3b82f6; outline-offset: 3px; }
[data-theme="dark"] .vm-gmap-switch { background: #475569; }
.vm-gmap-shell .vm-gmap-opacity { flex: 0 1 210px; flex-direction: row; align-items: center; gap: 8px; padding: 0; font-size: 12px; font-weight: 700; color: var(--gm-muted); }
.vm-gmap-shell .vm-gmap-actions { margin-left: auto; gap: 6px; }
.vm-gmap-shell .vm-gmap-actions button { min-height: 40px; padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 650; }

/* Mapa: plutajući prikaz parametra i termina */
.vm-gmap-shell .vm-gmap-stage { border-radius: var(--gm-radius); }
.vm-gmap-hud {
    position: absolute; z-index: 500; top: 12px; left: 12px; display: flex; flex-direction: column; gap: 1px;
    max-width: calc(100% - 80px); padding: 8px 13px; border-radius: 14px; pointer-events: none;
    background: rgba(255, 255, 255, .86); border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 8px 22px -14px rgba(15, 23, 42, .55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.vm-gmap-hud-param { font-size: 11px; font-weight: 800; line-height: 1.3; letter-spacing: .05em; text-transform: uppercase; color: #475569; }
.vm-gmap-hud-time { font-size: 16px; font-weight: 800; line-height: 1.25; color: #0f172a; font-variant-numeric: tabular-nums; }
.vm-gmap-hud-param:empty, .vm-gmap-hud-time:empty { display: none; }
[data-theme="dark"] .vm-gmap-hud { background: rgba(15, 23, 42, .8); border-color: rgba(255, 255, 255, .1); }
[data-theme="dark"] .vm-gmap-hud-time { color: #f8fafc; }

/* Plejer: transport | vremenska linija | brzina i termin */
.vm-gmap-shell .vm-gmap-player {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "transport timeline side" "hint hint hint";
    align-items: center; gap: 4px 18px; margin-top: 12px; padding: 12px 16px 9px;
    border-radius: var(--gm-radius); background: var(--gm-surface); border: 1px solid var(--gm-border);
    box-shadow: 0 12px 30px -24px rgba(15, 23, 42, .7);
}
.vm-gmap-transport { grid-area: transport; display: flex; align-items: center; gap: 6px; }
.vm-gmap-shell .vm-gmap-transport button { display: inline-flex; align-items: center; justify-content: center; width: 40px; min-width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 50%; }
.vm-gmap-shell .vm-gmap-transport .vm-gmap-play {
    width: 52px; min-width: 52px; height: 52px; border: 0; color: #fff !important;
    background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%); box-shadow: 0 10px 20px -10px rgba(37, 99, 235, .95);
}
.vm-gmap-shell .vm-gmap-transport .vm-gmap-play:hover:not(:disabled) { background: linear-gradient(135deg, #1d4ed8 0%, #4338ca 100%); }
.vm-gmap-shell .vm-gmap-transport .vm-gmap-play svg { width: 22px; height: 22px; }
.vm-gmap-shell .vm-gmap-transport .vm-gmap-play svg path { fill: currentColor; }
.vm-gmap-shell.is-playing .vm-gmap-play { box-shadow: 0 0 0 4px rgba(37, 99, 235, .18), 0 10px 20px -10px rgba(37, 99, 235, .95); }
.vm-gmap-shell.is-buffering .vm-gmap-play { animation: vm-gmap-buffer 1s ease-in-out infinite; }
@keyframes vm-gmap-buffer { 50% { box-shadow: 0 0 0 7px rgba(37, 99, 235, .12); } }

.vm-gmap-timeline { grid-area: timeline; position: relative; min-width: 0; padding-top: 26px; --vm-gmap-p: 0; }
.vm-gmap-tl-track { position: relative; height: 28px; }
.vm-gmap-tl-track::before, .vm-gmap-tl-track::after { content: ""; position: absolute; top: 50%; height: 8px; margin-top: -4px; border-radius: 999px; pointer-events: none; }
.vm-gmap-tl-track::before { left: 0; right: 0; background: var(--gm-soft); box-shadow: inset 0 0 0 1px var(--gm-border); }
.vm-gmap-tl-track::after { left: 0; width: calc(9px + (100% - 18px) * var(--vm-gmap-p)); background: linear-gradient(90deg, #93c5fd, #2563eb); }
.vm-gmap-tl-ticks { position: absolute; z-index: 1; left: 9px; right: 9px; top: 50%; height: 0; pointer-events: none; }
.vm-gmap-tl-ticks i { position: absolute; top: -2px; width: 2px; height: 4px; margin-left: -1px; border-radius: 1px; background: rgba(100, 116, 139, .45); }
.vm-gmap-tl-ticks i.is-day { top: -10px; height: 20px; background: var(--gm-border); }
.vm-gmap-tl-now { position: absolute; top: -12px; width: 2px; height: 24px; margin-left: -1px; border-radius: 2px; background: #f97316; }
.vm-gmap-tl-now::before { content: ""; position: absolute; top: -3px; left: -2px; width: 6px; height: 6px; border-radius: 50%; background: #f97316; }
.vm-gmap-shell .vm-gmap-tl-track .vm-gmap-slider {
    position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0;
    background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; accent-color: #2563eb;
}
.vm-gmap-tl-track .vm-gmap-slider::-webkit-slider-runnable-track { height: 28px; background: transparent; border: 0; }
.vm-gmap-tl-track .vm-gmap-slider::-webkit-slider-thumb {
    -webkit-appearance: none; width: 18px; height: 18px; margin-top: 5px; border-radius: 50%;
    background: #fff; border: 3px solid #2563eb; box-shadow: 0 2px 6px rgba(15, 23, 42, .35); transition: transform .12s;
}
.vm-gmap-tl-track .vm-gmap-slider::-moz-range-track { height: 28px; background: transparent; border: 0; }
.vm-gmap-tl-track .vm-gmap-slider::-moz-range-progress { background: transparent; }
.vm-gmap-tl-track .vm-gmap-slider::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid #2563eb; box-shadow: 0 2px 6px rgba(15, 23, 42, .35); }
.vm-gmap-tl-track .vm-gmap-slider:active::-webkit-slider-thumb { transform: scale(1.18); }
.vm-gmap-shell .vm-gmap-tl-track .vm-gmap-slider:focus-visible { outline: none; }
.vm-gmap-tl-track .vm-gmap-slider:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 5px rgba(59, 130, 246, .35); }
.vm-gmap-tl-track .vm-gmap-slider:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 5px rgba(59, 130, 246, .35); }
.vm-gmap-tl-bubble {
    position: absolute; z-index: 3; bottom: calc(100% + 1px); left: calc(9px + (100% - 18px) * var(--vm-gmap-p));
    transform: translateX(calc(var(--vm-gmap-p) * -100%)); padding: 3px 9px; border-radius: 8px;
    background: #2563eb; color: #fff; font-size: 12px; font-weight: 700; line-height: 1.5; white-space: nowrap;
    font-variant-numeric: tabular-nums; pointer-events: none; box-shadow: 0 6px 14px -8px rgba(37, 99, 235, .9);
}
.vm-gmap-tl-bubble:empty { display: none; }
.vm-gmap-tl-days { position: relative; height: 24px; margin: 3px 9px 0; }
.vm-gmap-shell .vm-gmap-tl-day {
    position: absolute; top: 0; display: flex; justify-content: center; align-items: center; height: 24px; min-height: 0;
    padding: 0 2px; border: 0; border-radius: 0; background: none; box-shadow: none;
    font-size: 12px; font-weight: 650; line-height: 1; color: var(--gm-muted); white-space: nowrap; overflow: visible;
}
.vm-gmap-shell .vm-gmap-tl-day::before { content: ""; position: absolute; left: 1px; right: 1px; top: 0; height: 2px; border-radius: 2px; background: transparent; }
.vm-gmap-shell .vm-gmap-tl-day:hover { background: none; color: var(--gm-text); }
.vm-gmap-shell .vm-gmap-tl-day.is-active, .vm-gmap-shell .vm-gmap-tl-day.is-active:hover { background: none; border: 0; color: #1d4ed8; font-weight: 800; }
[data-theme="dark"] .vm-gmap-shell .vm-gmap-tl-day.is-active { color: #93c5fd; }
.vm-gmap-shell .vm-gmap-tl-day.is-active::before { background: #2563eb; }
.vm-gmap-tl-day-long { display: none; }
.vm-gmap-shell .vm-gmap-tl-day.is-compact { min-width: 14px; transform: translateX(-7px); }
.vm-gmap-shell .vm-gmap-tl-day.is-compact > span { display: none !important; }
.vm-gmap-shell.is-time-disabled .vm-gmap-tl-track { opacity: .45; }
.vm-gmap-shell.is-time-disabled .vm-gmap-tl-bubble { background: #64748b; box-shadow: none; }

.vm-gmap-player-side { grid-area: side; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.vm-gmap-counter { font-size: 11px; font-weight: 800; letter-spacing: .04em; color: var(--gm-muted); font-variant-numeric: tabular-nums; }
.vm-gmap-speed { display: inline-flex; gap: 2px; padding: 3px; border-radius: 11px; background: var(--gm-soft); border: 1px solid var(--gm-border); }
.vm-gmap-shell .vm-gmap-speed-btn { min-height: 28px; padding: 3px 9px; border: 0; border-radius: 8px; background: transparent; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.vm-gmap-shell .vm-gmap-speed-btn:hover { background: var(--gm-surface); border: 0; }
.vm-gmap-shell .vm-gmap-speed-btn.is-active, .vm-gmap-shell .vm-gmap-speed-btn.is-active:hover { background: #2563eb !important; color: #fff !important; }
.vm-gmap-shell.is-time-disabled .vm-gmap-speed { opacity: .5; pointer-events: none; }
.vm-gmap-shell .vm-gmap-player .vm-gmap-time { flex: 0 0 auto; width: auto; max-width: 220px; min-height: 34px; padding: 5px 28px 5px 10px; border-radius: 10px; font-size: 12px; }
.vm-gmap-shell .vm-gmap-player-hint { grid-area: hint; margin: 2px 0 0; font-size: 11px; line-height: 1.4; color: var(--gm-muted); text-align: left !important; }

/* Bočni panel i legenda */
.vm-gmap-spark { margin: 4px 0 10px; }
.vm-gmap-spark svg { display: block; width: 100%; height: 46px; overflow: visible; }
.vm-gmap-spark path { fill: none; stroke: #2563eb; stroke-width: 2; vector-effect: non-scaling-stroke; }
.vm-gmap-spark circle { fill: #2563eb; stroke: var(--gm-surface); stroke-width: 2; }
.vm-gmap-spark-range { display: flex; justify-content: space-between; font-size: 11px; color: var(--gm-muted); }
.vm-gmap-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 4px 0 10px; }
.vm-gmap-facts > div { background: var(--gm-soft); border-radius: 10px; padding: 7px 9px; }
.vm-gmap-facts dt { font-size: 11px; color: var(--gm-muted); }
.vm-gmap-facts dd { margin: 0; font-weight: 800; font-size: 14px; font-variant-numeric: tabular-nums; color: var(--gm-text); }
.vm-gmap-shell .vm-gmap-open-region { width: 100%; margin-top: 8px; font-weight: 700; background: #2563eb; border-color: #2563eb; color: #fff !important; }
.vm-gmap-shell .vm-gmap-open-region:hover { background: #1d4ed8; border-color: #1d4ed8; }
.vm-gmap-shell .vm-gmap-legend { margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: var(--gm-soft); border: 1px solid var(--gm-border); }
.vm-gmap-legend-bar { flex-basis: 100%; height: 12px; border-radius: 999px; border: 1px solid rgba(128, 128, 128, .25); }
.vm-gmap-legend-ticks { flex-basis: 100%; display: flex; justify-content: space-between; gap: 4px; font-size: 11px; font-variant-numeric: tabular-nums; }
.vm-gmap-shell .vm-gmap-status { font-size: 11px; opacity: .8; }

@media (min-width: 1100px) {
    .vm-gmap-tl-day-short { display: none; }
    .vm-gmap-tl-day-long { display: inline; }
}
@media (hover: none) { .vm-gmap-shell .vm-gmap-player-hint { display: none; } }
@media (max-width: 640px) {
    .vm-gmap-shell { --gm-map-h: clamp(360px, 58vh, 480px); }
    .vm-gmap-shell .vm-gmap-toolbar { padding: 8px; gap: 8px; }
    .vm-gmap-pillrow { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
    .vm-gmap-pillrow::-webkit-scrollbar { display: none; }
    .vm-gmap-shell .vm-gmap-pill { flex: 0 0 auto; min-height: 40px; }
    .vm-gmap-subbar { padding-top: 8px; }
    .vm-gmap-shell .vm-gmap-pillrow--height { flex: 1 1 100%; }
    .vm-gmap-shell .vm-gmap-mode { flex: 0 1 auto; }
    .vm-gmap-shell .vm-gmap-actions { width: auto; margin-left: auto; }
    .vm-gmap-shell .vm-gmap-actions button { flex: 0 0 auto; width: 42px; min-width: 42px; height: 42px; padding: 0; justify-content: center; }
    .vm-gmap-shell .vm-gmap-actions .vm-gol-control__label { display: none; }
    .vm-gmap-hud { top: 8px; left: 8px; padding: 6px 10px; }
    .vm-gmap-hud-time { font-size: 14px; }
    .vm-gmap-shell .vm-gmap-player { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "timeline timeline" "transport side"; gap: 8px 8px; padding: 10px 10px 12px; }
    .vm-gmap-transport { gap: 4px; }
    .vm-gmap-shell .vm-gmap-transport button { width: 38px; min-width: 38px; height: 38px; min-height: 38px; }
    .vm-gmap-shell .vm-gmap-transport .vm-gmap-play { width: 46px; min-width: 46px; height: 46px; }
    .vm-gmap-player-side { flex-direction: row; align-items: center; justify-content: flex-end; min-width: 0; }
    .vm-gmap-counter, .vm-gmap-shell .vm-gmap-player .vm-gmap-time { display: none; }
    .vm-gmap-shell .vm-gmap-speed-btn { min-height: 36px; padding: 4px 6px; font-size: 12px; }
    .vm-gmap-legend-ticks span:nth-child(even) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .vm-gmap-shell.is-buffering .vm-gmap-play { animation: none; }
}
