/*! Javni prijevoz Martinska Ves 1.4.1 – DARK semafor (izvorno DARK v45 snippet), preneseno 1:1. */

/* =========================================================
   AUTOBUSNI SEMAFOR – DARK THEME
   Podloga: #0a0e2b
   Žuta: #ffce19
   Ugašeni gumb: #a5a9c4
   Tekst na gumbima: #000000
   Današnji datum: #ffffff
   ========================================================= */

/* Cijeli Leaflet popup – samo kada sadrži autobusni semafor */
.leaflet-popup.mv-bus-popup .leaflet-popup-content-wrapper {
    background: #0a0e2b;
    color: #ffce19;
    border-radius: 1%;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
}

.leaflet-popup.mv-bus-popup .leaflet-popup-tip {
    background: #0a0e2b;
}

.leaflet-popup.mv-bus-popup .leaflet-popup-content {
    margin: 0;
    padding: 0;
}

.leaflet-popup.mv-bus-popup .leaflet-popup-close-button {
    top: 8px !important;
    right: 8px !important;
    width: 34px !important;
    height: 34px !important;
    color: #ffffff !important;
    font-size: 28px !important;
    line-height: 30px !important;
    font-weight: 400 !important;
    opacity: 0.82;
    z-index: 20;
}

/* Unutarnji sadržaj */
.leaflet-popup.mv-bus-popup .mv-map-popup {
    box-sizing: border-box;
    padding: 26px 30px 28px;
    background: #0a0e2b;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
}
/* =========================================================
   PC – cijeli autobusni popup smanjen na 85%
   Mobitel se NE mijenja
   ========================================================= */
@media (min-width: 768px) {

    .leaflet-popup.mv-bus-popup .mv-map-popup {
        zoom: 0.85;
    }

}
/* =========================================================
   NASLOV AUTOBUSNOG STAJALIŠTA

   "AUTOBUSNO STAJALIŠTE" je pomoćni, manji red.
   Ispod njega je naziv mjesta kao glavni, veći naslov.
   ========================================================= */
.leaflet-popup.mv-bus-popup .mv-map-popup h3 {
    margin: 0 42px 8px 0;
    padding: 0;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-weight: 400;
}

.leaflet-popup.mv-bus-popup .mv-bus-heading-label {
    display: block;
    margin: 0 0 4px;
    font-size: 24px;
    line-height: 1.08;
    font-weight: 400;
    letter-spacing: 0;
}

.leaflet-popup.mv-bus-popup .mv-bus-heading-station {
    display: block;
    font-size: 56px;
    line-height: 1.02;
    font-weight: 400;
    letter-spacing: -0.3px;
}

/* Datum + aktualni sat + mala vremenska informacija ispod naziva stajališta. */
.leaflet-popup.mv-bus-popup .mv-map-category {
    margin: 0 0 14px;
    color: #ffffff !important;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 18px;
    line-height: 1.25;
    font-weight: 500;
    text-transform: none !important;
    letter-spacing: 0 !important;
    opacity: 0.92;
}


/* Aktualno vrijeme iza današnjeg datuma */
.leaflet-popup.mv-bus-popup .mv-bus-weather {
    display: inline;
    white-space: nowrap;
}

.leaflet-popup.mv-bus-popup .mv-bus-weather-icon {
    display: inline-block;
    margin-left: 5px;
    margin-right: 2px;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    font-size: 1.05em;
    line-height: 1;
    vertical-align: -0.04em;
}

.leaflet-popup.mv-bus-popup .mv-bus-weather-temp {
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
    font-weight: 500;
}

/*
 * Open-Meteo zahtijeva atribuciju uz prikazane vremenske podatke.
 * Link je namjerno vrlo diskretan, ali vidljiv.
 */
.leaflet-popup.mv-bus-popup .mv-bus-weather-source {
    margin-left: 5px;
    color: rgba(255, 255, 255, 0.58) !important;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 0.52em;
    font-weight: 400;
    text-decoration: none;
    white-space: nowrap;
}

.leaflet-popup.mv-bus-popup .mv-bus-weather-source:hover,
.leaflet-popup.mv-bus-popup .mv-bus-weather-source:focus {
    color: #ffffff !important;
    text-decoration: underline;
}

/* Semafor */
.mv-bus-semafor {
    margin-top: 0;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    font-family: 'Barlow', Arial, sans-serif;
}

/* ŠKOLSKA GODINA / ŠKOLSKI PRAZNICI
 * Sustav i dalje koristi ovaj podatak za odabir voznog reda,
 * ali ga više ne prikazujemo u semaforu.
 */
.mv-bus-mode {
    display: none !important;
}

/* =========================================================
   KOMPAKTNI DRUM / WHEEL IZBOR SMJERA
   ========================================================= */
.mv-bus-directions {
    display: block;
    margin: 0 0 22px;
}

/*
 * Naslov iznad drum/swipe izbornika smjera.
 * Vizualno je isti rang kao "AUTOBUS STIŽE ZA".
 */
.mv-bus-directions::before {
    content: none;
    display: none;
}

/* v34 – vrijeme odabrane vožnje je iznad žute trake. */
.mv-bus-next-start {
    position: relative;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.26em;
    margin: 0 0 10px;
    padding-right: 68px;
    color: rgba(255, 255, 255, 0.72);
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 20px;
    line-height: 1.1;
    font-weight: 400;
}

.mv-bus-next-start-departures {
    position: absolute;
    top: 0.58em;
    right: 0;
    color: rgba(255, 255, 255, 0.72);
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 1em;
    line-height: 1.1;
    font-weight: 400;
    letter-spacing: 0;
    white-space: nowrap;
}

.mv-bus-next-start-time {
    color: #ffce19;
    font-size: 1.72em;
    line-height: 0.95;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.mv-bus-next-start-unit {
    color: #ffce19;
    font-weight: 500;
    white-space: nowrap;
}

/*
 * Izvorna dva gumba ostaju u DOM-u zbog postojeće logike,
 * ali se ne prikazuju. Novi drum selektor upravlja istim smjerovima.
 */
.mv-bus-direction {
    display: none !important;
}

.mv-bus-drum {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) 54px;
    align-items: stretch;
    width: 100%;
    min-height: 68px;
    box-sizing: border-box;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,0.055) 0%,
            rgba(255,255,255,0.015) 46%,
            rgba(0,0,0,0.11) 100%
        );
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}

.mv-bus-drum-arrow,
.mv-bus-drum-current {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    border-radius: 0;
    font-family: 'Barlow', Arial, sans-serif;
    cursor: pointer;
}

.mv-bus-drum-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: rgba(255, 255, 255, 0.035);
    color: #ffce19;
    font-size: 38px;
    line-height: 1;
    font-weight: 300;
}

.mv-bus-drum-arrow:hover,
.mv-bus-drum-arrow:focus {
    background: rgba(255, 255, 255, 0.08);
    outline: none;
}

.mv-bus-drum-current {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 10px 12px;
    background: #ffce19;
    color: #000000;
    font-size: 22px;
    line-height: 1.12;
    font-weight: 700;
    letter-spacing: 0;
    text-align: center;
}

.mv-bus-drum-current.is-arrived {
    background: #d71920;
    color: #ffffff;
}

.mv-bus-drum-current.mv-bus-drum-change {
    animation: mvBusDrumChange 180ms ease-out;
}

@keyframes mvBusDrumChange {
    0% {
        opacity: 0.42;
        transform: translateY(5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* DATUM ODABRANE VOŽNJE – prikazuje se samo jednom u glavnom semaforu. */
.mv-bus-next-label {
    margin: 0 0 14px;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.3;
    font-weight: 600;
}

.mv-bus-next-date {
    display: inline;
    margin: 0;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: inherit;
    line-height: inherit;
    font-weight: 600;
}

/* =========================================================
   v43 – BRZI IZBORNIK PROMJENE SMJERA
   Jedan lagani button; nema dodatnih timera ni API poziva.
   Strelice koriste istu 24 × 24 geometriju i stroke-width 9
   kao bijela strelica u plavoj zoni POLASCI.
   ========================================================= */
.mv-bus-next-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.mv-bus-next-date {
    min-width: 0;
    white-space: nowrap;
}

.mv-bus-direction-switch {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 28px;
    margin: -4px 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 12px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.02em;
    white-space: nowrap;
    cursor: pointer;
}

.mv-bus-direction-switch::before,
.mv-bus-direction-switch::after {
    content: "";
    display: block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 24px 24px;
}

/* Ista geometrija kao POLASCI, samo okrenuta ulijevo. */
.mv-bus-direction-switch::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M42 12 L22 32 L42 52' fill='none' stroke='%23ffce19' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

/* Ista geometrija kao POLASCI, samo okrenuta udesno. */
.mv-bus-direction-switch::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M22 12 L42 32 L22 52' fill='none' stroke='%23ffce19' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

.mv-bus-direction-switch:hover {
    color: #ffffff;
    opacity: 0.86;
}

.mv-bus-direction-switch:focus {
    outline: none;
}

.mv-bus-direction-switch:focus-visible {
    outline: 2px solid rgba(255,255,255,0.90);
    outline-offset: 3px;
}

/*
 * Stari veliki prikaz jednog vremena ostaje u DOM-u zbog
 * kompatibilnosti s glavnom kartom, ali ga zamjenjuje par
 * POLAZAK / DOLAZAK.
 */
.mv-bus-time {
    display: none !important;
}

/* =========================================================
   POLAZAK / DOLAZAK NA ODREDIŠTE
   ========================================================= */
.mv-bus-trip-times {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    width: 100%;
    margin: 0 0 24px;
    box-sizing: border-box;
}

.mv-bus-trip-column {
    min-width: 0;
}

.mv-bus-trip-column:first-child {
    text-align: left;
}

.mv-bus-trip-column:last-child {
    text-align: right;
}

.mv-bus-trip-label {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 2.55em;
    margin: 0 0 6px;
    color: rgba(255, 255, 255, 0.72);
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 17px;
    line-height: 1.15;
    font-weight: 400;
}

.mv-bus-trip-label-main,
.mv-bus-trip-label-destination {
    display: block;
}

.mv-bus-trip-label-main {
    font-size: 1em;
    line-height: 1.15;
}

.mv-bus-trip-label-destination {
    min-height: 1.15em;
    margin-top: 2px;
    color: #ffffff;
    font-size: 0.82em;
    line-height: 1.15;
    font-weight: 600;
    white-space: nowrap;
    opacity: 1;
}

.mv-bus-trip-label-destination.is-empty {
    visibility: hidden;
}

.mv-bus-trip-time {
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 66px;
    line-height: 0.95;
    font-weight: 100;
    letter-spacing: -1px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* AUTOBUS STIŽE ZA */
.mv-bus-countdown-label {
    margin: 0 0 10px;
    color: rgba(255, 255, 255, 0.72);
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 400;
    text-align: right;
}

/* ODBROJAVANJE */
.mv-bus-countdown {
    margin: 0 0 26px;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 48px;
    line-height: 0.95;
    font-weight: 100;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.mv-bus-countdown::after {
    content: " SATI";
    display: inline-block;
    margin-left: 12px;
    color: #ffce19;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 0.30em;
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
    vertical-align: baseline;
}

/* Donji gumbi – boje, bez mijenjanja rasporeda iz glavne karte */
.leaflet-popup.mv-bus-popup .mv-map-route {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    box-sizing: border-box;
    background: #ffce19;
    color: #000000;
    text-align: center;
    text-decoration: none;
    font-family: 'Barlow', Arial, sans-serif;
    font-weight: 700;
}

.leaflet-popup.mv-bus-popup .mv-map-timetable {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: #a5a9c4;
    color: #000000;
    text-align: center !important;
}

.leaflet-popup.mv-bus-popup .mv-popup-grb {
    height: auto;
}

/* =========================================================
   MOBITEL – kompaktni digitalni semafor
   ========================================================= */
@media (max-width: 767px) {

    .leaflet-popup.mv-bus-popup .mv-map-popup {
        padding: 20px 22px 22px;
    }

    /*
     * Gornji blok desno – ostavlja lijevi prostor za
     * Leaflet + / - kontrole karte.
     */
    .leaflet-popup.mv-bus-popup .mv-map-popup h3 {
        margin-right: 38px;
        padding-left: 46px;
        text-align: right;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-heading-label {
        margin-bottom: 3px;
        font-size: 15px;
        line-height: 1.08;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-heading-station {
        font-size: 30px;
        line-height: 1.02;
    }

    /*
     * X spušten i malo pomaknut ulijevo kako ga Safari/iPhone
     * ne bi rezao na rubu popupa.
     */
    .leaflet-popup.mv-bus-popup .leaflet-popup-close-button {
        top: 16px !important;
        right: 10px !important;
        width: 32px !important;
        height: 32px !important;
        font-size: 27px !important;
        line-height: 28px !important;
    }

    .leaflet-popup.mv-bus-popup .mv-map-category {
        margin-bottom: 12px;
        padding-left: 46px;
        font-size: clamp(10px, 3vw, 13.5px);
        line-height: 1.25;
        text-align: right;
        white-space: nowrap;
        font-variant-numeric: tabular-nums;
        font-feature-settings: "tnum" 1;
    }

    .mv-bus-semafor {
        padding-top: 18px;
    }

    /*
     * Školska godina / praznici ostaju dio logike,
     * ali više ne zauzimaju prostor.
     */
    .mv-bus-mode {
        display: none !important;
    }

    .mv-bus-directions {
        margin-bottom: 18px;
    }

    .mv-bus-next-start {
        margin-bottom: 7px;
        padding-right: 60px;
        font-size: 13px;
    }

    .mv-bus-next-start-time {
        font-size: 1.78em;
    }

    .mv-bus-directions::before {
        margin-bottom: 5px;
        font-size: 13px;
        line-height: 1.15;
    }

    .mv-bus-drum {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        min-height: 58px;
    }

    .mv-bus-drum-arrow {
        font-size: 32px;
    }

    .mv-bus-drum-current {
        padding: 9px 7px;
        font-size: 17px;
        line-height: 1.10;
    }

    .mv-bus-next-label {
        margin-bottom: 9px;
        font-size: 13px;
        line-height: 1.25;
        gap: 4px;
    }

    .mv-bus-direction-switch {
        gap: 3px;
        font-size: 10px;
        letter-spacing: 0;
    }

    /* Strelice ostaju 24 × 24 px – identične veličini strelice POLASCI. */
    .mv-bus-direction-switch::before,
    .mv-bus-direction-switch::after {
        flex-basis: 24px;
        width: 24px;
        height: 24px;
        background-size: 24px 24px;
    }

    /*
     * POLAZAK / DOLAZAK – dva jednaka stupca.
     * Oba vremena su na istoj horizontalnoj liniji.
     * Na iPhoneu su brojke smanjene s 50 px na 44 px kako se
     * 07:05 i 07:20 ne bi vizualno spajali.
     */
    .leaflet-popup.mv-bus-popup .mv-bus-trip-times {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 18px;
        margin-bottom: 20px;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-trip-label {
        min-height: 32px;
        margin-bottom: 5px;
        font-size: 13px;
        line-height: 1.15;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-trip-label-destination {
        min-height: 12px;
        margin-top: 1px;
        font-size: 11px;
        line-height: 1.10;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-trip-time {
        font-size: 56px;
        line-height: 0.95;
        letter-spacing: -1px;
    }

    /*
     * AUTOBUS STIŽE ZA – isti vizualni rang kao POLAZAK / DOLAZAK.
     * Naslov je 13 px, a odbrojavanje 44 px, jednako gornjim vremenima.
     */
    .mv-bus-countdown-label {
        margin-bottom: 5px;
        font-size: 13px;
        line-height: 1.15;
    }

    .mv-bus-countdown {
        margin-bottom: 22px;
        font-size: 44px;
        line-height: 0.95;
        letter-spacing: -1px;
    }

    .mv-bus-countdown::after {
        margin-left: 8px;
        font-size: 0.28em;
    }

    .mv-bus-countdown.is-long {
        font-size: 31px;
        line-height: 1.08;
    }

    .leaflet-popup.mv-bus-popup .mv-map-route {
        min-height: 52px;
        padding: 13px 14px;
        font-size: 16px;
        line-height: 1.15;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 52px;
        grid-template-areas: "timetable crest";
        column-gap: 14px;
        align-items: center;
        width: 100%;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-actions .mv-map-timetable {
        grid-area: timetable;
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 100%;
        box-sizing: border-box;
        text-align: center !important;
    }

    .leaflet-popup.mv-bus-popup .mv-bus-actions .mv-popup-grb {
        grid-area: crest;
        display: block;
        justify-self: center;
        align-self: center;
        margin: 0;
        max-width: 30px;
        height: auto;
    }
}


/* =========================================================
   PC – VEĆI DATUM / VRIJEME + IZBORNIK
   Primjenjuje se samo na desktop od 1025 px naviše.
   Mobilni prikaz ostaje potpuno nepromijenjen.
   ========================================================= */
@media (min-width: 1025px) {

    .leaflet-popup.mv-bus-popup .mv-map-popup .mv-map-category {
        font-size: 18px !important;
    }

    .leaflet-popup.mv-bus-popup .mv-map-popup .mv-bus-directions::before {
        font-size: 20px !important;
    }
}


/* MV WEATHER ADVICE ADDITION BEGIN */
.leaflet-popup.mv-bus-popup .mv-bus-weather-advice {
    box-sizing: border-box;
    margin: -8px 0 14px;
    padding: 0;
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 18px;
    line-height: 1.25;
    font-weight: 700;
    text-align: right;
    overflow-wrap: break-word;
}
.leaflet-popup.mv-bus-popup .mv-bus-weather-advice.is-soft {
    color: rgba(255, 255, 255, 0.88);
    font-weight: 500;
}
.leaflet-popup.mv-bus-popup .mv-bus-weather-advice[hidden] {
    display: none !important;
}
@media (max-width: 767px), (max-width: 1024px) and (max-height: 600px) and (orientation: landscape) {
    .leaflet-popup.mv-bus-popup .mv-bus-weather-advice {
        margin: -6px 0 12px;
        font-size: 14px;
        line-height: 1.25;
    }
    .leaflet-popup.mv-bus-popup.mv-bus-advice-fit {
        translate: 0 var(--mv-bus-advice-shift, 0px);
    }
    .leaflet-popup.mv-bus-popup.mv-bus-advice-fit .leaflet-popup-content-wrapper {
        max-height: var(--mv-bus-advice-max-height);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* MV WEATHER ADVICE ADDITION END */

/* MV SHARE ADDITION BEGIN */
.mv-bus-share-trigger { cursor: pointer; }
dialog.mv-bus-share-dialog {
    position: fixed; inset: 0; margin: auto; padding: 24px;
    width: min(380px, calc(100vw - 32px)); max-width: none;
    max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
    overflow: auto; box-sizing: border-box; border: 1px solid #454960;
    border-radius: 8px; background: #0a0e2b; color: #ffffff;
    font: 500 16px/1.4 'Barlow', Arial, sans-serif; z-index: 2147483647;
    box-shadow: 0 16px 50px rgba(0,0,0,.4);
}
dialog.mv-bus-share-dialog:not([open]) { display: none; }
dialog.mv-bus-share-dialog::backdrop { background: rgba(0,0,0,.58); }
dialog.mv-bus-share-dialog h2 { margin: 0 30px 4px 0; color: #ffce19; font: 700 22px/1.2 'Barlow', Arial, sans-serif; }
dialog.mv-bus-share-dialog .mv-bus-share-station { margin: 0 30px 18px 0; color: #ffffff; }
dialog.mv-bus-share-dialog button, dialog.mv-bus-share-dialog a {
    box-sizing: border-box; border: 0; border-radius: 4px; margin: 0;
    font: 700 16px/1.2 'Barlow', Arial, sans-serif; text-transform: none;
    cursor: pointer; text-decoration: none; letter-spacing: normal;
}
dialog.mv-bus-share-dialog .mv-bus-share-close {
    position: absolute; top: 12px; right: 10px; width: 40px; height: 40px;
    padding: 0; color: #ffffff; background: transparent; font-size: 30px;
}
dialog.mv-bus-share-dialog .mv-bus-share-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
dialog.mv-bus-share-dialog .mv-bus-share-links a {
    display: flex; justify-content: center; align-items: center;
    padding: 12px 8px; min-height: 44px; background: #a5a9c4; color: #000000;
}
dialog.mv-bus-share-dialog .mv-bus-share-copy {
    display: block; width: 100%; min-height: 44px; padding: 12px;
    margin-top: 12px; background: #ffce19; color: #000000;
}
dialog.mv-bus-share-dialog input {
    box-sizing: border-box; display: block; width: 100%; min-height: 40px;
    margin: 12px 0 0; padding: 8px; border: 1px solid #757a98;
    border-radius: 4px; background: #141936; color: #ffffff; font: 500 13px/1.3 'Barlow', Arial, sans-serif;
}
dialog.mv-bus-share-dialog .mv-bus-share-status { margin: 8px 0 0; font-size: 14px; color: #ffffff; }
dialog.mv-bus-share-dialog :focus-visible { outline: 2px solid #ffffff; outline-offset: 3px; }
/* MV SHARE ADDITION END */

/* MV ROUTE TICKER BEGIN */
.mv-bus-drum-current.mv-bus-route-ticker { position: relative; }
.mv-bus-route-ticker .mv-bus-ticker-spacer { display: block; min-width: 0; }
.mv-bus-route-ticker .mv-bus-ticker-viewport {
    position: absolute; left: 10px; right: 10px; top: 0; bottom: 0;
    display: flex; align-items: center; overflow: hidden; pointer-events: none;
    text-align: left; font-size: 0.8em;
}
.mv-bus-route-ticker .mv-bus-ticker-viewport[hidden] { display: none !important; }
.mv-bus-route-ticker .mv-bus-ticker-viewport.is-static { justify-content: center; }
.mv-bus-route-ticker .mv-bus-ticker-text { display: block; flex: 0 0 auto; white-space: nowrap; }
.mv-bus-route-ticker .mv-bus-ticker-text.is-moving {
    animation-name: mvBusRouteTravel; animation-timing-function: linear;
    animation-fill-mode: both; animation-iteration-count: 1;
}
@keyframes mvBusRouteTravel {
    from { transform: translateX(0); }
    to { transform: translateX(var(--mv-ticker-distance)); }
}
@media (prefers-reduced-motion: reduce) {
    .mv-bus-route-ticker .mv-bus-ticker-viewport { display: none !important; }
    .mv-bus-route-ticker .mv-bus-ticker-spacer { visibility: visible !important; }
}
/* MV ROUTE TICKER END */

/* DOTO — samo putujuće poruke, postojeći smjer i ostali tekst ostaju isti. */
.mv-bus-route-ticker .mv-bus-ticker-viewport .mv-bus-ticker-text {
    font-family: 'Doto', 'Barlow', Arial, sans-serif;
    font-weight: 852;
    font-size: 35px;
    font-variation-settings: 'wght' 852, 'ROND' 23;
}

/* v42 – kontekstualna poruka ne ulazi ispod desne zone sa strelicom POLASCI. */
.mv-bus-trip-picker .mv-bus-route-ticker .mv-bus-ticker-viewport {
    left: 16px;
    right: 74px;
}


/* =========================================================
   HIBRIDNI IZBORNIK – SLJEDEĆE VOŽNJE + PUNA TRASA
   ========================================================= */
.mv-bus-drum.mv-bus-trip-picker {
    display: block;
    min-height: 0;
    overflow: visible;
    border-top: 1px solid rgba(255,255,255,0.18);
    border-bottom: 1px solid rgba(255,255,255,0.18);
    background: transparent;
}

.mv-bus-trip-picker .mv-bus-drum-current {
    position: relative;
    width: 100%;
    min-height: 72px;
    padding: 10px 76px 10px 16px;
    flex-direction: column;
    gap: 2px;
    white-space: normal;
    text-align: center;
}

/*
 * App-style strelica prema referentnim slikama:
 * snažni chevron u zasebnoj bočnoj zoni.
 */
.mv-bus-trip-picker .mv-bus-drum-current::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 58px;
    box-sizing: border-box;
    padding-top: 0;
    background: #0a0e2b;
    border-left: 1px solid rgba(0,0,0,0.20);
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 9px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: center;
    z-index: 1;
    pointer-events: none;
}

.mv-bus-trip-picker .mv-bus-drum-current::after {
    content: "";
    position: absolute;
    right: 17px;
    top: 50%;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
    background: center / 24px 24px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M12 22 L32 42 L52 22' fill='none' stroke='%23ffffff' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
    z-index: 2;
    pointer-events: none;
}

.mv-bus-trip-picker .mv-bus-drum-current[aria-expanded="true"]::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M12 42 L32 22 L52 42' fill='none' stroke='%23ffffff' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

.mv-bus-trip-picker-day {
    display: block;
    max-width: 100%;
    color: rgba(0,0,0,0.74);
    font-size: 13px;
    line-height: 1.06;
    font-weight: 500;
    letter-spacing: 0.01em;
}

.mv-bus-trip-picker-trip {
    display: block;
    max-width: 100%;
    color: #000000;
    font-size: 22px;
    line-height: 1.04;
    font-weight: 700;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.mv-bus-drum-current.is-arrived .mv-bus-trip-picker-day,
.mv-bus-drum-current.is-arrived .mv-bus-trip-picker-trip {
    color: #ffffff;
}

.mv-bus-trip-picker-panel {
    box-sizing: border-box;
    width: 100%;
    max-height: none;
    overflow: visible;
    margin-top: 8px;
    border: 1px solid rgba(255,255,255,0.18);
    background: #0a0e2b;
}

.mv-bus-trip-picker-panel[hidden] {
    display: none !important;
}

.mv-bus-trip-picker-auto,
.mv-bus-trip-picker-row {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.11);
    border-radius: 0;
    margin: 0;
    padding: 10px 12px;
    background: transparent;
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
    text-align: left;
    cursor: pointer;
}

.mv-bus-trip-picker-auto {
    color: #ffce19;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
}

.mv-bus-trip-picker-day-heading {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 8px 12px;
    background: #151a3a;
    color: rgba(255,255,255,0.76);
    font: 600 12px/1.2 'Barlow', Arial, sans-serif;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.mv-bus-trip-picker-item {
    border-bottom: 1px solid rgba(255,255,255,0.11);
}

.mv-bus-trip-picker-row {
    position: relative;
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) 24px;
    gap: 10px;
    align-items: center;
    border-bottom: 0;
    font-size: 14px;
    line-height: 1.2;
}

.mv-bus-trip-picker-row-time {
    color: #ffce19;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.mv-bus-trip-picker-row-route {
    min-width: 0;
}

.mv-bus-trip-picker-row-destination {
    display: block;
    min-width: 0;
    color: #ffffff;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.mv-bus-trip-picker-row-preview {
    display: block;
    min-width: 0;
    margin-top: 3px;
    color: rgba(255,255,255,0.64);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 400;
    overflow-wrap: anywhere;
}

/* Aktivna/završena vožnja u glavnom popisu. */
.mv-bus-trip-picker-status {
    display: inline-block;
    width: fit-content;
    margin-top: 5px;
    padding: 3px 6px;
    border: 1px solid currentColor;
    color: #ffce19;
    font: 700 10px/1 'Barlow', Arial, sans-serif;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.mv-bus-trip-picker-status.is-finished {
    color: #a5a9c4;
}

.mv-bus-trip-picker-row.is-finished-trip {
    opacity: 0.78;
}

.mv-bus-trip-picker-row.is-finished-trip .mv-bus-trip-picker-row-time {
    color: #a5a9c4;
}

.mv-bus-trip-picker-row-chevron {
    position: relative;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: transparent;
    font-size: 0;
    line-height: 1;
    text-align: center;
    background: rgba(255,255,255,0.08);
}

.mv-bus-trip-picker-row-chevron::before {
    content: "";
    width: 14px;
    height: 14px;
    background: center / 14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M12 22 L32 42 L52 22' fill='none' stroke='%23ffffff' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

.mv-bus-trip-picker-row[aria-expanded="true"] .mv-bus-trip-picker-row-chevron::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M12 42 L32 22 L52 42' fill='none' stroke='%23ffffff' stroke-width='9' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

.mv-bus-trip-picker-row.is-selected {
    background: #ffce19;
}

.mv-bus-trip-picker-row.is-selected .mv-bus-trip-picker-row-time,
.mv-bus-trip-picker-row.is-selected .mv-bus-trip-picker-row-destination,
.mv-bus-trip-picker-row.is-selected .mv-bus-trip-picker-row-chevron {
    color: #000000;
}

.mv-bus-trip-picker-row.is-selected .mv-bus-trip-picker-row-chevron {
    background: #111111;
}

.mv-bus-trip-picker-row.is-selected .mv-bus-trip-picker-row-preview {
    color: rgba(0,0,0,0.66);
}

.mv-bus-trip-picker-details {
    box-sizing: border-box;
    padding: 2px 12px 12px;
    background: rgba(255,255,255,0.035);
}

.mv-bus-trip-picker-details[hidden] {
    display: none !important;
}

.mv-bus-trip-picker-route-title {
    margin: 7px 0 9px;
    color: rgba(255,255,255,0.72);
    font: 500 11px/1.2 'Barlow', Arial, sans-serif;
    text-transform: uppercase;
    letter-spacing: .025em;
}

.mv-bus-trip-picker-stop {
    position: relative;
    display: grid;
    grid-template-columns: 52px 14px minmax(0,1fr);
    gap: 6px;
    align-items: center;
    min-height: 30px;
    color: #ffffff;
    font-family: 'Barlow', Arial, sans-serif;
}

.mv-bus-trip-picker-stop-time {
    color: rgba(255,255,255,0.94);
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.mv-bus-trip-picker-stop-track {
    position: relative;
    align-self: stretch;
}

.mv-bus-trip-picker-stop-track::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.28);
}

.mv-bus-trip-picker-stop-dot {
    position: absolute;
    left: 3px;
    top: 50%;
    width: 7px;
    height: 7px;
    transform: translateY(-50%);
    background: #a5a9c4;
    border-radius: 50%;
}

.mv-bus-trip-picker-stop:first-of-type .mv-bus-trip-picker-stop-track::before {
    top: 50%;
}

.mv-bus-trip-picker-stop:last-of-type .mv-bus-trip-picker-stop-track::before {
    bottom: 50%;
}

.mv-bus-trip-picker-stop-name {
    min-width: 0;
    padding: 5px 0;
    color: #ffffff;
    font-size: 13px;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

/* Vizualna hijerarhija trase: prošlo = prigušeno, ukrcaj = žuto, slijedi = bijelo. */
.mv-bus-trip-picker-stop.is-before-map {
    opacity: 0.46;
}

.mv-bus-trip-picker-stop.is-map-station {
    min-height: 38px;
}

.mv-bus-trip-picker-stop.is-map-station .mv-bus-trip-picker-stop-time {
    color: #ffce19;
    font-size: 15px;
}

.mv-bus-trip-picker-stop.is-map-station .mv-bus-trip-picker-stop-dot {
    left: 1.5px;
    width: 10px;
    height: 10px;
    background: #ffce19;
    box-shadow: 0 0 0 4px rgba(255,206,25,0.16);
}

.mv-bus-trip-picker-stop.is-map-station .mv-bus-trip-picker-stop-name {
    color: #ffce19;
    font-weight: 700;
}

.mv-bus-trip-picker-stop.is-after-map .mv-bus-trip-picker-stop-time,
.mv-bus-trip-picker-stop.is-after-map .mv-bus-trip-picker-stop-name {
    color: #ffffff;
}

.mv-bus-trip-picker-stop-tag {
    display: block;
    margin-top: 2px;
    color: rgba(255,255,255,0.68);
    font-size: 9px;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.mv-bus-trip-picker-stop.is-terminal .mv-bus-trip-picker-stop-name {
    font-weight: 700;
}

.mv-bus-trip-picker-select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    margin: 10px 0 0;
    padding: 9px 12px;
    border: 1px solid #ffce19;
    border-radius: 0;
    background: transparent;
    color: #ffce19;
    font: 600 12px/1.2 'Barlow', Arial, sans-serif;
    text-transform: uppercase;
    cursor: pointer;
}

.mv-bus-trip-picker-select.is-current {
    display: none;
}

.mv-bus-trip-picker-empty {
    padding: 12px;
    color: rgba(255,255,255,0.74);
    font: 500 14px/1.3 'Barlow', Arial, sans-serif;
}

/* =========================================================
   DOTO – STATUS RUTE NAKON 20 SEKUNDI
   Položaj je procjena prema voznom redu, ne GPS.
   ========================================================= */
.mv-bus-route-progress {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 45px;
    box-sizing: border-box;
    margin-top: 8px;
    padding: 0 10px;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.13);
    border-bottom: 1px solid rgba(255,255,255,0.13);
    background: rgba(255,255,255,0.025);
    color: #ffce19;
}

.mv-bus-route-progress[hidden] {
    display: none !important;
}

.mv-bus-route-progress-text {
    display: block;
    flex: 0 0 auto;
    white-space: nowrap;
    font-family: 'Barlow', Arial, sans-serif;
    font-weight: 852;
    font-size: 26px;
    line-height: 1;
    font-variation-settings: 'wght' 852, 'ROND' 23;
}

.mv-bus-route-progress-text.is-moving {
    animation-name: mvBusProgressTravel;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-iteration-count: 1;
}

@keyframes mvBusProgressTravel {
    from { transform: translateX(0); }
    to { transform: translateX(var(--mv-progress-distance)); }
}

@media (max-width: 767px) {
    .mv-bus-trip-picker .mv-bus-drum-current {
        min-height: 60px;
        padding: 8px 62px 8px 10px;
    }

    .mv-bus-trip-picker .mv-bus-drum-current::before {
        width: 50px;
    }

    .mv-bus-trip-picker .mv-bus-drum-current::after {
        right: 15px;
        width: 20px;
        height: 20px;
        background-size: 20px 20px;
    }

    .mv-bus-trip-picker-day {
        font-size: 11px;
    }

    .mv-bus-trip-picker-trip {
        font-size: 19px;
    }

    .mv-bus-trip-picker-panel {
        max-height: none;
        overflow: visible;
    }

    .mv-bus-trip-picker-row {
        grid-template-columns: 54px minmax(0,1fr) 22px;
        gap: 8px;
        padding: 9px 9px;
    }

    .mv-bus-trip-picker-row-time {
        font-size: 16px;
    }

    .mv-bus-trip-picker-row-preview {
        font-size: 10px;
    }

    .mv-bus-trip-picker-details {
        padding-left: 9px;
        padding-right: 9px;
    }

    .mv-bus-trip-picker-stop {
        grid-template-columns: 48px 14px minmax(0,1fr);
        gap: 5px;
        min-height: 29px;
    }

   .mv-bus-trip-picker-stop-time {
        font-size: 13px;
    }

    .mv-bus-trip-picker-stop-name {
        font-size: 12px;
    }

    .mv-bus-route-progress {
        min-height: 41px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .mv-bus-route-progress-text {
        font-size: 23px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mv-bus-route-progress-text.is-moving {
        animation: none !important;
        transform: none !important;
    }
}
/* MV HYBRID PICKER + ROUTE PROGRESS CSS END */



/* =========================================================
   v21 – OTVORENI IZBORNIK / PUNA TRASA BEZ REZANJA

   Kada je žuti izbornik otvoren, unutarnji popis više nema vlastiti
   ograničeni scroll. Umjesto toga cijeli Leaflet popup dobiva jednu
   kontroliranu vertikalnu kliznu površinu do granice vidljivog dijela karte.
   Time puna trasa ostaje u jednom komadu i na PC-u i na mobitelu.
   ========================================================= */
.leaflet-popup.mv-bus-popup.mv-bus-picker-open .leaflet-popup-content-wrapper {
    max-height: var(--mv-bus-picker-popup-max-height, calc(100vh - 24px)) !important;
    max-height: var(--mv-bus-picker-popup-max-height, calc(100dvh - 24px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
}

.leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel {
    max-height: none !important;
    overflow: visible !important;
}

/* Na desktopu otvoreni izbornik je malo kompaktniji kako bi više trase
   stalo u jedan pogled, bez promjene normalnog prikaza semafora. */
@media (min-width: 768px) {
    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-map-popup {
        zoom: 0.78;
    }
}



/* =========================================================
   v30 – BOJE PREMA SMJERU VOŽNJE
   PREMA SISKU  = postojeća žuta #ffce19
   OD SISKA     = žuta #ffce19

   Boja se primjenjuje samo na elemente koji predstavljaju
   konkretnu vožnju/smjer. Naslov stajališta, vrijeme, Podijeli
   i ostali neutralni elementi ostaju nepromijenjeni.
   ========================================================= */

/* ---------- GLAVNA ODABRANA VOŽNJA: OD SISKA ---------- */
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-drum-current:not(.is-arrived) {
    background: #ffce19 !important;
    color: #000000 !important;
}

.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-next-label,
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-next-date,
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-trip-time,
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-countdown,
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-countdown::after {
    color: #ffce19 !important;
}

/* Mini pokazivač položaja autobusa prati istu boju odabrane vožnje. */
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-mini-route-fill {
    background: #ffce19 !important;
}

.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-mini-route-bus {
    background: #ffce19 !important;
    box-shadow: 0 0 0 4px rgba(255,206,25,0.10);
}

.mv-bus-semafor.mv-bus-direction-outbound
.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-name,
.mv-bus-semafor.mv-bus-direction-outbound
.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-time {
    color: #ffce19 !important;
}

.mv-bus-semafor.mv-bus-direction-outbound
.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-node {
    background: #ffce19 !important;
}

/*
 * Status "AUTOBUS JE STIGAO" ostaje crven u oba smjera.
 * Time se zadržava postojeća semantika dolaska.
 */
.mv-bus-semafor .mv-bus-drum-current.is-arrived {
    background: #d71920 !important;
    color: #ffffff !important;
}

/* ---------- POPIS SVIH VOŽNJI U ŽUTOM IZBORNIKU ---------- */

/* Prema Sisku: postojeća žuta. */
.mv-bus-trip-picker-row.mv-bus-trip-to-sisak .mv-bus-trip-picker-row-time {
    color: #ffce19;
}

/* Od Siska prema Desnom Dubrovčaku / Lijevoj Luci: žuta. */
.mv-bus-trip-picker-row.mv-bus-trip-from-sisak .mv-bus-trip-picker-row-time {
    color: #ffce19;
}

/* Odabrani red dobiva boju svog smjera. */
.mv-bus-trip-picker-row.mv-bus-trip-to-sisak.is-selected {
    background: #ffce19;
}

.mv-bus-trip-picker-row.mv-bus-trip-from-sisak.is-selected {
    background: #ffce19;
}

/* Tekst odabranog retka ostaje crn radi čitljivosti na obje svijetle boje. */
.mv-bus-trip-picker-row.mv-bus-trip-to-sisak.is-selected .mv-bus-trip-picker-row-time,
.mv-bus-trip-picker-row.mv-bus-trip-to-sisak.is-selected .mv-bus-trip-picker-row-destination,
.mv-bus-trip-picker-row.mv-bus-trip-to-sisak.is-selected .mv-bus-trip-picker-row-chevron,
.mv-bus-trip-picker-row.mv-bus-trip-from-sisak.is-selected .mv-bus-trip-picker-row-time,
.mv-bus-trip-picker-row.mv-bus-trip-from-sisak.is-selected .mv-bus-trip-picker-row-destination,
.mv-bus-trip-picker-row.mv-bus-trip-from-sisak.is-selected .mv-bus-trip-picker-row-chevron {
    color: #000000;
}

/* =========================================================
   v28 – PC PO UZORU NA ŠKOLSKI SEMAFOR
   - standardni Leaflet popup ostaje vezan uz marker
   - nema fiksnog overlay pozicioniranja
   - cijeli semafor na PC-u stalno koristi isti zoom: 0.72
   - otvaranje žutog izbornika NE mijenja zoom cijelog semafora
   - scrollbar postoji SAMO unutar žutog izbornika
   - ostatak semafora nema scrollbar
   - mobitel i tablet ostaju kao u v25
   ========================================================= */
@media (min-width: 1025px) {

    /*
     * Isti princip kao školski semafor:
     * cijeli popup je trajno kompaktan kako bi stao u visinu karte.
     */
    .leaflet-popup.mv-bus-popup .mv-map-popup,
    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-map-popup {
        zoom: 0.72 !important;
    }

    /*
     * Na PC-u cijeli Leaflet popup NEMA vlastiti scrollbar.
     * Time scrollbar ne stoji uz cijeli semafor.
     */
    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .leaflet-popup-content-wrapper {
        max-height: none !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        overscroll-behavior: auto !important;
        scrollbar-gutter: auto !important;
    }

    /*
     * Scrollbar je samo unutar žutog izbornika "SLJEDEĆA VOŽNJA".
     * Scrollaju se svi dani, sve vožnje i otvoreni detalji trase.
     */
    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel {
        /*
         * v29: prozor žutog izbornika na PC-u je produljen tako da
         * otvorena pojedinačna trasa može prikazati sva svoja stajališta
         * bez rezanja. Scrollbar i dalje služi za pregled ostalih vožnji/dana.
         */
        max-height: 520px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
        scrollbar-width: thin;
        scrollbar-color: rgba(255,255,255,0.48) rgba(255,255,255,0.06);
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel::-webkit-scrollbar {
        width: 9px;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel::-webkit-scrollbar-track {
        background: rgba(255,255,255,0.06);
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel::-webkit-scrollbar-thumb {
        background: rgba(255,255,255,0.48);
        border: 2px solid #0a0e2b;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-panel::-webkit-scrollbar-thumb:hover {
        background: rgba(255,255,255,0.68);
    }
}


/* Na malom ekranu dodatno štedimo samo nekoliko piksela po retku trase. */
@media (max-width: 767px) {
    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-details {
        padding-bottom: 8px;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-stop {
        min-height: 27px;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-picker-open .mv-bus-trip-picker-stop-name {
        padding-top: 4px;
        padding-bottom: 4px;
    }
}



/* =========================================================
   v23 – MINI POLOŽAJ AUTOBUSA / DRAG CIJELE TRASE
   - cijela ruta je u horizontalnom railu
   - prst/miš pomiču trasu lijevo/desno
   - nakon 3 s bez interakcije prikaz se fluidno vraća na autobus
   - vertikalni scroll popupa ostaje slobodan
   ========================================================= */
.mv-bus-route-progress.mv-bus-mini-route {
    display: block;
    min-height: 0;
    margin: -4px 0 22px;
    padding: 12px 0 9px;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.12);
    border-bottom: 1px solid rgba(255,255,255,0.12);
    background: transparent;
    color: #ffffff;
}

.mv-bus-route-progress.mv-bus-mini-route[hidden] {
    display: none !important;
}

.mv-bus-mini-route-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 6px;
    min-width: 0;
}

.mv-bus-mini-route-title {
    color: rgba(255,255,255,0.72);
    font: 500 12px/1.15 'Barlow', Arial, sans-serif;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.mv-bus-mini-route.is-browsing .mv-bus-mini-route-title {
    color: #ffffff;
}

.mv-bus-mini-route-meta {
    min-width: 0;
    color: rgba(255,255,255,0.58);
    font: 500 10px/1.15 'Barlow', Arial, sans-serif;
    letter-spacing: 0.01em;
    text-align: right;
    overflow-wrap: anywhere;
}

.mv-bus-mini-route-viewport {
    position: relative;
    width: 100%;
    height: 116px;
    overflow-x: auto;
    overflow-y: hidden;
    box-sizing: border-box;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    /*
     * v24: mobitelu prepuštamo izvorni horizontalni touch-scroll.
     * To uklanja trzanje nastalo ručnim mijenjanjem scrollLeft na svaki pointermove.
     * Browser sam određuje je li gesta horizontalna (trasa) ili vertikalna (popup).
     */
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
    outline: none;
}

.mv-bus-mini-route-viewport::-webkit-scrollbar {
    display: none;
}

.mv-bus-mini-route-viewport.is-dragging {
    cursor: grabbing;
}

.mv-bus-mini-route-viewport:focus-visible {
    outline: 2px solid rgba(255,255,255,0.92);
    outline-offset: 3px;
}

.mv-bus-mini-route-rail {
    position: relative;
    height: 116px;
    min-width: 100%;
}

.mv-bus-mini-route-line,
.mv-bus-mini-route-fill {
    position: absolute;
    top: 64px;
    height: 2px;
    border-radius: 999px;
    pointer-events: none;
}

.mv-bus-mini-route-line {
    background: rgba(165,169,196,0.48);
}

.mv-bus-mini-route-fill {
    background: #ffce19;
    transition: width 700ms linear;
}

.mv-bus-mini-route-stop {
    position: absolute;
    top: 0;
    width: 124px;
    height: 86px;
    transform: translateX(-50%);
    text-align: center;
    pointer-events: none;
}

.mv-bus-mini-route-stop-name {
    position: absolute;
    left: 50%;
    top: 0;
    width: 118px;
    transform: translateX(-50%);
    color: #a5a9c4;
    font: 500 13px/1.05 'Barlow', Arial, sans-serif;
    overflow-wrap: anywhere;
    transition: color 180ms ease, opacity 180ms ease, font-weight 180ms ease;
}

/* v31: vrijeme je u zasebnom retku između naziva i linije rute.
   Fiksna visina retka drži vremena poravnata i uz dvoredne nazive. */
.mv-bus-mini-route-stop-time {
    position: absolute;
    left: 0;
    top: 32px;
    width: 100%;
    color: #a5a9c4;
    font: 500 13px/1.1 'Barlow', Arial, sans-serif;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    white-space: nowrap;
    transition: color 180ms ease, opacity 180ms ease;
}

.mv-bus-mini-route-stop[data-state="passed"] .mv-bus-mini-route-stop-time {
    color: rgba(165,169,196,0.70);
}

.mv-bus-mini-route-stop-node {
    position: absolute;
    left: 50%;
    top: 59px;
    width: 11px;
    height: 11px;
    transform: translateX(-50%);
    box-sizing: border-box;
    border-radius: 50%;
    background: #a5a9c4;
    transition: background 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.mv-bus-mini-route-stop[data-state="passed"] .mv-bus-mini-route-stop-name {
    color: rgba(165,169,196,0.45);
}

.mv-bus-mini-route-stop[data-state="passed"] .mv-bus-mini-route-stop-node {
    background: rgba(165,169,196,0.44);
}

.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-name,
.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-time {
    color: #ffce19;
    font-weight: 700;
}

.mv-bus-mini-route-stop[data-state="current"] .mv-bus-mini-route-stop-node {
    background: #ffce19;
    transform: translateX(-50%) scale(1.18);
}

.mv-bus-mini-route-stop[data-state="next"] .mv-bus-mini-route-stop-name,
.mv-bus-mini-route-stop[data-state="next"] .mv-bus-mini-route-stop-time {
    color: #ffffff;
    font-weight: 700;
}

.mv-bus-mini-route-stop[data-state="next"] .mv-bus-mini-route-stop-node {
    background: #ffffff;
    transform: translateX(-50%) scale(1.08);
}

.mv-bus-mini-route-stop[data-state="future"] .mv-bus-mini-route-stop-name {
    color: #a5a9c4;
}

.mv-bus-mini-route-stop.is-final .mv-bus-mini-route-stop-name {
    font-weight: 700;
}

.mv-bus-mini-route-stop.is-final .mv-bus-mini-route-stop-node::after {
    content: "";
    position: absolute;
    inset: -5px;
    border: 1px solid rgba(255,255,255,0.78);
    border-radius: 50%;
}

.mv-bus-mini-route-stop.is-final::after {
    content: "ODREDIŠTE";
    position: absolute;
    left: 50%;
    top: 74px;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.54);
    font: 500 8px/1 'Barlow', Arial, sans-serif;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.mv-bus-mini-route-bus {
    position: absolute;
    top: 55px;
    z-index: 5;
    width: 19px;
    height: 19px;
    box-sizing: border-box;
    border: 2px solid #ffffff;
    border-radius: 50%;
    background: #ffce19;
    box-shadow: 0 0 0 4px rgba(255,206,25,0.10);
    transform: translateX(-50%);
    transition: left 700ms linear, background 180ms ease, border-color 180ms ease;
    pointer-events: none;
}

/* Sat pripada pomičnoj točki i pomiče se zajedno s njom. */
.mv-bus-mini-route-clock {
    position: absolute;
    top: 34px;
    left: 50%;
    transform: translateX(-50%);
    min-width: 82px;
    color: #ffce19;
    font: 500 14px/1.1 'Barlow', Arial, sans-serif;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    text-align: center;
    white-space: nowrap;
    pointer-events: none;
}

.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-mini-route-clock {
    color: #ffce19;
}

.mv-bus-mini-route.is-before .mv-bus-mini-route-clock {
    color: #a5a9c4;
}

.mv-bus-mini-route.is-finished .mv-bus-mini-route-clock {
    color: #ffffff;
}

.mv-bus-mini-route.is-before .mv-bus-mini-route-bus {
    background: #a5a9c4;
    border-color: #ffffff;
    box-shadow: 0 0 0 4px rgba(165,169,196,0.10);
}

.mv-bus-mini-route.is-finished .mv-bus-mini-route-bus {
    background: #ffffff;
    border-color: #ffce19;
    box-shadow: none;
}

.mv-bus-mini-route.is-before .mv-bus-mini-route-fill {
    background: rgba(165,169,196,0.52);
}

.mv-bus-mini-route.is-finished .mv-bus-mini-route-fill {
    background: rgba(255,206,25,0.82);
}

.mv-bus-mini-route-hint {
    min-height: 12px;
    margin-top: 1px;
    color: rgba(255,255,255,0.42);
    font: 500 9px/1.15 'Barlow', Arial, sans-serif;
    letter-spacing: 0.025em;
    text-align: center;
    transition: color 180ms ease;
}

.mv-bus-mini-route.is-browsing .mv-bus-mini-route-hint {
    color: rgba(255,255,255,0.78);
}

/* Stari DOTO tekst se u v23 ne koristi; ostavljen je u DOM-u radi kompatibilnosti. */
.mv-bus-route-progress.mv-bus-mini-route .mv-bus-route-progress-text {
    display: none !important;
}

@media (max-width: 767px) {
    .mv-bus-route-progress.mv-bus-mini-route {
        margin: -3px 0 18px;
        padding: 10px 0 8px;
    }

    .mv-bus-mini-route-head {
        gap: 8px;
        margin-bottom: 4px;
    }

    .mv-bus-mini-route-title {
        font-size: 10.5px;
    }

    .mv-bus-mini-route-meta {
        font-size: 9px;
    }

    .mv-bus-mini-route-viewport,
    .mv-bus-mini-route-rail {
        height: 98px;
    }

    .mv-bus-mini-route-line,
    .mv-bus-mini-route-fill {
        top: 57px;
    }

    .mv-bus-mini-route-stop {
        width: 104px;
        height: 78px;
    }

    .mv-bus-mini-route-stop-name {
        width: 100px;
        font-size: 11px;
        line-height: 1.04;
    }

    .mv-bus-mini-route-stop-time {
        top: 27px;
        font-size: 11px;
    }

    .mv-bus-mini-route-stop-node {
        top: 52px;
        width: 10px;
        height: 10px;
    }

    .mv-bus-mini-route-clock {
        top: 28px;
        font-size: 12px;
    }

    .mv-bus-mini-route-bus {
        top: 48px;
        width: 18px;
        height: 18px;
    }

    .mv-bus-mini-route-stop.is-final::after {
        top: 66px;
        font-size: 7px;
    }

    .mv-bus-mini-route-hint {
        font-size: 8px;
    }
}

/* Postojeći PC zoom 0.72 ostaje isti; brojke se prikazuju približno 11 px. */
@media (min-width: 1025px) {
    .mv-bus-mini-route-stop-time {
        font-size: 15.25px;
    }
    .mv-bus-mini-route-clock {
        font-size: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mv-bus-mini-route-fill,
    .mv-bus-mini-route-stop-name,
    .mv-bus-mini-route-stop-time,
    .mv-bus-mini-route-stop-node,
    .mv-bus-mini-route-bus,
    .mv-bus-mini-route-hint {
        transition: none !important;
    }
}


/* =========================================================
   v32 – VELIKI DOTO NATPIS U TRACI ODABRANE VOŽNJE
   Samo vrijeme i odredište; boje smjera i zona strelice ostaju iste.
   Duži nazivi mogu zauzeti dva retka bez rezanja teksta.
   ========================================================= */
.mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip {
    font-family: 'Doto', 'Barlow', Arial, sans-serif;
    font-weight: 852;
    font-variation-settings: 'wght' 852, 'ROND' 23;
    font-size: 44px;
    line-height: 1.08;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: balance;
}

.mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip-long {
    font-size: 36px;
}

@media (max-width: 767px) {
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip {
        font-size: 32px;
    }
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip-long {
        font-size: 28px;
    }
}

@media (max-width: 480px) {
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip {
        font-size: 28px;
    }
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip-long {
        font-size: 24px;
    }
}

@media (max-width: 360px) {
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip {
        font-size: 26px;
    }
    .mv-bus-trip-picker .mv-bus-drum-current .mv-bus-trip-picker-trip-long {
        font-size: 22px;
    }
}


/* =========================================================
   v33 – ČITLJIVO VRIJEME I JASNO POLJE ZA OTVARANJE IZBORNIKA
   ========================================================= */
.mv-bus-trip-picker .mv-bus-trip-picker-trip .mv-bus-trip-picker-time {
    font-family: 'Barlow', Arial, sans-serif;
    font-weight: 400;
    font-style: normal;
    font-variation-settings: normal;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    white-space: nowrap;
}

.mv-bus-trip-picker .mv-bus-trip-picker-trip .mv-bus-trip-picker-symbol {
    display: inline-block;
    margin: 0 0.16em;
    font-family: 'Doto', 'Barlow', Arial, sans-serif;
    font-weight: 852;
    font-variation-settings: 'wght' 852, 'ROND' 23;
    letter-spacing: -0.10em;
    white-space: nowrap;
}

.mv-bus-trip-picker .mv-bus-drum-current::before {
    background: #0021c1;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.20);
}


/* DARK v39 – glavna točka položaja autobusa uvijek ostaje žuta. */
.mv-bus-mini-route-bus,
.mv-bus-mini-route.is-before .mv-bus-mini-route-bus,
.mv-bus-mini-route.is-finished .mv-bus-mini-route-bus,
.mv-bus-semafor.mv-bus-direction-outbound .mv-bus-mini-route-bus {
    background: #ffce19 !important;
}


/* =========================================================
 * DARK v36 – FIKSNI SEMAFOR IZNAD KARTE
 *
 * Karta služi za izbor stajališta, a otvoreni semafor se
 * prikazuje kao zaseban viewport-overlay centriran prema
 * cijelom zaslonu. Sadržaj i veličina postojećeg semafora
 * ostaju nepromijenjeni; na uskim zaslonima samo se ograničava
 * maksimalna širina/visina kako sadržaj ne bi izašao iz ekrana.
 * ========================================================= */
body.mv-bus-screen-open {
    overflow: hidden !important;
}

.mv-bus-screen-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147482600;
    background: rgba(4, 8, 28, 0.22);
    pointer-events: auto;
}

.leaflet-popup.mv-bus-popup.mv-bus-screen-overlay {
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    transform: translate(-50%, -50%) !important;
    z-index: 2147482700 !important;
    pointer-events: auto !important;
}

.leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-tip-container {
    display: none !important;
}

.leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-content-wrapper {
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 28px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-content {
    max-width: calc(100vw - 32px) !important;
}

@media (max-width: 767px) {
    /*
     * v37 MOBILE FULLSCREEN
     * Na mobitelu semafor više nije kartični popup nego puni ekran.
     * PC overlay ostaje potpuno nepromijenjen.
     */
    .mv-bus-screen-backdrop {
        background: #0a0e2b;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-screen-overlay {
        inset: 0 !important;
        left: 0 !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        margin: 0 !important;
        transform: none !important;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-content-wrapper {
        width: 100vw !important;
        max-width: none !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: none !important;
        margin: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-content {
        width: 100% !important;
        max-width: none !important;
        min-height: 100% !important;
        margin: 0 !important;
    }

    .leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .mv-map-popup {
        width: 100% !important;
        min-height: 100vh;
        min-height: 100dvh;
        box-sizing: border-box;
        padding-top: calc(20px + env(safe-area-inset-top));
        padding-bottom: calc(22px + env(safe-area-inset-bottom));
    }

    /* X je uvijek u gornjem desnom kutu punog mobilnog zaslona. */
    .leaflet-popup.mv-bus-popup.mv-bus-screen-overlay .leaflet-popup-close-button {
        position: fixed !important;
        top: calc(10px + env(safe-area-inset-top)) !important;
        right: calc(10px + env(safe-area-inset-right)) !important;
        width: 44px !important;
        height: 44px !important;
        font-size: 31px !important;
        line-height: 40px !important;
        z-index: 2147482800 !important;
        opacity: 0.96 !important;
    }
}


/* =========================================================
   JP-MV 1.1.0 – BUSNO STAJALIŠTE · RUTA · PODIJELI + SiMBus izvor
   Po uzoru na Digital JLS – Javni prijevoz (Petrinja).
   ========================================================= */
.leaflet-popup.mv-bus-popup .mv-map-actions.mvjp-has-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 40px;
    grid-template-areas: "actions crest";
    column-gap: 14px;
    align-items: center;
    width: 100%;
}
.leaflet-popup.mv-bus-popup .mv-map-actions.mvjp-has-actions .mv-popup-grb {
    grid-area: crest;
    justify-self: center;
    margin: 0;
    max-width: 34px;
    height: auto;
}
.mvjp-actions {
    grid-area: actions;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}
.leaflet-popup.mv-bus-popup .mvjp-action,
.mvjp-action {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin: 0;
    padding: 10px 8px;
    border: 0;
    border-radius: 0;
    box-sizing: border-box;
    background: #a5a9c4;
    color: #000000 !important;
    font: 700 15px/1.1 'Barlow', Arial, sans-serif !important;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none !important;
    letter-spacing: .01em;
    cursor: pointer;
    box-shadow: none;
}
.leaflet-popup.mv-bus-popup .mvjp-action-stop { background: #ffce19; }
.leaflet-popup.mv-bus-popup .mvjp-action-route { background: #2271b1; color: #ffffff !important; }
.leaflet-popup.mv-bus-popup .mvjp-action-share { background: #a5a9c4; }
.leaflet-popup.mv-bus-popup .mvjp-action:hover,
.leaflet-popup.mv-bus-popup .mvjp-action:focus-visible { filter: brightness(1.08); outline: 2px solid #ffffff; outline-offset: -4px; }

.leaflet-popup.mv-bus-popup .mvjp-source {
    margin: 12px 0 0;
    padding: 9px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-family: 'Barlow', Arial, sans-serif;
}
.leaflet-popup.mv-bus-popup .mvjp-source-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 14px;
    margin: 0 0 4px;
}
.leaflet-popup.mv-bus-popup .mvjp-source-label {
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .03em;
}
.leaflet-popup.mv-bus-popup .mvjp-source-links { display: inline-flex; gap: 14px; }
.leaflet-popup.mv-bus-popup .mvjp-source-links a {
    color: #ffce19 !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.leaflet-popup.mv-bus-popup .mvjp-source-links a:hover { text-decoration: underline; }

@media (max-width: 767px) {
    .leaflet-popup.mv-bus-popup .mv-map-actions.mvjp-has-actions {
        grid-template-columns: minmax(0, 1fr) 34px;
        column-gap: 10px;
    }
    .mvjp-actions { grid-template-columns: 1fr; gap: 6px; }
    .leaflet-popup.mv-bus-popup .mvjp-action { min-height: 46px; font-size: 16px !important; }
    .leaflet-popup.mv-bus-popup .mvjp-source-line { display: block; }
    .leaflet-popup.mv-bus-popup .mvjp-source-links { margin-top: 2px; }
}

/* JP-MV 1.3.0: obavijesti prijevoznika iznad semafora */
.leaflet-popup.mv-bus-popup .mvjp-notices {
    display: grid;
    gap: 8px;
    margin: 0 0 12px;
    font-family: 'Barlow', Arial, sans-serif;
}
.leaflet-popup.mv-bus-popup .mvjp-notice {
    position: relative;
    padding: 10px 12px 9px 14px;
    background: #1d1f27;
    border: 1px solid rgba(255, 107, 53, .45);
    border-left: 4px solid #ff6b35;
    border-radius: 6px;
    color: #ffffff;
    text-align: left;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-manual { border-color: rgba(255, 206, 25, .45); border-left-color: #ffce19; }
.leaflet-popup.mv-bus-popup .mvjp-notice-label {
    color: #ff6b35;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.3;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-manual .mvjp-notice-label { color: #ffce19; }
.leaflet-popup.mv-bus-popup .mvjp-notice-title {
    margin: 3px 0 0;
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-body {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    white-space: pre-line;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.leaflet-popup.mv-bus-popup .mvjp-notice.is-open .mvjp-notice-body { display: block; -webkit-line-clamp: unset; overflow: visible; }
.leaflet-popup.mv-bus-popup .mvjp-notice-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 16px;
    margin: 6px 0 0;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-more {
    padding: 0;
    margin: 0;
    background: none !important;
    border: 0;
    box-shadow: none;
    color: #ffffff !important;
    font: 700 12px 'Barlow', Arial, sans-serif !important;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: underline;
    cursor: pointer;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-link,
.leaflet-popup.mv-bus-popup .mvjp-notice-rest {
    color: #ffce19 !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
    text-decoration: none;
    text-transform: uppercase;
}
.leaflet-popup.mv-bus-popup .mvjp-notice-link:hover,
.leaflet-popup.mv-bus-popup .mvjp-notice-rest:hover { text-decoration: underline; }
.leaflet-popup.mv-bus-popup .mvjp-notice-more:focus-visible,
.leaflet-popup.mv-bus-popup .mvjp-notice-link:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }
@media (max-width: 767px) {
    .leaflet-popup.mv-bus-popup .mvjp-notice-title { font-size: 16px; }
    .leaflet-popup.mv-bus-popup .mvjp-notice-body { font-size: 14px; }
    .leaflet-popup.mv-bus-popup .mvjp-notice-more,
    .leaflet-popup.mv-bus-popup .mvjp-notice-link { min-height: 32px; display: inline-flex; align-items: center; }
}

/* RUTA – trasa odabrane vožnje na karti (procjena prema voznom redu, nije GPS) */
html.mvjp-route-open, html.mvjp-route-open body { overflow: hidden !important; }
.mvjp-route-view {
    position: fixed;
    inset: 0;
    z-index: 2147483100;
    background: #dfe6ee;
    font-family: 'Barlow', Arial, sans-serif;
}
.mvjp-route-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.mvjp-route-head {
    position: absolute; z-index: 1000; top: 10px; left: 54px; right: 10px;
    display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
    padding: 12px 14px; background: #0a0e2b; color: #ffffff;
    border: 1px solid rgba(255, 255, 255, .20); box-shadow: 0 7px 24px rgba(0, 0, 0, .28);
}
.mvjp-route-head strong { display: block; color: #ffce19; font-size: 18px; line-height: 1.15; }
.mvjp-route-head span { display: block; margin-top: 4px; color: rgba(255, 255, 255, .72); font-size: 11px; line-height: 1.25; letter-spacing: .035em; }
.mvjp-route-close {
    flex: 0 0 42px; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 0;
    background: #2271b1; color: #ffffff; font: 400 28px/1 Arial, sans-serif; cursor: pointer;
}
.mvjp-route-legend {
    position: absolute; z-index: 1000; left: 16px; bottom: 18px;
    display: flex; align-items: center; gap: 8px; padding: 8px 10px;
    background: #0a0e2b; color: #ffffff; font: 600 11px/1.15 'Barlow', Arial, sans-serif;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .25); pointer-events: none;
}
.mvjp-route-legend-dot, .mvjp-route-vehicle {
    display: inline-block; width: 14px; height: 14px; border: 3px solid #0a0e2b; border-radius: 50%;
    background: #e10600; box-shadow: 0 0 0 2px #ffffff;
}
.mvjp-route-vehicle-wrap { background: transparent !important; border: 0 !important; }
.mvjp-route-vehicle {
    width: 34px; height: 34px; box-sizing: border-box; border: 5px solid #0a0e2b;
    box-shadow: 0 0 0 3px #ffffff, 0 3px 10px rgba(0, 0, 0, .45);
}
.mvjp-route-view .leaflet-tooltip.mvjp-route-stop-label {
    padding: 5px 7px; border: 1px solid rgba(0, 0, 0, .22); border-radius: 0; background: #ffffff; color: #111111;
    box-shadow: 0 2px 7px rgba(0, 0, 0, .16); font: 600 11px/1.15 Helvetica, Arial, sans-serif; text-align: center; white-space: nowrap;
}
.mvjp-route-view .leaflet-tooltip-top.mvjp-route-stop-label::before { border-top-color: #ffffff; }
.mvjp-route-view .leaflet-tooltip-bottom.mvjp-route-stop-label::before { border-bottom-color: #ffffff; }
.mvjp-route-view .leaflet-tooltip-left.mvjp-route-stop-label::before { border-left-color: #ffffff; }
.mvjp-route-view .leaflet-tooltip-right.mvjp-route-stop-label::before { border-right-color: #ffffff; }
/* JP-MV 1.4.0: crvena točka autobusa s blagim pulsom */
.mvjp-route-vehicle { animation: mvjp-vehicle-pulse 2s ease-out infinite; }
@keyframes mvjp-vehicle-pulse {
    0%   { box-shadow: 0 0 0 3px #ffffff, 0 0 0 3px rgba(225, 6, 0, .55), 0 3px 10px rgba(0, 0, 0, .45); }
    100% { box-shadow: 0 0 0 3px #ffffff, 0 0 0 16px rgba(225, 6, 0, 0), 0 3px 10px rgba(0, 0, 0, .45); }
}
@media (prefers-reduced-motion: reduce) { .mvjp-route-vehicle { animation: none; } }
.mvjp-route-view .leaflet-top.leaflet-left { z-index: 1100; }
@media (max-width: 767px) {
    .mvjp-route-head { top: 8px; left: 50px; right: 8px; gap: 8px; padding: 9px 10px; }
    .mvjp-route-head strong { font-size: 14px; }
    .mvjp-route-head span { font-size: 9px; }
    .mvjp-route-close { flex-basis: 36px; width: 36px; height: 36px; font-size: 25px; }
    .mvjp-route-legend { left: 8px; bottom: 10px; font-size: 9px; }
    .mvjp-route-view .leaflet-tooltip.mvjp-route-stop-label { font-size: 10px; }
}
