
   body {
	font-family: 'Montserrat', sans-serif;
	padding: 0px;
	color: rgb(11,58,111);
	background-color: #e9ecef;
 }

    select { margin-right: 10px; padding: 5px; }
    .no-results { color: red; }


	/* ukrywanie tabel */


#delta-T-container,
#delta-T-heating-container,
#total-U-container,
#total-U-heating-container,
#heat-power-results-container,
#heating-power-results-container,
#selected-heat-power-container,
#air-density-container,
#h-max-container,
#Kf-container {
    display: none !important;
}



/* STYLES FOR DISCLAIMER AND GATED CONTENT */

#disclaimer-container {
    padding: 30px;
    margin: 30px 0;
    border: 1px solid #dee2e6;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    color: #333333;
}

#disclaimer-container h2 {
    color: rgb(11, 58, 111);
    border-bottom: 2px solid #0b3a6f;
    padding-bottom: 10px;
    margin-top: 0;
    text-align: center;
}

#disclaimer-container p {
    line-height: 1.6;
    font-size: 0.95em;
    color: #333333;
    margin-bottom: 25px; 
}

.slide-action-button {
    display: block;
    width: 100%;
    padding: 12px 25px;
    margin: 25px 0 0 0; 
    text-decoration: none;
    color: white; 
    font-weight: 700;
    border-radius: 8px;
    text-align: center;
    box-sizing: border-box;
    cursor: pointer; 
    border: none;
    font-size: 1.2em;
    position: relative;
    overflow: hidden;
    background: linear-gradient(to right, rgb(203, 0, 123) 50%, rgb(11, 58, 111) 50%);
    background-size: 200% 100%;
    background-position: right; 
    transition: background-position 0.4s ease-in-out;
}

.slide-action-button:hover {
    background-position: left;
}

#gated-content-container {
    display: none; 
}

@media only screen and (max-width: 768px) {
    
    #disclaimer-container {
        padding: 15px 10px; 
    }
    
    .slide-action-button {
        font-size: 16px;
        padding: 10px 15px;
        white-space: normal; 
    }
}


	/* wpisanie więćej niż 2000 w pole wysokości n.p.m. */

.input-error {
    background-color: #ffdddd; /* Jasnoczerwone tło dla całego wiersza */
    border-left: 5px solid red; /* Czerwona linia z lewej */
}

/* Podświetlenie samego pola wejściowego */
.input-error input#altitude {
    border: 2px solid red !important;
}

/* Podświetlenie etykiety (dla urządzeń mobilnych) */
.input-error td[data-label] {
    color: red !important;
    font-weight: bold;
}



/* Styl dla komórki zawierającej opcje wyboru trybu */
.mode-selection-single-cell {
    /* Ustawienie Flexbox na komórce dla lepszej kontroli nad jej zawartością */
    display: flex;
    /* Wyrównanie zawartości wertykalnie do środka */
    align-items: center; 
    /* Wyrównanie zawartości horyzontalnie do środka (opcjonalnie, jeśli chcesz całą grupę na środku) */
    justify-content: center;
    /* Ważne: Zapewnienie, że komórka ma pełną wysokość wiersza */
    height: 100%; 
    padding: 10px 0; /* Dodatkowy padding wertykalny dla lepszego wyglądu */
}


/* Styl dla kontenera grupy przycisków radiowych */
.input-container.radio-group-flex {
    display: flex;
    /* Dystrybucja spacji między elementami */
    justify-content: space-around; 
    /* Wyrównanie w pionie wewnątrz kontenera */
    align-items: center; 
    /* Nadanie szerokości, aby opcje miały miejsce do rozłożenia */
    width: 100%; 
}

/* Ustawienie wyglądu pojedynczej opcji radio */
.radio-option {
    display: flex;
    align-items: center;
    gap: 5px; /* Odstęp między inputem a etykietą */
    white-space: nowrap; /* Zapobiega łamaniu się etykiety */
}

/* Wyrównanie radio buttona wertykalnie */
.radio-option input[type="radio"] {
    vertical-align: middle;
    /* Możesz powiększyć przyciski radiowe, tak jak robiłeś to dla checkboxów */
    transform: scale(1.3); 
    margin: 0;
}

/* Styl dla etykiety */
.radio-option label {
    font-size: 14px;
    cursor: pointer;
}

@media (max-width: 600px) {
    /* ... (istniejące style dla mobilnych tabel) ... */

    /* Zmiana stylu dla grupy przycisków radiowych (opcji wyboru) */
    .input-container.radio-group-flex {
        flex-direction: column;
        gap: 6px; /* Zmniejszony odstęp między opcjami */
        justify-content: center;
        align-items: flex-start; 
        width: auto;
        padding: 5px 0;
        /* KLUCZOWA ZMIANA: Odsunięcie od lewej krawędzi tabeli */
        margin-left: 10px; 
    }
    
    .radio-option {
        width: 100%;
        justify-content: flex-start;
    }
    
    /* KLUCZOWA ZMIANA: Zmniejszenie przycisków radiowych (kropek) */
    .radio-option input[type="radio"] {
        vertical-align: middle;
        transform: scale(1.0); /* Zmniejszamy do standardowego rozmiaru (lub lekko powiększonego, np. 1.0) */
        margin: 0;
    }

    /* KLUCZOWA ZMIANA: Zmniejszenie czcionki etykiet (tekstu obok kropki) */
    .radio-option label {
        font-size: 12px; /* Zmniejszona czcionka dla czytelności */
        cursor: pointer;
    }
}





	/* MAIN */

DIV.main-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 3px;
  box-sizing: border-box;
  position: relative;
}

	/* Lang */

#lang-selector {
    position: static;
    top: auto;
    right: auto;
	justify-content: right;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 5px;
	flex-wrap: wrap;
}
#lang-selector .filter-reset-button {
    padding: 5px 10px;
    font-size: 12px;
}

#lang-selector .lang-link {
    margin-left: 10px;
    text-decoration: none;
    color: #000;
    font-weight: bold;
}

@media (max-width: 500px) {
    #lang-selector {
        position: static;
        top: auto;
        right: auto;
        text-align: center;
        margin-bottom: 10px;
    }

    .ETI-toplogocontainer {
        text-align: center;
    }
}


.selection-table {
    margin-bottom: 20px; /* Dodatkowa przestrzeń pod tabelą wyboru */
}

/* Dostosowanie dla komórek z checkboxami, aby były wyrównane do środka */
.selection-table .input-container.checkbox-input {
    display: flex;
    justify-content: center; /* Wyrównanie checkboxa horyzontalnie */
    align-items: center;     /* Wyrównanie checkboxa wertykalnie */
    height: 100%;            /* Użycie pełnej wysokości komórki */
    padding: 0;
}

/* Zwiększenie rozmiaru checkboxa, aby był lepiej widoczny */
.selection-table input[type="checkbox"] {
    transform: scale(1.5); /* Powiększenie checkboxa o 50% */
    margin: 0;
    width: auto;
    min-width: 0;
    height: auto;
    border: initial;
}

/* Wyrównanie lewej kolumny (etykiet) na desktopie, tak jak w material-table */
.selection-table td:first-child {
    font-weight: bold;
    text-align: left;
}

/* Wyrównanie prawej kolumny (checkboxów) na desktopie */
.selection-table td:last-child {
    text-align: center;
}

/* Upewnienie się, że w trybie mobilnym czcionka nagłówka jest poprawna */
@media (max-width: 768px) {
    .selection-table thead th {
        font-size: 14px; /* Ustawienie czytelnej czcionki dla nagłówka mobilnego */
        padding: 6px 10px;
    }
    
    /* Wyśrodkowanie tekstu w kolumnie z etykietami na urządzeniach mobilnych */
    .selection-table td:first-child {
        text-align: center;
        font-weight: bold;
        padding-left: 0;
    }
}












/* Style dla kontenera przycisku powrót */

.button-container {
	padding-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

/* Stylizacja przycisków i animacji */
.animated-button {
    display: block;
    width: 100%;
    padding: 12px 25px;
    text-decoration: none;
    color: white;
    font-weight: 700;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    text-align: center;
    box-sizing: border-box;
    background: linear-gradient(to right, rgb(11, 58, 111) 50%, rgb(203, 0, 123) 50%);
    background-size: 200% 100%;
    background-position: left;
    transition: background-position 0.4s ease-in-out;
}

.animated-button:hover {
    background-position: right;
}




	/* nagłówek H1, H2, H3 */

	h1 {
  font-size: 30px;
  text-align: center;
  font-weight: bold;
}
	h2 {
  font-size: 20px;
}
	h4 {
  font-size: 20px;
  text-align: center;
}

@media (max-width: 500px) {
	h1 {
    font-size: 20px;
  }
	h2 {
    font-size: 15px;
  }
	h4 {
    font-size: 15px;
  }
}

	/* Top */

IMG.ETI-top-logo {
	padding-top: 5px;
	height: 45px;
	margin: 0;
	}

@media only screen and (min-width: 1010px) {
IMG.ETI-top-logo {
	height: 60px;
	}
}


DIV.ETI-first-product-title-line {
	width: 90%;
	height: 1px;
	margin: 10px auto 0 auto;
	background: rgb(203,0,123);
}


@media only screen and (min-width: 601px) {
  .filter-grid {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .filter-column {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 10px 12px;
    flex: 1 1 0;
    min-width: 240px;
    align-items: center;
  }
  .filter-column label {
    text-align: right;
    font-size: 14px;
    padding-right: 6px;
  }
  .filter-column select {
    width: 100%;
    padding: 8px;
    font-size: 14px;
    box-sizing: border-box;
  }
}

@media only screen and (min-width: 601px) {
  .filter-grid {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .filter-column {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 10px 12px;
    flex: 1 1 0;
    min-width: 240px;
    align-items: center;
  }
  .filter-column label {
    text-align: right;
    font-size: 14px;
    padding-right: 6px;
  }
  .filter-column select {
    width: 100%;
    padding: 8px;
    font-size: 14px;
    box-sizing: border-box;
  }
}




  /* przycisk wyczyść */

.filter-reset-container {
  display: flex;
  justify-content: center;
  margin: 10px 0 20px 0;
  perspective: 800px;
}

.filter-reset-button {
  background-color: rgb(11, 58, 111);
  color: white;
  border: none;
  padding: 8px 15px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 14px;
  font-weight: bold;
  transition: all 0.3s ease-in-out;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  transform: scale(1);
}

.filter-reset-button:hover {
  background-color: rgb(203, 0, 123);
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.3);
  transform: scale(1.05);
}



  /* wyświetlanie wyników */

.record-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  padding: 15px;
  margin-bottom: 20px;
}

.record-title {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 15px;
}

.record-content {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}


.record-image {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.record-image img {
  max-width: 100%;
  border-radius: 4px;
}

@media (max-width: 500px) {
  .record-content {
    flex-direction: column;
    gap: 10px;
  }
  .record-image {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .record-image img {
    max-width: 100%;
    height: auto;
  }
}

.alert-center {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 15px 30px;
  border-radius: 5px;
  z-index: 1000;
  font-family: sans-serif;
  text-align: center;
  transition: opacity 0.5s ease-in-out;
  opacity: 0;
}

.alert-center.show {
  opacity: 1;
}


.btn-dwg {
  background-color: rgb(11, 58, 111);
  color: white;
  padding: 5px 10px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  transition: all 0.3s ease-in-out;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  transform: scale(1);
}

.btn-dwg:hover {
  background-color: rgb(203, 0, 123);
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.3);
  transform: scale(1.05);
}

.record-params {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 20px;
  flex: 1;
}

.param {
  font-size: 14px;
}

.param span {
  font-weight: bold;
}

/* RESPONSYWNOŚĆ PARAMETRÓW */
@media (max-width: 800px) {
  .record-params {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 500px) {
  .record-content {
    flex-direction: column;
  }
  .record-params {
    grid-template-columns: 1fr;
	gap: 5px;
  }
}



/* przycisk skopiuj do schowka */

.copy-bom-btn {
  background-color: rgb(11, 58, 111);
  color: white;
  border: none;
  padding: 5px 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  margin-left: 10px;
  transition: all 0.3s ease-in-out;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  transform: scale(1);
}

.copy-bom-btn:hover {
  background-color: rgb(203, 0, 123); 
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.3); 
  transform: scale(1.05); 
}

/* info pod wyszukiwaniem */

.ETI-info {
  padding: 20px;
  color: rgb(11,58,111);
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
}

/* Footer */

.bottomfooter {
	padding-top: 5px;
	padding-bottom: 5px;
	text-align: center;
	}
.bottom-footer-image{
	width:100%;
	text-align: center;
	}

DIV.footer-line {
	width: 80%;
	height: 1px;
	margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
	background: rgb(203,0,123);
}

IMG.footer-slogan-image {
	width: 50%;
	padding-top: 10px;
	padding-bottom: 10px;
}

@media only screen and (min-width: 600px) {
IMG.footer-slogan-image {
	width: 30%;
	padding-top: 15px;
	}
}



/* temperatura określenie */

.filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  align-items: start;
}
.filter-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 20px;
}
.filter-group label {
  font-weight: 600;
  margin-bottom: 5px;
  color: #0b3a6f;
  font-size: 14px;
}
.filter-group .input-container {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.filter-group input {
  padding: 8px 30px 8px 12px;
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.delta-t-result {
  font-weight: bold;
  font-size: 16px;
  color: #0b3a6f;
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #f7f7f7;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}
/* Dostosowanie dla urządzeń mobilnych */
@media (max-width: 600px) {
  .filter-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .filter-group {
    margin-bottom: 15px;
  }
}



#ventilation-flow-container {
    margin-top: 30px; 
}





/* TABELA RESPONSYWNA */
.material-table1,
.material-table2 {
    margin-top: 25px;
    /* Utrzymujemy ukrycie przepełnienia, aby wymusić zmieszczenie się na ekranie */
    overflow-x: hidden; 
    width: 100%;
    max-width: 100%;
}



.material-table1 h4,
.material-table2 h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

.material-table1 table,
.material-table2 table {
    display: table;
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    table-layout: fixed; /* Kluczowe dla równego rozkładu kolumn */
}

/* --- Nagłówki (th) i Komórki Danych (td) - Domyślne style (Powiększone) --- */

.material-table1 th,
.material-table2 th,
.material-table1 td,
.material-table2 td {
    display: table-cell;
    padding: 4px 2px; /* Zwiększony padding */
    font-size: 12px; /* Większa czcionka dla danych */
    border: 1px solid #ddd;
    box-sizing: border-box;
    text-align: center;
    min-width: 0;
    width: 1px;
    height: 30px; /* Domyślna minimalna wysokość komórki */
}

.material-table1 tr, .material-table2 tr {
    display: table-row;
}

/* --- Nagłówki (th) - Styl z zawijaniem i wyśrodkowaniem pionowym --- */
.material-table1 th,
.material-table2 th {
    font-size: 13px; /* Największa czcionka dla nagłówków */
    padding: 6px 4px; 
    vertical-align: middle; 
    line-height: 1.2;
    white-space: normal;
    height: 50px; /* Wystarczająca wysokość dla zawijanego tekstu */
    background-color: #f7f7f7;
    color: #0b3a6f;
    font-weight: 700;
}

/* --- Nagłówki table2 thead --- */
.material-table2 thead tr {
    display: table-row;
}



/* --- Komórki Danych (td) - detale --- */

.material-table1 td {
    white-space: nowrap; 
}

.material-table1 td:first-child {
    text-align: left;
    font-weight: normal;
}


/* --- Powiększone pola wyboru i wejściowe dla wszystkich widoków --- */
.material-table1 input[type="number"],
.material-table2 input[type="number"],
.material-table1 select,
.material-table2 select {
    width: 100%;
    min-width: 0;
    padding: 2px 4px;
    font-size: 12px; /* Powiększona czcionka w kontrolce */
    height: 23px; /* Kluczowe: Zwiększona wysokość, aby widoczne były strzałki góra/dół */
    border: 1px solid #ccc;
    margin: 0;
    box-sizing: border-box;
    text-align: center;
}

/* Usuwamy etykiety data-label, by nie zakłócały widoku tabelarycznego */
.material-table1 td::before,
.material-table2 td::before {
    content: none !important;
}



/* Zaktualizowane, bardzo agresywne style dla widoku mobilnego (max-width: 600px) */

@media (max-width: 600px) {

    /* --- Kompresja Tabel (material-table1 i material-table2) --- */
    
    .material-table1,
    .material-table2 {
        overflow-x: hidden;
        width: 100%;
        max-width: 100%;
    }

    .material-table1 table,
    .material-table2 table {
        display: table;
        width: 100%;
        table-layout: fixed; 
        border-collapse: collapse;
    }
    
    .material-table1 tr, .material-table2 tr {
        display: table-row;
    }
    
    /* --- Ustawienia dla komórek danych (td) --- */

    .material-table1 td, .material-table2 td {
        display: table-cell;
        padding: 2px 1px;
        font-size: 8px; 
        white-space: nowrap; /* Komórki danych pozostają nie-zawijane, by zmieścić inputy */
        border: 1px solid #ddd;
        box-sizing: border-box;
        text-align: center;
        height: 16px; 
        min-width: 0;
        width: 1px;
    }
    
    .material-table1 td:first-child {
        text-align: left;
        font-weight: normal;
    }


    /* --- Nagłówki table2 (th) - Włączone zawijanie --- */
    
    .material-table2 thead tr {
        display: table-row;
    }

    .material-table2 th {
        display: table-cell;
        font-size: 10px; /* Nieco większa czcionka, by zawijany tekst był czytelny */
        padding: 4px 2px; /* Większy padding dla zawijanego tekstu */
        vertical-align: middle; /* Wyrównanie do góry komórki */
        line-height: 1.1;
        white-space: normal; /* !!! KLUCZOWE: Włącza zawijanie tekstu nagłówka */
        height: 30px; /* Minimalna wysokość wiersza nagłówka */
        overflow: hidden;
        text-align: center;
        border: 1px solid #ddd;
        box-sizing: border-box;
        width: 1px;
    }

    /* --- Kompresja pól wyboru i wejściowych --- */
    .material-table1 input[type="number"],
    .material-table2 input[type="number"],
    .material-table1 select,
    .material-table2 select {
        width: 100%;
        min-width: 0;
        padding: 0;
        font-size: 8px;
        height: 16px; 
        border: none;
        margin: 0;
        box-sizing: border-box;
        text-align: center;
    }
    
    /* Usuwamy etykiety data-label, by nie zakłócały widoku tabelarycznego */
    .material-table1 td::before,
    .material-table2 td::before {
        content: none !important;
    }
}

/* Kontener dla całej siatki obrazów */
.image-grid-container {
    margin-top: 15px;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}

/* Wiersz z dwoma obrazami */
.image-row {
    display: flex;
    justify-content: center;
    gap: 15px;
    width: 100%;
}

/* Styl dla pojedynczego obrazu */
.location-image {
    width: auto;
    max-height: 200px;
    height: auto;
    max-width: 50%;
    box-sizing: border-box;
    border: none;
}

@media (max-width: 600px) {
    .image-row {
        flex-direction: column;
        align-items: center;
    }
    .location-image {
        max-width: 100%;
        max-height: none;
    }
}











/* ================================================================= */
/* === STYLER DLA STAŁEJ TABELI BOM (OSTATECZNA WERSJA) === */
/* ================================================================= */

/* Kontener otaczający (Karta) */
#permanent-bom-container {
    margin-top: 25px;
    margin-bottom: 25px;
    padding: 20px;
    border: 1px solid #dee2e6; 
    border-radius: 8px;
    background-color: #ffffff;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

/* Tytuł sekcji (H4) */
#permanent-bom-container h4 {
    display: flex;
    justify-content: flex-start; /* Przyciski przesunięte w lewo */
    align-items: center;
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: none; /* Brak kreski */
    color: rgb(11, 58, 111); 
    font-size: 20px;
    font-weight: 700;
}

/* Właściwa tabela */
#permanent-bom-table {
    width: 100%;
    border-collapse: collapse;
    border: none;
}

/* Nagłówki tabeli (TH) - JASNOSZARE TŁO, GRANATOWY TEKST */
#permanent-bom-table thead th {
    background-color: #f7f7f7; /* Jasnoszare tło */
    color: rgb(11, 58, 111); /* Granatowy tekst */
    padding: 12px 8px;
    text-align: center;
    
    /* KLUCZOWA ZMIANA: Usunięcie wszystkich ramek TH (nagłówki mają teraz tło) */
    border: none;
    
    font-weight: 700;
    font-size: 14px;
    vertical-align: middle;
}

/* Komórki tabeli (TD) */
#permanent-bom-table tbody td {
    padding: 10px 8px;
    text-align: center;
    vertical-align: middle;
    font-size: 13px;
    color: rgb(11, 58, 111); /* Granatowy tekst */
    background-color: white;
    
    /* KLUCZOWA ZMIANA: Usunięcie pionowych ramek (pozostaje tylko wiersz pod spodem) */
    border: none; 
}

/* Dodanie poziomej linii pod wierszami (oprócz ostatniego) */
#permanent-bom-table tbody tr:not(:last-child) {
    border-bottom: 1px solid #dee2e6; /* Subtelny separator poziomy */
}

/* === PRZYCISKI KOPIOWANIA/POBIERANIA (DYNAMICZNE STYLE) === */
.copy-bom-btn, 
.download-csv-btn { 
    /* Style bazowe */
    padding: 6px 10px; 
    margin-left: 15px; /* Odsunięcie od tytułu H4 */
    border: none;
    border-radius: 4px;
    cursor: pointer;
    background-color: rgb(11, 58, 111); /* Granatowe tło */
    color: white;
    font-size: 12px;
    font-weight: 400;
    
    /* Płynna, wolniejsza animacja (0.4s) obejmująca cień */
    transition: background-color 0.4s ease-in-out, transform 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0); /* Bazowy cień niewidoczny */
}

/* Efekt HOVER */
.copy-bom-btn:hover,
.download-csv-btn:hover {
    background-color: rgb(203, 0, 123); /* Różowo-fioletowy/Magenta */
    transform: scale(1.05); /* Powiększenie przycisku o 5% */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Pojawienie się cienia */
}

@media (max-width: 768px) {
    
    /* KLUCZOWA ZMIANA 1: Usuwamy przewijanie poziome. Kontener musi się dopasować. */
    #permanent-bom-container {
        overflow-x: hidden !important; /* Blokujemy przewijanie, jeśli było włączone */
        padding: 10px; /* Zmniejszamy padding, aby zyskać więcej miejsca */
    }
    
    /* Zapewniamy, że tabela wykorzystuje całą dostępną szerokość */
    #permanent-bom-table {
        width: 100% !important;
        min-width: 0 !important; /* Usuwamy minimalną szerokość, która wymuszała przewijanie */
        table-layout: fixed; /* Kluczowe: Zmusza kolumny do zajęcia ustalonej szerokości */
    }

    /* Nadpisanie głównej reguły 'display: block' dla tabeli BOM */
    #permanent-bom-table table {
        display: table !important;
        width: 100% !important;
    }
    
    /* Przywrócenie struktury tabelarycznej (table-header-group, table-row, table-cell) */
    #permanent-bom-table thead {
        display: table-header-group !important;
        position: static !important;
    }
    #permanent-bom-table tr {
        display: table-row !important;
        margin-bottom: 0 !important;
        border: none !important;
    }
    
    /* KLUCZOWA ZMIANA 2: Komórki tabeli (DODANO WYRÓWNANIE PIONOWE) */
    #permanent-bom-table th, 
    #permanent-bom-table td {
        display: table-cell !important;
        
        /* POPRAWKA DLA WYRÓWNANIA: Wyrównanie pionowe do środka */
        vertical-align: middle !important; 
        
        /* Zezwalamy na zawijanie tekstu, aby nie powiększał szerokości kolumny */
        white-space: normal !important; 
        word-wrap: break-word; /* Pomaga w łamaniu długich słów */
        
        /* Zmniejszamy padding i czcionkę, aby zmieścić więcej treści */
        padding: 6px 4px !important; 
        font-size: 10px !important; 
        
        /* Utrzymanie ramek poziomych i usunięcie pionowych */
        border-right: none !important; 
        border-left: none !important; 
        border-bottom: 1px solid #dee2e6 !important;
        
        /* Wyrównanie tekstu do lewej w kolumnie "Opis", aby był bardziej czytelny */
        text-align: left !important; 
    }
    
    /* Przywrócenie nagłówka, aby oddzielić go od treści */
    #permanent-bom-table thead th {
        text-align: center !important; /* Nagłówki mogą być wyśrodkowane */
        font-size: 11px !important;
        font-weight: bold;
        /* Upewniamy się, że nagłówki też mają wyśrodkowanie w pionie */
        vertical-align: middle !important;
    }
    
    /* Jeśli chcesz, by kolumny 'Nr kat.', 'Symbol' i 'Ilość' były wyśrodkowane horyzontalnie: */
    #permanent-bom-table td:nth-child(-n+3) {
        text-align: center !important;
    }

    /* Usuwamy mobilne "etykiety" (data-label) */
    #permanent-bom-table td::before {
        content: none !important;
    }
    
    /* Zadbaj o to, by przyciski nie tworzyły przesunięcia */
    #permanent-bom-container h4 {
        flex-wrap: wrap; 
        justify-content: center; 
    }
    .copy-bom-btn, .download-csv-btn {
        margin-left: 5px; 
        margin-top: 5px;
        font-size: 10px; 
    }
}