/*
 * Tryb kontrastu dla nowych komponentow interfejsu
 * (górne menu zakładów, prawa kolumna, karty PSZOK/KASA, wstęp strony głównej).
 *
 * Zmienne --pk-contrast-bg / --pk-contrast-fg ustawia js/contrast-ui.js
 * na podstawie wyboru z panelu kontrastu (klasa .pk-contrast na <html>).
 * Wartości !important są celowe - nadpisują kolory zapisane inline w widokach.
 */

html.pk-contrast {
    --pk-bg: var(--pk-contrast-bg, #000000);
    --pk-fg: var(--pk-contrast-fg, #ffffff);
}

/* Tekst we wszystkich nowych sekcjach */
html.pk-contrast .right-panel,
html.pk-contrast .right-panel *,
html.pk-contrast .top-menu,
html.pk-contrast .top-menu *,
html.pk-contrast .day-schedule,
html.pk-contrast .day-schedule *,
html.pk-contrast .home-intro,
html.pk-contrast .home-intro *,
html.pk-contrast .home-notice,
html.pk-contrast .home-notice * {
    color: var(--pk-fg) !important;
    text-shadow: none !important;
}

/* Powierzchnie */
html.pk-contrast .right-panel__card,
html.pk-contrast .rp-head,
html.pk-contrast .news-item,
html.pk-contrast .phone-row,
html.pk-contrast .meter-box,
html.pk-contrast .stat-box,
html.pk-contrast .panel-note,
html.pk-contrast .branch-card,
html.pk-contrast a.menuTop,
html.pk-contrast .day-card,
html.pk-contrast .home-notice,
html.pk-contrast .home-activities__item {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .right-panel__card::before,
html.pk-contrast .branch-card::after {
    display: none !important;
}

html.pk-contrast .news-list,
html.pk-contrast .phone-list,
html.pk-contrast .meter-grid,
html.pk-contrast .stat-grid {
    background: transparent !important;
}

html.pk-contrast .right-panel__card--alarm,
html.pk-contrast .right-panel__card--alarm .rp-head,
html.pk-contrast .right-panel__card--alarm .phone-row,
html.pk-contrast .right-panel__card--alarm .panel-note {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
}

html.pk-contrast .news-item {
    border-bottom: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .news-list::before {
    background: var(--pk-fg) !important;
}

html.pk-contrast .news-item::before {
    border-color: var(--pk-bg) !important;
    background: var(--pk-fg) !important;
    box-shadow: 0 0 0 2px var(--pk-fg) !important;
}

/* Ikony, plakietki i pastylki - odwrocone kolory */
html.pk-contrast .rp-head__icon,
html.pk-contrast .top-menu__icon,
html.pk-contrast .phone-row__icon,
html.pk-contrast .meter-icon,
html.pk-contrast .stat-icon,
html.pk-contrast .home-activities__icon,
html.pk-contrast .home-notice__icon,
html.pk-contrast .news-item__chip,
html.pk-contrast .rp-head__badge,
html.pk-contrast .day-card__icon,
html.pk-contrast .day-card__badge,
html.pk-contrast .home-notice__note,
html.pk-contrast .branch-card__badge {
    background: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
    color: var(--pk-bg) !important;
}

html.pk-contrast .home-notice__note * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .rp-head__icon *,
html.pk-contrast .top-menu__icon *,
html.pk-contrast .phone-row__icon *,
html.pk-contrast .meter-icon *,
html.pk-contrast .stat-icon *,
html.pk-contrast .home-activities__icon *,
html.pk-contrast .home-notice__icon *,
html.pk-contrast .day-card__icon * {
    color: var(--pk-bg) !important;
}

/* Górne menu - aktywna pozycja i hover odwracają kolory */
html.pk-contrast a.menuTop:hover,
html.pk-contrast a.menuTop:focus,
html.pk-contrast a.menuTop.active {
    background: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
}

html.pk-contrast a.menuTop:hover *,
html.pk-contrast a.menuTop:focus *,
html.pk-contrast a.menuTop.active * {
    color: var(--pk-bg) !important;
}

html.pk-contrast a.menuTop:hover .top-menu__icon,
html.pk-contrast a.menuTop:focus .top-menu__icon,
html.pk-contrast a.menuTop.active .top-menu__icon {
    background: var(--pk-bg) !important;
    border-color: var(--pk-bg) !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast a.menuTop:hover .top-menu__icon *,
html.pk-contrast a.menuTop:focus .top-menu__icon *,
html.pk-contrast a.menuTop.active .top-menu__icon * {
    color: var(--pk-fg) !important;
}

html.pk-contrast .top-menu__arrow {
    color: var(--pk-fg) !important;
}

html.pk-contrast a.menuTop:hover .top-menu__arrow,
html.pk-contrast a.menuTop:focus .top-menu__arrow,
html.pk-contrast a.menuTop.active .top-menu__arrow {
    color: var(--pk-bg) !important;
}

/* Karty PSZOK/KASA */
html.pk-contrast .day-card {
    border-top-width: 3px !important;
}

html.pk-contrast .day-card__progress {
    background: transparent !important;
    border: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .day-card__bar {
    background: var(--pk-fg) !important;
}

html.pk-contrast .day-card.is-today,
html.pk-contrast .day-card.is-today:hover {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Pasek informacyjny i kafelki działalności */
html.pk-contrast .home-notice {
    border-left-width: 5px !important;
}

html.pk-contrast .home-notice__list li i,
html.pk-contrast .home-intro__title::after {
    background: none !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast .home-intro__title::after {
    background: var(--pk-fg) !important;
}

/* Wyraźny fokus klawiatury w trybie kontrastu */
html.pk-contrast a.menuTop:focus-visible,
html.pk-contrast .phone-row:focus-visible {
    outline: 3px solid var(--pk-fg) !important;
    outline-offset: 2px !important;
}

/* ---------------------------------------------------------------
 * Panel ułatwień dostępu (box_contrast) w trybach kontrastu.
 * Panel jest elementem sterującym, więc nie może "zniknąć" po
 * ustawieniu czarnego tła - kolory bierzemy z tych samych zmiennych.
 * --------------------------------------------------------------- */
html.pk-contrast .pk-contrast-panel {
    --pk-a11y-surface: var(--pk-bg);
    --pk-a11y-ink: var(--pk-fg);
    --pk-a11y-muted: var(--pk-fg);
    --pk-a11y-line: var(--pk-fg);
    --pk-a11y-soft: var(--pk-bg);
    --pk-a11y-accent: var(--pk-fg);
    --pk-a11y-accent-dark: var(--pk-fg);
}

html.pk-contrast .pk-contrast-panel .box__content,
html.pk-contrast .pk-contrast-panel .a11y-panel__body,
html.pk-contrast .pk-contrast-panel .a11y-panel__head,
html.pk-contrast .pk-contrast-panel .a11y-panel__hint {
    background: var(--pk-bg) !important;
    color: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pk-contrast-panel .a11y-panel__head {
    border-bottom: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .pk-contrast-panel .a11y-panel__hint {
    border-top: 1px solid var(--pk-fg) !important;
}

/* Uchwyt panelu */
html.pk-contrast .pk-contrast-panel .box__title {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
    border: 1px solid var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pk-contrast-panel .box__title * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .pk-contrast-panel .box__title:focus-visible {
    outline-color: var(--pk-fg) !important;
}

/* Nagłówek i podpisy */
html.pk-contrast .pk-contrast-panel .a11y-panel__title,
html.pk-contrast .pk-contrast-panel .a11y-panel__subtitle,
html.pk-contrast .pk-contrast-panel .a11y-panel__badge,
html.pk-contrast .pk-contrast-panel .a11y-panel__badge *,
html.pk-contrast .pk-contrast-panel .spcz,
html.pk-contrast .pk-contrast-panel .a11y-panel__hint,
html.pk-contrast .pk-contrast-panel .a11y-panel__hint i {
    color: var(--pk-fg) !important;
}

html.pk-contrast .pk-contrast-panel .a11y-panel__badge {
    background: var(--pk-bg) !important;
    border: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .pk-contrast-panel .a11y-panel__close {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast .pk-contrast-panel .a11y-panel__close:hover,
html.pk-contrast .pk-contrast-panel .a11y-panel__close:focus-visible {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
}

/* Kafelki kontrastu i czcionki */
html.pk-contrast .pk-contrast-panel .button.a11y-tile {
    background: var(--pk-bg) !important;
    color: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pk-contrast-panel .button.a11y-tile:hover,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:focus-visible,
html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
}

html.pk-contrast .pk-contrast-panel .button.a11y-tile:hover .a11y-tile__text,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:focus-visible .a11y-tile__text,
html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active .a11y-tile__text,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:hover .a11y-tile__caption,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:focus-visible .a11y-tile__caption,
html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active .a11y-tile__caption,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:hover .a11y-tile__sample,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:focus-visible .a11y-tile__sample,
html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active .a11y-tile__sample,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:hover::after,
html.pk-contrast .pk-contrast-panel .button.a11y-tile:focus-visible::after,
html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active::after {
    color: var(--pk-bg) !important;
}

html.pk-contrast .pk-contrast-panel .button.a11y-tile.is-active {
    box-shadow: inset 0 0 0 2px var(--pk-fg) !important;
}

/* ---------------------------------------------------------------
 * Lewe menu publiczne w trybach kontrastu.
 * --------------------------------------------------------------- */
html.pk-contrast ul.menu_left {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast li a.menu_left {
    background: var(--pk-bg) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast li a.menu_left > i,
html.pk-contrast li a.menu_left .color-icon,
html.pk-contrast li a.menu_left .cXm {
    color: var(--pk-fg) !important;
}

html.pk-contrast li a.menu_left:hover,
html.pk-contrast li a.menu_left:focus,
html.pk-contrast li a.menu_left.active {
    background: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
    box-shadow: none !important;
}

html.pk-contrast li a.menu_left:hover > i,
html.pk-contrast li a.menu_left:focus > i,
html.pk-contrast li a.menu_left.active > i,
html.pk-contrast li a.menu_left:hover .color-icon,
html.pk-contrast li a.menu_left:focus .color-icon,
html.pk-contrast li a.menu_left.active .color-icon,
html.pk-contrast li a.menu_left:hover .cXm,
html.pk-contrast li a.menu_left:focus .cXm,
html.pk-contrast li a.menu_left.active .cXm {
    color: var(--pk-bg) !important;
}

/* ---------------------------------------------------------------
 * Stopka i karty tre�ci w trybach kontrastu.
 * --------------------------------------------------------------- */
html.pk-contrast .pk-footer {
    color: var(--pk-fg) !important;
    border-color: var(--pk-fg) !important;
}

/* ---------------------------------------------------------------
 * Nag��wek publiczny w trybach kontrastu.
 * --------------------------------------------------------------- */
html.pk-contrast .pk-header,
html.pk-contrast .pk-header__top,
html.pk-contrast .pk-header__brand,
html.pk-contrast .pk-header__contact,
html.pk-contrast .pk-header__banner {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
}

html.pk-contrast .pk-header__waves-wrap {
    display: none !important;
}

html.pk-contrast .pk-header__title,
html.pk-contrast .pk-header__subtitle,
html.pk-contrast .pk-header__contact-item,
html.pk-contrast .pk-header__contact-item span {
    color: var(--pk-fg) !important;
    text-shadow: none !important;
}

html.pk-contrast .pk-header__contact-item i {
    background: var(--pk-fg) !important;
    box-shadow: none !important;
    color: var(--pk-bg) !important;
}

html.pk-contrast a.pk-header__contact-item:hover,
html.pk-contrast a.pk-header__contact-item:focus {
    background: var(--pk-bg) !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast .pk-header a:focus-visible {
    outline-color: var(--pk-fg) !important;
}

/* Nagłówek: kontakt + baner ze zdjęciami (content_top / carousel) */
html.pk-contrast .pk-hero {
    background: var(--pk-bg) !important;
    border-bottom: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .pk-hero::after,
html.pk-contrast .pk-hero__photos {
    display: none !important;
}

html.pk-contrast .pk-hero__title,
html.pk-contrast .pk-hero__service {
    color: var(--pk-fg) !important;
    text-shadow: none !important;
}

html.pk-contrast .pk-hero__service path {
    stroke: var(--pk-fg) !important;
}

html.pk-contrast .pk-hero__bar {
    background: var(--pk-fg) !important;
}

html.pk-contrast .pk-hero__logo {
    border: 2px solid var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pk-contact__chip {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    color: var(--pk-fg) !important;
}

html.pk-contrast .pk-contact__chip i {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
}
/* Oś dnia w karcie PSZOK/KASA */
html.pk-contrast .branch-tl {
    background: var(--pk-bg) !important;
    outline: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .branch-tl__open {
    background: transparent !important;
    outline: 2px dashed var(--pk-fg) !important;
}

html.pk-contrast .branch-tl__done {
    background: var(--pk-fg) !important;
}

/* Kropka leży na odwróconej plakietce (tło = kolor tekstu) */
html.pk-contrast .branch-card__dot {
    background: var(--pk-bg) !important;
    box-shadow: none !important;
    animation: none !important;
}

html.pk-contrast .branch-tl__now {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .branch-tl__now b {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
}
/* Prawa kolumna - wariant "jak kafelki dni": słuchawki, koperty, suma statystyk */
html.pk-contrast .phone-row__call,
html.pk-contrast .meter-go {
    background: var(--pk-fg) !important;
    box-shadow: none !important;
    color: var(--pk-bg) !important;
}

html.pk-contrast .phone-row__call *,
html.pk-contrast .meter-go * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .phone-row,
html.pk-contrast .meter-box,
html.pk-contrast .stat-total {
    border-color: var(--pk-fg) !important;
}

html.pk-contrast .stat-box {
    border-top-width: 2px !important;
}
/* Podstrony kasa / PSZOK (page_ui + opening_hours) */
html.pk-contrast .pg-page,
html.pk-contrast .pg-page * {
    color: var(--pk-fg) !important;
    text-shadow: none !important;
}

html.pk-contrast .pg-notice,
html.pk-contrast .pg-card,
html.pk-contrast .pg-phone,
html.pk-contrast .oh-day,
html.pk-contrast .oh-status,
html.pk-contrast .oh-status__badge,
html.pk-contrast .kasa-payments li {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pg-notice__icon,
html.pk-contrast .pg-address__icon,
html.pk-contrast .pg-phone__call,
html.pk-contrast .oh-day__icon,
html.pk-contrast .oh-day__badge,
html.pk-contrast .oh-status__dot,
html.pk-contrast .kasa-payments i {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
    animation: none !important;
    box-shadow: none !important;
}

html.pk-contrast .pg-notice__icon *,
html.pk-contrast .pg-address__icon *,
html.pk-contrast .pg-phone__call *,
html.pk-contrast .oh-day__icon * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .oh-day.is-today {
    outline: 3px solid var(--pk-fg) !important;
}
/* Lista plików do pobrania (file_list) */
html.pk-contrast .fl-section,
html.pk-contrast .fl-section * {
    color: var(--pk-fg) !important;
}

html.pk-contrast .fl-item {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .fl-type,
html.pk-contrast .fl-download,
html.pk-contrast .fl-head__icon,
html.pk-contrast .fl-head__count {
    background: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .fl-type *,
html.pk-contrast .fl-download *,
html.pk-contrast .fl-head__icon *,
html.pk-contrast .fl-head__count {
    color: var(--pk-bg) !important;
}
/* Wiersze telefonów i grupy dyżurów na podstronach zakładów */
html.pk-contrast .pg-row {
    border-color: var(--pk-fg) !important;
}

html.pk-contrast .pg-row__icon,
html.pk-contrast .pg-row__call {
    background: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pg-row__icon *,
html.pk-contrast .pg-row__call * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .pg-group + .pg-group {
    border-color: var(--pk-fg) !important;
}
/* Zamówienia publiczne (order_list) i archiwum lat */
html.pk-contrast .ol-card,
html.pk-contrast .ol-status,
html.pk-contrast .ol-mode,
html.pk-contrast .ol-more,
html.pk-contrast .ol-empty,
html.pk-contrast .oy-year {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .ol-mode i,
html.pk-contrast .ol-status__dot,
html.pk-contrast .oy-year__icon {
    background: var(--pk-fg) !important;
}

html.pk-contrast .ol-mode i,
html.pk-contrast .oy-year__icon * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .ol-bottom {
    border-color: var(--pk-fg) !important;
}
/* Aktywny rok archiwum */
html.pk-contrast .oy-year.is-active {
    outline: 3px solid var(--pk-fg) !important;
}

/* Paginacja */
html.pk-contrast .pagination .page-link {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .pagination .page-item.active .page-link {
    background: var(--pk-fg) !important;
    color: var(--pk-bg) !important;
}
/* Szczegóły zamówienia */
html.pk-contrast .zd-hero,
html.pk-contrast .zd-fact,
html.pk-contrast .zd-back {
    background: var(--pk-bg) !important;
    border-color: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .zd-fact__icon {
    background: var(--pk-fg) !important;
}

html.pk-contrast .zd-fact__icon * {
    color: var(--pk-bg) !important;
}
/* Szczegóły zamówienia - pasek postępu, tytuły sekcji, przycisk powrotu */
html.pk-contrast .zd-progress__track {
    background: var(--pk-bg) !important;
    outline: 1px solid var(--pk-fg) !important;
}

html.pk-contrast .zd-progress__bar,
html.pk-contrast .zd-section__icon,
html.pk-contrast .zd-back {
    background: var(--pk-fg) !important;
    box-shadow: none !important;
}

html.pk-contrast .zd-section__icon *,
html.pk-contrast .zd-back,
html.pk-contrast .zd-back * {
    color: var(--pk-bg) !important;
}

html.pk-contrast .zd-section__title::after,
html.pk-contrast .zd-page .fl-head::after {
    background: var(--pk-fg) !important;
}
html.pk-contrast .zd-progress__now {
    background: var(--pk-fg) !important;
    border-color: var(--pk-bg) !important;
}

html.pk-contrast .zd-progress__tick,
html.pk-contrast .zd-progress__legend i {
    background: var(--pk-fg) !important;
}
