.communication-now{
    min-width:0;
}

.communication-now > h1{
    margin:0 0 18px;
    color:var(--navy);
    font-size:32px;
    font-weight:950;
    line-height:1.05;
    letter-spacing:-.6px;
}

.communication-line{
    overflow:hidden;
    border:1px solid var(--line);
    border-top:4px solid var(--orange);
    border-radius:var(--card-radius);
    background:#fff;
    box-shadow:var(--shadow);
}

.communication-line > header{
    display:flex;
    align-items:center;
    gap:14px;
    padding:15px 18px;
    background:var(--navy);
    color:#fff;
}

.communication-line > header strong{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    height:42px;
    border-radius:7px;
    background:#fff;
    color:var(--navy);
    font-size:25px;
    font-weight:950;
    line-height:1;
}

.communication-line > header span{
    font-size:15px;
    font-weight:800;
}

.communication-line > div{
    padding:18px;
    border-top:1px solid var(--line);
}

.communication-line > div h2{
    margin:0 0 13px;
    color:var(--navy);
    font-size:17px;
    font-weight:900;
}

.communication-line > div p{
    margin:8px 0;
    color:#465164;
    font-size:14px;
    line-height:1.4;
}

.communication-line ul{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:13px 0 0;
    padding:0;
    list-style:none;
}

.communication-line li{
    min-width:58px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:6px;
    background:#f7f8fa;
    color:var(--navy);
    font-size:14px;
    font-weight:900;
    text-align:center;
}

@media(max-width:620px){
    .communication-now > h1{
        font-size:26px;
    }

    .communication-line > header{
        align-items:flex-start;
        flex-direction:column;
        gap:9px;
        padding:14px;
    }

    .communication-line > header strong{
        min-width:58px;
        height:38px;
        font-size:22px;
    }

    .communication-line > header span{
        font-size:13px;
    }

    .communication-line > div{
        padding:14px;
    }
}

.communication-map-wrap{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:#eef1f4;
}

.communication-map{
    width:100%;
    height:570px;
    background:#e8ebef;
}

@media(max-width:620px){
    .communication-map{
        height:440px;
    }
}

.communication-bus-icon-wrap{
    background:transparent;
    border:0;
}

.communication-bus-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:28px;
    border:2px solid #fff;
    border-radius:6px;
    background:var(--navy);
    color:#fff;
    font-size:13px;
    font-weight:950;
    line-height:1;
    box-shadow:0 2px 8px rgba(0,0,0,.28);
}

.communication-line li.is-active-trip{
    position:relative;
    border-color:var(--orange);
    background:var(--orange);
    color:#111;
    box-shadow:0 2px 7px rgba(0,0,0,.18);
}

.communication-line li.is-active-trip::after{
    content:"W TRASIE";
    position:absolute;
    top:-8px;
    right:-6px;
    padding:2px 4px;
    border-radius:3px;
    background:var(--navy);
    color:#fff;
    font-size:6px;
    font-weight:900;
    line-height:1;
    letter-spacing:.3px;
    white-space:nowrap;
}


.communication-line li.is-next-trip{
    position:relative;
    border-color:var(--orange);
    background:#fff5ec;
    color:var(--navy);
    box-shadow:inset 0 0 0 1px var(--orange);
}

.communication-line li.is-next-trip::after{
    content:"NASTĘPNY";
    position:absolute;
    top:-8px;
    right:-6px;
    padding:2px 4px;
    border-radius:3px;
    background:var(--orange);
    color:#fff;
    font-size:6px;
    font-weight:900;
    line-height:1;
    letter-spacing:.3px;
    white-space:nowrap;
}


.communication-map-tools{
    padding:14px 18px;
    border-top:1px solid var(--line);
    background:#f7f8fa;
}

.communication-stop-search{
    display:grid;
    gap:7px;
}

.communication-stop-search > label{
    color:var(--navy);
    font-size:13px;
    font-weight:900;
}

.communication-stop-search-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
}

.communication-stop-search input{
    min-width:0;
    height:40px;
    padding:0 12px;
    border:1px solid #cbd2dc;
    border-radius:6px;
    background:#fff;
    color:var(--navy);
    font:inherit;
    font-size:14px;
    outline:none;
}

.communication-stop-search input:focus{
    border-color:var(--orange);
    box-shadow:0 0 0 2px rgba(245,130,32,.13);
}

.communication-stop-search button{
    height:40px;
    padding:0 18px;
    border:0;
    border-radius:6px;
    background:var(--navy);
    color:#fff;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    text-transform:uppercase;
}

.communication-stop-search button:hover,
.communication-stop-search button:focus-visible{
    background:var(--orange);
}

.communication-stop-search-status{
    min-height:14px;
    margin:0;
    color:#687486;
    font-size:10px;
}

.communication-data-sources{
    margin:0;
    padding:6px 12px;
    border-bottom:1px solid var(--line);
    background:#f7f8fa;
    color:#7b8595;
    font-size:9px;
    line-height:1.35;
    text-align:right;
}

.communication-data-sources a{
    color:inherit;
    text-decoration:underline;
}

@media(max-width:620px){
    .communication-map-tools{
        padding:12px 14px;
    }

    .communication-stop-search-row{
        grid-template-columns:1fr;
    }

    .communication-stop-search button{
        width:100%;
    }

    .communication-data-sources{
        text-align:left;
    }
}


.communication-line-switcher{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 14px;
}

.communication-line-switcher a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    height:38px;
    padding:0 15px;
    border:1px solid var(--line);
    border-radius:6px;
    background:#fff;
    color:var(--navy);
    font-size:15px;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 2px 7px rgba(18,27,45,.05);
}

.communication-line-switcher a:hover,
.communication-line-switcher a:focus-visible{
    border-color:var(--orange);
    color:var(--orange-dark);
}

.communication-line-switcher a.is-active{
    border-color:var(--orange);
    background:var(--navy);
    color:#fff;
    box-shadow:inset 0 4px 0 var(--orange);
}

@media(max-width:620px){
    .communication-line-switcher{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:6px;
    }

    .communication-line-switcher a{
        min-width:0;
        width:100%;
        padding:0 8px;
    }
}


.communication-mode-tabs{
    display:flex;
    gap:5px;
    margin:0 0 10px;
    padding:4px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#eef1f5;
}

.communication-mode-tabs button{
    flex:0 0 auto;
    padding:8px 15px;
    border:0;
    border-radius:5px;
    background:transparent;
    color:var(--navy);
    font-size:11px;
    font-weight:950;
    cursor:pointer;
    letter-spacing:.35px;
}

.communication-mode-tabs button.is-active{
    background:var(--navy);
    color:#fff;
}

.communication-line-switcher .communication-all-lines{
    min-width:105px;
}

.communication-all-header{
    min-width:84px !important;
    padding-inline:12px;
    font-size:18px !important;
}

.communication-favorite-panel{
    margin:0 0 14px;
    padding:16px 18px;
    border:1px solid var(--line);
    border-top:4px solid var(--orange);
    border-radius:var(--card-radius);
    background:#fff;
    box-shadow:var(--shadow);
}

.communication-favorite-panel h2{
    margin:0 0 5px;
    color:var(--navy);
    font-size:18px;
}

.communication-favorite-panel > p{
    margin:0 0 14px;
    color:#596577;
    font-size:12px;
}

.communication-favorite-form{
    display:grid;
    gap:7px;
}

.communication-favorite-form label{
    color:var(--navy);
    font-size:12px;
    font-weight:900;
}

.communication-favorite-search-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
}

.communication-favorite-search-row input{
    height:40px;
    min-width:0;
    padding:0 12px;
    border:1px solid #cbd2dc;
    border-radius:6px;
    background:#fff;
    color:var(--navy);
    font:inherit;
}

.communication-favorite-search-row button,
.communication-favorite-actions button{
    min-height:40px;
    padding:0 16px;
    border:0;
    border-radius:6px;
    background:var(--navy);
    color:#fff;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
    text-transform:uppercase;
}

.communication-favorite-actions button.is-secondary{
    border:1px solid #cbd2dc;
    background:#fff;
    color:var(--navy);
}

.communication-favorite-status{
    min-height:14px;
    margin:0;
    color:#687486;
    font-size:10px;
}

.communication-favorite-saved{
    display:grid;
    gap:7px;
    margin-top:14px;
    padding:13px 14px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#f7f8fa;
}

.communication-favorite-saved > strong{
    color:var(--navy);
    font-size:16px;
}

.communication-favorite-saved > span{
    color:#687486;
    font-size:11px;
}

.communication-favorite-lines{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.communication-favorite-lines a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:45px;
    height:28px;
    padding:0 9px;
    border-radius:5px;
    background:var(--navy);
    color:#fff;
    font-size:11px;
    font-weight:900;
    text-decoration:none;
}

.communication-favorite-actions{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.communication-all-schedule-note{
    margin:0;
    padding:12px 14px;
    border-radius:6px;
    background:#f7f8fa;
    color:#596577;
    font-size:12px;
}

@media(max-width:620px){
    .communication-mode-tabs{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .communication-mode-tabs button{
        width:100%;
    }

    .communication-line-switcher{
        grid-template-columns:
            repeat(2,1fr);
    }

    .communication-line-switcher .communication-all-lines{
        min-width:0;
    }

    .communication-favorite-search-row{
        grid-template-columns:1fr;
    }

    .communication-favorite-search-row button{
        width:100%;
    }
}


.communication-route-legend{
    display:flex;
    align-items:center;
    gap:18px;
    padding:9px 18px;
    border-top:1px solid var(--line);
    background:#fff;
}

.communication-route-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--navy);
    font-size:11px;
    font-weight:900;
}

.communication-route-legend i{
    display:block;
    width:28px;
    border-radius:999px;
}

.communication-route-legend .line-703,
.communication-route-legend .line-711,
.communication-route-legend .line-733{
    height:4px;
}

.communication-route-legend .line-703{
    background:#2f80ed;
}

.communication-route-legend .line-711{
    background:#f58220;
}

.communication-route-legend .line-733{
    background:#2e9d57;
}

@media(max-width:620px){
    .communication-route-legend{
        gap:12px;
        padding:8px 14px;
    }
}


/* WSPÓLNY AUTOCOMPLETE — KOMUNIKACJA LIVE */
.communication-autocomplete-field{
    position:relative;
    min-width:0;
}

.communication-autocomplete-field > input{
    width:100%;
    box-sizing:border-box;
}

.communication-autocomplete-menu{
    display:none;
    position:absolute;
    z-index:5000;
    top:calc(100% + 3px);
    right:0;
    left:0;
    max-height:260px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
    border:1px solid #cbd2dc;
    border-radius:5px;
    background:#fff;
    box-shadow:0 7px 20px rgba(18,27,45,.18);
}

.communication-autocomplete-menu.is-open{
    display:block;
}

.communication-autocomplete-option{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:5px;
    min-height:22px;
    padding:2px 7px;
    border-bottom:1px solid #edf0f4;
    background:#fff;
    color:var(--navy);
    cursor:pointer;
}

.communication-autocomplete-option:last-child{
    border-bottom:0;
}

.communication-autocomplete-option:hover,
.communication-autocomplete-option.is-active{
    background:#f0f3f7;
}

.communication-autocomplete-option strong{
    min-width:0;
    overflow:hidden;
    font-size:11px;
    font-weight:850;
    line-height:1.05;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.communication-autocomplete-option small{
    color:#7a8595;
    font-size:8.5px;
    line-height:1;
    white-space:nowrap;
}

.communication-autocomplete-empty{
    padding:7px 9px;
    color:#7a8595;
    font-size:10.5px;
}

@media(max-width:620px){
    .communication-autocomplete-menu{
        max-height:220px;
    }

    .communication-autocomplete-option{
        grid-template-columns:1fr;
        gap:1px;
        padding:3px 7px;
    }

    .communication-autocomplete-option small{
        white-space:normal;
    }
}


/* Autocomplete musi móc wyjść ponad pole wyszukiwarki. */
.communication-map-tools,
.communication-stop-search,
.communication-stop-search-row,
.communication-favorite-panel,
.communication-favorite-form,
.communication-favorite-search-row,
.communication-autocomplete-field{
    overflow:visible;
}


/* TABLICA ODJAZDÓW — MÓJ PRZYSTANEK */
.communication-stop-board{
    margin-top:14px;
    border:1px solid #dce2ea;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}

.communication-stop-board-next{
    padding:12px 14px;
    background:#f5f7fa;
    border-bottom:1px solid #e4e8ee;
}

.communication-stop-board-next > span{
    display:block;
    margin-bottom:3px;
    color:#788394;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
}

.communication-stop-board-next > strong{
    display:block;
    color:var(--navy);
    font-size:17px;
    line-height:1.2;
}

.communication-stop-board-next > small{
    display:block;
    margin-top:4px;
    color:#687486;
    font-size:10px;
    font-weight:700;
}

.communication-stop-board-modes{
    display:flex;
    gap:5px;
    padding:9px 10px;
    border-bottom:1px solid #edf0f4;
}

.communication-stop-board-modes button{
    flex:1 1 auto;
    min-height:30px;
    padding:5px 8px;
    border:1px solid #cfd6df;
    border-radius:5px;
    background:#fff;
    color:var(--navy);
    font-size:9px;
    font-weight:900;
    cursor:pointer;
}

.communication-stop-board-modes button.is-active{
    border-color:var(--navy);
    background:var(--navy);
    color:#fff;
}

.communication-stop-board-range{
    display:flex;
    gap:10px;
    padding:9px 10px;
    border-bottom:1px solid #edf0f4;
    background:#fafbfc;
}

.communication-stop-board-range label{
    display:flex;
    align-items:center;
    gap:5px;
    color:#657184;
    font-size:9px;
    font-weight:900;
}

.communication-stop-board-range input{
    min-height:29px;
    padding:3px 6px;
    border:1px solid #ccd4de;
    border-radius:4px;
    background:#fff;
    font-size:11px;
}

.communication-stop-board-status{
    margin:0;
    padding:7px 11px 4px;
    color:#788394;
    font-size:9px;
    font-weight:800;
}

.communication-stop-board-list{
    padding:2px 10px 8px;
}

.communication-stop-board-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:37px;
    border-bottom:1px solid #edf0f4;
}

.communication-stop-board-row:last-child{
    border-bottom:0;
}

.communication-stop-board-row-left{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
}

.communication-stop-board-line{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    height:22px;
    padding:0 5px;
    border-radius:4px;
    background:#26384f;
    color:#fff;
    font-size:11px;
    font-weight:950;
}

.communication-stop-board-line.line-703{
    background:#2f80ed;
}

.communication-stop-board-line.line-711{
    background:#f58220;
}

.communication-stop-board-line.line-733{
    background:#2e9d57;
}

.communication-stop-board-destination{
    overflow:hidden;
    color:#303a48;
    font-size:10.5px;
    font-weight:750;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.communication-stop-board-row-right{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    flex:0 0 auto;
}

.communication-stop-board-time{
    color:var(--navy);
    font-size:14px;
    line-height:1;
}

.communication-stop-board-relative{
    margin-top:3px;
    color:#777f8c;
    font-size:8.5px;
    font-weight:800;
}

.communication-stop-board-empty{
    padding:13px 2px;
    color:#778292;
    font-size:10px;
    text-align:center;
}

@media(max-width:620px){
    .communication-stop-board-modes{
        flex-wrap:wrap;
    }

    .communication-stop-board-modes button{
        min-width:90px;
    }

    .communication-stop-board-next > strong{
        font-size:15px;
    }

    .communication-stop-board-destination{
        max-width:160px;
    }
}

/* ==========================================================
   CZYTELNA TABLICA ODJAZDÓW
   ========================================================== */

/* OD / DO tylko po kliknięciu WYBIERZ GODZINY */
.communication-stop-board-range[hidden]{
    display:none !important;
}

/* Najbliższy odjazd */
.communication-stop-board-next{
    padding:15px 16px;
}

.communication-stop-board-next > span{
    margin-bottom:5px;
    font-size:11px;
    line-height:1.2;
}

.communication-stop-board-next > strong{
    font-size:21px;
    line-height:1.25;
}

.communication-stop-board-next > small{
    margin-top:6px;
    font-size:12px;
    line-height:1.3;
}

/* TERAZ / ZA GODZINĘ / WYBIERZ GODZINY */
.communication-stop-board-modes{
    gap:7px;
    padding:10px 12px;
}

.communication-stop-board-modes button{
    min-height:38px;
    padding:7px 10px;
    font-size:11px;
    line-height:1.15;
}

/* OD / DO */
.communication-stop-board-range{
    gap:16px;
    padding:11px 12px;
}

.communication-stop-board-range label{
    gap:7px;
    font-size:11px;
}

.communication-stop-board-range input{
    min-height:34px;
    padding:5px 8px;
    font-size:13px;
}

/* Opis zakresu */
.communication-stop-board-status{
    padding:9px 12px 6px;
    font-size:11px;
    line-height:1.3;
}

/* Lista odjazdów */
.communication-stop-board-list{
    padding:3px 12px 10px;
}

.communication-stop-board-row{
    min-height:48px;
    gap:12px;
}

.communication-stop-board-row-left{
    gap:10px;
}

/* Numer linii */
.communication-stop-board-line{
    min-width:43px;
    height:28px;
    padding:0 7px;
    font-size:13px;
}

/* Kierunek */
.communication-stop-board-destination{
    font-size:13px;
    line-height:1.3;
}

/* Godzina */
.communication-stop-board-time{
    font-size:18px;
    line-height:1.05;
}

/* "za 17 min" */
.communication-stop-board-relative{
    margin-top:4px;
    font-size:11px;
    line-height:1.15;
}

/* Brak kursów */
.communication-stop-board-empty{
    padding:16px 4px;
    font-size:12px;
}

/* Przyciski pod tablicą */
.communication-favorite-actions button{
    min-height:38px;
    padding:8px 13px;
    font-size:11px;
}

@media(max-width:620px){
    .communication-stop-board-next > strong{
        font-size:19px;
    }

    .communication-stop-board-modes button{
        font-size:10.5px;
    }

    .communication-stop-board-destination{
        max-width:210px;
        font-size:12px;
    }

    .communication-stop-board-time{
        font-size:17px;
    }

    .communication-stop-board-relative{
        font-size:10px;
    }
}


/* ==========================================================
   KOMUNIKACJA LIVE — UKŁAD DOCELOWY 09/2026
   ========================================================== */

/* --- cienki pasek NA ŻYWO --- */

.communication-live-strip{
    display:flex;
    align-items:center;
    gap:5px;
    min-width:0;
    padding:1px 10px;
    border-bottom:1px solid var(--line);
    background:#fff;
    color:var(--navy);
    font-size:13px;
    line-height:16px;
    white-space:nowrap;
    overflow-x:auto;
}

.communication-live-strip-title{
    flex:0 0 auto;
    font-size:13px;
    font-weight:950;
    line-height:16px;
}

#communication-live-list{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    margin:0;
    padding:0;
}

#communication-live-list p{
    flex:0 0 auto;
    margin:0;
    padding:0;
    font-size:13px;
    line-height:16px;
}


/* --- zwarty WG ROZKŁADU --- */

.communication-schedule-block{
    padding:6px 10px 7px;
}

.communication-schedule-block > h2{
    margin:0 0 4px;
    font-size:15px;
    line-height:18px;
}

.communication-schedule-direction{
    margin:0 0 5px;
}

.communication-schedule-direction:last-child{
    margin-bottom:0;
}

.communication-schedule-direction > p{
    margin:0 0 3px;
    font-size:12px;
    line-height:15px;
}

.communication-schedule-direction ul{
    display:flex;
    flex-wrap:wrap;
    gap:3px;
    margin:0;
    padding:0;
    list-style:none;
}

.communication-schedule-direction li{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:41px;
    min-height:22px;
    margin:0;
    padding:1px 5px;
    border-radius:4px;
    font-size:11.5px;
    line-height:18px;
    font-weight:850;
}

.communication-all-schedule-note{
    margin:0;
    padding:5px 8px;
    font-size:12px;
    line-height:16px;
}


/* --- MÓJ PRZYSTANEK: mniej wysokości, większy tekst --- */

.communication-favorite-panel{
    margin:10px 0 0;
    padding:10px 12px;
}

.communication-favorite-panel h2{
    margin:0 0 2px;
    font-size:20px;
    line-height:23px;
}

.communication-favorite-panel > p{
    margin:0 0 6px;
    font-size:13px;
    line-height:16px;
}

.communication-favorite-form{
    gap:3px;
}

.communication-favorite-form label{
    font-size:13px;
    line-height:16px;
}

.communication-favorite-search-row{
    gap:5px;
}

.communication-favorite-search-row input{
    height:34px;
    padding:0 9px;
    font-size:15px;
}

.communication-favorite-search-row button,
.communication-favorite-actions button{
    height:34px;
    min-height:34px;
    padding:0 12px;
    font-size:12px;
}

.communication-favorite-status{
    min-height:0;
    margin:0;
    font-size:12px;
    line-height:15px;
}

.communication-favorite-saved{
    gap:3px;
    margin-top:6px;
    padding:7px 9px;
}

.communication-favorite-saved > strong{
    font-size:18px;
    line-height:21px;
}

.communication-favorite-saved > span{
    font-size:13px;
    line-height:16px;
}

.communication-favorite-lines{
    gap:4px;
}

.communication-favorite-lines a{
    min-width:40px;
    height:24px;
    padding:0 7px;
    font-size:12px;
}


/* --- tablica najbliższych odjazdów --- */

.communication-stop-board{
    margin-top:5px;
}

.communication-stop-board-next{
    padding:6px 9px;
}

.communication-stop-board-next > span{
    margin-bottom:1px;
    font-size:11px;
    line-height:13px;
}

.communication-stop-board-next > strong{
    font-size:20px;
    line-height:22px;
}

.communication-stop-board-next > small{
    margin-top:1px;
    font-size:13px;
    line-height:15px;
}

.communication-stop-board-modes{
    gap:4px;
    padding:5px 7px;
}

.communication-stop-board-modes button{
    min-height:30px;
    height:30px;
    padding:0 7px;
    font-size:11.5px;
}

.communication-stop-board-range[hidden]{
    display:none !important;
}

.communication-stop-board-range{
    gap:8px;
    padding:5px 7px;
}

.communication-stop-board-range label{
    font-size:12px;
}

.communication-stop-board-range input{
    height:29px;
    min-height:29px;
    padding:1px 5px;
    font-size:13px;
}

.communication-stop-board-status{
    margin:0;
    padding:4px 8px 2px;
    font-size:12px;
    line-height:15px;
}

.communication-stop-board-list{
    padding:0 8px 4px;
}

.communication-stop-board-row{
    min-height:34px;
    gap:8px;
}

.communication-stop-board-row-left{
    gap:6px;
}

.communication-stop-board-line{
    min-width:40px;
    height:23px;
    padding:0 5px;
    font-size:13px;
}

.communication-stop-board-destination{
    font-size:14px;
    line-height:16px;
}

.communication-stop-board-time{
    font-size:17px;
    line-height:18px;
}

.communication-stop-board-relative{
    margin-top:0;
    font-size:11px;
    line-height:12px;
}

.communication-favorite-actions{
    gap:5px;
    margin-top:2px;
}

@media(max-width:620px){
    .communication-live-strip,
    .communication-live-strip-title,
    #communication-live-list p{
        font-size:12px;
        line-height:15px;
    }

    .communication-schedule-block{
        padding:5px 7px 6px;
    }

    .communication-schedule-direction li{
        min-width:39px;
        min-height:21px;
        font-size:11px;
    }

    .communication-favorite-panel{
        padding:8px;
    }

    .communication-favorite-search-row{
        grid-template-columns:minmax(0,1fr) auto;
    }

    .communication-favorite-search-row button{
        width:auto;
    }

    .communication-stop-board-destination{
        max-width:190px;
        font-size:13px;
    }
}


/* ==========================================================
   MÓJ PRZYSTANEK — CZYTELNOŚĆ V3
   ========================================================== */

.communication-favorite-panel h2{
    font-size:22px;
    line-height:25px;
}

.communication-favorite-panel > p{
    font-size:15px;
    line-height:18px;
}

.communication-favorite-form label{
    font-size:15px;
    line-height:18px;
}

.communication-favorite-search-row input{
    font-size:16px;
}

.communication-favorite-search-row button,
.communication-favorite-actions button{
    font-size:13px;
}

.communication-favorite-status{
    font-size:13px;
    line-height:16px;
}

.communication-favorite-saved > strong{
    font-size:20px;
    line-height:23px;
}

.communication-favorite-saved > span{
    font-size:14px;
    line-height:17px;
}

.communication-favorite-lines a{
    font-size:13px;
}

/* Najbliższy odjazd */
.communication-stop-board-next > span{
    font-size:12px;
    line-height:14px;
}

.communication-stop-board-next > strong{
    font-size:22px;
    line-height:24px;
}

.communication-stop-board-next > small{
    font-size:14px;
    line-height:17px;
}

/* TERAZ / ZA GODZINĘ / WYBIERZ GODZINY */
.communication-stop-board-modes button{
    font-size:13px;
}

/* OD / DO */
.communication-stop-board-range label{
    font-size:13px;
}

.communication-stop-board-range input{
    font-size:14px;
}

/* "Najbliższe odjazdy od teraz" */
.communication-stop-board-status{
    font-size:13px;
    line-height:16px;
}

/* Poszczególne kursy */
.communication-stop-board-line{
    font-size:14px;
}

.communication-stop-board-destination{
    font-size:15.5px;
    line-height:18px;
    font-weight:800;
}

.communication-stop-board-time{
    font-size:19px;
    line-height:20px;
}

.communication-stop-board-relative{
    font-size:12.5px;
    line-height:14px;
}

/* Zachowujemy zwarte wiersze */
.communication-stop-board-row{
    min-height:37px;
}

@media(max-width:620px){
    .communication-favorite-panel h2{
        font-size:20px;
    }

    .communication-favorite-panel > p,
    .communication-favorite-form label{
        font-size:14px;
    }

    .communication-stop-board-next > strong{
        font-size:20px;
    }

    .communication-stop-board-destination{
        font-size:14px;
    }

    .communication-stop-board-time{
        font-size:18px;
    }

    .communication-stop-board-relative{
        font-size:12px;
    }
}


/* MÓJ PRZYSTANEK — CIEMNA BELKA FINAL */

.communication-favorite-header{
    margin:-10px -12px 8px;
    padding:8px 12px 7px;
    background:var(--navy);
    border-radius:7px 7px 0 0;
}

.communication-favorite-header h2{
    margin:0 0 1px;
    color:#fff;
    font-size:21px;
    line-height:24px;
}

.communication-favorite-header p{
    margin:0;
    color:#e3e8f0;
    font-size:14px;
    line-height:17px;
}

/* Większe godziny rozpoczynających się kursów */
.communication-schedule-direction li{
    min-width:49px;
    min-height:27px;
    padding:2px 7px;
    font-size:15px;
    line-height:21px;
    font-weight:900;
}

/* Zachowujemy ten sam rozmiar także dla oznaczonych kursów */
.communication-schedule-direction li.is-current,
.communication-schedule-direction li.is-next,
.communication-schedule-direction li.is-active-trip,
.communication-schedule-direction li.is-next-trip{
    font-size:15px;
    line-height:21px;
}

@media(max-width:620px){
    .communication-favorite-header{
        margin:-8px -8px 7px;
        padding:7px 9px 6px;
    }

    .communication-favorite-header h2{
        font-size:19px;
        line-height:22px;
    }

    .communication-favorite-header p{
        font-size:13px;
        line-height:16px;
    }

    .communication-schedule-direction li{
        min-width:46px;
        min-height:26px;
        padding:2px 6px;
        font-size:14px;
    }
}


/* LINIE GMINNE 1–6 */

.communication-municipal-switcher{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
    margin:-7px 0 12px;
}

.communication-municipal-label{
    margin-right:3px;
    color:#667183;
    font-size:11px;
    font-weight:950;
    letter-spacing:.4px;
}

.communication-municipal-switcher a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:29px;
    border:1px solid var(--line);
    border-radius:5px;
    background:#fff;
    color:var(--navy);
    font-size:13px;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 1px 4px rgba(18,27,45,.04);
}

.communication-municipal-switcher a:hover,
.communication-municipal-switcher a:focus-visible{
    border-color:var(--orange);
    color:var(--orange-dark);
}

.communication-municipal-switcher a.is-active{
    border-color:var(--orange);
    background:var(--navy);
    color:#fff;
    box-shadow:inset 0 3px 0 var(--orange);
}

@media(max-width:620px){
    .communication-municipal-switcher{
        gap:4px;
        margin-top:-6px;
    }

    .communication-municipal-label{
        width:100%;
        margin:0 0 1px;
    }

    .communication-municipal-switcher a{
        flex:1 1 0;
        width:auto;
        max-width:52px;
    }
}


/* MZK + GMINNE — wspólny przełącznik */

.communication-line-groups{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 12px;
}

.communication-line-group{
    display:flex;
    align-items:center;
    gap:6px;
}

.communication-line-group-municipal{
    margin-left:4px;
}

.communication-transport-label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:29px;
    padding:0 9px;
    border-radius:4px;
    background:var(--orange);
    color:#fff;
    font-size:11px;
    line-height:1;
    font-weight:950;
    letter-spacing:.25px;
    white-space:nowrap;
}

.communication-line-groups .communication-line-switcher,
.communication-line-groups .communication-municipal-switcher{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin:0;
}

.communication-line-groups .communication-municipal-label{
    display:none;
}

.communication-line-groups .communication-municipal-switcher a{
    width:34px;
    height:29px;
}

@media(max-width:720px){
    .communication-line-groups{
        align-items:flex-start;
        gap:7px 10px;
    }

    .communication-line-group{
        width:100%;
    }

    .communication-line-group-municipal{
        margin-left:0;
    }

    .communication-line-groups .communication-municipal-switcher{
        flex:1;
    }
}

/* GPA — linie regionalne */

.communication-line-group-gpa{
    margin-left:4px;
}

.communication-gpa-switcher{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin:0;
}

.communication-gpa-switcher a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    height:29px;
    padding:0 8px;
    border:1px solid var(--line);
    border-radius:5px;
    background:#fff;
    color:var(--navy);
    font-size:13px;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 1px 4px rgba(18,27,45,.04);
}

.communication-gpa-switcher a:hover,
.communication-gpa-switcher a:focus-visible{
    border-color:var(--orange);
    color:var(--orange-dark);
}

.communication-gpa-switcher a.is-active{
    border-color:var(--orange);
    background:var(--navy);
    color:#fff;
    box-shadow:inset 0 3px 0 var(--orange);
}

.communication-gpa-schedule{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px 12px;
    padding:7px 10px;
}

.communication-gpa-schedule span{
    font-size:12px;
}

.communication-gpa-schedule-link{
    font-size:13px;
    font-weight:900;
    color:var(--orange-dark);
}

@media(max-width:720px){
    .communication-line-group-gpa{
        width:100%;
        margin-left:0;
    }

    .communication-gpa-switcher{
        flex:1;
    }

    .communication-gpa-switcher a{
        flex:1 1 0;
        max-width:52px;
    }
}


/* KOMUNIKACJA — STAŁE KOLORY LINII V1 */

/*
 * Każda linia ma jeden kolor we wszystkich
 * elementach modułu.
 */

/* ===== MÓJ PRZYSTANEK ===== */

.communication-stop-board-line.line-1{
    background:#6d28d9;
}

.communication-stop-board-line.line-2{
    background:#be123c;
}

.communication-stop-board-line.line-3{
    background:#0f766e;
}

.communication-stop-board-line.line-4{
    background:#b45309;
}

.communication-stop-board-line.line-5{
    background:#0369a1;
}

.communication-stop-board-line.line-6{
    background:#4d7c0f;
}

.communication-stop-board-line.line-17{
    background:#9333ea;
}

.communication-stop-board-line.line-29{
    background:#e11d48;
}

.communication-stop-board-line.line-60{
    background:#0891b2;
}

.communication-stop-board-line.line-63{
    background:#475569;
}

.communication-stop-board-line.line-65{
    background:#ea580c;
}

/* Istniejące kolory MZK */
.communication-stop-board-line.line-703{
    background:#2f80ed;
}

.communication-stop-board-line.line-711{
    background:#f58220;
}

.communication-stop-board-line.line-733{
    background:#2e9d57;
}


/* ===== PRZYCISKI WYBORU LINII ===== */

.communication-line-switcher [data-line],
.communication-line-switcher a[href*="line="]{
    --communication-line-color:#26384f;
}

/* 1 */
.communication-line-switcher [data-line="1"],
.communication-line-switcher a[href$="line=1"]{
    --communication-line-color:#6d28d9;
}

/* 2 */
.communication-line-switcher [data-line="2"],
.communication-line-switcher a[href$="line=2"]{
    --communication-line-color:#be123c;
}

/* 3 */
.communication-line-switcher [data-line="3"],
.communication-line-switcher a[href$="line=3"]{
    --communication-line-color:#0f766e;
}

/* 4 */
.communication-line-switcher [data-line="4"],
.communication-line-switcher a[href$="line=4"]{
    --communication-line-color:#b45309;
}

/* 5 */
.communication-line-switcher [data-line="5"],
.communication-line-switcher a[href$="line=5"]{
    --communication-line-color:#0369a1;
}

/* 6 */
.communication-line-switcher [data-line="6"],
.communication-line-switcher a[href$="line=6"]{
    --communication-line-color:#4d7c0f;
}

/* 17 */
.communication-line-switcher [data-line="17"],
.communication-line-switcher a[href$="line=17"]{
    --communication-line-color:#9333ea;
}

/* 29 */
.communication-line-switcher [data-line="29"],
.communication-line-switcher a[href$="line=29"]{
    --communication-line-color:#e11d48;
}

/* 60 */
.communication-line-switcher [data-line="60"],
.communication-line-switcher a[href$="line=60"]{
    --communication-line-color:#0891b2;
}

/* 63 */
.communication-line-switcher [data-line="63"],
.communication-line-switcher a[href$="line=63"]{
    --communication-line-color:#475569;
}

/* 65 */
.communication-line-switcher [data-line="65"],
.communication-line-switcher a[href$="line=65"]{
    --communication-line-color:#ea580c;
}

/* 703 */
.communication-line-switcher [data-line="703"],
.communication-line-switcher a[href$="line=703"]{
    --communication-line-color:#2f80ed;
}

/* 711 */
.communication-line-switcher [data-line="711"],
.communication-line-switcher a[href$="line=711"]{
    --communication-line-color:#f58220;
}

/* 733 */
.communication-line-switcher [data-line="733"],
.communication-line-switcher a[href$="line=733"]{
    --communication-line-color:#2e9d57;
}


/*
 * Nie zmieniamy kształtu istniejących przycisków.
 * Nadajemy tylko kolor danej linii.
 */
.communication-line-switcher [data-line]:not(.is-active),
.communication-line-switcher a[href*="line="]:not(.is-active){
    border-color:var(--communication-line-color);
    color:var(--communication-line-color);
}

.communication-line-switcher [data-line].is-active,
.communication-line-switcher a[href*="line="].is-active{
    background:var(--communication-line-color);
    border-color:var(--communication-line-color);
    color:#fff;
}



/* KOMUNIKACJA — KOLORY PRZYCISKÓW V2 */

/*
 * Wspólna obsługa trzech przełączników:
 * MZK / GMINNE / GPA.
 *
 * Nie dotykamy przycisku WSZYSTKIE.
 */

.communication-line-switcher a:not(.communication-all-lines),
.communication-municipal-switcher a,
.communication-gpa-switcher a{
    --line-button-color:#26384f;

    border-color:var(--line-button-color) !important;
    color:var(--line-button-color) !important;
}

/* ===== GMINNE ===== */

.communication-municipal-switcher a[href$="line=1"]{
    --line-button-color:#6d28d9;
}

.communication-municipal-switcher a[href$="line=2"]{
    --line-button-color:#be123c;
}

.communication-municipal-switcher a[href$="line=3"]{
    --line-button-color:#0f766e;
}

.communication-municipal-switcher a[href$="line=4"]{
    --line-button-color:#b45309;
}

.communication-municipal-switcher a[href$="line=5"]{
    --line-button-color:#0369a1;
}

.communication-municipal-switcher a[href$="line=6"]{
    --line-button-color:#4d7c0f;
}


/* ===== GPA ===== */

.communication-gpa-switcher a[href$="line=17"]{
    --line-button-color:#9333ea;
}

.communication-gpa-switcher a[href$="line=29"]{
    --line-button-color:#e11d48;
}

.communication-gpa-switcher a[href$="line=60"]{
    --line-button-color:#0891b2;
}

.communication-gpa-switcher a[href$="line=63"]{
    --line-button-color:#475569;
}

.communication-gpa-switcher a[href$="line=65"]{
    --line-button-color:#ea580c;
}


/* ===== MZK ===== */

.communication-line-switcher a[href$="line=703"]{
    --line-button-color:#2f80ed;
}

.communication-line-switcher a[href$="line=711"]{
    --line-button-color:#f58220;
}

.communication-line-switcher a[href$="line=733"]{
    --line-button-color:#2e9d57;
}


/*
 * Aktywna linia:
 * ten sam kolor, ale pełne wypełnienie.
 */

.communication-line-switcher a.is-active:not(.communication-all-lines),
.communication-municipal-switcher a.is-active,
.communication-gpa-switcher a.is-active{
    background:var(--line-button-color) !important;
    border-color:var(--line-button-color) !important;
    color:#fff !important;
}


/* KOMUNIKACJA — LINIA GPA 23 */
.communication-stop-board-line.line-23{
    background:#c026d3;
}

.communication-gpa-switcher a[href$="line=23"]{
    --line-button-color:#c026d3;
}
