/* ==================================================================
 * WładzaPL — global styles (motyw potomny GeneratePress)
 * W-1: design tokens (custom properties) + dark mode.
 * Paleta semantyczna color-blind safe (ColorBrewer Dark2):
 *   za #1B9E77, przeciw #D95F02, wstrzymało #7570B3, nieobecni #8C8C8C.
 * Kolor NIGDY nie jest jedynym rozróżnikiem (zawsze legenda/tekst).
 * Dark mode: html[data-theme="dark"] (JS + localStorage) lub
 * prefers-color-scheme dla braku JS. Bez FOUC — inline script w head
 * ustawia data-theme przed renderem (functions.php).
 * UWAGA: blok dark poniżej jest zdublowany w wladza_critical_css()
 * (functions.php, podzbiór) — zmiany utrzymywać w synchronizacji.
 * ================================================================== */

:root {
    color-scheme: light;

    /* -- Kolory semantyczne głosów (color-blind safe, stałe w obu trybach) -- */
    --wl-za: #1B9E77;
    --wl-przeciw: #D95F02;
    --wl-wstrzymalo: #7570B3;
    --wl-nieobecni: #8C8C8C;
    --wl-glos-wazny: #E7298A;
    --wl-obecny: #BDBDBD;
    /* Warianty na wypełnienia z tekstem (AA 4.5:1): badge wyniku */
    --wl-za-strong: #12684E;
    --wl-przeciw-strong: #A84A00;
    --wl-on-strong: #FFFFFF;

    /* -- Powierzchnie i tekst -- */
    --wl-bg: #FFFFFF;
    --wl-surface: #FFFFFF;
    --wl-surface-alt: #F5F6FA;
    --wl-surface-muted: #F5F7FB;
    --wl-text: #222222;
    --wl-muted: #555555;
    --wl-muted-2: #6D6D6D;
    --wl-heading: #14213D;
    --wl-primary: #14213D;
    --wl-primary-hover: #1D2F52;
    --wl-on-primary: #FFFFFF;
    --wl-on-fill: #FFFFFF;
    --wl-on-warn: #1F2430;
    --wl-warn-bg: #F9A825;
    --wl-warn-text: #8A6D00;
    --wl-link: #14213D;
    --wl-border: #E0E0E0;
    --wl-border-soft: #E2E4EC;
    --wl-border-strong: #C9CDD6;
    --wl-focus: #14213D;
    --wl-dot-border: rgba(0, 0, 0, 0.25);
    --wl-shadow: 0 6px 18px rgba(20, 33, 61, 0.12);
    --wl-shadow-card: 0 4px 12px rgba(0, 0, 0, 0.12);

    /* -- Typografia: duże czytelne nagłówki, rytm pionowy -- */
    --wl-h1: clamp(30px, 5vw, 40px);
    --wl-h2: 28px;
    --wl-h3: 20px;
    --wl-body: 16px;
    --wl-small: 14px;
    --wl-tiny: 13px;
    --wl-leading: 1.6;
    --wl-leading-tight: 1.25;

    /* -- Rytm pionowy / white-space -- */
    --wl-space-1: 4px;
    --wl-space-2: 8px;
    --wl-space-3: 16px;
    --wl-space-4: 24px;
    --wl-space-5: 32px;
    --wl-space-6: 48px;
}

/* -- Dark mode: jawny wybór użytkownika (przełącznik, localStorage) -- */
html[data-theme="dark"] {
    color-scheme: dark;

    --wl-za: #1B9E77;
    --wl-przeciw: #D95F02;
    --wl-wstrzymalo: #7570B3;
    --wl-nieobecni: #8C8C8C;
    --wl-glos-wazny: #E7298A;
    --wl-obecny: #7D8FA6;
    --wl-za-strong: #4CC79A;
    --wl-przeciw-strong: #F0854C;
    --wl-on-strong: #0E2233;

    --wl-bg: #12263A;
    --wl-surface: #18304A;
    --wl-surface-alt: #1F3A57;
    --wl-surface-muted: #1A3450;
    --wl-text: #E6ECF4;
    --wl-muted: #A9B7C9;
    --wl-muted-2: #8FA1B5;
    --wl-heading: #F2F6FB;
    --wl-primary: #2A4E77;
    --wl-primary-hover: #35608F;
    --wl-on-primary: #FFFFFF;
    --wl-on-fill: #FFFFFF;
    --wl-on-warn: #1F2430;
    --wl-warn-bg: #F9A825;
    --wl-warn-text: #E8C558;
    --wl-link: #9CC3EF;
    --wl-border: #2E4A6B;
    --wl-border-soft: #27415F;
    --wl-border-strong: #43608A;
    --wl-focus: #7FB3FF;
    --wl-dot-border: rgba(255, 255, 255, 0.35);
    --wl-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    --wl-shadow-card: 0 4px 12px rgba(0, 0, 0, 0.40);
}

/* -- Dark mode: brak JS — podążaj za systemem (prefers-color-scheme) -- */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]):not([data-theme="dark"]) {
        color-scheme: dark;

        --wl-obecny: #7D8FA6;
        --wl-za-strong: #4CC79A;
        --wl-przeciw-strong: #F0854C;
        --wl-on-strong: #0E2233;

        --wl-bg: #12263A;
        --wl-surface: #18304A;
        --wl-surface-alt: #1F3A57;
        --wl-surface-muted: #1A3450;
        --wl-text: #E6ECF4;
        --wl-muted: #A9B7C9;
        --wl-muted-2: #8FA1B5;
        --wl-heading: #F2F6FB;
        --wl-primary: #2A4E77;
        --wl-primary-hover: #35608F;
        --wl-on-primary: #FFFFFF;
        --wl-on-fill: #FFFFFF;
        --wl-warn-text: #E8C558;
        --wl-link: #9CC3EF;
        --wl-border: #2E4A6B;
        --wl-border-soft: #27415F;
        --wl-border-strong: #43608A;
        --wl-focus: #7FB3FF;
        --wl-dot-border: rgba(255, 255, 255, 0.35);
        --wl-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
        --wl-shadow-card: 0 4px 12px rgba(0, 0, 0, 0.40);
    }
}

/* -- Powierzchnie motywu nadrzędnego (GP) → tokeny.
 * !important celowo: nasz CSS jest ostatni w kolejności, ale tokeny
 * mają być źródłem prawdy także dla powierzchni GP (dark mode). -- */
body {
    background-color: var(--wl-bg) !important;
    color: var(--wl-text);
}
.site-header,
.site-footer,
.footer-widgets,
.site-info {
    background-color: var(--wl-bg);
}
.main-title a {
    color: var(--wl-heading);
}
.site-description {
    color: var(--wl-muted);
}
/* Linki w treści (GP ma własny niebieski — w dark niespełnia kontrastu;
 * w light zostawiamy domyślny GP poza obszarami wladza-*) */
.entry-content a,
.entry-summary a,
.comment-content a {
    color: var(--wl-link);
}
/* Nawigacja GP */
.menu-toggle,
.main-navigation .mobile-bar-items a,
.main-navigation .main-nav ul li a {
    color: var(--wl-text);
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li.sfHover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: var(--wl-heading);
}
.main-navigation ul ul {
    background-color: var(--wl-surface);
}
.main-navigation .main-nav ul ul li a {
    color: var(--wl-text);
}
.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
    color: var(--wl-heading);
}

/* -- Przełącznik trybu (header). Bez JS: ukryty (brak data-theme). -- */
html:not([data-theme]) .wladza-theme-toggle {
    display: none;
}
.wladza-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-left: auto;
    padding: 0;
    background: transparent;
    border: 2px solid var(--wl-border-strong);
    border-radius: 50%;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    color: var(--wl-text);
    flex: none;
}
.wladza-theme-toggle:hover {
    border-color: var(--wl-primary);
}
.wladza-toggle-sun {
    display: none;
}
html[data-theme="dark"] .wladza-toggle-sun {
    display: inline;
}
html[data-theme="dark"] .wladza-toggle-moon {
    display: none;
}

/* -- R4-1.7: no-JS ścieżka zmiany trybu — formularz GET ?theme=dark|light
 *    wewnątrz <noscript> (renderowany tylko przy wyłączonym JS; toggle jest
 *    wtedy ukryty przez <noscript><style> w wp_head). Ten sam wzorzec
 *    dostępności co toggle: focus visible z tokenów, kontrast AA. -- */
.wladza-theme-noswitch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 12px;
    color: var(--wl-muted);
    font-size: 13px;
    flex: none;
}
.wladza-theme-noswitch button {
    padding: 5px 12px;
    background: var(--wl-surface);
    border: 2px solid var(--wl-border-strong);
    border-radius: 999px;
    color: var(--wl-text);
    font-size: 13px;
    line-height: 1.2;
    cursor: pointer;
}
.wladza-theme-noswitch button:hover {
    border-color: var(--wl-primary);
}

/* Layout */
.wladza-politicians-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--wl-space-3);
    padding: var(--wl-space-3) 0;
}
.wladza-politician-card {
    display: block;
    background: var(--wl-surface);
    border: 1px solid var(--wl-border);
    border-radius: 8px;
    padding: var(--wl-space-3);
    text-align: center;
    border-top: 4px solid var(--wl-border-strong);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s;
}
.wladza-politician-card:hover { box-shadow: var(--wl-shadow-card); }
.politician-card-photo img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.wladza-placeholder-avatar {
    width: 80px; height: 80px; border-radius: 50%; background: var(--wl-surface-alt);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 24px; color: var(--wl-muted); line-height: 1;
}
.politician-party-badge {
    display: inline-block; margin-top: 6px; padding: 3px 10px;
    border-radius: 12px; color: var(--wl-on-fill); font-size: 12px;
}
.politician-office { color: var(--wl-muted); font-size: 13px; margin-top: 4px; }

.wladza-organs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--wl-space-3);
    padding: var(--wl-space-3) 0;
}
.wladza-organ-card {
    background: var(--wl-surface);
    border: 1px solid var(--wl-border);
    border-radius: 8px;
    padding: var(--wl-space-3);
    text-decoration: none;
    color: inherit;
    display: block;
}
.organ-card-icon img { width: 48px; height: 48px; object-fit: contain; }
.wladza-placeholder-icon {
    width: 48px; height: 48px; background: var(--wl-surface-alt); border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 20px; color: var(--wl-muted-2);
}
.organ-type-badge {
    display: inline-block; background: var(--wl-surface-alt); padding: 2px 8px;
    border-radius: 10px; font-size: 12px; color: var(--wl-muted);
}

.wladza-votings-list { display: flex; flex-direction: column; gap: var(--wl-space-3); padding: var(--wl-space-3) 0; }
.wladza-voting-card {
    display: block; background: var(--wl-surface); border: 1px solid var(--wl-border);
    border-radius: 8px; padding: var(--wl-space-3); text-decoration: none; color: inherit;
}
.voting-card-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.voting-card-bar {
    display: flex; height: 10px; border-radius: 5px; overflow: hidden;
    background: var(--wl-surface-alt); margin: 10px 0;
}
.voting-card-za { background: var(--wl-za); height: 100%; }
.voting-card-przeciw { background: var(--wl-przeciw); height: 100%; }
.voting-card-meta { display: flex; gap: 12px; font-size: 13px; color: var(--wl-muted); flex-wrap: wrap; }
.voting-result-badge { margin-left: auto; padding: 2px 8px; border-radius: 10px; color: var(--wl-on-strong); font-size: 12px; font-weight: 600; }
.voting-result-przyjęto { background: var(--wl-za-strong); }
.voting-result-odrzucono { background: var(--wl-przeciw-strong); }
.voting-result-powtórzono { background: var(--wl-warn-bg); color: var(--wl-on-warn); }

.wladza-voting-single .wladza-voting-chart { margin: var(--wl-space-3) 0; }
.wladza-voting-bar {
    display: flex; height: 24px; border-radius: 12px; overflow: hidden;
    background: var(--wl-surface-alt);
}
.wladza-voting-segment { height: 100%; transition: width 0.3s; }
/* Paleta color-blind safe (ColorBrewer Dark2 + neutralne szarości) —
 * kolor NIGDY nie jest jedynym rozróżnikiem (legenda tekstowa + tabela). */
.wladza-voting-segment.yes { background: var(--wl-za); }
.wladza-voting-segment.no { background: var(--wl-przeciw); }
.wladza-voting-segment.abstain { background: var(--wl-wstrzymalo); }
.wladza-voting-segment.notpart { background: var(--wl-nieobecni); }
.wladza-voting-legend { display: flex; gap: var(--wl-space-3); margin-top: var(--wl-space-2); font-size: 13px; flex-wrap: wrap; }
.wladza-legend-item { display: inline-flex; align-items: center; gap: 6px; color: var(--wl-text); }
.wladza-vote-dot {
    display: inline-block; width: 12px; height: 12px; border-radius: 50%;
    border: 1px solid var(--wl-dot-border); flex: none;
}
.wladza-dot-yes { background: var(--wl-za); }
.wladza-dot-no { background: var(--wl-przeciw); }
.wladza-dot-abstain { background: var(--wl-wstrzymalo); }
.wladza-dot-notpart { background: var(--wl-nieobecni); }
.wladza-dot-present { background: var(--wl-obecny); }
.wladza-voting-segment.votevalid { background: var(--wl-glos-wazny); }
.wladza-dot-votevalid { background: var(--wl-glos-wazny); }

/* R4 F2: karta głosowań posła (profil, zakładka Głosowania) */
.wladza-mp-frekwencja { font-size: 16px; margin: 0 0 12px; }
.wladza-mp-frekwencja .wladza-muted { color: var(--wl-muted); font-size: 14px; }
.wladza-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wladza-mp-votes-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.wladza-mp-votes-table th, .wladza-mp-votes-table td {
    text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--wl-border-soft);
}
.wladza-mp-votes-table th { background: var(--wl-surface-alt); font-weight: 600; }
.wladza-mp-votes-table td .wladza-vote-dot { margin-right: 6px; vertical-align: middle; }
.wladza-mp-votes-table a { color: var(--wl-link); text-decoration: underline; }
.wladza-mp-more { margin-top: 12px; }
.wladza-btn-more {
    padding: 10px 22px; background: var(--wl-primary); color: var(--wl-on-primary); border: none;
    border-radius: 8px; font-size: 15px; cursor: pointer;
}
.wladza-btn-more:hover { background: var(--wl-primary-hover); }
.wladza-mp-votes-status { color: var(--wl-muted); font-style: italic; }
.wladza-votings-link { margin-top: var(--wl-space-3); }

.wladza-party-archive .party-logo-large { max-height: 120px; display: block; margin-bottom: 10px; }
.wladza-party-color-badge {
    display: inline-block; color: var(--wl-on-fill); padding: 4px 12px;
    border-radius: 14px; font-size: 13px; margin-left: 8px; vertical-align: middle;
}

.wladza-member-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.wladza-member-list li { background: var(--wl-surface-alt); border: 1px solid var(--wl-border); border-radius: 6px; padding: 10px; }
.wladza-member-list a { text-decoration: none; color: inherit; display: flex; align-items: center; gap: 10px; }
.wladza-member-list img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }

/* W-3: profil posła „karta nie tabela” — karta skrótu + details/summary
 * (stare style zakładek .wladza-tabs usunięte razem z zakładkami). */
.wladza-mp-card {
    background: var(--wl-surface);
    border: 1px solid var(--wl-border-soft);
    border-left: 4px solid var(--wl-primary);
    border-radius: 10px;
    padding: var(--wl-space-3) var(--wl-space-4);
    margin: var(--wl-space-3) 0;
}
.wladza-mp-card-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wl-space-3) var(--wl-space-5);
    margin: 0;
}
.wladza-mp-card-item { display: flex; flex-direction: column; gap: 2px; }
.wladza-mp-card-item dt {
    font-size: var(--wl-tiny);
    color: var(--wl-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.wladza-mp-card-item dd {
    margin: 0;
    font-size: var(--wl-body);
    font-weight: 600;
    color: var(--wl-heading);
}
.wladza-mp-card-item dd a { color: var(--wl-link); }
.wladza-mp-card-item dd small {
    display: block;
    font-weight: 400;
    color: var(--wl-muted);
    font-size: var(--wl-tiny);
}
.wladza-profile-details {
    border: 1px solid var(--wl-border-soft);
    border-radius: 10px;
    background: var(--wl-surface);
    margin: 0 0 var(--wl-space-2);
}
.wladza-profile-details summary {
    cursor: pointer;
    padding: var(--wl-space-2) var(--wl-space-3);
    font-weight: 600;
    color: var(--wl-heading);
    border-radius: 10px;
}
.wladza-profile-details summary:hover { background: var(--wl-surface-alt); }
.wladza-profile-details summary h2 {
    display: inline;
    margin: 0;
    font-size: 18px;
    line-height: var(--wl-leading-tight);
    color: var(--wl-heading);
}
.wladza-profile-details[open] > summary {
    border-bottom: 1px solid var(--wl-border-soft);
    border-radius: 10px 10px 0 0;
}
.wladza-details-body { padding: var(--wl-space-3); }
.wladza-profile-facts {
    list-style: none;
    margin: 0 0 var(--wl-space-3);
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--wl-space-2) var(--wl-space-4);
    font-size: var(--wl-small);
    color: var(--wl-text);
}

.wladza-table { width: 100%; border-collapse: collapse; margin: 10px 0; }
.wladza-table th, .wladza-table td { border: 1px solid var(--wl-border); padding: 8px 12px; text-align: left; font-size: 14px; }
.wladza-table th { background: var(--wl-surface-alt); }

.wladza-external-links { display: flex; gap: 10px; margin-top: var(--wl-space-2); flex-wrap: wrap; }
.wladza-external-links a { font-size: 13px; color: var(--wl-heading); }

.wladza-placeholder { color: var(--wl-muted-2); font-style: italic; }

/* W-3: sekcje szablonów bez zakładek (organ władzy, partia) */
.wladza-section { margin: 0 0 var(--wl-space-4); }

/* Forms */
.wladza-politicians-filters form,
.wladza-votings-filters form {
    display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 12px 0;
}
.wladza-politicians-filters input,
.wladza-politicians-filters select,
.wladza-votings-filters select,
.wladza-votings-filters input {
    padding: 6px 10px; border: 1px solid var(--wl-border-strong); border-radius: 4px;
    background: var(--wl-surface); color: var(--wl-text);
}

/* ============ FRONT PAGE (styl portalu danych, wzór: ktomaco.pl) ============ */
.wladza-front { max-width: 1080px; margin: 0 auto; padding: 0 var(--wl-space-3); }
.wladza-hero { text-align: center; padding: var(--wl-space-6) 0 var(--wl-space-4); }
.wladza-hero h1 { font-size: var(--wl-h1); margin-bottom: 12px; line-height: var(--wl-leading-tight); color: var(--wl-heading); }
.wladza-hero-sub { max-width: 640px; margin: 0 auto var(--wl-space-4); color: var(--wl-muted); font-size: 17px; line-height: var(--wl-leading); }
.wladza-hero-search { display: flex; max-width: 480px; margin: 0 auto 18px; }
.wladza-hero-search input {
    flex: 1; min-width: 0; padding: 12px 16px; border: 2px solid var(--wl-primary); border-radius: 8px 0 0 8px;
    font-size: 16px; background: var(--wl-surface); color: var(--wl-text);
}
.wladza-hero-search button {
    padding: 12px 24px; background: var(--wl-primary); color: var(--wl-on-primary); border: none;
    border-radius: 0 8px 8px 0; font-size: 16px; cursor: pointer;
}
.wladza-hero-search button:hover { background: var(--wl-primary-hover); }
.wladza-hero-links { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.wladza-hero-links a { color: var(--wl-link); font-weight: 600; text-decoration: none; }
.wladza-hero-links a:hover { text-decoration: underline; }

.wladza-front-tiles {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--wl-space-3); padding: var(--wl-space-4) 0;
}
.wladza-tile {
    display: flex; flex-direction: column; gap: 6px; background: var(--wl-surface);
    border: 1px solid var(--wl-border-soft); border-radius: 10px; padding: 18px;
    text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s;
}
.wladza-tile:hover { box-shadow: var(--wl-shadow); transform: translateY(-2px); }
.wladza-tile .tile-icon { font-size: 26px; }
.wladza-tile strong { font-size: 16px; color: var(--wl-heading); }
.wladza-tile span:last-child { color: var(--wl-muted); font-size: 13.5px; }

.wladza-front-hemicycle { padding: var(--wl-space-3) 0; }

/* T-Q5-1: blok „Ostatnie głosowania” */
.wladza-front-votes { padding: var(--wl-space-4) 0 var(--wl-space-2); }
.wladza-front-votes h2 {
    font-size: var(--wl-h2); line-height: var(--wl-leading-tight);
    color: var(--wl-heading); margin-bottom: var(--wl-space-2);
}
.voting-card-num { color: var(--wl-muted); font-size: var(--wl-small); margin: 0 0 4px; }
.voting-card-topic { color: var(--wl-text); font-size: var(--wl-small); margin: 0 0 6px; line-height: var(--wl-leading); }
.voting-card-topic strong { color: var(--wl-heading); }
.wladza-front-votes .wladza-source-note { margin-top: var(--wl-space-3); }

.wladza-front-rankings { padding: var(--wl-space-3) 0 var(--wl-space-2); }
.wladza-front-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }

.wladza-front-about {
    margin: 28px 0 var(--wl-space-6); padding: var(--wl-space-4); background: var(--wl-surface-muted);
    border-radius: 10px; font-size: 15px;
}
.wladza-front-about-note { color: var(--wl-muted); font-style: italic; }

/* ============ R4: głosowanie — hemicykl + alternatywa tabelaryczna (WCAG 2.2 AA) ============ */
.wladza-voting-section { margin: var(--wl-space-4) 0; }
.wladza-vote-view { margin: 28px 0 8px; }

/* Przełącznik „Widok: wykres/tabela” */
.wladza-view-toggle { display: flex; align-items: center; gap: var(--wl-space-2); flex-wrap: wrap; margin-bottom: 14px; }
.wladza-view-label { font-size: 14px; font-weight: 600; color: var(--wl-text); }
.wladza-view-btn {
    padding: 8px 18px; font-size: 14px; cursor: pointer;
    background: var(--wl-surface); color: var(--wl-link); border: 2px solid var(--wl-primary);
}
.wladza-view-btn:first-of-type { border-radius: 8px 0 0 8px; border-right-width: 1px; }
.wladza-view-btn:last-of-type { border-radius: 0 8px 8px 0; border-left-width: 1px; margin-left: -1px; }
.wladza-view-btn[aria-pressed="true"] { background: var(--wl-primary); color: var(--wl-on-primary); }
.wladza-view-btn[aria-pressed="true"]:hover { background: var(--wl-primary-hover); }

/* Wykres (kontener ma role="img" + aria-label; SVG ozdobne) */
.wladza-vote-chart { width: 100%; }
.wladza-vote-chart svg { display: block; width: 100%; height: auto; }
.wladza-vote-chart path:hover { opacity: 0.85; }

/* Tabela — pełna alternatywa wykresu (nagłówek przyklejony przy przewijaniu) */
.wladza-vote-table-wrap {
    max-height: 480px; overflow: auto;
    border: 1px solid var(--wl-border); border-radius: 8px; background: var(--wl-surface);
}
.wladza-vote-table { margin: 0; }
.wladza-vote-table caption { text-align: left; padding: 10px 12px; font-weight: 600; color: var(--wl-text); }
.wladza-vote-table thead th { position: sticky; top: 0; z-index: 2; background: var(--wl-surface-alt); color: var(--wl-text); }
.wladza-vote-cell { white-space: nowrap; }
.wladza-vote-mp a { color: var(--wl-link); }

/* Fokus zawsze widoczny (WCAG 2.2 — 2.4.7/2.4.13) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
summary:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid var(--wl-focus); outline-offset: 2px;
}

/* Ograniczenie ruchu dla elementów animowanych w tym motywie */
@media (prefers-reduced-motion: reduce) {
    .wladza-voting-segment, .wladza-tile, .wladza-vote-chart path { transition: none; }
}

/* R4 F3: archiwum głosowań — filtry i karty */
.wladza-filters { margin: var(--wl-space-3) 0 var(--wl-space-4); }
.wladza-filters-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.wladza-filters-row label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--wl-text); }
.wladza-filters-row input, .wladza-filters-row select {
    padding: 10px 12px; border: 2px solid var(--wl-primary); border-radius: 8px; font-size: 15px;
    background: var(--wl-surface); color: var(--wl-text);
}
.wladza-filters-row button {
    padding: 10px 22px; background: var(--wl-primary); color: var(--wl-on-primary); border: none; border-radius: 8px;
    font-size: 15px; cursor: pointer;
}
.wladza-filters-row button:hover { background: var(--wl-primary-hover); }
.wladza-filters-clear { align-self: center; color: var(--wl-link); }
.wladza-filters-summary { font-weight: 600; margin-bottom: 12px; }
.wladza-voting-special { color: var(--wl-warn-text); font-size: 13px; margin: 6px 0 0; }
.wladza-pag-prev, .wladza-pag-next {
    display: inline-block; margin: var(--wl-space-3) 8px 0 0; padding: 10px 18px; background: var(--wl-surface-alt);
    border-radius: 8px; color: var(--wl-link); text-decoration: none;
}

/* R4: pojedyncze głosowanie (CPT glosowanie) */
.wladza-voting-header-meta { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin: var(--wl-space-2) 0; }
.wladza-voting-id { color: var(--wl-muted); font-size: 14px; }
.wladza-voting-special { color: var(--wl-warn-text); font-size: 14px; }
.wladza-voting-majority { color: var(--wl-muted); font-size: 14px; }
.voting-card-abstain { background: var(--wl-wstrzymalo); height: 100%; float: left; }
.voting-card-notpart { background: var(--wl-nieobecni); height: 100%; float: left; }
.wladza-voting-counts { margin: var(--wl-space-3) 0; max-width: 560px; }
.wladza-voting-counts td, .wladza-voting-counts th { text-align: center !important; font-size: 15px; }
.wladza-vote-table a { color: var(--wl-link); }

/* R4 F5: Rankingi + O projekcie */
.wladza-page-header { text-align: center; padding: var(--wl-space-4) 0 var(--wl-space-2); }
.wladza-page-header h1 { font-size: var(--wl-h2); line-height: var(--wl-leading-tight); color: var(--wl-heading); }
.wladza-ranking-section { margin: 0 0 36px; }
.wladza-ranking-section h2 { margin-bottom: 4px; font-size: var(--wl-h3); line-height: var(--wl-leading-tight); color: var(--wl-heading); }
.wladza-section-sub { color: var(--wl-muted); font-size: 14px; margin-top: 0; }
.wladza-ranking-section .wladza-rankings table { width: 100%; border-collapse: collapse; }
.wladza-ranking-section .wladza-rankings td, .wladza-ranking-section .wladza-rankings th {
    padding: 9px 12px; border-bottom: 1px solid var(--wl-border-soft); text-align: left;
}
.wladza-source-note { color: var(--wl-muted); font-size: 13px; border-top: 1px solid var(--wl-border-soft); padding-top: 14px; }
.wladza-about { max-width: 720px; }
.wladza-about h2 { margin-top: 28px; font-size: var(--wl-h3); color: var(--wl-heading); }
.wladza-about ul { padding-left: 20px; }
.wladza-about li { margin-bottom: var(--wl-space-2); line-height: var(--wl-leading); }

/* R4 fala B: „Rekordziści” (strona Rankingi) — karty znikają bez danych */
.wladza-rekordzisci { margin: 0 0 36px; }
.wladza-rekordzisci h2 { margin-bottom: 4px; font-size: var(--wl-h3); line-height: var(--wl-leading-tight); color: var(--wl-heading); }
.wladza-records-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--wl-space-3); list-style: none; padding: 0; margin: var(--wl-space-3) 0;
}
.wladza-record-card {
    background: var(--wl-surface); border: 1px solid var(--wl-border-soft);
    border-radius: 10px; padding: var(--wl-space-3);
}
.wladza-record-card h3 { margin: 0 0 6px; font-size: 17px; color: var(--wl-heading); }
.wladza-record-value { font-size: 30px; font-weight: 800; line-height: 1.15; margin: 0 0 6px; color: var(--wl-heading); }
.wladza-record-desc { margin: 0 0 6px; line-height: var(--wl-leading); }
.wladza-record-note { margin: 0; color: var(--wl-muted); font-size: var(--wl-tiny); }

/* R4 fala B: „Czy wiedziałeś” (organ władzy) + pasek „Kadencja” (profil posła) */
.wladza-did-you-know {
    background: var(--wl-surface-muted); border-radius: 10px;
    padding: var(--wl-space-3) var(--wl-space-4);
}
.wladza-did-you-know h2 { margin-top: 0; font-size: var(--wl-h3); color: var(--wl-heading); }
.wladza-did-you-know ul { padding-left: 20px; }
.wladza-did-you-know li { margin-bottom: var(--wl-space-2); line-height: var(--wl-leading); }
.wladza-kadencja { margin: var(--wl-space-3) 0 var(--wl-space-4); max-width: 560px; }
.wladza-kadencja h2 { margin: 0 0 4px; font-size: var(--wl-h3); color: var(--wl-heading); }
.wladza-kadencja-dates { margin: 0 0 var(--wl-space-2); color: var(--wl-muted); font-size: var(--wl-small); }
.wladza-kadencja-track {
    height: 10px; background: var(--wl-surface-alt);
    border: 1px solid var(--wl-border-soft); border-radius: 999px; overflow: hidden;
}
.wladza-kadencja-fill { height: 100%; background: var(--wl-primary); border-radius: 999px; }
.wladza-kadencja-pct { margin: var(--wl-space-2) 0 0; font-size: var(--wl-small); color: var(--wl-text); }

/* R4 F6: filtry tabeli głosów imiennych */
.wladza-vf-wrap { display: flex; gap: 14px; align-items: end; flex-wrap: wrap; margin: 12px 0; }
.wladza-vf-label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--wl-text); }
.wladza-vf-label select { padding: 9px 12px; border: 2px solid var(--wl-primary); border-radius: 8px; font-size: 15px; background: var(--wl-surface); color: var(--wl-text); }
.wladza-vf-counter { color: var(--wl-muted); font-size: 14px; padding-bottom: 10px; }
.wladza-vf-status { color: var(--wl-muted); font-style: italic; }
.wladza-voting-votes-rest h2, .wladza-voting-votes-table h2 { margin-top: var(--wl-space-4); }

/* R4 F7: 404 */
.wladza-404 { text-align: center; padding: var(--wl-space-6) var(--wl-space-3); }
.wladza-404-code { font-size: 72px; font-weight: 800; color: var(--wl-heading); margin: 0; line-height: 1; }
.wladza-404 h1 { font-size: 28px; margin: 12px 0; color: var(--wl-heading); }
.wladza-404-joke { font-size: 17px; color: var(--wl-text); font-style: italic; max-width: 520px; margin: 0 auto var(--wl-space-2); }
.wladza-404-search { display: flex; max-width: 420px; margin: var(--wl-space-3) auto; }
.wladza-404-search input { flex: 1; min-width: 0; padding: 12px 16px; border: 2px solid var(--wl-primary); border-radius: 8px 0 0 8px; font-size: 16px; background: var(--wl-surface); color: var(--wl-text); }
.wladza-404-search button { padding: 12px 24px; background: var(--wl-primary); color: var(--wl-on-primary); border: none; border-radius: 0 8px 8px 0; font-size: 16px; cursor: pointer; }
.wladza-404-links { display: flex; gap: var(--wl-space-3); justify-content: center; flex-wrap: wrap; }
.wladza-404-links a { color: var(--wl-link); font-weight: 600; }

/* R4: wyniki wyszukiwania */
.wladza-search-results { display: grid; gap: 12px; max-width: 760px; }
.wladza-search-card { display: block; background: var(--wl-surface); border: 1px solid var(--wl-border-soft); border-left: 4px solid var(--wl-primary); border-radius: 10px; padding: 14px 18px; text-decoration: none; color: inherit; }
.wladza-search-card:hover { border-left-color: var(--wl-za); }
.wladza-search-type { display: inline-block; font-size: 12px; font-weight: 700; color: var(--wl-heading); background: var(--wl-surface-alt); border-radius: 12px; padding: 3px 10px; margin-bottom: 6px; }
.wladza-search-title { font-size: 17px; margin: 0 0 4px; color: var(--wl-heading); }
.wladza-search-excerpt { color: var(--wl-muted); font-size: 14px; margin: 0; }
.wladza-search-pag { margin-top: 18px; }
.wladza-search-pag .page-numbers { display: inline-block; padding: 8px 14px; margin-right: 4px; background: var(--wl-surface-alt); border-radius: 8px; color: var(--wl-link); text-decoration: none; }
.wladza-search-pag .current { background: var(--wl-primary); color: var(--wl-on-primary); }

/* ============ W-2: logo w headerze + responsywność (<1024px, <768px) ============ */
.wladza-brand-logo {
    display: inline-flex;
    flex: none;
}
.wladza-brand-logo img {
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 8px;
}

/* Profil posła: nagłówek = zdjęcie + dane (zwija się <768px) */
.wladza-profile-header {
    display: flex;
    gap: var(--wl-space-4);
    align-items: flex-start;
}
.wladza-profile-photo { flex: none; }
.wladza-profile-photo img { width: 240px; height: auto; border-radius: 12px; }
.wladza-quick-facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wl-space-2) var(--wl-space-3);
    font-size: var(--wl-small);
}

@media (max-width: 1024px) {
    .wladza-front-two-col { grid-template-columns: 1fr; }
    .wladza-politicians-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
    .wladza-organs-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
}

@media (max-width: 768px) {
    .wladza-hero { padding: var(--wl-space-5) 0 var(--wl-space-3); }
    .wladza-front-tiles { grid-template-columns: 1fr; }
    .wladza-politicians-grid,
    .wladza-organs-grid { grid-template-columns: 1fr 1fr; }
    .wladza-front-votes { padding: var(--wl-space-3) 0 var(--wl-space-2); }
    .voting-card-header { flex-direction: column; align-items: flex-start; gap: 4px; }
    .voting-result-badge { margin-left: 0; }
    .wladza-profile-header { flex-direction: column; }
    .wladza-profile-photo img { width: 160px; }
    .wladza-brand-logo img { width: 32px; height: 32px; }
    .wladza-theme-toggle { width: 36px; height: 36px; font-size: 16px; }
    .wladza-404-code { font-size: 56px; }
    .wladza-vf-wrap { gap: var(--wl-space-2); }
}


/* ==================================================================
 * Fala C — F-08 porównywarka posłów (page-porownywarka.php)
 * Wszystkie kolory z tokenów --wl-*; zero hardcoded kolorów.
 * ================================================================== */
.wladza-compare { max-width: 1080px; margin: 0 auto; padding: var(--wl-space-3) 0; }
.wladza-compare-form { background: var(--wl-surface); border: 1px solid var(--wl-border-soft); border-radius: 10px; padding: var(--wl-space-3); }
.wladza-compare-selects { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wl-space-2); }
.wladza-compare-field { display: flex; flex-direction: column; gap: 6px; }
.wladza-compare-field label { font-weight: 600; color: var(--wl-heading); font-size: var(--wl-small); }
.wladza-compare-field select { padding: 10px 12px; border: 1px solid var(--wl-border-strong); border-radius: 8px; background: var(--wl-bg); color: var(--wl-text); font-size: var(--wl-body); }
.wladza-compare-submit { margin-top: var(--wl-space-2); padding: 10px 24px; background: var(--wl-primary); color: var(--wl-on-primary); border: none; border-radius: 8px; font-size: var(--wl-body); font-weight: 600; cursor: pointer; }
.wladza-compare-submit:hover { background: var(--wl-primary-hover); }
.wladza-compare-hint { color: var(--wl-muted); font-size: var(--wl-body); margin-top: var(--wl-space-2); }

.wladza-compare-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--wl-space-3); margin-top: var(--wl-space-3); }
.wladza-compare-col { background: var(--wl-surface); border: 1px solid var(--wl-border-soft); border-radius: 10px; padding: var(--wl-space-3); box-shadow: var(--wl-shadow-card); }
.wladza-compare-name { font-size: var(--wl-h3); color: var(--wl-heading); margin: 0 0 4px; }
.wladza-compare-name a { color: var(--wl-link); text-decoration: none; }
.wladza-compare-name a:hover { text-decoration: underline; }
.wladza-compare-klub { margin: 0 0 var(--wl-space-2); font-weight: 600; }
.wladza-compare-klub a { color: var(--wl-link); }
.wladza-is-empty { color: var(--wl-muted-2); font-style: italic; font-weight: 400; }

.wladza-compare-list { margin: 0; }
.wladza-compare-item { padding: var(--wl-space-2) 0; border-top: 1px solid var(--wl-border-soft); }
.wladza-compare-item dt { font-size: var(--wl-small); font-weight: 600; color: var(--wl-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.wladza-compare-item dd { margin: 6px 0 0; font-size: var(--wl-body); color: var(--wl-text); }
.wladza-compare-pct { font-size: 22px; font-weight: 700; color: var(--wl-heading); }

.wladza-vote-stats { list-style: none; margin: var(--wl-space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wladza-vote-stat { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 8px; font-size: var(--wl-small); }
.wladza-vote-label { color: var(--wl-text); }
.wladza-vote-count { color: var(--wl-muted); white-space: nowrap; }
.wladza-vote-bar { display: block; height: 10px; background: var(--wl-surface-alt); border: 1px solid var(--wl-border-soft); border-radius: 5px; overflow: hidden; }
.wladza-vote-fill { display: block; height: 100%; }
/* Kolory głosów = tokeny semantyczne (zawsze z etykietą tekstową, nigdy sam kolor). */
.wladza-vote-yes .wladza-vote-fill { background: var(--wl-za-strong); }
.wladza-vote-no .wladza-vote-fill { background: var(--wl-przeciw-strong); }
.wladza-vote-abstain .wladza-vote-fill { background: var(--wl-wstrzymalo); }
.wladza-vote-absent .wladza-vote-fill { background: var(--wl-nieobecni); }
.wladza-vote-present .wladza-vote-fill { background: var(--wl-obecny); }

@media (max-width: 768px) {
    .wladza-compare-selects { grid-template-columns: 1fr; }
    .wladza-vote-stat { grid-template-columns: 96px 1fr auto; }
}

/* ==================================================================
 * Fala C — F-13 „Partie”: karty programów w archive-partia.php (dawniej
 * page-partie.php — usunięty R4 16.09) + porównanie programów
 * (page-porownanie-programow.php). Tokeny --wl-*; placeholder uczciwy.
 * ================================================================== */
.wladza-programy { padding: var(--wl-space-3) 0; }
.wladza-programy h2,
.wladza-programy-porownanie h2 { color: var(--wl-heading); }
.wladza-programy-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--wl-space-3); margin-top: var(--wl-space-2); }
.wladza-programy-card { background: var(--wl-surface); border: 1px solid var(--wl-border-soft); border-radius: 10px; padding: var(--wl-space-3); box-shadow: var(--wl-shadow-card); display: flex; flex-direction: column; gap: var(--wl-space-2); }
.wladza-programy-card-head { display: flex; align-items: center; gap: 10px; }
.wladza-programy-card h3 { margin: 0; font-size: var(--wl-h3); }
.wladza-programy-card h3 a { color: var(--wl-link); text-decoration: none; }
.wladza-programy-card h3 a:hover { text-decoration: underline; }
.wladza-programy-skrot { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--wl-surface-alt); border: 1px solid var(--wl-border-soft); color: var(--wl-muted); font-size: var(--wl-tiny); font-weight: 600; }
.wladza-programy-zajawka { color: var(--wl-text); font-size: var(--wl-body); }
.wladza-programy-link a { color: var(--wl-link); font-weight: 600; }
.wladza-programy-porownanie { padding: var(--wl-space-3) 0; }
.wladza-section-sub { color: var(--wl-muted); font-size: var(--wl-small); }
.wladza-party-program .wladza-placeholder { color: var(--wl-muted-2); font-style: italic; }

@media (max-width: 768px) {
    .wladza-programy-grid { grid-template-columns: 1fr; }
}

/* ==================================================================
 * Fala C — F-13 strona „Porównanie programów” (page-porownanie-
 * programow.php): formularz GET (checkboxy partii na kartach + select
 * kategorii) i serwerowa macierz side-by-side. Tokeny --wl-* (dark mode
 * automatyczny), WCAG 2.2 AA: widoczny focus na każdym sterowniku,
 * tabela semantyczna (caption, th scope, region scrollowalny).
 * Zwijanie <768px: wiersze jako karty, partia z data-label, linki do
 * profili jako żetony. Tylko układ — strona działa bez JS.
 * ================================================================== */
.wladza-programy-pickset { border: 0; padding: 0; margin: 0 0 var(--wl-space-2); }
.wladza-programy-pickset legend { font-weight: 600; color: var(--wl-heading); padding: 0; margin-bottom: var(--wl-space-2); }
.wladza-programy-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--wl-space-2); }
.wladza-programy-pick-card { display: flex; align-items: center; gap: 10px; padding: 10px 12px; min-height: 44px; background: var(--wl-surface); border: 1px solid var(--wl-border-strong); border-radius: 8px; cursor: pointer; }
.wladza-programy-pick-card:hover { background: var(--wl-surface-alt); }
.wladza-programy-pick-card input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--wl-primary); flex: none; }
.wladza-programy-pick-card input[type="checkbox"]:focus-visible { outline: 2px solid var(--wl-focus); outline-offset: 2px; }
.wladza-programy-pick-name { font-size: var(--wl-body); color: var(--wl-text); }
.wladza-programy-form .wladza-compare-field { margin-top: var(--wl-space-2); max-width: 360px; }

.wladza-programy-matrix-wrap { margin-top: var(--wl-space-3); overflow-x: auto; }
.wladza-programy-matrix-wrap:focus-visible { outline: 2px solid var(--wl-focus); outline-offset: 4px; }
.wladza-programy-matrix { width: 100%; min-width: 640px; border-collapse: collapse; background: var(--wl-surface); border: 1px solid var(--wl-border-soft); }
.wladza-programy-matrix caption { text-align: left; color: var(--wl-muted); font-size: var(--wl-small); padding: 0 0 var(--wl-space-2); }
.wladza-programy-matrix th,
.wladza-programy-matrix td { border: 1px solid var(--wl-border-soft); padding: var(--wl-space-2) var(--wl-space-3); vertical-align: top; text-align: left; }
.wladza-programy-matrix thead th { background: var(--wl-surface-alt); color: var(--wl-heading); font-size: var(--wl-small); }
.wladza-programy-matrix thead th a { color: var(--wl-link); text-decoration: none; }
.wladza-programy-matrix thead th a:hover { text-decoration: underline; }
.wladza-programy-matrix tbody th[scope="row"] { background: var(--wl-surface-alt); color: var(--wl-muted); font-size: var(--wl-tiny); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; width: 130px; }
.wladza-cytat { margin: 0; padding: 0 0 0 12px; border-left: 3px solid var(--wl-border-strong); color: var(--wl-text); font-size: var(--wl-body); }
.wladza-cytat p { margin: 0; }
.wladza-cytat + .wladza-cytat { margin-top: var(--wl-space-2); }
.wladza-cytat-zrodlo { margin: 6px 0 0; color: var(--wl-muted); font-size: var(--wl-tiny); }
.wladza-cytat-zrodlo a { color: var(--wl-link); }
.wladza-programy-soon { margin-top: var(--wl-space-3); padding: var(--wl-space-3); background: var(--wl-surface-muted); border: 1px dashed var(--wl-border-strong); border-radius: 10px; color: var(--wl-muted); }
.wladza-programy-soon p { margin: 0; }
.wladza-programy-soon strong { color: var(--wl-heading); }

@media (max-width: 768px) {
    .wladza-programy-matrix { min-width: 0; }
    .wladza-programy-matrix thead { display: block; border: 0; }
    .wladza-programy-matrix thead tr { display: block; }
    .wladza-programy-matrix thead th { display: inline-block; margin: 0 var(--wl-space-1) var(--wl-space-1) 0; border-radius: 999px; background: var(--wl-surface-alt); }
    .wladza-programy-matrix thead th.wladza-programy-matrix-kat { display: none; }
    .wladza-programy-matrix tbody,
    .wladza-programy-matrix tbody tr { display: block; }
    .wladza-programy-matrix tbody tr { margin-bottom: var(--wl-space-2); border: 1px solid var(--wl-border-soft); border-radius: 10px; background: var(--wl-surface); }
    .wladza-programy-matrix tbody th[scope="row"] { display: block; width: auto; border-radius: 10px 10px 0 0; border-bottom: 1px solid var(--wl-border-soft); }
    .wladza-programy-matrix tbody td { display: block; border: 0; border-top: 1px solid var(--wl-border-soft); }
    .wladza-programy-matrix tbody td::before { content: attr(data-label); display: block; margin-bottom: 4px; font-weight: 600; font-size: var(--wl-small); color: var(--wl-heading); }
}

/* -- R4-3.7: druk — sekcje <details> profilu posła drukują się rozwinięte.
 *    Treść zamkniętych sekcji jest w DOM; bez tej reguły na papier zostało
 *    samo summary. Dwa mechanizmy, bo przeglądarki ukrywają treść details
 *    różnie: display:none na dzieciach (Firefox/Safari/starszy Chrome)
 *    albo content-visibility:hidden na wewnętrznym ::details-content
 *    (Chromium 131+). Reguły są niezależne — nieobsługiwany selektor lub
 *    pseudoelement jest po prostu ignorowany. Summary zostaje jako
 *    nagłówek sekcji; sekcje otwarte drukują się jak dotychczas. -- */
@media print {
    details:not([open]) > *:not(summary) {
        display: block;
    }
    details:not([open])::details-content {
        content-visibility: visible;
    }
}
