/* Importujemy czcionkę Oswald */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;700&display=swap');

body {
    font-family: 'Oswald', sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    color: #121212;
    background-color: #ffffff; /* Białe tło strony */
}

header, nav, main, footer {
    padding: 0px 20px;
}

header {
    background-image: url('assets/images/tlo.jpg');
    background-size: cover;
    background-position: center bottom; /* Zmienione na 'center top' */
    background-repeat: no-repeat;
    position: relative;
    padding: 10px 0;
    margin: 0;
    height: auto; /* Dodane, aby header dostosował się do zawartości */
    overflow: visible; /* Allow dropdowns to show */
    z-index: 20; /* Ensure header is above user-toolbar */
}

header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(18, 69, 150, 0.1), rgba(3, 31, 74, 0.1));
    z-index: 1;
}

/* Twarde wymuszenie ukrycia elementów z atrybutem hidden
   (bez tego czasem niewidzialne panele mogą blokować kliknięcia) */
[hidden]{
    display: none !important;
}

/* Desktop smart search: kiedy ukryte, nie może przechwytywać klików */
.nav-search-panel[hidden],
.nav-search-dropdown[hidden]{
    display: none !important;
    pointer-events: none !important;
}

.header-content {
    position: relative;
    z-index: 20; /* Increased to stay above user-toolbar (z-index: 3) */
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 20px;
}

/* Gość: przycisk logowania nad nawigacją (prawy górny róg) */
.header-content--guest .header-right{
    position: absolute;
    top: 10px;
    right: 20px;
    margin-left: 0;
    z-index: 30;
}

.header-content::after {
    content: '';
    position: absolute;

    left: 20px;
    right: 20px;
    height: 1px;
    background: linear-gradient(
        to right,
        rgba(161, 171, 255, 0),
        rgba(161, 171, 255, 0.7) 30%,
        rgba(161, 171, 255, 0)
    );
    z-index: 1;
}

h1 {
    margin: 0;
    padding: 0;
    line-height: 1;
}

h1 a {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.logo {
    height: 130px;
    width: auto;
    transition: height 0.3s ease;
    margin-bottom: -10px; /* Dodajemy ujemny margines, aby logo sięgało dolnej krawędzi */
}

.sticky-header .sticky-logo {
    height: 55px; /* Zwiększamy wysokość z 30px na 40px dla sticky header */
}

.nav-container {
    flex-grow: 1;
    display: flex;
    flex-direction: column; /* Dodajemy, aby móc użyć justify-content */
    justify-content: flex-end; /* Dosuwamy zawartość na dół */
    margin-left: 20px;
    position: relative;
    z-index: 2;
    align-self: stretch; /* Rozciągamy na całą wysokość nagłówka */
}

nav {
    width: 100%;
    display: flex;
    align-items: flex-end; /* Wyrównujemy nawigację do dołu */
}

nav ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    margin-left: 20px; /* Dodajemy margines z lewej strony, aby odsunąć nawigację od logo */
}

nav ul li {
    margin: 0;
    position: relative;
    padding: 0 10px;
}

nav ul li:not(:first-child)::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 1px;
    width: 1px;
    background-color: rgba(161, 171, 255, 0.5);
}

nav ul li a {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.7em;
    padding: 8px 5px;
    border-radius: 3px 3px 0 0;
    font-family: 'Oswald', sans-serif;
    display: block;
    line-height: 1;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    white-space: nowrap; /* Prevent text and icons from wrapping to new line */
}

nav ul li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: -10px;
    right: -10px;
    height: 3px;
    background-color: transparent;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease, background-color 0.3s ease;
    z-index: 1; /* Upewnij się, że pasek jest nad innymi elementami */
}

nav ul li a:hover::after,
nav ul li a.active::after {
    transform: scaleX(1);
}

/* Kolory dla poszczególnych sekcji */
nav ul li a[href="index.php"]:hover::after,
nav ul li a[href="index.php"].active::after { background-color: #c70000; }

nav ul li a[href="opinion.php"]:hover::after,
nav ul li a[href="opinion.php"].active::after { background-color: #e05e00; }

nav ul li a[href="sport.php"]:hover::after,
nav ul li a[href="sport.php"].active::after { background-color: #0084c6; }

nav ul li a[href="culture.php"]:hover::after,
nav ul li a[href="culture.php"].active::after { background-color: #a1845c; }

nav ul li a[href="lifestyle.php"]:hover::after,
nav ul li a[href="lifestyle.php"].active::after { background-color: #bb3b80; }

/* Kolory dla nowych pozycji menu */
/* Inwestycje - niebieski */
nav ul li.dropdown:has(a[href="#"]):has(a:contains("Inwestycje")) a:hover::after,
nav ul li.dropdown:has(a[href="#"]):has(a:contains("Inwestycje")) a.active::after,
nav ul li:has(a[href*="Inwestycje"]) a:hover::after,
nav ul li:has(a[href*="Inwestycje"]) a.active::after { background-color: #0066cc; }

/* Gospodarka - zielony */
nav ul li.dropdown:has(a[href="#"]):has(a:contains("Gospodarka")) a:hover::after,
nav ul li.dropdown:has(a[href="#"]):has(a:contains("Gospodarka")) a.active::after,
nav ul li:has(a[href*="Gospodarka"]) a:hover::after,
nav ul li:has(a[href*="Gospodarka"]) a.active::after { background-color: #4caf50; }

/* Ludzie Biznesu - pomarańczowy */
nav ul li:has(a[href*="business_people"]) a:hover::after,
nav ul li:has(a[href*="business_people"]) a.active::after,
nav ul li:has(a[href*="business_person"]) a:hover::after,
nav ul li:has(a[href*="business_person"]) a.active::after { background-color: #ff9800; }

/* Po Godzinach - różowy */
nav ul li:has(a[href*="Wolny_czas"]) a:hover::after,
nav ul li:has(a[href*="Wolny_czas"]) a.active::after { background-color: #e91e63; }

/* Mapa - fioletowy */
nav ul li a[href="map.php"]:hover::after,
nav ul li a[href="map.php"].active::after { background-color: #9c27b0; }

/* Alternatywne podejście - bezpośrednie selektory dla dropdownów */
/* Upewnij się, że efekt hover działa dla wszystkich pozycji menu */
#main-header nav ul li.dropdown > a:hover::after,
#main-header nav ul li.dropdown > a.active::after,
.sticky-header nav ul li.dropdown > a:hover::after,
.sticky-header nav ul li.dropdown > a.active::after { 
    background-color: #4caf50 !important;
    transform: scaleX(1) !important;
}

/* Upewnij się, że efekt hover działa dla pozostałych pozycji */
#main-header nav ul li:not(.dropdown) > a:hover::after,
#main-header nav ul li:not(.dropdown) > a.active::after,
.sticky-header nav ul li:not(.dropdown) > a:hover::after,
.sticky-header nav ul li:not(.dropdown) > a.active::after {
    transform: scaleX(1) !important;
}

/* Kolory dla konkretnych pozycji menu */
#main-header nav ul li a[href="map.php"]:hover::after,
#main-header nav ul li a[href="map.php"].active::after,
.sticky-header nav ul li a[href="map.php"]:hover::after,
.sticky-header nav ul li a[href="map.php"].active::after { 
    background-color: #9c27b0 !important; 
}

/* Ludzie Biznesu - pomarańczowy */
/* Używamy selektorów atrybutów z częściowym dopasowaniem do URL */
#main-header nav ul li a[href*="business_people"]:hover::after,
#main-header nav ul li a[href*="business_people"].active::after,
#main-header nav ul li a[href*="business_person"]:hover::after,
#main-header nav ul li a[href*="business_person"].active::after,
.sticky-header nav ul li a[href*="business_people"]:hover::after,
.sticky-header nav ul li a[href*="business_people"].active::after,
.sticky-header nav ul li a[href*="business_person"]:hover::after,
.sticky-header nav ul li a[href*="business_person"].active::after { 
    background-color: #ff9800 !important; 
    transform: scaleX(1) !important;
}

/* Po Godzinach - różowy */
#main-header nav ul li a[href*="Wolny"]:hover::after,
#main-header nav ul li a[href*="Wolny"].active::after,
#main-header nav ul li a[href*="Hotele"]:hover::after,
#main-header nav ul li a[href*="Hotele"].active::after,
.sticky-header nav ul li a[href*="Wolny"]:hover::after,
.sticky-header nav ul li a[href*="Wolny"].active::after,
.sticky-header nav ul li a[href*="Hotele"]:hover::after,
.sticky-header nav ul li a[href*="Hotele"].active::after { 
    background-color: #e91e63 !important; 
    transform: scaleX(1) !important;
}


/* Dodatkowe style dla innych elementów strony */
main {
    max-width: 1200px;
    margin: 20px auto;
    padding: 0px;
}

.articles-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0;
    padding: 0;
    background-color: #ffffff;
}

.article-card {
    grid-column: span 3;
    background-color: #fff;
    border: none;
    border-radius: 0;
    overflow: hidden;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    position: relative;
    padding: 15px;
    animation: fadeInUp 0.6s ease-out;
    animation-fill-mode: both;
    animation-delay: calc(var(--animation-order) * 0.1s);
}

.article-card::before,
.article-card::after,
.article-card > :first-child::before,
.article-card > :first-child::after {
    content: '';
    position: absolute;
    background-color: #e0e0e0;
    transition: transform 0.3s ease;
}

/* Prawa krawędź (zawsze widoczna, niedokończona) */
.article-card::before {
    right: 0;
    top: 15px;
    bottom: 15px;
    width: 1px;
}

/* Dolna krawędź (zawsze widoczna, niedokończona) */
.article-card::after {
    left: 15px;
    right: 15px;
    bottom: 0;
    height: 1px;
}

/* Lewa krawędź (pojawia się po najechaniu) */
.article-card > :first-child::before {
    left: 0;
    top: 15px;
    bottom: 15px;
    width: 1px;
    transform: scaleY(0);
    transform-origin: top;
}

/* Górna krawędź (pojawia się po najechaniu) */
.article-card > :first-child::after {
    left: 15px;
    right: 15px;
    top: 0;
    height: 1px;
    transform: scaleX(0);
    transform-origin: left;
}

.article-card:hover > :first-child::before,
.article-card:hover > :first-child::after {
    transform: scale(1);
}

.article-card:nth-child(4n)::before {
    display: none; /* Ukrywamy prawą kreskę dla co czwartego kafelka */
}

.article-card:nth-last-child(-n+4)::after {
    display: none; /* Ukrywamy dolną kreskę dla ostatnich czterech kafelków */
}

.article-card.priority-2 {
    grid-column: span 6;
}

.article-card.priority-3 {
    grid-column: span 12;
}

.article-card-content {
    padding: 15px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.article-card-content h3 {
    margin: 0 0 10px;
    font-size: 1.2em; /* Zmniejszamy rozmiar czcionki */
    color: #000000;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    line-height: 1.2;
}

.article-card-content p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 0.9em;
    color: #666666;
    margin-bottom: 10px;
    flex-grow: 1;
}

.article-card-meta {
    font-size: 0.8em;
    color: #888;
    margin-top: auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.article-card-meta > * {
    margin-right: 10px;
}

.article-card-meta i {
    margin-right: 3px;
}

.article-card-meta .fa-comment {
    color: #0084c6;
}

.article-card-meta .fa-share-alt {
    color: #4caf50;
}

.category-tag {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 0.9em; /* Zwiększono rozmiar czcionki z 0.8em na 0.9em */
    font-weight: bold;
    color: #fff;
    margin-right: 10px;
}

.category-Wiadomości { background-color: #c70000 !important; }
.category-Biznes { background-color: #e05e00 !important; }
.category-Sport { background-color: #0084c6 !important; }
.category-Kultura { background-color: #a1845c !important; }
.category-Lifestyle { background-color: #bb3b80 !important; }

/* Upewniamy się, że kolory działają w większych kafelkach */
.article-card.priority-2 .category-tag.category-Wiadomości,
.article-card.priority-3 .category-tag.category-Wiadomości {
    background-color: #c70000 !important;
}

.article-card.priority-2 .category-tag.category-Biznes,
.article-card.priority-3 .category-tag.category-Biznes {
    background-color: #e05e00 !important;
}

.article-card.priority-2 .category-tag.category-Sport,
.article-card.priority-3 .category-tag.category-Sport {
    background-color: #0084c6 !important;
}

.article-card.priority-2 .category-tag.category-Kultura,
.article-card.priority-3 .category-tag.category-Kultura {
    background-color: #a1845c !important;
}

.article-card.priority-2 .category-tag.category-Lifestyle,
.article-card.priority-3 .category-tag.category-Lifestyle {
    background-color: #bb3b80 !important;
}

/* Style dla mapy lokalizacji w formularzach */
#location-map {
    z-index: 1;
}

#location-map .leaflet-container {
    font-family: 'Oswald', sans-serif;
}

#location-map .leaflet-popup-content-wrapper {
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

#location-map .leaflet-popup-content {
    margin: 15px;
    font-size: 14px;
}

.article-container {
    margin: 40px auto;
    padding: 0 20px;
    background-color: #ffffff;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    max-width: 1200px;
    width: 100%;
    box-sizing: border-box;
}

/* Strona artykułu: layout 2/3 + 1/3 */
.article-page-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    align-items: start;
    padding-top: 20px; /* taki sam odstęp jak boczne paddingi kontenera */
    padding-bottom: 20px;
}

.article-main {
    min-width: 0; /* Zapobiega overflow w gridzie */
}

.article-sidebar {
    min-width: 0;
    padding-left: 20px;
    border-left: 2px solid var(--category-light, #e0e0e0);
}

.article-sidebar-sticky {
    position: sticky;
    top: 100px;
}

.article-sidebar-block {
    padding: 0 0 20px 0;
}

.article-sidebar-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #333;
    margin: 20px 0 6px 0;
    padding-left: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    position: relative;
}

/* Pierwsza sekcja w sidebarze nie powinna mieć dodatkowego odstępu od góry */
.article-sidebar-sticky > .article-sidebar-block:first-child .article-sidebar-title {
    margin-top: 0;
}

.article-sidebar-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--category-primary, #124596);
    opacity: 0.85;
}

.article-sidebar-subtitle {
    margin: 0 0 14px 12px;
    font-size: 0.9rem;
    color: #666;
}

.article-sidebar-block--map .article-sidebar-title {
    margin-top: 0;
}

.article-sidebar-map {
    width: 100%;
    height: 200px;
    border-radius: 0px;
    overflow: hidden;
    background: #f3f3f3;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: none;
}

.article-sidebar-map .leaflet-control-attribution {
    font-size: 11px;
    opacity: 0.85;
}

.article-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid #eaeaea;
}

.article-sidebar-item {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #eaeaea;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.2s ease;
}

.article-sidebar-item:hover {
    background-color: var(--category-light, rgba(0, 0, 0, 0.01));
}

.article-sidebar-thumb {
    flex: 0 0 92px;
    width: 92px;
    height: 68px;
    overflow: hidden;
    border-radius: 8px;
    background: #f3f3f3;
    border: 1px solid rgba(0,0,0,0.06);
}

.article-sidebar-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.article-sidebar-item-body {
    min-width: 0;
    flex: 1;
}

.article-sidebar-item-title {
    font-family: 'Noticia Text', serif;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    color: #222;
    margin-bottom: 6px;
}

.article-sidebar-item-meta {
    font-size: 0.85rem;
    color: #777;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.article-sidebar-item-meta .category-tag {
    font-size: 0.75rem;
    line-height: 1;
    padding: 5px 8px;
    border-radius: 999px;
    font-weight: 700;
}

.article-sidebar-dot {
    color: #bbb;
}

.article-sidebar-empty {
    padding: 14px 0;
    color: #666;
    font-size: 0.95rem;
}

.article-sidebar-more {
    display: inline-block;
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid var(--category-light, #e0e0e0);
    border-radius: 10px;
    text-decoration: none;
    color: var(--category-accent, #124596);
    background: #fff;
    font-weight: 700;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.article-sidebar-more:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

.article-sidebar-ads {
    margin-top: 8px;
}

.article-ads-marker {
    font-family: 'Oswald', sans-serif;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #888;
    padding: 10px 0;
    border-top: 1px dashed rgba(0,0,0,0.18);
    border-bottom: 1px dashed rgba(0,0,0,0.18);
    text-align: center;
    background: linear-gradient(to right, rgba(0,0,0,0.02), rgba(0,0,0,0.0), rgba(0,0,0,0.02));
}

.article-sidebar-ad-slot {
    padding: 14px 0;
}

.article-sidebar-ad-slot .ad-container {
    /* Nadpisanie globalnego `.ad-container` (grid 6-kolumn) – w sidebarze to jest pojedynczy placement */
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    grid-template-columns: none;
    align-items: stretch;
}

.article-sidebar-ad-slot .ad-container.placeholder {
    /* Dla placementów bez dedykowanej wysokości (np. `article_sidebar`) */
    min-height: 250px;
    overflow: hidden;
}

.article-sidebar-ad-slot .ad-placeholder-link {
    /* Globalnie jest absolute – w sidebarze ma być w flow, żeby nie nachodziło na markery */
    position: static;
    height: auto;
}

@media (max-width: 980px) {
    .article-page-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .article-sidebar {
        padding-left: 0;
        border-left: none;
        border-top: 2px solid var(--category-light, #e0e0e0);
        padding-top: 10px;
    }

    .article-sidebar-sticky {
        position: static;
        top: auto;
    }
}
.article-top {
    padding: 20px 0;
    border-bottom: 1px solid #e0e0e0;
}
.article-title {
    font-family: 'Noticia Text', serif;
    font-size: 2.5em;
    color: #333;
    line-height: 1.2;
    margin-bottom: 10px;
    font-weight: 700;
}
.article-meta {
    font-size: 0.9em;
    color: #666;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-top: 10px;
}

.article-meta-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}
.article-content {
    font-family: 'Noticia Text', serif;
    font-size: 1.45em;
    font-weight: 400;
    line-height: 1.6;
    color: #333;
    padding: 20px 0;
    text-align: justify; /* Dodane justowanie tekstu */
    word-break: keep-all; /* Zapobiega łamaniu słów */
    overflow-wrap: break-word; /* Pozwala na łamanie bardzo długich słów */
}

/* Inline media in article body (subtelniejsza szerokość niż pełna strona) */
.article-content img,
.article-content video,
.article-content iframe {
    max-width: 100%;
    height: auto;
}
.article-content p > img:only-child,
.article-content p > a:only-child > img:only-child,
.article-content img {
    display: block;
    width: min(100%, 760px);
    margin: 14px auto;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.10);
}

/* Inline galerie w treści artykułu (2+ kolejne obrazki wstawione w edytorze) */
.article-inline-gallery{
    width: min(100%, 760px);
    margin: 16px auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}
.article-inline-gallery-item{
    min-width: 0;
}
.article-inline-gallery a{
    display: block;
}
.article-inline-gallery img{
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.10);
}
.article-inline-gallery-caption{
    margin-top: 8px;
    text-align: center;
    color: rgba(51,51,51,0.72);
    line-height: 1.3;
    font-family: 'Oswald', sans-serif;
    font-size: 0.92rem; /* stały rozmiar – nie dziedzicz 1.45em z .article-content */
}
.article-inline-gallery-caption em{ font-style: italic; }

/* Podpis pod pojedynczym zdjęciem w treści (poza galerią) */
.article-content p.img-caption{
    width: min(100%, 760px);
    margin: -6px auto 14px;
    text-align: center;
    color: rgba(51,51,51,0.72);
    line-height: 1.3;
    font-family: 'Oswald', sans-serif;
    font-size: 0.92rem;
}
.article-content p.img-caption em{ font-style: italic; }
@media (max-width: 520px){
    .article-inline-gallery{
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* Lightbox / modal podglądu zdjęć */
.img-modal{
    position: fixed;
    inset: 0;
    display: none;
    z-index: 99999;
}
.img-modal.is-open{ display: block; }
.img-modal-backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.78);
    opacity: 0;
    animation: imgModalFadeIn 160ms ease-out forwards;
}
.img-modal-dialog{
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
}
.img-modal-layout{
    width: min(92vw, 1280px);
    height: min(86vh, 720px);
    max-height: 86vh;
    display: grid;
    grid-template-columns: minmax(520px, 1fr) 360px;
    gap: 16px;
    align-items: center;
    overflow: hidden; /* żeby media/aside nie wychodziły poza layout */
}
.img-modal:not(.has-caption) .img-modal-layout{
    grid-template-columns: 1fr;
}
.img-modal-media{
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 0;
    max-height: 86vh;
}
.img-modal-image{
    max-width: 100%;
    max-height: 86vh; /* twardy limit na viewport */
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
    box-shadow: 0 18px 60px rgba(0,0,0,0.55);
    opacity: 0;
    transform: scale(0.97);
}
.img-modal.is-open .img-modal-image{
    animation: imgModalZoomIn 200ms cubic-bezier(.2,.9,.2,1) forwards;
}
.img-modal.is-open .img-modal-backdrop{
    animation: imgModalFadeIn 160ms ease-out forwards;
}

@keyframes imgModalZoomIn{
    from { opacity: 0; transform: scale(0.97); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes imgModalFadeIn{
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce){
    .img-modal.is-open .img-modal-image,
    .img-modal.is-open .img-modal-backdrop{
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
.img-modal-close{
    position: absolute;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(0,0,0,0.35);
    color: #fff;
    font-size: 28px;
    line-height: 40px;
    cursor: pointer;
}
.img-modal-close:hover{ background: rgba(0,0,0,0.55); }
.img-modal-caption{
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translateX(-50%);
    width: min(92vw, 1200px);
    color: rgba(255,255,255,0.92);
    font-family: 'Oswald', sans-serif;
    font-size: 0.95rem;
    text-align: center;
    text-shadow: 0 2px 10px rgba(0,0,0,0.65);
    padding: 0 10px;
}

.img-modal-side{
    align-self: stretch;
    display: flex;
    min-width: 0;
}
.img-modal-side-inner{
    width: 100%;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    overflow: auto;
    max-height: 86vh;
}
.img-modal-caption-text{
    color: rgba(255,255,255,0.92);
    font-family: 'Oswald', sans-serif;
    font-size: 1.02rem;
    line-height: 1.45;
    text-shadow: 0 2px 12px rgba(0,0,0,0.75);
    word-break: break-word;
    padding: 8px 4px;
}
.img-modal-caption-text em{ font-style: italic; }

@media (max-width: 980px){
    .img-modal-layout{
        height: 86vh;
        max-height: 86vh;
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr) auto;
        align-items: start;
    }
    .img-modal.has-caption .img-modal-image{ max-height: 56vh; }
    .img-modal:not(.has-caption) .img-modal-image{ max-height: 80vh; }
    .img-modal-side-inner{ max-height: 28vh; }
}
html.img-modal-open, body.img-modal-open{
    overflow: hidden;
}
.article-content figure {
    width: min(100%, 760px);
    margin: 16px auto;
}
.article-content figure img {
    width: 100%;
    margin: 0;
}
.article-content figcaption {
    font-family: 'Oswald', sans-serif;
    font-size: 0.82em;
    color: rgba(51,51,51,0.72);
    text-align: center;
    margin-top: 8px;
    line-height: 1.3;
}

/* Zmniejszone odstępy dla elementów w treści artykułu */
.article-content p {
    margin: 0 0 0.85em 0;
    padding: 0;
    line-height: 1.6;
    orphans: 3; /* Minimum 3 linie na końcu strony */
    widows: 3; /* Minimum 3 linie na początku strony */
}

/* Większy odstęp po paragrafie przed nagłówkiem */
.article-content p + h2,
.article-content p + h3,
.article-content p + h4 {
    margin-top: 1.6em;
}

/* Większy odstęp po nagłówku przed paragrafem */
.article-content h2 + p,
.article-content h3 + p,
.article-content h4 + p {
    margin-top: 0;
}

.article-content h2 {
    font-family: 'Noticia Text', serif;
    font-size: 1.4em;
    font-weight: 700;
    color: #124596;
    margin: 1.35em 0 0.55em 0;
    padding: 0;
    line-height: 1.3;
    page-break-after: avoid; /* Zapobiega łamaniu strony bezpośrednio po nagłówku */
}

.article-content h2:first-child {
    margin-top: 0; /* Pierwszy nagłówek nie potrzebuje odstępu na górze */
}

.article-content h3 {
    font-family: 'Noticia Text', serif;
    font-size: 1.25em;
    font-weight: 700;
    color: #124596;
    margin: 1.2em 0 0.5em 0;
    padding: 0;
    line-height: 1.3;
    page-break-after: avoid;
}

.article-content h3:first-child {
    margin-top: 0;
}

.article-content h4 {
    font-family: 'Noticia Text', serif;
    font-size: 1.15em;
    font-weight: 700;
    color: #124596;
    margin: 1.05em 0 0.45em 0;
    padding: 0;
    line-height: 1.3;
    page-break-after: avoid;
}

.article-content h4:first-child {
    margin-top: 0;
}

.article-content ul,
.article-content ol {
    margin: 12px 0 12px 20px;
    padding: 0;
}

/* Odstępy przed i po listach */
.article-content p + ul,
.article-content p + ol {
    margin-top: 12px;
}

.article-content ul + p,
.article-content ol + p {
    margin-top: 12px;
}

.article-content h2 + ul,
.article-content h2 + ol,
.article-content h3 + ul,
.article-content h3 + ol,
.article-content h4 + ul,
.article-content h4 + ol {
    margin-top: 12px;
}

.article-content li {
    margin: 2px 0;
    padding: 0;
    line-height: 1.3;
}

.article-content ul li {
    list-style-type: disc;
}

.article-content ol li {
    list-style-type: decimal;
}

.article-content strong {
    font-weight: 600;
}

.article-content em {
    font-style: italic;
}
.article-image {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    margin: 20px 0;
}

.weather-widget {
    font-family: 'Oswald', sans-serif;
    color: #333;
    background: #ffffff;
    border-radius: 0;
    padding: 12px;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 100%;
    box-shadow: none;
    box-sizing: border-box;
    border: 1px solid #e0e0e0;
    overflow: visible;
}

.weather-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #666;
    margin-bottom: 4px;
}

.weather-city {
    font-weight: 600;
    color: #333;
}

.weather-main {
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.weather-main > * {
    flex: 1;
}

.weather-icon img {
    width: 45px;
    height: 45px;
}

.weather-temp-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.weather-temp {
    font-size: 2em;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 2px;
    color: #333;
}

.weather-desc {
    font-size: 0.8em;
    text-transform: capitalize;
    color: #666;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.weather-mini-metrics {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.75em;
    color: #666;
    padding: 6px 0 4px;
    border-top: 1px solid #e0e0e0;
    margin-bottom: 0;
}

.weather-mini-metrics span {
    display: flex;
    align-items: center;
    gap: 6px;
}

.weather-mini-metrics span i {
    margin-right: 4px;
}

.weather-updated {
    font-size: 0.7em;
    color: #999;
    text-align: right;
}

.weather-mini-metrics span i {
    font-size: 0.85em;
}

.ad-banner {
    width: 100%;
    height: 90px;
    background-color: #f0f0f0;
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Arial', sans-serif;
    font-size: 1.2em;
    color: #888;
    border: 1px solid #ddd;
}

.ad-outer-container {
    position: relative;
}

.promo-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(160px, 1fr));
    gap: 20px;
    align-items: stretch;
}

.promo-tile {
    background-color: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
    position: relative;
    overflow: hidden;
}

.promo-tile.promo-weather-tile {
    overflow: visible;
    min-height: auto;
}

.promo-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.promo-tile:not(.promo-weather-tile):hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 18px rgba(0,0,0,0.15);
    background-color: #fff;
}

/* Kafelek aktywnej reklamy (auto-rotacja) – jak hover */
.promo-tile.promo-tile--active:not(.promo-weather-tile) {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 18px rgba(0,0,0,0.15);
    background-color: #fff;
    z-index: 3;
}

.promo-tile.promo-placeholder {
    background: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 10px, #ffffff 10px, #ffffff 20px);
    color: #666;
    font-weight: 600;
    text-decoration: none;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.promo-tile.promo-placeholder .placeholder-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
}

.placeholder-label {
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #999;
}

.promo-tile.promo-placeholder strong {
    font-size: 1.1em;
    color: #124596;
}

.placeholder-cta {
    font-size: 0.85em;
    color: #c70000;
}

.ad-container.placeholder {
    background: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 10px, #ffffff 10px, #ffffff 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #ddd;
    position: relative;
    /* Domyślna minimalna wysokość usunięta, wysokość będzie sterowana klasami specyficznymi */
}

.ad-container.ad-home_middle.placeholder {
    width: 100%;
    height: 200px;
}

/* Pojedynczy baner (home_middle) – nie może dziedziczyć grid layoutu `.ad-container` */
.ad-container.ad-home_middle {
    display: block;
    width: 100%;
    grid-template-columns: none;
    gap: 0;
    margin: 0;
    position: relative;
}

.ad-container.ad-home_middle a {
    display: block;
    width: 100%;
}

.ad-container.ad-home_middle img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    /* Baner reklamowy na pełną szerokość przeglądarki w telefonie */
    .home-middle-banner {
        max-width: none !important;
        width: 100vw;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        position: relative;
        z-index: 2;
    }

    /* Gdy sticky header jest widoczny, nie przykrywaj treści pod nim */
    html.sticky-header-visible main {
        padding-top: var(--section-sticky-top, 0px);
    }

    .ad-outer-container {
        position: relative;
        z-index: 2;
    }
}

.ad-container.ad-sidebar_right.placeholder {
    width: 100%;
    height: 250px;
    margin: 0 auto;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.ad-container.ad-article_bottom.placeholder {
    width: 100%;
    height: 200px;
}

.ad-placeholder-link {
    text-decoration: none;
    color: inherit;
    width: 100%;
    height: 100%;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute;
    top: 0;
    left: 0;
}

.ad-container.placeholder .placeholder-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
}

/* News Cards - klikalne kafelki */
.news-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.news-card {
    display: flex;
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    transition: box-shadow 0.3s, transform 0.2s;
    cursor: pointer;
}

.news-card-link:hover .news-card {
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.news-card img {
    width: 240px;
    object-fit: cover;
    flex-shrink: 0;
}

.news-content {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-content .category {
    font-size: 0.8em;
    text-transform: uppercase;
    color: #124596;
    font-weight: bold;
    margin-bottom: 5px;
}

.news-content h3 {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    margin: 0 0 10px 0;
    font-size: 1.4em;
    line-height: 1.2;
    color: #333;
    text-decoration: none;
}

.news-card-link:hover .news-content h3 {
    color: #124596;
}

.news-content p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    color: #666;
    font-size: 0.95em;
    flex: 1;
    margin-bottom: 10px;
}

.news-content .date {
    font-size: 0.8em;
    color: #999;
}

.articles-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ad-container.placeholder .placeholder-label {
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #999;
}

.ad-container.placeholder strong {
    font-size: 1.2em;
    color: #124596;
}

.ad-container.placeholder .placeholder-cta {
    font-size: 0.8em;
    color: #c70000;
    margin-top: 2px;
}

.promo-tile.promo-weather-tile {
    background: transparent;
    cursor: default;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    overflow: hidden;
    aspect-ratio: 1/1;
    display: flex;
    align-items: stretch;
}

.promo-tile.promo-weather-tile .weather-widget {
    width: 100%;
    height: 100%;
    padding-bottom: 12px;
    box-sizing: border-box;
    overflow: hidden;
}

#ad-expanded-area {
    margin-top: 20px;
    border: 1px solid #ddd;
    background: #fff;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    padding: 0;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
}

#ad-expanded-area.active {
    max-height: 500px;
    opacity: 1;
    padding: 0;
}

#ad-expanded-area.weather-mode.active {
    padding: 12px;
    max-height: 450px;
    overflow-y: auto;
}

#ad-expanded-area a {
    display: block;
    position: relative;
}

#ad-expanded-area .ad-expanded-img {
    width: 100%;
    height: auto;
    display: block;
}

/* Cross-fade przejść między reklamami (bez „białego mignięcia”) */
#ad-expanded-area .ad-xfade-base{
    opacity: 1;
}
#ad-expanded-area .ad-xfade-top{
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 260ms ease;
}
#ad-expanded-area.is-xfade .ad-xfade-top{ opacity: 1; }

/* Reset stanu cross-fade bez „drugiej animacji” */
#ad-expanded-area.is-xfade-reset .ad-xfade-base,
#ad-expanded-area.is-xfade-reset .ad-xfade-top{
    transition: none !important;
}

#ad-expanded-area .weather-expanded {
    display: none;
}

#ad-expanded-area.weather-mode a {
    display: none;
}

#ad-expanded-area.weather-mode .weather-expanded {
    display: block;
}

#ad-expanded-area.weather-mode {
    background: #ffffff;
    color: #333;
    border-color: #e0e0e0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.weather-expanded {
    color: #333;
    padding: 0;
    width: 100%;
}

#ad-expanded-area.weather-mode .weather-expanded {
    color: #333;
}

.weather-expanded-head {
    display: none;
}

.weather-location-feels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e0e0e0;
}

#weather-location-expanded {
    font-size: 1rem;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.weather-feels {
    font-size: 0.9rem;
    font-weight: 500;
    margin: 0;
    padding: 4px 8px;
    background: #f5f5f5;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 3px;
    color: #666;
    white-space: nowrap;
}

#ad-expanded-area.weather-mode .weather-feels {
    background: #f5f5f5;
    color: #666;
}

.weather-details {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(420px, 1.35fr);
    gap: 14px;
    margin-top: 0;
    padding: 0;
}

.weather-current-expanded {
    display: grid;
    grid-template-columns: 72px 1fr;
    align-items: start;
    gap: 12px;
    padding: 14px;
    background: #f9f9f9;
    border-radius: 6px;
    min-width: 0;
    font-size: 15px;
}

#ad-expanded-area.weather-mode .weather-current-expanded {
    background: #f9f9f9;
}

#weather-icon-expanded {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

#weather-icon-expanded img {
    width: 64px;
    height: 64px;
    display: block;
    margin: 0;
    padding: 0;
}

.weather-main-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.weather-main-info small {
    font-size: 0.7em;
    color: #999;
    margin-top: 1px;
    margin-bottom: 0;
}

#weather-temp-expanded {
    font-size: 2.35rem;
    font-weight: 700;
    line-height: 1;
    margin: 0;
    display: block;
    color: #333;
}

#weather-desc-expanded {
    font-size: 1rem;
    text-transform: capitalize;
    margin: 0;
    color: #666;
    font-weight: 500;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.weather-additional-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 14px;
    font-size: 0.95rem;
    color: #666;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid #e0e0e0;
}

#ad-expanded-area.weather-mode .weather-additional-info {
    border-top-color: #e0e0e0;
    color: #666;
}

.weather-additional-info span {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 1px 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

.weather-additional-info span i {
    width: 16px;
    text-align: center;
    color: #666;
    flex-shrink: 0;
    font-size: 1rem;
}

.weather-forecast-container {
    padding: 14px;
    background: #f9f9f9;
    border-radius: 6px;
    min-width: 0;
}

@media (max-width: 980px){
    .weather-details{
        grid-template-columns: 1fr;
    }
}

#ad-expanded-area.weather-mode .weather-forecast-container {
    background: #f9f9f9;
}

.weather-forecast-container h4 {
    margin: 0 0 8px 0;
    padding: 0;
    text-transform: uppercase;
    font-size: 0.7em;
    letter-spacing: 0.06em;
    color: #666;
    font-weight: 600;
}

#weather-forecast {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
}

.forecast-day {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 8px 6px;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.forecast-day:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.forecast-date {
    font-weight: 600;
    letter-spacing: 0.05em;
    color: #124596;
    text-transform: uppercase;
    margin: 0 0 2px 0;
    padding: 0;
    font-size: 0.75em;
}

.forecast-icon {
    margin: 2px 0;
}

.forecast-icon img {
    width: 35px;
    height: 35px;
    margin: 0 auto;
    display: block;
}

.forecast-desc {
    font-size: 0.75em;
    text-transform: capitalize;
    margin: 1px 0;
    padding: 0;
    min-height: 1.8em;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.2;
}

.forecast-temp {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    font-size: 0.9em;
    font-weight: 600;
    margin: 2px 0;
    padding: 0;
}

.temp-max {
    color: #d62828;
}

.temp-min {
    color: #1976D2;
}

.forecast-details {
    font-size: 0.7em;
    color: #666;
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 4px;
    padding-top: 6px;
    border-top: 1px solid #e0e0e0;
}

#ad-expanded-area.weather-mode .forecast-details {
    border-top-color: #e0e0e0;
    color: #666;
}

.forecast-details > div {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    margin: 0;
    padding: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.2;
}

.forecast-details i {
    width: 12px;
    text-align: center;
    color: #666;
    flex-shrink: 0;
    font-size: 0.9em;
}

#ad-expanded-area.weather-mode .weather-expanded-head small {
    color: #666;
}
#ad-expanded-area.weather-mode .weather-feels {
    color: #333;
}
#ad-expanded-area.weather-mode .forecast-date {
    color: #124596;
}

#ad-expanded-area.weather-mode .forecast-day {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

#ad-expanded-area.weather-mode .forecast-desc {
    color: #666;
}
#ad-expanded-area.weather-mode .forecast-details {
    color: #666;
}

.article-card.priority-2,
.article-card.priority-3 {
    display: flex;
    flex-direction: row;
    height: 300px;
}

.article-card.priority-2 {
    grid-column: span 6;
}

.article-card.priority-3 {
    grid-column: span 12;
}

.article-card.priority-2 .article-card-content,
.article-card.priority-3 .article-card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 20px;
}

.article-card.priority-3 .article-card-content p {
    font-family: 'Noticia Text', serif !important;
    font-weight: 400 !important;
}

.article-card.priority-2 .article-card-content p {
    font-family: 'Noticia Text', serif !important;
    font-weight: 400 !important;
}

.article-card.priority-2 .article-card-image,
.article-card.priority-3 .article-card-image {
    width: 50%;
    background-color: #e0e0e0;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #888;
    font-size: 1em;
}



.article-card.priority-2 h3,
.article-card.priority-3 h3 {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.8em;
    margin-bottom: 10px;
}

.article-card.priority-2 p,
.article-card.priority-3 p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.1em;
    margin-bottom: 20px;
    flex-grow: 1;
}

.article-card.priority-2 .article-card-meta,
.article-card.priority-3 .article-card-meta {
    margin-top: auto;
}

/* Styl dla zwykłych kafelków */
.article-card:not(.priority-2):not(.priority-3) {
    flex-direction: column;
    height: auto;
}

.article-card:not(.priority-2):not(.priority-3) .article-card-image {
    width: 100%;
    height: 150px;
}

.article-card:not(.priority-2):not(.priority-3) .article-card-content {
    padding: 15px;
}

.article-card:not(.priority-2):not(.priority-3) h3 {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.3em;
}

.article-card:not(.priority-2):not(.priority-3) p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 0.9em;
}

.article-card-image {
    width: 100%;
    height: 150px; /* Możesz dostosować wysokość */
    background-color: #e0e0e0;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #888;
    font-size: 1em;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Dostosowanie dla większych kafelków */
.article-card.priority-2 .article-card-image,
.article-card.priority-3 .article-card-image {
    height: 300px; /* Możesz dostosować wysokość dla większych kafelków */
}

.article-card.priority-2 h3,
.article-card.priority-3 h3 {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    margin-bottom: 0px;
}

.article-card.priority-3 h3 {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 2.8em; /* Zwiększono do 2.8em dla priorytetu 3 */
}

.article-card.priority-2 p,
.article-card.priority-3 p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.1em;
    margin-bottom: 20px;
    flex-grow: 1;
}

.article-card.priority-2 .article-card-meta,
.article-card.priority-3 .article-card-meta {
    margin-top: auto;
}

/* Styl dla zwykłych kafelków */
.article-card:not(.priority-3) p {
    font-size: 0.9em;
    margin-bottom: 9px; /* Poprawka: usunięto konflikt w poprzednim kodzie */
    flex-grow: 1; /* Poprawka: dodano flex-grow dla spójności */
}

.article-card.priority-3 p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.1em;
    margin-bottom: 9px;
    flex-grow: 1;
}

.article-card.priority-2 p {
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    margin-bottom: 9px;
    flex-grow: 1;
    margin-top: 5px;
}

.article-author {
    font-size: 1em;
    color: #c70000;
    font-weight: bold;
    margin-bottom: 0px;
    display: block;
    letter-spacing: 0px;
}

.article-card-content h3 {
    margin: 0 0 10px;
    font-size: 1.3em;
    color: #000000;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    line-height: 1.2;
}

footer {
    background: linear-gradient(to top, #052962, #031f4a);
    color: #ffffff;
    padding: 44px 20px 22px 20px;
    margin-top: 44px;
}

.footer-content {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
    gap: 26px;
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
}

.footer-section {
    min-width: 0;
}

.footer-logo {
    text-align: left;
}

.footer-logo-image {
    max-width: 190px;
    height: auto;
    display: block;
}

.footer-section h3 {
    font-size: 0.9rem;
    margin: 0 0 12px 0;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    font-weight: 800;
    opacity: 0.95;
}

.footer-section ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.footer-section ul li {
    margin-bottom: 9px;
}

.footer-section ul li a {
    color: rgba(255,255,255,0.74);
    text-decoration: none;
    transition: color 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
    display: inline-block;
}

.footer-section ul li a:hover {
    color: #ffffff;
    transform: translateX(2px);
}

/* Sekcja kontaktowa w stopce */
.footer-contact .contact-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-contact .contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 0;
}

.footer-contact .contact-item i {
    color: #ffffff;
    font-size: 1.05em;
    width: 18px;
    text-align: center;
    margin-top: 2px;
    flex-shrink: 0;
    opacity: 0.92;
}

.footer-contact .contact-item a {
    color: rgba(255,255,255,0.74);
    text-decoration: none;
    transition: color 0.3s ease;
    line-height: 1.5;
}

.footer-contact .contact-item a:hover {
    color: #ffffff;
}

.footer-contact .contact-address {
    color: rgba(255,255,255,0.74);
    line-height: 1.6;
}

.footer-bottom {
    text-align: center;
    margin-top: 26px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom p {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.70);
    margin: 0;
}

@media (max-width: 980px){
    .footer-content{
        grid-template-columns: 1fr 1fr;
        gap: 22px;
    }
}

@media (max-width: 620px){
    footer{ padding: 36px 16px 18px 16px; }
    .footer-content{
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .footer-logo-image{ max-width: 170px; }
}

.comments-section {
    margin-top: 2rem;
    padding: 2rem;
    padding-right: 2rem; /* Upewnij się, że padding po prawej jest ustawiony */
    background-color: #f8f8f8;
    border-radius: 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

.comments-section h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #333;
}

.comment {
    background-color: white;
    padding: 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.comment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.author-info {
    margin-right: 10px; /* Dodaje odstęp po prawej stronie informacji o autorze */
}

.comment-author {
    /* Usuń lub zmodyfikuj kolor, jeśli jest tu zdefiniowany */
    font-weight: bold;
}

.comment-date {
    color: #777;
    font-size: 0.8rem;
}

.comment-content {
    color: #555;
    line-height: 1.5;
}

.error-message {
    color: #d9534f;
    font-style: italic;
}

.comment-reactions {
    display: flex;
    align-items: center;
    margin-top: 10px;
}

.upvotes, .downvotes {
    margin-right: 15px;
}

.delete-comment {
    cursor: pointer;
    color: #ff4136;
    margin-left: auto;
}

.delete-comment:hover {
    color: #d50000;
}

.comment-reactions i {
    margin-right: 5px;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.article-card {
    animation: fadeInUp 0.6s ease-out;
    animation-fill-mode: both;
    animation-delay: calc(var(--animation-order) * 0.1s);
}

.comment-reactions i {
    cursor: pointer;
    transition: color 0.3s ease;
}

.comment-reactions i.fas {
    font-weight: 900;
}

.upvotes i:hover, .upvotes i.fas {
    color: #28a745;
}

.downvotes i:hover, .downvotes i.fas {
    color: #dc3545;
}

.ad-outer-container {
    position: relative;
    margin-bottom: 0px;
    max-width: 1200px; /* Dodajemy maksymalną szerokość */
    margin-left: auto; /* Centrujemy kontener */
    margin-right: auto;
}

.ad-container {
    display: grid;
    grid-template-columns: repeat(6, minmax(160px, 1fr));
    gap: 20px;
    align-items: stretch;
    margin-bottom: 0px;
}

.ad-square {
    width: calc((100% - 100px) / 6); /* Odejmujemy łączną szerokość odstępów i dzielimy przez 6 */
    aspect-ratio: 1/1;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Arial', sans-serif;
    color: #888;
    border: 1px solid #ddd;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
    position: relative;
    z-index: 2;
}

/* Usuwamy hover efekty dla weather-widget */
.ad-square.weather-widget {
    background: white;
    cursor: default;
    transform: none !important; /* Zapobiega transformacjom */
    box-shadow: none !important; /* Zapobiega cieniom */
    transition: none; /* Usuwa wszystkie animacje */
}

.ad-square:not(.weather-widget):hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    background-color: #f8f8f8;
}

.ad-expanded {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    width: 100%;
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    padding: 20px;
    box-sizing: border-box; /* Dodajemy to, aby padding nie zwiększał szerokości */
    z-index: 1;
    transition: max-height 0.3s ease, opacity 0.3s ease;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none; /* Dodajemy, aby uniknąć problemów z hover */
}

.ad-square:hover + .ad-expanded,
.ad-expanded:hover {
    max-height: 500px; /* Zwiększamy z 300px na 500px */
    opacity: 1;
    pointer-events: auto; /* Przywracamy interakcję po rozwinięciu */
}

.ad-expanded-content {
    font-size: 1.1em;
    color: #333;
}

.ad-expanded-title {
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 10px;
}

.header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 20px; /* Dodajemy margines z lewej strony, aby odsunąć przycisk logowania od nawigacji */
}

.login-button, .logout-button {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px 20px;
    background-color: #ffffff;
    color: #124596;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    font-size: 0.9em;
    white-space: nowrap;
    min-width: 100px; /* Zwiększamy minimalną szerokość */
    text-align: center;
}

.login-button:hover, .logout-button:hover {
    background-color: #124596;
    color: #ffffff;
}

.sticky-header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10000;
    background: linear-gradient(to bottom, #124596, #031f4a);
    transition: top 0.3s;
    height: 48px; /* Więcej miejsca na większą czcionkę */
    overflow: visible; /* Allow dropdowns to show */
}

.sticky-header.visible {
    top: 0;
}

.sticky-header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    max-width: 1200px;
    margin: 0 auto;
    height: 100%;
    position: relative;
    z-index: 2;
    overflow: visible; /* Allow dropdowns to extend beyond container */
}

.sticky-header h1 {
    display: flex;
    align-items: center;
    height: 100%;
}

.sticky-header h1 a {
    font-size: 1.3em;
    color: #ffffff;
}

.sticky-header nav {
    flex-grow: 1;
    display: flex;
    justify-content: center;
    height: 100%; /* Ensure nav takes full height */
    overflow: visible; /* Allow dropdowns to extend beyond nav */
    position: relative; /* Create positioning context for dropdowns */
}

.sticky-header nav ul {
    display: flex;
    list-style-type: none;
    margin: 0;
    padding: 0;
    height: 100%; /* Ensure ul takes full height */
    align-items: center; /* Vertically center items */
    overflow: visible; /* Allow dropdowns to extend beyond ul */
    position: relative; /* Create positioning context */
}

.sticky-header nav ul li {
    margin: 0 10px;
    height: 100%; /* Ensure li takes full height */
    display: flex; /* Allow centering of link */
    align-items: center;
    position: relative; /* Create positioning context for dropdown */
    overflow: visible; /* Allow dropdown to extend beyond li */
}

.sticky-header nav ul li a {
    color: #ffffff;
    text-decoration: none;
    font-size: 1.15em; /* większa czcionka w przyklejonym pasku */
    font-weight: 700;
    padding: 0 10px; /* Remove vertical padding, rely on flex centering */
    height: 100%; /* Full height for hover target */
    display: flex;
    align-items: center;
    transition: background-color 0.3s ease;
    white-space: nowrap; /* Prevent text and icons from wrapping to new line */
    flex-wrap: nowrap; /* Prevent flex items from wrapping */
}

/* Ensure sticky header dropdowns are positioned correctly */
.sticky-header nav ul li ul {
    top: 100% !important; /* Position right below the header */
    margin-top: 0 !important; /* Remove any gaps */
    background: #031f4a !important; /* Fallback */
    background: linear-gradient(180deg, #124596 0%, #031f4a 100%) !important;
    background-color: #031f4a !important; /* Ensure background color is set */
    position: absolute !important; /* Ensure absolute positioning */
    left: 0 !important;
    z-index: 10002 !important; /* Higher than header */
    min-width: 280px !important;
    max-height: none !important; /* Remove any height restrictions */
    height: auto !important; /* Allow height to adjust to content */
    overflow: visible !important; /* Allow all items to be visible */
    box-shadow: 0 8px 20px rgba(0,0,0,0.4) !important;
    border-top: 2px solid #4caf50 !important; /* Accent line on top */
    padding: 0 !important; /* No padding to ensure background covers all items */
    border-radius: 0 0 4px 4px !important;
}

.sticky-header nav ul li a:hover {
    border-radius: 3px;
}

.login-container {
    max-width: 400px;
    margin: 2rem auto;
    padding: 2rem;
    background-color: #f8f8f8;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.login-container h2 {
    text-align: center;
    margin-bottom: 1.5rem;
    color: #124596;
}

.login-form .form-group {
    margin-bottom: 1rem;
}

.login-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

.login-form input[type="text"],
.login-form input[type="password"] {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.login-submit {
    width: 100%;
    padding: 0.75rem;
    background-color: #124596;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.login-submit:hover {
    background-color: #0d3370;
}

.login-options {
    margin-top: 1rem;
    text-align: center;
}

.forgot-password,
.register-prompt a {
    color: #124596;
    text-decoration: none;
}

.forgot-password:hover,
.register-prompt a:hover {
    text-decoration: underline;
}

.register-prompt {
    display: block;
    margin-top: 0.5rem;
}

.register-container {
    max-width: 500px;
    margin: 2rem auto;
    padding: 2rem;
    background-color: #f8f8f8;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.register-container h2 {
    text-align: center;
    margin-bottom: 1.5rem;
    color: #124596;
}

.register-options {
    margin-bottom: 1.5rem;
}

.google-register {
    width: 100%;
    padding: 0.75rem;
    background-color: #4285F4;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}

.google-register:hover {
    background-color: #357ae8;
}

.google-register i {
    margin-right: 10px;
}

.or-divider {
    text-align: center;
    margin: 1rem 0;
    position: relative;
}

.or-divider::before,
.or-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 45%;
    height: 1px;
    background-color: #ddd;
}

.or-divider::before {
    left: 0;
}

.or-divider::after {
    right: 0;
}

.or-divider span {
    background-color: #f8f8f8;
    padding: 0 10px;
    position: relative;
    z-index: 1;
}

.register-form .form-group {
    margin-bottom: 1rem;
}

.register-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

.register-form input[type="text"],
.register-form input[type="email"],
.register-form input[type="password"] {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.register-submit {
    width: 100%;
    padding: 0.75rem;
    background-color: #124596;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.register-submit:hover {
    background-color: #0d3370;
}

.login-prompt {
    margin-top: 1rem;
    text-align: center;
}

.login-prompt a {
    color: #124596;
    text-decoration: none;
}

.login-prompt a:hover {
    text-decoration: underline;
}

.error-message {
    background-color: #ffebee;
    color: #c62828;
    padding: 10px;
    border-radius: 4px;
    margin-bottom: 1rem;
    text-align: center;
}

.user-welcome {
    color: #ffffff;
    margin-right: 10px;
    font-size: 0.9em;
}

.logout-button {
    display: inline-block;
    padding: 8px 20px; /* Zwiększamy padding z prawej i lewej strony */
    background-color: #ffffff;
    color: #124596;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    font-size: 0.9em;
    white-space: nowrap; /* Zapobiegamy zawijaniu tekstu */
    min-width: 80px; /* Dodajemy minimalną szerokość */
    text-align: center; /* Centrujemy tekst w przycisku */
}

.logout-button:hover {
    background-color: #124596;
    color: #ffffff;
}

.sticky-header .user-welcome {
    font-size: 0.8em;
    margin-right: 10px;
}

.sticky-header .logout-button {
    font-size: 0.8em;
    padding: 5px 15px; /* Zwiększamy padding dla sticky header */
    min-width: 100px; /* Zmniejszamy minimalną szerokość dla sticky header */
}

.user-toolbar {
    background-color: #ffffff;
    border-bottom: 1px solid #e0e0e0;
    padding: 5px 0;
    position: relative; /* Dodane */
    z-index: 10; /* Below header (20) but above content */
}

.user-toolbar-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.user-toolbar nav ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center; /* Zmienione z flex-start na center */
    flex-wrap: wrap; /* Dodane, aby przyciski zawijały się na mniejszych ekranach */
}

.user-toolbar nav ul li {
    margin: 0 0px; /* Zmienione z margin-right na margin */
}

.user-toolbar nav ul li a {
    color: #124596;
    text-decoration: none;
    font-size: 0.9em;
    font-weight: 600;
    transition: color 0.3s ease;
    padding: 5px 10px; /* Dodane, aby zwiększyć obszar klikalny */
}

.user-toolbar nav ul li a:hover {
    color: #0d3370;
    background-color: #f0f0f0; /* Dodane dla lepszego efektu hover */
    border-radius: 4px; /* Dodane dla zaokrąglonych rogów */
}

/* Badge nowych maili obok "Poczta" */
.user-toolbar nav ul li a.mail-menu-link {
    position: relative;
}
.mail-unread-badge {
    margin-left: 8px;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: #c70000;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(199, 0, 0, 0.35);
    transform: translateY(-1px);
}

/* Badge nowych rejestracji obok "Użytkownicy" */
.new-users-badge{
    margin-left: 8px;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: #c70000;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(199, 0, 0, 0.35);
    transform: translateY(-1px);
}

/* Dropdown Menu Styles for User Toolbar */
.user-toolbar nav ul li {
    position: relative; /* Enables absolute positioning for the dropdown */
}

.user-toolbar nav ul li.dropdown:hover .dropdown-menu {
    display: block;
}

.user-toolbar .dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #ffffff;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    min-width: 200px;
    z-index: 1000;
    border-radius: 4px;
    padding: 5px 0;
    border: 1px solid #e0e0e0;
}

.user-toolbar .dropdown-menu li {
    display: block;
    margin: 0;
    width: 100%;
}

.user-toolbar .dropdown-menu li a {
    display: block;
    padding: 8px 15px;
    color: #124596 !important;
    font-weight: 600;
    text-align: left;
    opacity: 1;
    filter: none;
}

.user-toolbar .dropdown-menu li a i {
    color: inherit !important;
    opacity: 1 !important;
    filter: none !important;
}

.user-toolbar .dropdown-menu {
    color: #124596;
    opacity: 1;
    filter: none;
}

.user-toolbar .dropdown-menu li a:hover {
    background-color: rgba(18, 69, 150, 0.08);
    color: #0d3370 !important;
    border-radius: 0;
}

.user-toolbar .dropdown-menu li a:focus,
.user-toolbar .dropdown-menu li a:focus-visible {
    outline: 2px solid rgba(18, 69, 150, 0.35);
    outline-offset: 2px;
    background-color: #f5f5f5;
    color: #124596;
}

/* Arrow indicator for dropdowns */
.user-toolbar .dropdown-toggle i.fa-caret-down {
    margin-left: 5px;
    font-size: 0.8em;
}

/* Usuwamy style związane z napisem "Witaj, user" */
.user-welcome {
    display: none;
}

/* Dostosowanie marginesu górnego dla głównej zawartości */
main {
    margin-top: 30px; /* Zwiększamy margines, aby uwzględnić nowy pasek */
}

/* Dostosowanie sticky header */
.sticky-header {
    top: -140px; /* Zwiększamy, aby uwzględnić nowy pasek */
}


.new-comment-form {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 15px 20px 15px 15px; /* góra, prawa, dół, lewa - większy padding z prawej */
    margin-bottom: 30px;
    margin-right: 0; /* Upewnij się, że nie ma ujemnego marginesu */
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

.new-comment-form .comment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.new-comment-form .author-info {
    font-weight: bold;
}

.new-comment-form select {
    font-weight: bold;
    border: none;
    background-color: transparent;
    font-size: inherit;
    cursor: pointer;
}

.new-comment-form textarea {
    width: 100%;
    min-height: 100px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 10px;
    margin-bottom: 10px;
    resize: vertical;
    box-sizing: border-box;
    max-width: 100%;
    padding-right: 15px; /* Dodatkowy padding z prawej strony dla textarea */
}

.new-comment-form .publish-button {
    background-color: #124596;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.new-comment-form .publish-button:hover {
    background-color: #0d3370;
}

.delete-comment {
    cursor: pointer;
    color: #ff4136;
    margin-left: 10px;
}

.delete-comment:hover {
    color: #d50000;
}


.delete-comment:hover {
    color: #d50000;
}


.comment-author.company {
    color: #124596; /* Granatowy kolor, taki sam jak w nagłówku */
    font-weight: bold;
}

.comment-content .comment-author.company {
    color: #124596 !important; /* Granatowy kolor, taki sam jak w nagłówku */
    font-weight: bold;
}

/* Styl dla zwykłych użytkowników - czerwony kolor */
.comment-author {
    color: #c70000; /* Nowy czerwony kolor */
    font-weight: bold;
}

/* Styl dla firm - granatowy kolor */
.comment-author.company {
    color: #124596; /* Granatowy kolor */
    font-weight: bold;
}

/* Usuwamy !important, aby nie nadpisywać innych stylów */
.comment-content .comment-author.company {
    color: #124596;
}

.author-info {
    display: flex;
    align-items: center;
}

.company-logo {
    width: 30px;
    height: 30px;
    margin-right: 10px;
    overflow: hidden;
    border-radius: 50%;
    background-color: #f0f0f0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.company-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.logo-placeholder {
    width: 100%;
    height: 100%;
    background-color: #124596;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-weight: bold;
    font-size: 16px;
}

.logo-placeholder::after {
    content: 'F';
}

.comment-author.company {
    color: #124596;
    font-weight: bold;
    margin-left: 10px;
}

.comment {
    margin-bottom: 15px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    background-color: white;
}

.comment-content {
    padding: 12px 15px;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 1;
    position: relative;
}
.company-comment-banner {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40%;
    background-size: cover;
    background-position: center;
    z-index: 0;
    opacity: 0.25;
    mask-image: linear-gradient(to right, transparent 0%, transparent 20%, black 60%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 20%, black 60%);
    pointer-events: none;
}

.comment-author.company.link {
    color: #124596;
    text-decoration: none;
    border-bottom: 1px dotted #124596;
    transition: color 0.3s;
}
.comment-author.company.link:hover {
    color: #0d3370;
    border-bottom-style: solid;
}

.company-banner-section {
    width: 100%;
    background-color: #f8f9fa;
    border-bottom: 1px solid #e0e0e0;
    padding: 8px 12px;
}

.company-banner-link {
    display: block;
    width: 100%;
}

.company-banner-image {
    width: 100%;
    max-width: 600px;
    height: 60px;
    object-fit: contain;
    border-radius: 3px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: opacity 0.3s;
    display: block;
    margin: 0 auto;
}

.company-banner-link:hover .company-banner-image {
    opacity: 0.9;
}

@media (max-width: 768px) {
    .company-banner-image {
        height: auto;
        max-height: 60px;
    }
}

.company-banner-link:hover .company-banner-image {
    opacity: 0.8;
}

.company-banner {
    width: 100px;
    height: 50px;
    margin-left: 15px;
    overflow: hidden;
}

.company-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}



.banner-placeholder::after {
    content: 'Brak baneru';
}
.company-info-button {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    background-color: #124596;
    color: white;
    border: none;
    padding: 4px 12px; /* Zmniejszone padding */
    border-radius: 3px; /* Opcjonalnie zmniejszony radius */
    cursor: pointer;
    font-weight: bold;
    z-index: 2;
    font-size: 0.9em; /* Opcjonalnie zmniejszona czcionka */
    line-height: 1.2; /* Zmniejszona wysokość linii */
    transition: background-color 0.3s ease;
}

.company-info-button:hover {
    background-color: #0d3370;
}

.banner-placeholder {
    background-color: #f0f0f0;
}

.banner-placeholder::after {
    content: 'Brak tła';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #888;
    font-size: 12px;
}

.login-options {
    margin-bottom: 20px;
}

.google-login {
    display: block;
    width: 100%;
    padding: 10px;
    background-color: #4285F4;
    color: white;
    text-align: center;
    text-decoration: none;
    border-radius: 4px;
    margin-bottom: 10px;
}

.google-login:hover {
    background-color: #357ae8;
}

.or-divider {
    text-align: center;
    margin: 15px 0;
    position: relative;
}

.or-divider::before,
.or-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 45%;
    height: 1px;
    background-color: #ddd;
}

.or-divider::before {
    left: 0;
}

.or-divider::after {
    right: 0;
}

.or-divider span {
    background-color: #fff;
    padding: 0 10px;
    position: relative;
    z-index: 1;
}

.login-page-container {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: 40px auto;
    background-color: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
}

.login-benefits {
    flex: 1;
    padding: 40px;
    background-color: #ffffff;
}

.login-benefits h2, .login-benefits h3 {
    color: #124596;
    margin-bottom: 20px;
    font-size: 1.8em;
}

.login-benefits ul {
    list-style-type: none;
    padding: 0;
}

.login-benefits li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 20px;
}

.benefit-icon {
    width: 30px; /* Stała szerokość dla ikon */
    margin-right: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.login-benefits i {
    color: #124596;
    font-size: 24px;
}

.benefit-content {
    flex: 1;
}

.login-benefits strong {
    color: #333;
    font-size: 1.2em;
    display: block;
    margin-bottom: 5px;
}

.login-benefits p {
    margin: 0;
    color: #666;
    line-height: 1.4;
}

.business-benefits {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #e0e0e0;
}

.business-benefits h3 {
    margin-bottom: 20px;
}

.cta-section {
    margin-top: 30px;
    text-align: center;
}

.cta-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: #124596;
    color: #ffffff;
    text-decoration: none;
    border-radius: 4px;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #0d3370;
}

.login-container {
    flex: 1;
    padding: 40px;
    background-color: #ffffff;
    border-left: 1px solid #e0e0e0;
}

.article-featured-image {
    width: 100%;
    max-height: 500px;
    overflow: hidden;
    margin-bottom: 20px;
    position: relative;
}

.article-featured-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

.image-author {
    margin-top: 8px;
    font-size: 0.85em;
    color: #666;
    font-style: italic;
    text-align: right;
    width: 100%;
    display: block;
}

.image-author-label {
    font-weight: 600;
    margin-right: 4px;
}

.image-author-name {
    color: #333;
}

/* Galeria zdjęć w artykule */
.article-gallery {
    margin: 30px 0;
    padding: 20px 0;
    border-top: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
}

.gallery-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.5em;
    font-weight: 600;
    color: #124596;
    margin: 0 0 20px 0;
    padding: 0;
}

.gallery-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
    grid-auto-rows: 5px; /* Mniejsza wysokość bazowa dla lepszego masonry */
    align-items: start;
}

.gallery-item {
    position: relative;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}

.gallery-thumbnail {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}

.gallery-item-controls {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0;
}

.gallery-author-edit {
    margin-top: 8px;
}

.gallery-author-edit label {
    font-size: 0.85em;
    display: block;
    margin-bottom: 4px;
    color: #666;
    font-weight: 500;
}

.gallery-author-edit input {
    width: 100%;
    padding: 4px 8px;
    font-size: 0.9em;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: inherit;
}

.gallery-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.gallery-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    flex-shrink: 0;
}

.gallery-image-author {
    padding: 8px 12px;
    font-size: 0.85em;
    color: #666;
    font-style: italic;
    text-align: right;
    background: #f9f9f9;
    border-top: 1px solid #e0e0e0;
}

.gallery-image-author .image-author-label {
    font-weight: 600;
    margin-right: 4px;
}

.gallery-image-author .image-author-name {
    color: #333;
}

@media (max-width: 768px) {
    .gallery-container {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 10px;
    }
}

/* Slider dla zdjęcia głównego */
.article-featured-image-slider {
    position: relative;
    width: 100%;
    margin-bottom: 30px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.slider-container {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    overflow: hidden;
    background: #000;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.6s ease-in-out;
    z-index: 0;
}

.slide.active {
    opacity: 1;
    z-index: 1;
}

.slider-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.slider-controls {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 0 15px;
    pointer-events: none;
    z-index: 10;
}

.slider-btn {
    background: rgba(255, 255, 255, 0.9);
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #124596;
    transition: all 0.3s ease;
    pointer-events: all;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.slider-btn:hover {
    background: rgba(255, 255, 255, 1);
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.slider-btn.prev {
    left: 15px;
}

.slider-btn.next {
    right: 15px;
}

.slider-indicators {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 10;
}

.indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid rgba(255, 255, 255, 0.8);
}

.indicator.active {
    background: #fff;
    transform: scale(1.2);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.indicator:hover {
    background: rgba(255, 255, 255, 0.8);
}

/* Autor zdjęcia pod autorem artykułu */
.article-author-line {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.article-image-author {
    font-size: 0.85em;
    color: #666;
    font-style: italic;
    margin-left: 8px;
}

.article-image-author .image-author-label {
    font-weight: 600;
    margin-right: 4px;
    color: #666;
}

.article-image-author .image-author-name {
    color: #666;
}

/* Podgląd galerii w formularzach */
.gallery-preview {
    margin-top: 15px;
}

.gallery-preview > p {
    margin-bottom: 10px;
    font-weight: bold;
    color: #333;
}

.gallery-preview > div {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.gallery-preview img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #ddd;
}

.user-toolbar-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.user-info {
    color: #124596;
    font-weight: bold;
    padding: 5px 10px;
    background-color: #f0f0f0;
    border-radius: 4px;
    font-size: 0.9em;
    display: flex;
    align-items: center;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 300px; /* Dostosuj tę wartość w zależności od potrzeb */
}

.user-logout-link {
    color: #124596;
    text-decoration: none;
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
    cursor: pointer;
}

.user-logout-link:hover {
    color: #0d3370;
    text-decoration: underline;
}

.user-info .full-name {
    margin-right: 5px;
}

.user-info .nick {
    font-weight: normal;
    color: #666;
    font-size: 0.9em;
}

.new-article-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.new-article-form .form-group {
    margin-bottom: 20px;
}

.new-article-form label {
    display: block;
    margin-bottom: 5px;
}

.new-article-form input[type="text"],
.new-article-form textarea,
.new-article-form select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.new-article-form .submit-button {
    background-color: #007bff;
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.new-article-form .submit-button:hover {
    background-color: #0056b3;
}

.error-message,
.success-message {
    padding: 10px;
    margin-bottom: 20px;
    border-radius: 4px;
}

.error-message {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.success-message {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

/* Styles for new_article.php */
.new-article-container {
    max-width: 800px;
    margin: 2rem auto;
    padding: 2rem;
    background-color: #ffffff; /* Zmieniono na białe tło */
    border-radius: 8px;

}

/* Social share (new_article.php / edit_article.php) */
.social-share-box{
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 14px;
    padding: 12px;
    background: rgba(2,6,23,0.015);
    margin: 8px 0 18px;
}
.social-share-row{
    display:flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items:center;
    margin-bottom: 10px;
}
.social-check{
    display:inline-flex;
    gap: 10px;
    align-items:center;
    font-weight: 800;
    color: rgba(15,23,42,0.85);
}
.social-check input{ transform: translateY(1px); }
.social-platform{
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(15,23,42,0.12);
}
.social-platform-head{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.social-platform-title{
    font-weight: 900;
    color: rgba(15,23,42,0.90);
}
.social-generate-btn{
    padding: 8px 12px;
    border-radius: 12px;
    border: 1px solid rgba(13,51,112,0.22);
    background: rgba(13,51,112,0.08);
    color: #0d3370;
    cursor:pointer;
    font-weight: 900;
    transition: transform .12s ease, background-color .12s ease;
}
.social-generate-btn:hover{ transform: translateY(-1px); background: rgba(13,51,112,0.10); }
.social-generate-btn:disabled{ opacity:.65; cursor:not-allowed; transform:none; }
.social-share-box textarea{
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(15,23,42,0.14);
    padding: 10px 10px;
    line-height: 1.35;
}
.social-share-box small{
    display:block;
    margin-top: 6px;
    color: rgba(15,23,42,0.60);
}

/* ============================
   New Interview (admin)
   ============================ */
.badge-interview{
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72em;
    font-weight: 800;
    display: inline-block;
    background: rgba(13, 51, 112, 0.12);
    color: #0d3370;
    border: 1px solid rgba(13, 51, 112, 0.28);
    vertical-align: middle;
    margin-left: 6px;
}
.badge-interview-type{
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72em;
    font-weight: 800;
    display: inline-block;
    vertical-align: middle;
    margin-left: 6px;
    background: rgba(15, 23, 42, 0.06);
    color: rgba(15, 23, 42, 0.85);
    border: 1px solid rgba(15, 23, 42, 0.18);
}
.badge-interview-audio{
    background: rgba(16, 185, 129, 0.12);
    color: #0b6b4e;
    border-color: rgba(16, 185, 129, 0.28);
}
.badge-interview-text{
    background: rgba(99, 102, 241, 0.12);
    color: #3730a3;
    border-color: rgba(99, 102, 241, 0.28);
}
.badge-interview-live{
    background: rgba(34, 197, 94, 0.14);
    color: #166534;
    border-color: rgba(34, 197, 94, 0.28);
}
.badge-interview-ended{
    background: rgba(245, 158, 11, 0.14);
    color: #7c2d12;
    border-color: rgba(245, 158, 11, 0.28);
}

.interview-tabs{
    display:flex;
    gap: 10px;
    justify-content: center;
    margin: 0 0 18px 0;
}
.interview-tab{
    border: 1px solid rgba(18,69,150,0.25);
    background: rgba(18,69,150,0.06);
    color: #0d3370;
    font-weight: 800;
    padding: 10px 14px;
    border-radius: 999px;
    cursor: pointer;
    transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
.interview-tab:hover{ transform: translateY(-1px); }
.interview-tab.is-active{
    background: linear-gradient(135deg, #124596, #0d3370);
    color:#fff;
    border-color: rgba(18,69,150,0.55);
}

.new-interview-form .interview-tab-panel{
    grid-column: 1 / -1;
    display:none;
    padding-top: 6px;
    animation: ibFadeIn 160ms ease-out;
}
.new-interview-form .interview-tab-panel.is-active{ display:block; }
@keyframes ibFadeIn{
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Live interview card (new_interview.php) */
.new-interview-form .live-interview-card{
    border: 1px solid rgba(18,69,150,0.18);
    background: linear-gradient(135deg, rgba(18,69,150,0.04), rgba(13,51,112,0.02));
    border-radius: 16px;
    padding: 14px;
    box-shadow: 0 10px 30px rgba(2,6,23,0.04);
}
.new-interview-form .live-interview-card__inner{
    min-height: 240px;
    display:flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    padding: 14px;
}
.new-interview-form .live-interview-card__title{
    font-weight: 900;
    color: #0d3370;
    letter-spacing: .2px;
    font-size: 1.15rem;
}
.new-interview-form .live-interview-card__desc{
    max-width: 620px;
    color: rgba(15,23,42,0.75);
    line-height: 1.45;
    font-size: 0.98rem;
}
.new-interview-form .live-generate-btn{
    padding: 12px 18px;
    border-radius: 12px;
    font-weight: 900;
    background: linear-gradient(135deg, #124596, #0d3370);
}
.new-interview-form .live-generate-btn:hover{
    background: linear-gradient(135deg, #0d3370, #124596);
}
.new-interview-form .submit-row-default{
    margin-top: 10px;
}

/* w live nie pokazuj domyślnego "Zapisz wywiad" w UI (zostawiamy submit tylko w audio/text) */
.new-interview-form[data-active-tab="live"] .submit-row-default{
    display:none;
}

/* Live interview (admin) */
.live-pill{
    display:inline-flex;
    align-items:center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(13,51,112,0.18);
    background: rgba(13,51,112,0.10);
    color: #0d3370;
    font-weight: 900;
    letter-spacing: .2px;
    font-size: .9rem;
}
.online-dot{
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(148,163,184,0.8);
    box-shadow: 0 0 0 3px rgba(148,163,184,0.15);
}
.online-dot.is-on{
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34,197,94,0.18);
}
.live-meta{
    display:grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 14px;
    margin: 14px 0;
}
.live-meta__left, .live-meta__right{
    background:#fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 16px;
    padding: 14px;
    box-shadow: 0 10px 30px rgba(2,6,23,0.04);
}
.live-topic{
    font-family: 'Noticia Text', serif;
    font-weight: 800;
    color: rgba(15,23,42,0.92);
    font-size: 1.05rem;
    margin-bottom: 10px;
}
.live-guest{ display:flex; gap: 12px; align-items:center; }
.live-guest__avatar{
    width: 54px; height: 54px; border-radius: 16px;
    overflow:hidden;
    border: 1px solid rgba(15,23,42,0.10);
    background: rgba(2,6,23,0.03);
    display:flex; align-items:center; justify-content:center;
}
.live-guest__avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.live-guest__ph{ color: rgba(15,23,42,0.55); font-size: 1.3rem; }
.live-guest__name{ font-weight: 900; color: rgba(15,23,42,0.92); }
.live-guest__title{ color: rgba(15,23,42,0.70); font-size: .94rem; }
.live-guest__cat{ color: rgba(15,23,42,0.55); font-size: .9rem; margin-top: 2px; }
.live-link-box__label{ font-weight: 900; color: rgba(15,23,42,0.86); margin-bottom: 8px; }
.live-link-box__row{ display:flex; gap: 8px; }
.live-link-box__row input{
    width:100%;
    padding: 10px 10px;
    border-radius: 12px;
    border: 1px solid rgba(15,23,42,0.14);
    background: rgba(2,6,23,0.02);
    font-size: .92rem;
}
.live-link-box__row button{
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(13,51,112,0.20);
    background: rgba(13,51,112,0.08);
    color: #0d3370;
    font-weight: 900;
    cursor:pointer;
}
.live-link-box--muted{ color: rgba(15,23,42,0.65); }
.live-ended-banner{
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(245, 158, 11, 0.10);
    border: 1px solid rgba(245, 158, 11, 0.25);
    color: rgba(120, 53, 15, 0.95);
    font-weight: 800;
}
.live-chat{
    background:#fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(2,6,23,0.06);
    overflow:hidden;
}
.live-stream{
    height: min(56vh, 520px);
    overflow:auto;
    padding: 14px;
    background: rgba(2,6,23,0.02);
}
.live-msg{ display:flex; margin: 10px 0; }
.live-msg--host{ justify-content: flex-start; }
.live-msg--guest{ justify-content: flex-end; }
.live-msg__bubble{
    max-width: min(720px, 88%);
    border-radius: 16px;
    padding: 10px 12px;
    border: 1px solid rgba(15,23,42,0.10);
    background: #fff;
    box-shadow: 0 6px 18px rgba(2,6,23,0.04);
}
.live-msg--host .live-msg__bubble{
    background: rgba(13,51,112,0.06);
    border-color: rgba(13,51,112,0.16);
}
.live-msg--guest .live-msg__bubble{
    background: rgba(16,185,129,0.08);
    border-color: rgba(16,185,129,0.18);
}
.live-msg__meta{
    font-size: .78rem;
    font-weight: 900;
    color: rgba(15,23,42,0.58);
    margin-bottom: 4px;
}
.live-msg__text{
    white-space: pre-wrap;
    line-height: 1.35;
    color: rgba(15,23,42,0.92);
}
.live-compose{
    border-top: 1px solid rgba(15,23,42,0.08);
    padding: 12px;
    background: #fff;
}
.live-compose__input{
    width:100%;
    resize:none;
    padding: 12px 12px;
    border-radius: 14px;
    border: 1px solid rgba(15,23,42,0.14);
    line-height: 1.35;
    font-size: 1rem;
    min-height: 54px;
}
.live-compose__actions{
    margin-top: 10px;
    display:flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items:center;
    justify-content: flex-end;
}
.live-btn{
    padding: 10px 14px;
    border-radius: 14px;
    border: 1px solid rgba(15,23,42,0.14);
    background: rgba(2,6,23,0.02);
    cursor:pointer;
    font-weight: 900;
}
.live-btn--primary{
    border: none;
    background: linear-gradient(135deg, #124596, #0d3370);
    color:#fff;
}
.live-btn--ok{
    border: none;
    background: linear-gradient(135deg, #16a34a, #15803d);
    color:#fff;
}
.live-btn--danger{
    border: none;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color:#fff;
}
.live-btn:disabled{ opacity:.6; cursor:not-allowed; }

@media (max-width: 860px){
    .live-meta{ grid-template-columns: 1fr; }
}

.new-interview-form .interview-guest-photo{
    grid-column: 2;
    width: 100%;
    display:block;
}
.new-interview-form .interview-guest-photo-dropzone{
    width: 100%;
    display: grid;
    grid-template-columns: 112px 1fr;
    column-gap: 14px;
    row-gap: 10px;
    align-items: center;
    padding: 16px;
    min-height: 150px;
    border-radius: 14px;
    border: 1px dashed rgba(18,69,150,0.28);
    background: rgba(18,69,150,0.04);
    cursor: pointer;
    overflow: visible;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.new-interview-form .interview-guest-photo-dropzone:hover{
    transform: translateY(-1px);
    border-color: rgba(18,69,150,0.42);
    background: rgba(18,69,150,0.06);
    box-shadow: 0 12px 28px rgba(12,24,44,0.08);
}
.new-interview-form .interview-guest-photo-dropzone.is-dragover{
    border-color: rgba(18,69,150,0.65);
    background: rgba(18,69,150,0.10);
    box-shadow: 0 14px 34px rgba(12,24,44,0.12);
}
.new-interview-form .interview-guest-photo-hint{
    display:flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    flex: 1 1 260px;
    padding-top: 2px;
    overflow: visible;
}
.new-interview-form .interview-guest-photo-hint .hint-title{
    font-weight: 900;
    color: rgba(13,51,112,0.95);
}
.new-interview-form .interview-guest-photo-hint .hint-sub{
    font-weight: 800;
    color: rgba(15,23,42,0.55);
}
.new-interview-form .interview-guest-photo-hint small{
    display:block;
    line-height: 1.35;
    color: rgba(15,23,42,0.55);
    margin-top: 2px;
}
.new-interview-form .guest-photo-btn{
    width: fit-content;
    border: 1px solid rgba(18,69,150,0.22);
    background: rgba(255,255,255,0.92);
    color: rgba(13,51,112,0.95);
    font-weight: 900;
    border-radius: 999px;
    padding: 8px 12px;
    cursor: pointer;
    transition: transform .16s ease, filter .16s ease;
}
.new-interview-form .guest-photo-btn:hover{ filter: brightness(1.02); }
.new-interview-form .guest-photo-btn:active{ transform: scale(0.99); }
.new-interview-form .interview-guest-photo-preview{
    width: 112px;
    height: 112px;
    border-radius: 16px;
    border: 1px solid rgba(18,18,18,0.12);
    background: rgba(18,69,150,0.06);
    display:grid;
    place-items: center;
    overflow:hidden;
    flex: 0 0 auto;
}
.new-interview-form .interview-guest-photo-preview img{
    width:100%;
    height:100%;
    object-fit: cover;
    display:block;
}
.new-interview-form .interview-guest-photo-placeholder{
    color: rgba(13,51,112,0.8);
    font-size: 28px;
}
/* stary blok akcji nieużywany po dropzone */

@media (max-width: 760px){
    .new-interview-form .interview-guest-photo-dropzone{
        grid-template-columns: 1fr;
        align-items: flex-start;
    }
    .new-interview-form .interview-guest-photo-hint{
        flex: 1 1 100%;
    }
}

.interview-builder{
    border: 1px solid rgba(18,18,18,0.10);
    background: rgba(245,247,251,0.70);
    border-radius: 12px;
    padding: 12px;
}
.interview-builder-toolbar{
    display:flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.ib-btn{
    border: 0;
    background: #124596;
    color:#fff;
    font-weight: 800;
    padding: 10px 12px;
    border-radius: 10px;
    cursor:pointer;
    transition: transform .16s ease, filter .16s ease;
}
.ib-btn:hover{ transform: translateY(-1px); filter: brightness(1.05); }
.ib-btn:active{ transform: translateY(0); }
.ib-btn--alt{ background: #0d3370; }

.interview-messages{
    display:flex;
    flex-direction: column;
    gap: 10px;
    max-height: 420px;
    overflow:auto;
    padding: 6px 4px 6px 4px;
}
.ib-msg{
    display:flex;
    gap: 10px;
    align-items: flex-end;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .18s ease, transform .18s ease;
}
.ib-msg.is-in{ opacity: 1; transform: translateY(0); }
.ib-msg.is-removing{ opacity: 0; transform: translateY(6px); }
.ib-msg--guest{ flex-direction: row-reverse; }
.ib-msg-avatar{
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: rgba(18,69,150,0.16);
    border: 1px solid rgba(18,69,150,0.22);
    display:grid;
    place-items:center;
    font-weight: 900;
    color: rgba(13,51,112,0.9);
    flex: 0 0 auto;
}
.ib-msg--guest .ib-msg-avatar{
    background: rgba(225,29,72,0.10);
    border-color: rgba(225,29,72,0.18);
    color: rgba(190, 18, 60, 0.95);
}
.ib-msg-bubble{
    flex: 1 1 auto;
    max-width: 620px;
    background: #fff;
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 14px;
    padding: 10px 10px 8px;
    box-shadow: 0 10px 22px rgba(12,24,44,0.08);
}
.ib-msg--guest .ib-msg-bubble{
    background: rgba(255,255,255,0.92);
}
.ib-msg-text{
    width:100%;
    border: 0;
    outline: none;
    resize: none;
    font-size: 1rem;
    line-height: 1.45;
    background: transparent;
}
.ib-msg-actions{
    display:flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 6px;
}
.ib-remove{
    border: 1px solid rgba(18,18,18,0.14);
    background: rgba(15,23,42,0.06);
    color: rgba(15,23,42,0.8);
    border-radius: 10px;
    padding: 6px 10px;
    cursor:pointer;
    font-weight: 800;
}

/* ============================
   Public interview pages
   ============================ */
.interview-page{
    max-width: 980px;
    margin: 24px auto 40px;
    padding: 0 14px;
}
.interview-hero{
    position: relative;
    border-radius: 18px;
    border: 1px solid rgba(15,23,42,0.10);
    background: linear-gradient(135deg, #ffffff 0%, #f3f7ff 55%, #ffffff 100%);
    box-shadow: 0 18px 44px rgba(2,6,23,0.10);
    padding: 22px 22px 20px;
    color: rgba(15,23,42,0.92);
    margin-bottom: 16px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 360px;
    grid-template-areas: "left guest";
    gap: 14px 16px;
}
.interview-hero::before{
    content:'';
    position:absolute;
    inset: 0;
    background:
        radial-gradient(circle at 12% 12%, rgba(18,69,150,0.10), transparent 55%),
        radial-gradient(circle at 88% 0%, rgba(13,51,112,0.06), transparent 60%);
    pointer-events:none;
}
.interview-hero::after{
    content:'';
    position:absolute;
    top: 16px;
    bottom: 16px;
    right: 360px;
    width: 1px;
    background: linear-gradient(to bottom, transparent, rgba(15,23,42,0.08), transparent);
    pointer-events:none;
}
.interview-hero > *{ position: relative; z-index: 1; }
.interview-hero-left{ grid-area: left; display:flex; flex-direction: column; gap: 10px; }
.interview-guest-card{ grid-area: guest; }

.interview-hero-title{ display:flex; gap:10px; flex-wrap: wrap; align-items:center; }
.interview-chip{
    display:inline-flex;
    align-items:center;
    gap: 8px;
    border-radius: 999px;
    padding: 7px 11px;
    font-weight: 900;
    border: 1px solid rgba(13,51,112,0.14);
    background: rgba(13,51,112,0.06);
    color: #0d3370;
    text-decoration:none;
}
.interview-chip--ghost{
    background: transparent;
    border-color: rgba(15,23,42,0.12);
    color: rgba(15,23,42,0.78);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.72rem;
    padding: 6px 10px;
}
.interview-chip--danger{
    background: #c70000;
    border-color: rgba(199,0,0,0.22);
    color: #fff;
}
.interview-chip--danger:hover{
    background: #a80000;
    color: #fff;
}
.interview-hero-meta{
    margin-top: 0;
    color: rgba(15,23,42,0.62);
    font-weight: 800;
    font-size: 0.88rem;
    display:flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
.interview-hero-meta .dot{ margin: 0 8px; opacity: 0.7; }

.interview-topic{
    margin-top: 12px;
    font-family: 'Noticia Text', serif;
    font-size: 2.05rem;
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.012em;
    color: rgba(15,23,42,0.95);
}

.interview-guest-card{
    margin-top: 0;
    display:flex;
    gap: 14px;
    align-items:center;
    padding: 14px 14px;
    border-radius: 18px;
    background: rgba(255,255,255,0.82);
    border: 1px solid rgba(15,23,42,0.10);
    box-shadow: 0 12px 30px rgba(2,6,23,0.06);
    backdrop-filter: blur(10px);
}
.interview-guest-photo{
    width: 92px;
    height: 92px;
    border-radius: 22px;
    overflow:hidden;
    background: rgba(2,6,23,0.03);
    border: 1px solid rgba(15,23,42,0.10);
    display:grid;
    place-items:center;
    flex: 0 0 auto;
}
.interview-guest-kicker{
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    font-weight: 900;
    color: rgba(15,23,42,0.52);
    margin-bottom: 4px;
}
.interview-guest-photo img{ width:100%; height:100%; object-fit: cover; display:block; }
.interview-guest-photo-placeholder{ font-size: 30px; color: rgba(15,23,42,0.65); }
.interview-guest-name{ font-weight: 900; font-size: 1.12rem; line-height: 1.18; color: rgba(15,23,42,0.94); }
.interview-guest-title{ color: rgba(15,23,42,0.62); font-weight: 800; margin-top: 4px; }

@media (max-width: 900px){
    .interview-hero{
        grid-template-columns: 1fr;
        grid-template-areas:
            "left"
            "guest";
    }
    .interview-hero::after{ display:none; }
    .interview-topic{ margin-top: 0; }
}

.interview-audio, .interview-chat{
    border-radius: 14px;
    border: 1px solid rgba(18,18,18,0.10);
    background: #fff;
    box-shadow: 0 14px 34px rgba(12,24,44,0.10);
    padding: 14px;
}
.interview-audio-head{ display:flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.interview-audio-title{ font-weight: 900; color:#0d3370; }
.interview-audio-sub{ color: rgba(15,23,42,0.60); font-weight: 700; font-size: 0.92rem; }

.interview-empty{
    padding: 14px;
    border-radius: 12px;
    background: rgba(15,23,42,0.04);
    border: 1px solid rgba(15,23,42,0.10);
    color: rgba(15,23,42,0.75);
    font-weight: 800;
}

.chat-stream{
    display:flex;
    flex-direction: column;
    gap: 12px;
}
.chat-msg{
    display:flex;
    gap: 10px;
    align-items:flex-end;
}
.chat-msg--guest{ flex-direction: row-reverse; }
.chat-avatar{
    width: 34px;
    height: 34px;
    border-radius: 999px;
    overflow:hidden;
    border: 1px solid rgba(18,18,18,0.10);
    background: rgba(18,69,150,0.10);
    display:grid;
    place-items:center;
    flex: 0 0 auto;
}
.chat-avatar img{ width:100%; height:100%; object-fit: cover; display:block; }
.chat-avatar-placeholder{
    font-weight: 900;
    color: rgba(13,51,112,0.9);
}
.chat-msg--guest .chat-avatar{
    background: rgba(225,29,72,0.08);
}
.chat-msg--guest .chat-avatar-placeholder{
    color: rgba(190,18,60,0.95);
}
.chat-bubble{
    max-width: 760px;
    border-radius: 16px;
    padding: 10px 12px;
    background: rgba(18,69,150,0.06);
    border: 1px solid rgba(18,69,150,0.12);
}
.chat-msg--guest .chat-bubble{
    background: rgba(255,255,255,1);
    border-color: rgba(18,18,18,0.10);
    box-shadow: 0 12px 26px rgba(12,24,44,0.08);
}
.chat-name{
    font-size: 0.82rem;
    font-weight: 900;
    color: rgba(15,23,42,0.70);
    margin-bottom: 4px;
}
.chat-text{
    font-size: 1.0rem;
    line-height: 1.75;
    color: rgba(15,23,42,0.92);
    word-break: break-word;
    font-family: 'Noticia Text', serif;
    font-weight: 400;
}

/* Kompaktowe kafelki dla sekcji "Rozmowy" w sidebarze */
.interviews-compact .listen-row,
.analyses-compact .listen-row{
    align-items: center;
    gap: 10px;
}
.interviews-compact .listen-guest-avatar,
.analyses-compact .listen-guest-avatar{
    width: 88px;
    height: 88px;
    flex: 0 0 88px;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(15,23,42,0.10);
    background: rgba(2,6,23,0.03);
    display: grid;
    place-items: center;
}
.interviews-compact .listen-guest-avatar img,
.analyses-compact .listen-guest-avatar img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.interviews-compact .listen-guest-avatar-placeholder,
.analyses-compact .listen-guest-avatar-placeholder{
    width: 100%;
    height: 100%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight: 900;
    color: rgba(15,23,42,0.60);
    background: linear-gradient(135deg, rgba(18,69,150,0.10), rgba(13,51,112,0.06));
    letter-spacing: .2px;
}
.interviews-compact .listen-play-btn,
.analyses-compact .listen-play-btn{
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    font-size: 0.95rem;
}
.interviews-compact .opinion-title,
.analyses-compact .opinion-title{
    font-size: 0.95rem;
    margin: 0 0 4px 0;
    line-height: 1.25;
}
.interviews-compact .opinion-meta,
.analyses-compact .opinion-meta{
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    line-height: 1.15;
}
.interviews-compact .listen-progress,
.analyses-compact .listen-progress{ margin-top: 6px; }
.interviews-compact .article-sidebar-dot,
.analyses-compact .article-sidebar-dot{ opacity: 0.55; }
.interviews-compact .listen-badge,
.analyses-compact .listen-badge{ padding: 2px 8px; }

.new-article-container h2 {
    color: #124596;
    margin-bottom: 1.5rem;
    text-align: center;
}

.new-article-form {
    display: grid;
    grid-template-columns: 150px 1fr; /* Dostosuj szerokość etykiet według potrzeb */
    gap: 1rem 2rem; /* Odstęp między wierszami i kolumnami */
    align-items: start;
}

.new-article-form .form-group {
    display: contents; /* Usuwa dodatkowy kontener, pozwalając dzieciom być bezpośrednio w gridzie */
}

.new-article-form label {
    grid-column: 1;
    color: #333;
    font-weight: bold;
    text-align: right; /* Wyrównanie etykiet do prawej */
    padding-top: 0.5rem; /* Wyrównanie z polem input */
}

.new-article-form input[type="text"],
.new-article-form textarea,
.new-article-form select,
.new-article-form input[type="file"] {
    grid-column: 2;
    width: 100%;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
}

.new-article-form textarea {
    min-height: 150px;
    resize: vertical;
}

.new-article-form .submit-button {
    grid-column: 2;
    justify-self: start;
    background-color: #124596;
    color: white;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.new-article-form .submit-button:hover {
    background-color: #0d3370;
}

#generateContent {
    grid-column: 2;
    justify-self: start;
    background-color: #28a745;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.3s ease;
    margin-bottom: 0.5rem;
}

#generateContent:hover {
    background-color: #218838;
}

.error-message,
.success-message {
    grid-column: 1 / -1;
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 4px;
    font-weight: bold;
}

.error-message {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.success-message {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.new-article-form label {
    display: block;
    margin-bottom: 0.5rem;
    color: #333;
    font-weight: bold;
}

.new-article-form input[type="text"],
.new-article-form textarea,
.new-article-form select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
}

.new-article-form textarea {
    min-height: 200px;
    resize: vertical;
}

.new-article-form select {
    appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,<svg width="14" height="8" viewBox="0 0 14 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L7 7L13 1" stroke="%23333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 0.75rem;
    padding-right: 2.5rem;
}

.new-article-form .submit-button {
    background-color: #124596;
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: bold;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.new-article-form .submit-button:hover {
    background-color: #0d3370;
}

.error-message,
.success-message {
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 4px;
    font-weight: bold;
}

.error-message {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.success-message {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

#generateContent {
    background-color: #124596;
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-left: 1rem;
}

#generateContent:hover {
    background-color: #218838;
}

.content-wrapper {
    position: relative;
}

#generateContent {
    position: absolute;
    right: 0;
    top: -40px;
}

/* Loading overlay styles */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.loading-spinner {
    border: 5px solid #f3f3f3;
    border-top: 5px solid #124596;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.your-articles-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.your-articles-container h2 {
    color: #124596;
    margin-bottom: 20px;
    font-size: 2em;
}

.articles-table {
    width: 100%;
    border-collapse: collapse;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.articles-table th,
.articles-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
}

.articles-table th {
    background-color: #f5f5f5;
    font-weight: bold;
    color: #333;
    text-transform: uppercase;
    font-size: 0.9em;
}

.articles-table tr:hover {
    background-color: #f9f9f9;
}

.articles-table td span {
    margin-right: 10px;
    color: #666;
}

.articles-table td span i {
    margin-right: 5px;
    color: #124596;
}

.edit-btn,
.delete-btn {
    display: inline-block;
    padding: 5px 10px;
    margin-right: 10px; /* Dodaje odstęp po prawej stronie przycisku */
    border-radius: 3px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.edit-btn {
    background-color: #124596;
    color: white;
}

.edit-btn:hover {
    background-color: #0d3370;
}

.delete-btn {
    background-color: #dc3545;
    color: white;
}

.delete-btn:hover {
    background-color: #c82333;
}

/* Usuwa margines z prawej strony ostatniego przycisku w komórce */
.delete-btn:last-child {
    margin-right: 0;
}

.edit-article-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.edit-article-container h2 {
    color: #124596;
    margin-bottom: 20px;
}

.edit-article-form {
    background-color: #f9f9f9;
    padding: 20px;
    border-radius: 5px;
}

.edit-article-form label {
    display: block;
    margin-top: 10px;
    font-weight: bold;
}

.edit-article-form input[type="text"],
.edit-article-form textarea,
.edit-article-form select {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    border: 1px solid #ddd;
    border-radius: 3px;
}

.edit-article-form textarea {
    height: 200px;
}

.edit-article-form .submit-button {
    background-color: #124596;
    color: white;
    border: none;
    padding: 10px 20px;
    margin-top: 20px;
    cursor: pointer;
    border-radius: 3px;
    font-weight: bold;
}

.edit-article-form .submit-button:hover {
    background-color: #0d3370;
}

.error-message,
.success-message {
    padding: 10px;
    margin-bottom: 20px;
    border-radius: 3px;
}

.error-message {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.success-message {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

/* Dodaj te style do pliku CSS */
.comment.redactor-comment {
    background-color: #f8f9fa;
    border-left: 4px solid #124596;
    position: relative;
}

.comment.redactor-comment::after {
    content: 'Redaktor';
    position: absolute;
    top: 10px;
    right: 10px;
    background-color: #124596;
    color: white;
    padding: 2px 8px;
    border-radius: 3px;
    font-size: 0.8em;
    font-weight: bold;
    z-index: 2;
}

.comment.redactor-comment .comment-author {
    color: #124596;
    font-weight: bold;
    z-index: 1;
}

#comments-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.comment {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Style dla sekcji komentarzy */
.comments-section {
    margin-top: 30px;
    padding: 20px 20px 20px 20px; /* Symetryczny padding: góra, prawa, dół, lewa */
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

/* Kontener listy komentarzy */
#comments-list {
    display: flex;
    flex-direction: column;
    gap: 20px; /* Odstęp między komentarzami */
    margin-top: 20px; /* Odstęp od formularza komentarza */
}

/* Pojedynczy komentarz */
.comment {
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    padding: 15px;
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

/* Treść komentarza */
.comment-content {
    width: 100%;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    padding-right: 0; /* Upewnij się, że nie ma dodatkowego padding po prawej */
    margin-right: 0; /* Upewnij się, że nie ma dodatkowego marginesu po prawej */
}

/* Nagłówek komentarza */
.comment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

/* Reakcje na komentarz */
.comment-reactions {
    margin-top: 10px;
    display: flex;
    gap: 15px;
}

/* Style dla komentarzy firm */
.comment[data-user-type="firma"] {
    background-color: #f8f9fa;
    border: 1px solid #d0d0d0;
    position: relative;
    overflow: hidden;
    margin-bottom: 15px;
}

.comment[data-user-type="firma"] .comment-content {
    padding: 10px 12px;
}

.comment[data-user-type="firma"] .comment-content::after {
    content: "";
    display: table;
    clear: both;
}

/* Tło firmowe */
.company-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.1;
    z-index: 0;
}

/* Logo firmy */
.company-logo {
    width: 40px;
    height: 40px;
    margin-right: 10px;
    overflow: hidden;
    border-radius: 4px;
}

.company-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Nazwa firmy */
.comment-author.company {
    color: #124596;
    font-weight: bold;
}

/* Przycisk "Więcej o firmie" */
.company-info-button {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background-color: #124596;
    color: white;
    border: none;
    padding: 4px 12px; /* Zmniejszone padding */
    border-radius: 3px; /* Opcjonalnie zmniejszony radius */
    cursor: pointer;
    z-index: 2;
    font-size: 0.9em; /* Opcjonalnie zmniejszona czcionka */
    line-height: 1.2; /* Zmniejszona wysokość linii */
}

.company-info-button:hover {
    background-color: #0d3578;
}

/* Dodane style dla zapobiegania sierotom */
.article-content p {
    text-align: justify;
    margin: 0 0 0.85em 0;
    padding: 0;
    line-height: 1.6;
}

/* Usunięto p::before, które powodowało podwójne odstępy */

/* Zapobieganie sierotom dla krótkich wyrazów - tylko dla linków i krótkich fragmentów */
.article-content p a {
    white-space: nowrap;
}

/* Dla elementów formatujących (strong, em, b, i) pozwalamy na łamanie linii */
.article-content p strong,
.article-content p em,
.article-content p b,
.article-content p i {
    white-space: normal;
    word-wrap: break-word;
}

/* Specjalne reguły dla krótkich wyrazów */
.article-content p > span:has(+ span:last-child),
.article-content p > a:has(+ a:last-child),
.article-content p > strong:has(+ strong:last-child),
.article-content p > em:has(+ em:last-child),
.article-content p > b:has(+ b:last-child),
.article-content p > i:has(+ i:last-child) {
    display: inline-block;
}

/* Style dla widgetu pogodowego */
.ad-square.weather-widget {
    background: white;
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}


.expand-hint {
    display: none;
}

.expand-hint i {
    font-size: 0.8em;
    margin-left: 4px;
    opacity: 0.8;
}


/* Styl dla formularza kontaktowego */
.contact-form {
    background-color: #ffffff; /* Białe tło formularza */
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    max-width: 600px;
    margin: 20px auto; /* Centruj formularz */
}

/* Styl dla grupy formularza */
.form-group {
    margin-bottom: 15px;
}

/* Styl dla etykiet */
label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: #124596; /* Kolor etykiet */
}

/* Styl dla pól formularza */
input[type="text"],
input[type="email"],
textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box; /* Umożliwia lepsze zarządzanie paddingiem */
}

/* Styl dla przycisku wysyłania */
button {
    background-color: #124596; /* Kolor tła przycisku */
    color: white;
    padding: 10px 15px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

/* Efekt hover dla przycisku */
button:hover {
    background-color: #0d3370; /* Ciemniejszy kolor przycisku po najechaniu */
}

/* Styl dla sekcji kontaktowych */
.contact-info {
    list-style-type: none;
    padding: 0;
}

.contact-info li {
    margin-bottom: 10px;
}

/* Styl dla linków w mediach społecznościowych */
.social-media a {
    margin-right: 10px;
    text-decoration: none;
    color: #124596; /* Kolor linków */
}

.social-media a:hover {
    text-decoration: underline; /* Podkreślenie linków po najechaniu */
}

/* Styl dla nagłówków */
h2 {
    color: #124596; /* Kolor nagłówków */
    margin-top: 20px;
}

.contact-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 20px 0;
}

.contact-form-section,
.contact-info-section {
    flex: 1;
    min-width: 300px; /* Minimalna szerokość sekcji */
    margin: 10px; /* Odstęp między sekcjami */
    padding: 20px;
    background-color: #f9f9f9; /* Tło sekcji */
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.contact-info-section {
    display: flex;
    flex-direction: column;
}

.contact-info {
    list-style-type: none;
    padding: 0;
}

.contact-info li {
    margin-bottom: 10px;
}

.social-media {
    display: flex;
    gap: 10px; /* Odstęp między linkami */
}

.working-hours-section,
.address-section {
    margin: 20px 0;
    padding: 20px;
    background-color: #f9f9f9; /* Tło sekcji */
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.cookie-notice {
    position: fixed;
    bottom: -100px; /* Ukryte na początku */
    left: 0;
    right: 0;
    background-color: #f9f9f9;
    padding: 15px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    text-align: center;
    transition: bottom 0.3s ease;
    z-index: 1000;
}

.cookie-notice.visible {
    bottom: 0; /* Wysuwane na górę */
}

.cookie-notice p {
    margin: 0;
    color: #333;
}

.cookie-notice .btn {
    background-color: #124596;
    color: white;
    border: none;
    padding: 10px 15px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.cookie-notice .btn:hover {
    background-color: #0d3370;
}

/* --- MAIN MENU DROPDOWN STYLES (Refined) --- */
nav ul li.dropdown {
    position: relative;
}

/* Desktop smart search (icon + dropdown under icon) */
.nav-search{
    position: relative;
    display: flex;
    align-items: center;
}
.nav-search-btn{
    appearance: none;
    border: none;
    background: transparent;
    color: #ffffff;
    cursor: pointer;
    padding: 10px 12px;
    border-radius: 10px;
    line-height: 1;
}
.nav-search-btn:hover{
    background: rgba(255,255,255,0.10);
}
.sticky-header .nav-search-btn{ padding: 10px 10px; }

.nav-search-panel{
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    width: min(520px, 72vw);
    z-index: 20050;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(15,23,42,0.12);
    background: rgba(255,255,255,0.98);
    box-shadow: 0 24px 70px rgba(2,6,23,0.25);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.nav-search-form{
    display:flex;
    align-items:center;
    gap: 10px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(15,23,42,0.08);
    background: rgba(18,69,150,0.04);
}
.nav-search-form input{
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid rgba(15,23,42,0.12);
    border-radius: 12px;
    padding: 10px 12px;
    outline: none;
    font-family: 'Oswald', sans-serif;
    font-size: 14px;
}
.nav-search-form input:focus{
    border-color: rgba(18,69,150,0.45);
    box-shadow: 0 0 0 3px rgba(18,69,150,0.12);
}
.nav-search-clear{
    appearance:none;
    border:none;
    background: rgba(2,6,23,0.06);
    width: 32px;
    height: 32px;
    border-radius: 999px;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: rgba(15,23,42,0.75);
}
.nav-search-dropdown{
    max-height: min(58vh, 520px);
    overflow: hidden;
}
.dss-scroll{
    max-height: inherit;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.dss-section{ padding: 10px 12px 6px; }
.dss-head{
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    color: rgba(15,23,42,0.62);
    text-transform: uppercase;
    margin: 2px 2px 8px;
}
.dss-tags{ display:flex; flex-wrap: wrap; gap: 8px; padding: 0 2px 6px; }
.dss-tag{
    text-decoration:none;
    color: rgba(13,51,112,0.92);
    background: rgba(13,51,112,0.06);
    border: 1px solid rgba(13,51,112,0.14);
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
}
.dss-list{ display:flex; flex-direction: column; gap: 2px; }
.dss-item{
    text-decoration:none;
    padding: 10px 10px;
    border-radius: 12px;
    color: inherit;
    display:flex;
    align-items:center;
    gap: 10px;
}
.dss-item:hover{ background: rgba(2,6,23,0.04); }
.dss-thumb{
    width: 44px;
    height: 44px;
    border-radius: 12px;
    flex: 0 0 auto;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: rgba(15,23,42,0.06);
    border: 1px solid rgba(15,23,42,0.10);
}
.dss-thumb--noimg{
    background-image: linear-gradient(135deg, rgba(18,69,150,0.10), rgba(13,51,112,0.10));
}
.dss-item-main{ min-width: 0; flex: 1 1 auto; }
.dss-item-title{ font-weight: 900; color: rgba(15,23,42,0.92); font-size: 14px; line-height: 1.25; }
.dss-item-title{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dss-item-sub{ margin-top: 3px; font-size: 12px; color: rgba(15,23,42,0.56); }
.dss-more{
    display:block;
    padding: 10px 12px;
    text-decoration:none;
    font-weight: 900;
    color: #124596;
    border-top: 1px solid rgba(15,23,42,0.08);
    background: rgba(18,69,150,0.04);
    text-align:center;
}
.dss-empty{ padding: 12px; color: rgba(15,23,42,0.62); font-weight: 800; }

/* Dropdown Container - Only for main header nav */
#main-header nav ul li ul,
.sticky-header nav ul li ul {
    display: none;
    position: absolute;
    top: 100% !important; /* Force position below parent */
    left: 0;
    background: #031f4a !important; /* Fallback */
    background: linear-gradient(180deg, #124596 0%, #031f4a 100%) !important;
    background-color: #031f4a !important; /* Ensure background color is set */
    min-width: 280px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.4);
    z-index: 10001; /* Higher than header z-index */
    padding: 0 !important;
    flex-direction: column;
    border-radius: 0 0 4px 4px;
    margin: 0;
    list-style: none;
    border-top: 2px solid #4caf50; /* Accent line on top */
    overflow: visible !important; /* Allow all items to be visible */
    height: auto !important; /* Allow height to adjust to content */
    padding-top: 5px !important; /* Add invisible bridge at top */
    margin-top: -5px !important; /* Compensate padding to keep visual position */
}

/* Ensure dropdowns are properly positioned - only for main and sticky headers */
#main-header nav ul li ul,
.sticky-header nav ul li ul {
    top: 100% !important; /* Position directly below parent menu item */
    bottom: auto !important;
    margin-top: 0 !important;
}

/* Ensure dropdowns don't appear outside their parent */
#main-header nav ul li.dropdown,
.sticky-header nav ul li.dropdown {
    overflow: visible; /* Allow dropdown to show */
}

/* Create invisible bridge between menu item and dropdown to prevent hover loss */
#main-header nav ul li.dropdown::after,
.sticky-header nav ul li.dropdown::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 12px;
    background: transparent;
    z-index: 10000;
    pointer-events: none; /* nie blokuj klików w treści poniżej */
}

/* Mostek ma łapać hover tylko gdy dropdown jest aktywny */
#main-header nav ul li.dropdown:hover::after,
#main-header nav ul li.dropdown:focus-within::after,
.sticky-header nav ul li.dropdown:hover::after,
.sticky-header nav ul li.dropdown:focus-within::after{
    pointer-events: auto;
}

/* Show dropdown on hover - Only for main header and sticky header */
#main-header nav ul li.dropdown:hover > ul,
.sticky-header nav ul li.dropdown:focus-within > ul,
#main-header nav ul li.dropdown:focus-within > ul,
.sticky-header nav ul li.dropdown:hover > ul {
    display: flex !important;
    flex-direction: column !important; /* Ensure vertical layout for all items */
    animation: fadeInDropdown 0.2s ease-out;
}

@keyframes fadeInDropdown {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Dropdown Items */
nav ul li ul li {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    display: block !important;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    background: transparent !important; /* Ensure items don't override container background */
    background-color: transparent !important; /* Double ensure transparency */
    height: auto !important; /* Allow height to adjust to content */
    overflow: visible !important; /* Ensure items are fully visible */
}

nav ul li ul li:last-child {
    border-bottom: none;
}

nav ul li ul li::before {
    display: none !important; /* Remove main menu vertical separator */
}

/* Dropdown Links */
nav ul li ul li a {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem !important; /* Override main menu size */
    font-weight: 400 !important;
    text-transform: none; /* Allow normal case */
    padding: 12px 20px !important; /* Comfortable padding */
    color: #e0e0e0 !important;
    display: block;
    line-height: 1.4;
    border-radius: 0 !important;
    white-space: normal; /* Allow wrapping for long names */
    background: transparent;
    transition: all 0.2s ease;
    text-align: left;
}

/* Dropdown Link Hover */
nav ul li ul li a:hover {
    background-color: rgba(255,255,255,0.15) !important;
    color: #ffffff !important;
    padding-left: 25px !important; /* Slide effect */
    border-radius: 0 !important;
}

nav ul li ul li a::after {
    display: none !important; /* Remove underline animation */
}

/* Caret Icon */
nav ul li .fa-caret-down {
    margin-left: 6px;
    font-size: 0.7em;
    vertical-align: middle;
    transition: transform 0.3s;
    display: inline-block; /* Ensure icon stays inline with text */
    white-space: nowrap; /* Prevent icon from wrapping */
}

nav ul li.dropdown:hover .fa-caret-down {
    transform: rotate(180deg);
}

/* --- CATEGORY COLORS (New) --- */
.category-tag.category-inwestycje-i-rozwj-miast { background-color: #004d40 !important; }
.category-tag.category-strefa-ekonomiczna-i-inwestorzy { background-color: #00695c !important; }
.category-tag.category-rynek-mieszkaniowy-i-nieruchomoci { background-color: #00796b !important; }

.category-tag.category-logistyka-i-magazyny { background-color: #0d47a1 !important; }
.category-tag.category-transport-infrastruktura-energia { background-color: #1565c0 !important; }
.category-tag.category-rolnictwo-i-przemys-spoywczy { background-color: #1976d2 !important; }
.category-tag.category-it-przemysy-kreatywne { background-color: #1e88e5 !important; }

.category-tag.category-ludzie-biznesu-wywiady-profile-start-upy { background-color: #e65100 !important; }

.category-tag.category-wolny-czas-hotele-restauracje { background-color: #c2185b !important; }

/* --- NYTIMES-LIKE LAYOUT - SIMPLIFIED --- */
/* Sekcje kategorii */
.categories-sections {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 20px;
    width: 100%;
}

/* Na index.php sekcje są zrównane z promowanymi/reklamami (bez bocznego paddingu) */
.categories-sections.categories-sections--sticky{
    padding-left: 0;
    padding-right: 0;
}

.category-section {
    margin-bottom: 60px;
    padding-bottom: 40px;
    border-bottom: 2px solid #e0e0e0;
}

.category-section:last-child {
    border-bottom: none;
}

/* Layout dla każdej sekcji kategorii: 2/3 treść + 1/3 sidebar */
.category-section-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    align-items: start;
}

.category-main-content {
    min-width: 0; /* Zapobiega overflow */
}

.category-sidebar {
    min-width: 0; /* Zapobiega overflow */
    padding-left: 20px;
    border-left: 2px solid var(--category-light, #e0e0e0);
}

.category-section-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px;
    padding-bottom: 8px;
    border-bottom: 1px solid #ccc;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 12px;
}

/* Subtelne akcenty kolorystyczne dla tytułów sekcji */
.category-section-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--category-primary, #333);
    opacity: 0.8;
}

/* Sticky nagłówki sekcji (index.php) – nagłówek "przykleja się" pod górnym menu */
.categories-sections--sticky .category-section-title {
    position: sticky;
    top: var(--section-sticky-top, 0px);
    z-index: 50;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    /* żeby tekst nie "przyklejał się" do krawędzi */
    margin-top: 0;
}

/* Delikatny cień tylko gdy widoczny jest sticky header (czyli faktycznie "przyklejamy" pod belką) */
html.sticky-header-visible .categories-sections--sticky .category-section-title {
    box-shadow: none;
}

/* Uproszczona lista artykułów - grid layout dla różnorodnego układu */
.articles-list-simple {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

.article-item-simple {
    padding: 20px 0;
    border-bottom: 1px solid #e0e0e0;
    transition: background-color 0.2s ease;
    position: relative;
}

.article-item-simple:hover {
    background-color: var(--category-light, rgba(0, 0, 0, 0.01));
}

.article-item-simple:last-child {
    border-bottom: none;
}

.article-item-separated {
    border-bottom: 1px solid #e0e0e0;
}

.article-link-simple {
    text-decoration: none;
    color: inherit;
    display: block;
}

.article-link-simple:hover .article-title-simple {
    color: var(--category-accent, #124596);
}

/* Efekt zoom dla wszystkich zdjęć przy hover */
.article-item-simple:hover .article-image-simple img {
    transform: scale(1.05);
}

/* Duże artykuły (nowsze) - pełna szerokość, zdjęcie na całą szerokość */
.article-item-large {
    grid-column: 1 / -1;
    padding: 30px 0;
}

.article-item-large .article-image-simple {
    width: 100%;
    margin-bottom: 15px;
    display: block;
    overflow: hidden;
}

.article-item-large .article-image-simple img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.article-item-large .article-title-simple {
    font-size: 1.8rem;
    margin-bottom: 12px;
}

.article-item-large .article-summary-simple {
    font-size: 1.1rem;
    margin-bottom: 12px;
}

/* Średnie artykuły - mogą być obok siebie */
.article-item-medium {
    padding: 25px 0;
}

/* Wszystkie średnie artykuły ze zdjęciem mają horizontal layout */
.article-item-medium-horizontal {
    display: flex;
    flex-direction: row;
    gap: 25px;
    align-items: flex-start;
}

/* Średnie artykuły w grid (2 kolumny) */
.article-item-medium-grid {
    grid-column: span 1;
    padding: 20px 0;
    border: none;
    background-color: transparent;
}

.article-item-medium-grid:hover {
    background-color: transparent;
}

/* Średnie artykuły z tekstem po lewej i obrazkiem po prawej */
.article-item-medium-horizontal {
    display: flex;
    flex-direction: row;
    gap: 25px;
    align-items: flex-start;
}

.article-item-medium-horizontal .article-content-simple {
    flex: 1;
    min-width: 0;
    order: 1;
}

.article-item-medium-horizontal .article-image-simple {
    flex: 0 0 350px;
    width: 350px;
    max-width: 350px;
    min-width: 350px;
    margin-bottom: 0;
    overflow: hidden;
    height: 220px;
    order: 2;
}

.article-item-medium-horizontal .article-image-simple img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.article-item-medium-horizontal .article-summary-simple {
    font-size: 1rem;
    margin-bottom: 10px;
    line-height: 1.5;
    color: #666;
}

/* Gdy mamy średnie artykuły obok siebie, zmień grid na 2 kolumny */
.articles-list-simple:has(.article-item-medium-grid) {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Na mniejszych ekranach średnie artykuły wracają do jednej kolumny */
@media (max-width: 767px) {
    .articles-list-simple:has(.article-item-medium-grid) {
        grid-template-columns: 1fr;
    }
    
    .article-item-medium-grid {
        grid-column: 1 / -1;
    }
    
    /* Horizontal layout na mobile - obrazek na górze */
    .article-item-medium-horizontal {
        flex-direction: column;
    }
    
    .article-item-medium-horizontal .article-content-simple {
        order: 2;
    }
    
    .article-item-medium-horizontal .article-image-simple {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
        min-width: 100%;
        height: 250px;
        margin-bottom: 12px;
        overflow: hidden;
        order: 1;
    }
}

/* Domyślne style dla średnich artykułów bez horizontal layout */
.article-item-medium:not(.article-item-medium-horizontal) .article-image-simple {
    width: 100%;
    margin-bottom: 12px;
    display: block;
    overflow: hidden;
}

.article-item-medium-grid .article-image-simple {
    width: 100%;
    max-width: 100%;
    margin-bottom: 12px;
    display: block;
    overflow: hidden;
}

.article-item-medium .article-image-simple img,
.article-item-medium-grid .article-image-simple img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

/* Kontener dla małych artykułów obok siebie */
.articles-row-small {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 15px 0;
    border-bottom: 1px solid #e0e0e0;
}

/* Małe artykuły kompaktowe (bez zdjęć, obok siebie) */
.article-item-compact {
    padding: 15px 0;
    border: none;
    background-color: transparent;
}

.article-item-compact:hover {
    background-color: transparent;
}

.article-item-compact .article-title-simple {
    font-size: 1rem;
    margin-bottom: 8px;
    line-height: 1.3;
}

.article-item-compact .article-summary-simple {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 8px;
    line-height: 1.4;
}

.article-item-compact .article-meta-simple {
    font-size: 0.85rem;
}

/* Małe artykuły z zdjęciami - pełna szerokość */
.article-item-small:not(.article-item-compact) {
    grid-column: 1 / -1;
    padding: 15px 0;
}

.article-item-small:not(.article-item-compact) .article-image-simple {
    width: 100%;
    max-width: 200px;
    margin-bottom: 10px;
    display: block;
    float: left;
    margin-right: 15px;
    overflow: hidden;
}

.article-item-small:not(.article-item-compact) .article-image-simple img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
    transition: transform 0.3s ease;
}

.article-item-medium .article-title-simple {
    font-size: 1.4rem;
    margin-bottom: 10px;
}

.article-item-medium .article-summary-simple {
    font-size: 1rem;
    margin-bottom: 10px;
}

/* Małe artykuły (starsze) */
.article-item-small {
    padding: 15px 0;
}

.article-item-small:not(.article-item-compact) .article-title-simple {
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.article-content-simple {
    width: 100%;
}

.article-title-simple {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    line-height: 1.3;
    color: #333;
    margin: 0 0 10px 0;
    transition: color 0.2s ease;
}

.article-summary-simple {
    font-family: 'Noticia Text', serif;
    font-size: 1rem;
    line-height: 1.6;
    color: #666;
    margin: 0 0 10px 0;
}

.article-meta-simple {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    color: #999;
    flex-wrap: wrap;
}

.article-date-simple {
    color: #999;
}

.article-author-simple {
    color: #666;
    font-weight: 600;
}

.article-reading-time-simple {
    color: #8f8f8f;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.article-reading-time-simple i {
    opacity: 0.75;
}

/* Sidebar - Sekcja opinii */
.opinion-section,
.popular-section,
.quotes-section,
.market-section {
    margin-bottom: 40px;
}

.opinion-section-title,
.popular-section-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--category-primary, #333);
    margin-bottom: 20px;
    padding-bottom: 8px;
    padding-left: 10px;
    border-bottom: 1px solid var(--category-light, #ccc);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    position: relative;
}

.opinion-section-title::before,
.popular-section-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: var(--category-primary, #333);
    opacity: 0.7;
}

.opinion-articles,
.popular-articles {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Sidebar - Sekcja CYTATY */
.quotes-list{
    display:flex;
    flex-direction: column;
    gap: 0;
}
.market-list{
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-left: 10px;
}
.market-item{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 12px;
}
.market-left{
    min-width: 0;
    flex: 1 1 auto;
}
.market-name{
    font-weight: 800;
    color: rgba(15,23,42,0.84);
    font-size: 0.93rem;
    letter-spacing: 0.01em;
}
.market-price{
    margin-top: 2px;
    color: rgba(15,23,42,0.60);
    font-weight: 600;
    font-size: 0.88rem;
}
.market-right{
    display:flex;
    align-items:center;
    gap: 10px;
    flex: 0 0 auto;
}
.market-change{
    font-weight: 800;
    font-size: 0.88rem;
    white-space: nowrap;
}
.market-change.is-pos{ color: #0b6b4e; }
.market-change.is-neg{ color: #b91c1c; }
.market-spark{
    width: 96px;
    height: 30px;
    display:block;
}
.market-spark svg{
    width: 100%;
    height: 100%;
    display:block;
}
.market-footnote{
    padding-left: 10px;
    margin-top: 10px;
    color: rgba(15,23,42,0.52);
    font-weight: 700;
    font-size: 0.78rem;
}
.market-empty{
    padding-left: 10px;
    color: rgba(15,23,42,0.62);
    font-weight: 700;
    font-size: 0.9rem;
}
.quote-item{
    display:flex;
    align-items:flex-start;
    gap: 12px;
    padding: 10px 0;
    padding-left: 10px;
}
.quote-item-separated{
    border-bottom: 1px solid #e0e0e0;
}
.quote-avatar{
    width: 88px;
    height: 88px;
    flex: 0 0 88px;
    border-radius: 22px;
    overflow: hidden;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.10);
    display: grid;
    place-items: center;
}
.quote-avatar img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.quote-avatar-placeholder{
    font-weight: 900;
    color: rgba(15, 23, 42, 0.72);
    letter-spacing: 0.02em;
}
.quote-bubble{
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    background: transparent;
    border: none;
    border-radius: 16px;
    padding: 12px 12px 9px 12px;
    color: rgba(15, 23, 42, 0.88);
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.45;
    white-space: normal; /* nie zachowuj nowych linii z wcięć HTML */
    word-break: break-word;
    text-align: left;
    display: flex;
    flex-direction: column;
}
.quote-bubble::before{
    content: '❝';
    position: absolute;
    top: -6px;
    left: 6px;
    font-size: 34px;
    line-height: 1;
    font-weight: 700;
    font-style: normal;
    font-family: Georgia, "Times New Roman", Times, serif;
    color: #c70000;
    opacity: 0.95;
    pointer-events: none;
}
.quote-text{
    font-family: 'Noticia Text', serif;
    font-style: italic;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.82);
    margin-top: 8px; /* miejsce na znak cytatu */
    white-space: pre-line; /* zachowaj \n w cytacie, ale bez „pustych wierszy” z wcięć */
}
.quote-author{
    margin-top: 6px;
    text-align: right;
    font-style: normal;
    font-weight: 600;
    font-size: 0.82rem;
    color: rgba(15, 23, 42, 0.58);
}
.quote-author-title{
    margin-top: 2px;
    font-weight: 600;
    font-size: 0.78rem;
    color: rgba(15, 23, 42, 0.50);
}

/* Sidebar - Sekcja ANALIZY */
.analysis-sidebar-list{
    display: flex;
    flex-direction: column;
    gap: 0;
}
.analysis-sidebar-item{
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 0;
    padding-left: 10px;
    border-bottom: 1px solid #e0e0e0;
    border-left: 2px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: border-left-color 0.2s ease, background-color 0.2s ease, padding-left 0.2s ease;
}
.analysis-sidebar-item:hover{
    background-color: var(--category-light, rgba(0, 0, 0, 0.01));
    padding-left: 14px;
    border-left-color: var(--category-primary, #c70000);
}
.analysis-sidebar-item:last-child{
    border-bottom: none;
}
.analysis-sidebar-avatar{
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 16px;
    overflow: hidden;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.10);
    display: grid;
    place-items: center;
}
.analysis-sidebar-avatar--placeholder{
    background: rgba(199, 0, 0, 0.08);
    border-color: rgba(199, 0, 0, 0.18);
    color: #c70000;
    font-weight: 900;
}
.analysis-sidebar-avatar img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.analysis-sidebar-avatar-placeholder{
    font-weight: 900;
    color: rgba(15, 23, 42, 0.72);
    letter-spacing: 0.02em;
}
.analysis-sidebar-body{
    min-width: 0;
    flex: 1 1 auto;
}
.analysis-sidebar-item-title{
    font-weight: 800;
    color: rgba(15, 23, 42, 0.92);
    line-height: 1.25;
    margin-top: 1px;
    display: -webkit-box;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.analysis-sidebar-item-meta{
    margin-top: 6px;
    color: rgba(15, 23, 42, 0.62);
    font-size: 0.88rem;
    font-weight: 700;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.opinion-item,
.popular-item {
    padding: 15px 0;
    padding-left: 10px;
    border-bottom: 1px solid #e0e0e0;
    border-left: 2px solid transparent;
    transition: border-left-color 0.2s ease, background-color 0.2s ease, padding-left 0.2s ease;
}

.opinion-item:hover,
.popular-item:hover {
    background-color: var(--category-light, rgba(0, 0, 0, 0.01));
    padding-left: 14px;
    border-left-color: var(--category-primary, transparent);
}

.opinion-item:last-child,
.popular-item:last-child {
    border-bottom: none;
}

.opinion-item-separated,
.popular-item-separated {
    border-bottom: 1px solid #e0e0e0;
}

.opinion-link,
.popular-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.opinion-link:hover .opinion-title,
.popular-link:hover .popular-title {
    color: var(--category-accent, #124596);
}

.opinion-title,
.popular-title {
    font-family: 'Noticia Text', serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    color: #333;
    margin: 0 0 8px 0;
    transition: color 0.2s ease;
}

.opinion-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.8rem;
    color: #999;
}

.opinion-author {
    color: #666;
    font-weight: 600;
}

.opinion-date {
    color: #999;
}

.popular-date {
    color: #999;
    font-size: 0.85rem;
}

.popular-reading-time {
    /* Taka sama typografia jak data (popular-date) */
    color: #999;
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 10px;
    white-space: nowrap;
}

.popular-reading-time i {
    opacity: 0.75;
}

/* ============================
   Cookie consent (Desktop)
   ============================ */
.knews-cookie-banner{
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 99999;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 14px;
    box-shadow: 0 18px 46px rgba(0,0,0,0.16);
    max-width: 980px;
    margin: 0 auto;
}
.knews-cookie-banner.is-hidden{ opacity: 0; transform: translateY(6px); transition: opacity 200ms ease, transform 200ms ease; }
.knews-cookie-inner{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
}
.knews-cookie-title{
    font-weight: 800;
    color: rgba(15,23,42,0.92);
    font-size: 0.95rem;
    margin-bottom: 2px;
}
.knews-cookie-desc{
    color: rgba(15,23,42,0.62);
    font-size: 0.88rem;
    line-height: 1.35;
}
.knews-cookie-actions{ display:flex; align-items:center; gap: 10px; flex: 0 0 auto; }
.knews-cookie-link{
    color: rgba(18,69,150,0.95);
    font-weight: 800;
    text-decoration: none;
    font-size: 0.9rem;
    padding: 10px 10px;
    border-radius: 999px;
    background: rgba(18,69,150,0.08);
    border: 1px solid rgba(18,69,150,0.12);
}
.knews-cookie-link:hover{ background: rgba(18,69,150,0.12); }
.knews-cookie-btn{
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    background: linear-gradient(135deg, #124596, #0d3370);
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}
.knews-cookie-btn:active{ transform: translateY(1px); }
@media (max-width: 560px){
    .knews-cookie-inner{ flex-direction: column; align-items: stretch; }
    .knews-cookie-actions{ justify-content: flex-end; }
}

/* Posłuchaj (MP3) */
.listen-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.listen-play-btn {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid var(--category-light, #e0e0e0);
    background: #fff;
    color: var(--category-primary, #124596);
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.listen-play-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.08);
    background: var(--category-light, #f5f7ff);
}

.listen-content {
    flex: 1 1 auto;
    min-width: 0;
}

.listen-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--category-primary, #124596);
    background: var(--category-light, #e3f2fd);
    padding: 2px 8px;
    border-radius: 999px;
    width: fit-content;
}

.listen-progress {
    margin-top: 10px;
}

.listen-progress-track {
    width: 100%;
    height: 6px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 999px;
    overflow: hidden;
}

.listen-progress-fill {
    height: 100%;
    background: var(--category-primary, #124596);
    width: 0%;
    border-radius: 999px;
    transition: width 0.1s linear;
}

/* Dock player (sticky na dole) */
.audio-dock {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5000;
    transform: translateY(110%);
    transition: transform 0.2s ease;
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(10px);
    border-top: 1px solid #e8e8e8;
    box-shadow: 0 -12px 30px rgba(0,0,0,0.08);
}

.audio-dock.active {
    transform: translateY(0);
}

.audio-dock-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.audio-dock-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.audio-dock-title {
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.audio-dock-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #124596;
    background: #e3f2fd;
    padding: 2px 8px;
    border-radius: 999px;
    flex: 0 0 auto;
}

.audio-dock-controls {
    display: grid;
    grid-template-columns: auto auto 1fr auto auto auto auto;
    align-items: center;
    gap: 10px;
}

.audio-dock-btn {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid #e0e0e0;
    background: #fff;
    color: #124596;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.audio-dock-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0,0,0,0.08);
}

.audio-dock-close {
    color: #666;
}

.audio-dock-time {
    font-size: 0.85rem;
    color: #666;
    font-variant-numeric: tabular-nums;
    width: 44px;
    text-align: center;
}

.audio-dock-seek {
    width: 100%;
    accent-color: #124596;
}

.audio-dock-volume-icon {
    font-size: 0.95rem;
    color: #666;
}

.audio-dock-volume {
    width: 110px;
    accent-color: #124596;
}

@media (max-width: 768px) {
    .audio-dock-controls {
        grid-template-columns: auto auto 1fr auto auto;
    }
    .audio-dock-volume-icon,
    .audio-dock-volume {
        display: none;
    }
}

/* MP3 w artykule (desktop) */
.article-audio {
    margin: 18px 0 10px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
}

.article-audio-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.article-audio-title {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #124596;
}

.article-audio-badge {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #124596;
    background: #e3f2fd;
    padding: 2px 8px;
    border-radius: 999px;
}

/* Responsywność */
@media (max-width: 1024px) {
    .category-section-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .category-sidebar {
        padding-left: 0;
        border-left: none;
        border-top: 1px solid #e0e0e0;
        padding-top: 30px;
    }
}

/* ============================
   Ludzie biznesu (katalog)
   business_people.php / business_person.php
   ============================ */
.people-page{
    max-width: 1200px;
    margin: 0 auto;
    padding: 22px 20px 34px;
}

.people-header{
    margin: 4px 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(15,23,42,0.10);
    background: transparent;
}
.people-header-title{
    margin: 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.8rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: rgba(15,23,42,0.96);
}
.people-header-subtitle{
    margin: 6px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.02rem;
    line-height: 1.55;
    color: rgba(15,23,42,0.70);
    max-width: 74ch;
}

.people-grid{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.person-card{
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0,0,0,0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.person-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 44px rgba(0,0,0,0.08);
}
.person-photo{
    width: 100%;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    background-color: rgba(15,23,42,0.04);
}
.person-photo--initials{
    display: grid;
    place-items: center;
    background: radial-gradient(900px 260px at 30% 10%, rgba(18,69,150,0.85), rgba(3,31,74,0.95));
}
.person-photo--initials span{
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 2.3rem;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.95);
}
.person-card-body{
    padding: 14px 14px 16px;
}
.person-name{
    margin: 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1.2;
    color: rgba(15,23,42,0.94);
}
.person-company{
    margin: 6px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-weight: 600;
    font-size: 0.92rem;
    line-height: 1.25;
    color: rgba(15,23,42,0.58);
}
.person-role{
    margin: 8px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 0.98rem;
    line-height: 1.45;
    color: rgba(15,23,42,0.70);
}
.people-empty{
    grid-column: 1 / -1;
    background: rgba(15,23,42,0.03);
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 18px;
    padding: 20px;
    text-align: center;
    color: rgba(15,23,42,0.78);
}
.people-empty i{
    font-size: 28px;
    color: rgba(18,69,150,0.85);
    margin-bottom: 8px;
}
.people-empty h3{
    margin: 0 0 6px 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
}
.people-empty p{ margin: 0; font-family: 'Noticia Text', serif; }

.person-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 18px 20px 34px;
}
.person-back{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: rgba(18,69,150,0.95);
    font-weight: 800;
    margin-bottom: 12px;
}
.person-back:hover{ text-decoration: underline; }
.person-hero{
    margin-bottom: 14px;
}
.person-hero-card{
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    background: #fff;
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 20px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.06);
}
.person-hero-photo{
    width: 160px;
    height: 160px;
    border-radius: 18px;
    overflow: hidden;
    background: rgba(15,23,42,0.04);
    border: 1px solid rgba(18,18,18,0.10);
    flex: 0 0 auto;
}
.person-hero-photo img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.person-hero-photo-placeholder{
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: rgba(18,69,150,0.85);
    font-size: 44px;
}
.person-fullname{
    margin: 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 2.2rem;
    line-height: 1.12;
    letter-spacing: -0.01em;
    color: rgba(15,23,42,0.96);
}
.person-company-name{
    margin-top: 6px;
    font-family: 'Noticia Text', serif;
    font-weight: 600;
    font-size: 1.02rem;
    line-height: 1.35;
    color: rgba(15,23,42,0.66);
}
.person-position-row{
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.person-position{
    margin: 0;
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.05rem;
    line-height: 1.5;
    color: rgba(15,23,42,0.72);
}
.person-company-logo{
    width: 180px;
    height: 80px;
    border-radius: 0;
    border: 0;
    background: transparent;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}
.person-company-logo img{
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}
.person-company-logo--header{
    justify-self: end;
    align-self: center;
}
.person-content-inner{
    background: #fff;
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 20px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.06);
    padding: 18px 18px;
}
.person-section-title{
    margin: 0 0 12px 0;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(18,69,150,0.95);
    font-size: 0.95rem;
}
.person-bio{
    font-family: 'Noticia Text', serif;
    font-weight: 400;
    font-size: 1.12rem;
    line-height: 1.85;
    color: rgba(15,23,42,0.92);
}
.person-divider{
    height: 1px;
    background: linear-gradient(to right, rgba(18,69,150,0.0), rgba(18,69,150,0.25), rgba(18,69,150,0.0));
    margin: 16px 0 14px 0;
}
.person-interviews,
.person-analyses{
    margin-top: 10px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.person-interview-item{
    display:block;
    text-decoration:none;
    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 16px;
    padding: 12px 12px;
    box-shadow: 0 10px 26px rgba(12,24,44,0.06);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
    color: inherit;
}
.person-interview-item:hover{
    transform: translateY(-1px);
    border-color: rgba(18,69,150,0.18);
    box-shadow: 0 14px 34px rgba(12,24,44,0.10);
}
.person-interview-title{
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.08rem;
    line-height: 1.25;
    color: rgba(15,23,42,0.94);
}
.person-interview-meta{
    margin-top: 6px;
    display:flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items:center;
    font-family: 'Noticia Text', serif;
    font-size: 0.96rem;
    color: rgba(15,23,42,0.66);
}
.person-dot{ opacity: 0.55; }
.person-interview-badge{
    font-family: 'Oswald', sans-serif;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.72rem;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(18,69,150,0.08);
    border: 1px solid rgba(18,69,150,0.14);
    color: rgba(18,69,150,0.95);
}
.person-analysis-badge{
    font-family: 'Oswald', sans-serif;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.72rem;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(13,116,144,0.10);
    border: 1px solid rgba(13,116,144,0.18);
    color: rgba(13,116,144,0.95);
}
.person-notfound{
    background: #fff;
    border: 1px solid rgba(18,18,18,0.10);
    border-radius: 20px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.06);
    padding: 18px;
}
.person-notfound h2{
    margin: 0 0 8px 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
}
.person-notfound p{
    margin: 0 0 12px 0;
    font-family: 'Noticia Text', serif;
    color: rgba(15,23,42,0.72);
}

@media (max-width: 1100px){
    .people-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px){
    .people-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .person-hero-card{
        grid-template-columns: 1fr;
        align-items: flex-start;
    }
    .person-hero-photo{ width: 100%; height: auto; aspect-ratio: 16 / 10; }
    .person-company-logo--header{
        justify-self: start;
        width: 160px;
        height: 72px;
    }
}
@media (max-width: 540px){
    .people-grid{ grid-template-columns: 1fr; }
    .person-fullname{ font-size: 1.85rem; }
}

/* =========================================================
   Zapisane artykuły (desktop) – saved-articles.php
   ========================================================= */
.saved-page{
    max-width: 1200px;
    margin: 26px auto 48px;
    padding: 0 20px;
}
.saved-head{
    position: relative;
    z-index: 20060; /* ponad elementami nagłówka/panelami */
    background: linear-gradient(180deg, rgba(18,69,150,0.06), rgba(18,69,150,0.00));
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.05);
}
.saved-title-h1{
    margin: 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 2.1rem;
    letter-spacing: -0.01em;
    color: rgba(15,23,42,0.96);
    display:flex;
    align-items:center;
    gap: 10px;
}
.saved-title-h1 i{ color: #124596; }
.saved-subtitle{
    margin: 8px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(15,23,42,0.68);
}
.saved-controls{
    position: relative;
    z-index: 20061;
    margin-top: 14px;
    display: grid;
    grid-template-columns: 1.4fr 0.8fr 0.8fr;
    gap: 12px;
    align-items: end;
}
.saved-controls *{
    pointer-events: auto;
}
.saved-control label{
    display:block;
    margin: 0 0 6px 0;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.78rem;
    color: rgba(15,23,42,0.72);
}
.saved-control input,
.saved-control select{
    width: 100%;
    border: 1px solid rgba(15,23,42,0.14);
    border-radius: 12px;
    padding: 11px 12px;
    background: rgba(255,255,255,0.92);
    outline: none;
    font-family: 'Noticia Text', serif;
    font-size: 1.0rem;
    color: rgba(15,23,42,0.92);
    box-shadow: 0 8px 22px rgba(12,24,44,0.06);
}
.saved-control input:focus,
.saved-control select:focus{
    border-color: rgba(18,69,150,0.55);
    box-shadow: 0 0 0 4px rgba(18,69,150,0.12), 0 8px 22px rgba(12,24,44,0.06);
}
.saved-control--meta{
    display:flex;
    justify-content: flex-end;
}
.saved-meta-tools{
    width: 100%;
    display:flex;
    justify-content: space-between;
    align-items:center;
    gap: 10px;
    padding: 6px 2px;
}
.saved-count{
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.82rem;
    color: rgba(15,23,42,0.70);
}
.saved-clear{
    border: 1px solid rgba(15,23,42,0.14);
    border-radius: 999px;
    background: rgba(255,255,255,0.85);
    padding: 9px 12px;
    font-family: 'Oswald', sans-serif;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.76rem;
    cursor:pointer;
    color: rgba(15,23,42,0.78);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.saved-clear:hover{
    transform: translateY(-1px);
    background: #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,0.08);
}

.saved-grid{
    margin-top: 16px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.saved-card{
    position: relative;
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(0,0,0,0.06);
    transition: transform .18s ease, box-shadow .18s ease;
}
.saved-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 22px 52px rgba(0,0,0,0.10);
}
.saved-card-link{
    color: inherit;
    text-decoration: none;
    display:block;
}
.saved-card-media{
    position: relative;
    height: 180px;
    background-size: cover;
    background-position: center;
    background-color: rgba(2,6,23,0.04);
}
.saved-card-media.is-noimg{
    background-image: linear-gradient(135deg, rgba(18,69,150,0.14), rgba(18,69,150,0.02));
}
.saved-card-media-overlay{
    position:absolute;
    inset:0;
    background: linear-gradient(180deg, rgba(2,6,23,0.05), rgba(2,6,23,0.38));
}
.saved-badge{
    position:absolute;
    left: 12px;
    bottom: 12px;
    display:inline-flex;
    align-items:center;
    padding: 8px 10px;
    border-radius: 999px;
    color:#fff;
    font-family: 'Oswald', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.74rem;
    box-shadow: 0 10px 22px rgba(0,0,0,0.18);
}
.saved-card-body{
    padding: 14px 14px 14px 14px;
}
.saved-kicker{
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-size: 0.78rem;
    color: rgba(18,69,150,0.92);
}
.saved-card-title{
    margin: 8px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
    font-size: 1.28rem;
    line-height: 1.25;
    color: rgba(15,23,42,0.96);
}
.saved-excerpt{
    margin: 10px 0 0 0;
    font-family: 'Noticia Text', serif;
    font-size: 1.02rem;
    line-height: 1.55;
    color: rgba(15,23,42,0.70);
}
.saved-card-meta{
    margin-top: 12px;
    display:flex;
    flex-direction: column;
    gap: 6px;
    font-family: 'Noticia Text', serif;
    font-size: 0.98rem;
    color: rgba(15,23,42,0.70);
}
.saved-card-meta-row{
    display:flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items:center;
}
.saved-card-meta-row i{ color: rgba(18,69,150,0.78); }
.saved-card-meta-row--muted{ color: rgba(15,23,42,0.62); }
.saved-meta-strong{
    font-weight: 700;
    color: rgba(15,23,42,0.86);
}
.saved-dot{
    color: rgba(15,23,42,0.35);
}
.saved-remove{
    position: absolute;
    top: 12px;
    right: 12px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.35);
    background: rgba(2,6,23,0.28);
    color: #fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition: transform .15s ease, background .15s ease, opacity .15s ease;
}
.saved-remove:hover{ transform: translateY(-1px); background: rgba(2,6,23,0.42); }
.saved-remove:disabled{ opacity: 0.55; cursor: not-allowed; transform:none; }

.saved-card.is-removing{ opacity: 0.72; }
.saved-card.is-removed{ opacity: 0; transform: translateX(-6px); transition: opacity .22s ease, transform .22s ease; }

.saved-empty{
    margin-top: 18px;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.10);
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 18px 44px rgba(0,0,0,0.06);
    text-align:center;
}
.saved-empty-icon{
    width: 70px;
    height: 70px;
    border-radius: 18px;
    margin: 0 auto 10px auto;
    display:grid;
    place-items:center;
    background: rgba(18,69,150,0.10);
    color: rgba(18,69,150,0.92);
    font-size: 30px;
}
.saved-empty h2{
    margin: 0 0 8px 0;
    font-family: 'Noticia Text', serif;
    font-weight: 700;
}
.saved-empty p{
    margin: 0 0 14px 0;
    font-family: 'Noticia Text', serif;
    color: rgba(15,23,42,0.70);
    line-height: 1.65;
}
.saved-empty-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding: 12px 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, #124596 0%, #1E88E5 100%);
    color:#fff;
    text-decoration:none;
    border: 0;
    font-family: 'Oswald', sans-serif;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.82rem;
    cursor:pointer;
    box-shadow: 0 14px 32px rgba(18,69,150,0.28);
}
.saved-empty-cta:hover{ filter: brightness(1.03); }

@media (max-width: 980px){
    .saved-controls{ grid-template-columns: 1fr 1fr; }
    .saved-control--meta{ grid-column: 1 / -1; justify-content: flex-start; }
    .saved-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
    .saved-page{ padding: 0 14px; }
    .saved-title-h1{ font-size: 1.75rem; }
    .saved-card-media{ height: 168px; }
}
