/* Główne ustawienia dokumentu */
body { 
    margin: 5pt; /* Minimalny odstęp od krawędzi ekranu */
    padding: 0;
    text-align: justify; 
    font-size: 11pt; /* Użycie pt jest pewniejsze w PDF */
    font-family: Athelas, Georgia, serif; 
    line-height: 1.5;
}

/* --- BLOKI KODU --- */
pre, code, .sourceCode {
    /* Resetujemy justify na wyrównanie do lewej */
    text-align: left !important;
    white-space: pre-wrap !important;
    word-spacing: normal !important; /* To naprawi "dziury" w tekście */
    letter-spacing: normal !important;
}

pre {
    background-color: #f8f9fa !important;
    padding: 1em;
    margin: 1.5em 0;
    border-left: 4px solid #0078d4;
    font-family: "Consolas", "Monaco", monospace !important;
    font-size: 9pt !important;
    line-height: 1.3 !important;
}

/* Kolorowanie składni - usuwamy nadrzędną klamrę .sourceCode */
code span.kw { color: #0000ff !important; font-weight: bold; } /* Keywords */
code span.dt { color: #2b91af !important; }                   /* Types */
code span.st { color: #a31515 !important; }                   /* Strings */
code span.co { color: #008000 !important; font-style: italic; } /* Comments */
code span.fu { color: #74531f !important; }                   /* Functions */
code span.op { color: #000000 !important; }                   /* Operators */

/* Kod wewnątrz linii (inline) */
code:not(pre code) {
    background-color: #f3f3f3 !important;
    color: #d13438 !important;
    padding: 0.1em 0.25em !important;
    font-size: 90%;
}

/* --- TABELE: Minimalistyczne z separatorami wierszy --- */
table {
    border-collapse: collapse;
    width: 100%;
    margin: 2em 0;
    padding: 10px 15px;
    /* Usuwamy zewnętrzne obramowanie, zostawiamy tylko linie graniczne dla struktury */
    border: none !important; 
    font-size: 0.85em;
    text-align: left;
}

/* Zapobieganie dzieleniu wierszy tabeli między stronami */
table tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
}

/* Opcjonalnie: upewnij się, że komórki też trzymają się w całości */
table td {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
}

th {
    /* Grubsza linia pod nagłówkiem dla oddzielenia od danych */
    border-bottom: 2px solid #333 !important;
    padding: 12px 10px;
    font-weight: bold;
    color: #1a1a1a;
}

td {
    /* Linia oddzielająca każdy wiersz */
    border-bottom: 1px solid #ddd !important; 
    padding: 15px 10px; /* Zwiększony padding, żeby tekst "oddychał" */
    vertical-align: top;
    line-height: 1.5;
}

/* Usuwamy linię pod ostatnim wierszem, żeby tabela nie miała dolnej ramki */
tr:last-child td {
    border-bottom: none !important;
}

/* Opcjonalnie: lekki kolor dla parzystych wierszy, aby ułatwić śledzenie wzrokiem */
tr:nth-child(even) {
    background-color: #fafafa;
}

.page-break {
    page-break-after: always;
    break-after: page;
}