/* Resetuje domyślne marginesy, paddingi i ustawia box-sizing */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Ustawienia dla całej strony */
html, body {
    width: 100%;
    height: 100%;
    overflow: scroll; /* Zapewnia, że przewijanie jest zawsze włączone */
    overflow-x: hidden; /* Wyłącza przewijanie poziome */
    scrollbar-width: none; /* Ukrywa scrollbar w Firefox */
    -ms-overflow-style: none; /* Ukrywa scrollbar w Internet Explorer */
}

html::-webkit-scrollbar {
    display: none; /* Ukrywa scrollbar w WebKit (Chrome, Safari) */
}


/* Stylizacja tła i tekstu dla body */
body {
    background-color: #333;
    background-size: cover; /* Dopasowuje tło do rozmiaru ekranu */
    background-repeat: no-repeat; /* Zapobiega powtarzaniu tła */
    background-position: center; /* Ustawia tło na środku */
    background-attachment: fixed; /* Utrzymuje tło nieruchome przy przewijaniu */
    min-height: 100vh; /* Minimalna wysokość ustawiona na 100% widoku */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    font-family: Arial, sans-serif; /* Ustawienie fontu na całą stronę */
}

/* Kontener dla kafelków */
.tile-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 30px; /* Zwiększone marginesy między kafelkami */
}

/* Stylizacja kafelków */
.tile {
    background-color: #008080; /* Kolor tła kafelka */
    color: #fff; /* Kolor tekstu */
    border-radius: 8px; /* Zaokrąglone rogi */
    padding: 20px; /* Mniejszy padding dla lepszego wyglądu */
    width: 260px; /* Zmniejszona szerokość kafelka */
    height: 260px; /* Zmniejszona wysokość kafelka */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-shadow: 0 0 0 30px #272727; /* Obramowanie kafelka z kolorem #272727 */
    transition: transform 0.2s; /* Efekt po najechaniu */
    cursor: pointer;
    margin: 20px; /* Dodanie marginesów do każdego kafelka */
}

/* Efekt po najechaniu */
.tile:hover {
    transform: scale(1.05);
}

/* Stylizacja nagłówków i tekstów w kafelkach */
.tile h2 {
    margin: 0 0 10px 0;
    font-size: 24px; /* Zmniejszony rozmiar czcionki dla nagłówka */
    font-weight: bold;
}

.tile p {
    margin: 0;
    font-size: 16px; /* Dostosowanie rozmiaru czcionki dla opisu */
}

/* Responsywność */
@media (max-width: 1024px) {
    .tile {
        width: 220px;
        height: 220px;
        box-shadow: 0 0 0 25px #272727; /* Zmniejszone obramowanie dla średnich ekranów */
    }
}

@media (max-width: 768px) {
    .tile {
        width: 180px;
        height: 180px;
        box-shadow: 0 0 0 20px #272727; /* Zmniejszone obramowanie dla tabletów */
    }
}

@media (max-width: 480px) {
    .tile {
        width: 180px;
        height: 160px;
        box-shadow: 0 0 0 15px #272727; /* Zmniejszone obramowanie dla małych ekranów */
    }
}

/* Główny kontener dzielący na trzy części */
.container {
    display: flex;
    width: 100%;
    height: 100vh; /* Wysokość na całą wysokość ekranu */
    flex-wrap: wrap; /* Umożliwia zawijanie sekcji przy mniejszych ekranach */
}

/* Stylizacja formularza logowania i rejestracji */
.black-box {
	display: flex; 
    background-color: #272727;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    width: 90%;
    /* zamiast procentowego max-height ustawiamy względem viewportu */
    min-height: 95vh;      /* maksymalnie 95% wysokości okna przeglądarki */
    max-height: 95vh;      /* maksymalnie 95% wysokości okna przeglądarki */
    overflow-y: auto;      /* włączamy pionowy scroll */
    overflow-x: hidden;    /* wyłączamy poziomy scroll */

    /* Firefox */
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.2) transparent;
}

/* WebKit (Chrome, Edge, Safari) */
.black-box::-webkit-scrollbar {
    width: 4px;
    height: 4px; /* gdyby w przyszłości pojawił się poziomy */
}
.black-box::-webkit-scrollbar-track {
    background: transparent;
}
.black-box::-webkit-scrollbar-thumb {
    background-color: rgba(255,255,255,0.2);
    border-radius: 2px;
}
.black-box::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255,255,255,0.4);
}

.center-wrap {
	width: 100%;
	margin: auto 0;
}

.non-center-wrap {
	width: 100%;
}

/* Stylizacja nagłówka i przycisku przełączania */
.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.form-title {
    font-size: 24px;
    color: #fff;
    font-weight: bold;
}

.switch-button {
    background: none;
    border: none;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    transition: transform 0.3s;
}

.switch-button:hover {
    transform: rotate(180deg);
}

/* Stylizacja grup formularza */
.form-group {
    margin-bottom: 15px;
}

.form-group {
	flex: 1;
	min-width: 180px;  /* Gwarantuje, że przy ciasnym widoku wciąż się zawinie */
	display: flex;
	flex-direction: column;
}

.form-label {
    color: #fff;
    margin-bottom: 5px;
    margin-top: 5px;
    display: block;
}

.form-input {
    width: 100%;
    padding: 10px;
    background-color: #444;
    border: 1px solid #555;
    border-radius: 4px;
    color: #fff;
    font-size: 16px;
}

/* Zwiększenie wysokości pola tekstowego */
.large-input {
	height: 300px; /* Możesz dostosować wysokość */
	white-space: pre-wrap; /* Zapewnia zawijanie tekstu */
	overflow-wrap: break-word; /* Zawijanie długich słów */
	resize: none; /* Wyłączenie możliwości zmiany rozmiaru */
	overflow-y: scroll; /* Pozwala na przewijanie w pionie */
}

/* Ukrywanie paska przewijania dla WebKit (Chrome, Safari) */
.large-input::-webkit-scrollbar {
	display: none;
}

/* Ukrywanie paska przewijania dla innych przeglądarek (Firefox, Edge) */
.large-input {
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* Internet Explorer 10+ */
}

/* Stylizacja przycisku formularza */
.form-button {
    width: 100%;
    padding: 10px;
    background-color: #008080;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.3s;
}

.form-button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.form-button-special {
    width: calc(30% - 5px);
}

.form-button:hover {
    background-color: #04a777;
}

/* Stylizacja komunikatów o błędach */
.error-message {
    color: red;
    text-align: center;
    margin-top: 10px;
}

/* Stylizacja linku na dole */
.switch-text {
    text-align: center;
    color: #fff;
    margin-top: 10px;
}

.switch-text a {
    color: #00a99d;
    text-decoration: none;
}

.switch-text a:hover {
    text-decoration: underline;
}

/* Ukrywanie formularza, który nie jest aktywny */
.hidden {
    display: none;
}

/* Responsywność dla średnich ekranów, takich jak tablety */
@media (max-width: 1024px) {
}

/* Responsywność dla małych ekranów, takich jak smartfony */
@media (max-width: 768px) {
    .black-box {
        max-width: 90%;
    }
}

/* Dodatkowe stylizacje dla bardzo małych ekranów, takich jak małe telefony */
@media (max-width: 480px) {
    .form-title {
        font-size: 20px;
    }
    .form-input,
    .form-button {
        font-size: 14px;
    }
}

.reload-button {
    display: inline-flex; /* Makes the button inline */
    vertical-align: middle; /* Aligns button vertically with adjacent text */
    width: 22px; /* Adjust the width to create a square shape */
    height: 22px; /* Same as width for a square */
    background-color: #008080; /* Background color */
    color: #fff; /* Text color */
    border: none; /* Remove default border */
    border-radius: 5px; /* Optional: to round the corners slightly */
    align-items: center; /* Center content vertically */
    justify-content: center; /* Center content horizontally */
    cursor: pointer; /* Change mouse cursor to pointer */
    font-size: 20px; /* Adjust the size of the icon/text */
    transition: background-color 0.3s; /* Smooth transition for hover effect */
    margin-left: 10px; /* Optional: space between the button and preceding text */
}

.reload-button:hover {
    background-color: #04a777; /* Change color on hover */
}

.reload-button:before {
    content: "\21BB"; /* Unicode character for reload icon */
    font-size: 20px; /* Size of the icon */
}

/* Stylizacja listy, aby usunąć kropeczki */
.function-list {
    list-style: none; /* Usuwa znaczniki listy */
    padding: 0; /* Usuwa domyślny padding */
    margin: 0; /* Usuwa domyślny margines */
}

/* Stylizacja linków, aby działały jako przyciski */
.function-link {
    display: block; /* Link zajmuje całą szerokość rodzica */
    width: 100%; /* Pełna szerokość linku */
    text-decoration: none; /* Usunięcie podkreślenia */
    color: inherit; /* Dziedziczenie koloru z przycisku */
}

/* Stylizacja przycisków funkcji */
.function-btn {
    width: 100%; /* Ustawia przycisk na pełną szerokość */
    padding: 15px 20px; /* Dodaje padding dla lepszego wyglądu */
    margin: 10px 0; /* Dodaje marginesy między przyciskami */
    text-align: center; /* Centruje tekst */
    background-color: #008080; /* Kolor tła przycisku */
    color: #fff; /* Kolor tekstu */
    border: none; /* Usunięcie obramowania */
    border-radius: 8px; /* Zaokrąglone rogi */
    font-size: 16px; /* Wielkość czcionki */
    cursor: pointer; /* Kursor jako wskaźnik */
    transition: background-color 0.3s, transform 0.2s; /* Płynne przejście koloru i skalowania */
}

/* Efekt hover na aktywnych przyciskach */
.function-btn:hover:not(:disabled) {
    background-color: #04a777; /* Zmiana koloru tła po najechaniu */
    transform: scale(1.02); /* Delikatne powiększenie przycisku */
}

/* Stylizacja dla przycisków z atrybutem disabled */
.function-btn:disabled {
    background-color: #555; /* Kolor dla wyłączonych przycisków */
    cursor: not-allowed; /* Kursor na wyłączony */
    opacity: 0.7; /* Przyciemnienie wyłączonego przycisku */
}

.function-btn.active {
    background-color: #00a96d; /* inny kolor tła dla aktywnego przycisku */
    cursor: default;           /* wyłączony kursor, bo to aktualna strona */
}

/* Styling for the select dropdown */
.dropdown-list{
    width: 100%;
    padding: 10px; /* Padding for better spacing */
    background-color: #444; /* Dark background to match theme */
    border: 1px solid #555; /* Subtle border */
    border-radius: 4px;
    color: #fff; /* White text */
    font-size: 16px;
    cursor: pointer;
    transition: border-color 0.3s; /* Smooth border transition on focus */
}

/* Stylizacja specjalnej listy rozwijanej */
.special-dropdown {
	width: calc(70% - 5px);
}

/* Styling for the horizontal rule */
.styled-hr {
    border: none; /* Remove default border */
    height: 2px; /* Adjust the thickness of the line */
    background-color: #FFF; /* Set a custom color to match the theme */
    margin: 20px 0; /* Add top and bottom margin for spacing */
    border-radius: 4px; /* Rounded edges for a smoother look */
    opacity: 0.8; /* Slight transparency for a softer appearance */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); /* Subtle shadow for depth */
}

.section-buttons {
    display: flex;
    justify-content: center; /* Centruje przyciski */
    width: auto;
    max-width: 1000px;
    margin: 20px auto; /* Centruje przyciski na stronie */
}

.section-btn {
    background-color: #008080; /* Bazowy kolor tła przycisków */
    color: #fff; /* Kolor tekstu */
    border: none; /* Usunięcie ramki */
    padding: 10px 20px; /* Wygodny padding */
    font-size: 14px; /* Wielkość czcionki */
    cursor: pointer; /* Wskaźnik na kursor */
    transition: background-color 0.3s ease; /* Płynne przejście koloru tła */
    flex: 1; /* Każdy przycisk zajmuje równą szerokość */
    text-align: center; /* Wyśrodkowanie tekstu */
}

.section-btn:hover {
    background-color: #04a777; /* Jaśniejszy kolor po najechaniu */
}

.section-btn:first-child {
    border-radius: 10px 0 0 10px; /* Zaokrąglenie lewej strony */
}

.section-btn:last-child {
    border-radius: 0 10px 10px 0; /* Zaokrąglenie prawej strony */
}

.section-btn:not(:last-child) {
    border-right: 1px solid #004f4f; /* Cienka linia rozdzielająca przyciski */
}

.section-btn.active {
    background-color: #00a99d; /* Kolor aktywnego przycisku */
}

/* Stylizacja dla małych ekranów */
@media (max-width: 480px) {
    .section-buttons {
        flex-direction: column; /* Ustawia przyciski pionowo */
        max-width: 100%; /* Ustawienie szerokości na pełną dla małych ekranów */
    }
    
    .section-btn {
        border-radius: 0; /* Usuwa zaokrąglenie na przyciskach */
        border-right: none; /* Usuwa linię między przyciskami */
        border-bottom: 1px solid #004f4f; /* Dodaje linię dolną między przyciskami */
    }

    .section-btn:last-child {
        border-bottom: none; /* Usuwa linię dolną z ostatniego przycisku */
        border-radius: 0 0 10px 10px; /* Zaokrąglenie na dole ostatniego przycisku */
    }

    .section-btn:first-child {
        border-radius: 10px 10px 0 0; /* Zaokrąglenie na górze pierwszego przycisku */
    }
}

.config-list-map {
    list-style: none; /* Usunięcie domyślnych kropek z listy */
    padding: 0; /* Usunięcie domyślnych paddingów */
    margin: 0; /* Usunięcie domyślnych marginesów */
    font-family: Arial, sans-serif; /* Ustawienie czcionki */
}

.config-list-map-item {
    display: flex; /* Używamy flexbox do ustawienia elementów obok siebie */
    justify-content: space-between; /* Tekst i kolor po dwóch stronach */
    align-items: center; /* Wyrównanie elementów do środka */
    padding: 10px 15px; /* Wygodny padding dla elementów listy */
    background-color: #333; /* Tło elementu listy */
    color: #fff; /* Kolor tekstu */
    margin-bottom: 8px; /* Odstęp między elementami listy */
    border-radius: 5px; /* Zaokrąglone rogi dla każdego elementu */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); /* Subtelny cień dla elementów */
}

.view-mode {
  /* 1) zamiast inline-flex – blockowy flex, rozciągający się na 100% szerokości: */
  display: flex;
  width: 100%;

  /* 2) wypychamy .name-and-tags i .color-box na krańce: */
  justify-content: space-between;

  /* 3) wyrównujemy je do góry (albo do pierwszej linii bazowej): */
  align-items: flex-start; /* lub: baseline */

  /* 4) jeśli masz gdzieś border-left, wyłącz go tutaj: */
  border-left: none !important;
  padding-left: 0 !important;
}

.name-and-tags {
  /* układamy nazwę i tagi jeden pod drugim */
  display: flex;
  flex-direction: column;
}

.tribe-name {
    font-weight: bold;
}

.color-box {
  width: 20px;
  height: 20px;
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);

  /* wypchnij na prawo: */
  margin-left: auto;

  /* usuń: margin-right: auto; */
  align-self: center;  /* pionowe wycentrowanie w kontenerze */
}

.config-list-map-item:first-child {
    margin-top: 10px; /* Dodatkowy odstęp dla pierwszego elementu */
}

.config-list-map-item:last-child {
    margin-bottom: 0; /* Brak marginesu dla ostatniego elementu */
}

/* Dla responsywności */
@media (max-width: 600px) {
    .config-list-map-item {
        flex-direction: column; /* Układa elementy pionowo na małych ekranach */
        align-items: flex-start; /* Wyrównanie do lewej */
    }

    .color-box {
        margin-top: 5px; /* Dodatkowy odstęp nad kolorowym kwadratem */
        margin-left: 0; /* Usunięcie marginesu po lewej */
    }

    .name-and-tags {
        align-items: flex-start;
    }
}

/* Stylizacja kontenera dla wyników */
/* Stylizacja kontenera dla wyników */
.output-container {
    position: fixed;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 90%;
    background-color: #333;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    z-index: 9999;
    border-radius: 10px;
    overflow-y: auto;
    padding: 20px;
	color: white;
}

/* Nagłówek okna wyników */
.output-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 10px;
}

.output-title {
    font-size: 24px;
    font-weight: bold;
    color: #fff;
}

/* Stylizacja przycisku zamykania */
.close-button {
    font-size: 24px;
    color: #fff;
    cursor: pointer;
    transition: color 0.3s ease;
}

.close-button:hover {
    color: red;
}

/* Dodanie poziomego przewijania w tabeli */
.output-content {
    max-height: 80%;
    overflow-y: auto;
}

/* Styl dla tabeli */
.styled-table-map {
    width: 100%;
    border-collapse: collapse;
    background-color: #333;
    font-size: 14px;
}

.styled-table-map th {
    background-color: #008080;
    color: #fff;
    font-weight: bold;
    padding: 10px;
    text-align: center;
    border: 1px solid #333;
}

.styled-table-map td {
    padding: 10px;
    text-align: center;
    border: 1px solid #333;
    color: #fff;
    background-color: #444;
}

/* Alternatywne wiersze */
.styled-table-map tbody tr:nth-child(even) {
    background-color: #505050;
}

/* Responsywność tabeli */
@media (max-width: 768px) {
    .styled-table-map th, .styled-table-map td {
        font-size: 12px;
        padding: 8px;
    }

    .output-title {
        font-size: 20px;
    }

    .close-button {
        font-size: 20px;
    }
}

/* Zwijanie tabeli dla wąskich ekranów */
@media (max-width: 480px) {
    .styled-table-map, .styled-table-map thead, .styled-table-map tbody, .styled-table-map th, .styled-table-map td, .styled-table-map tr {
        display: block;
        width: 100%;
    }

    .styled-table-map tr {
        margin-bottom: 10px;
        display: block;
        border: 1px solid #333;
    }

    .styled-table-map td {
        text-align: right;
        padding-left: 50%;
        position: relative;
    }

    .styled-table-map td::before {
        content: attr(data-label);
        position: absolute;
        left: 10px;
        width: 50%;
        text-align: left;
        font-weight: bold;
        color: #fff;
    }

    .styled-table-map td:nth-of-type(1)::before {
        content: "#";
    }

    .styled-table-map td:nth-of-type(2)::before {
        content: "Nazwa";
    }

    .styled-table-map td:nth-of-type(3)::before {
        content: "Punkty";
    }

    .styled-table-map td:nth-of-type(4)::before {
        content: "Członkowie";
    }

    .styled-table-map td:nth-of-type(5)::before {
        content: "Punkty/Członek";
    }

    .styled-table-map td:nth-of-type(6)::before {
        content: "Wioski";
    }

    .styled-table-map td:nth-of-type(7)::before {
        content: "Przyrost Graczy";
    }

    .styled-table-map td:nth-of-type(8)::before {
        content: "Przyrost Wsi";
    }
}

/* Stylizacja kontenera strzałki powrotnej */
.back-arrow-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 120px;               /* Rozmiar kontenera */
    height: 120px;              /* Kwadratowy kontener */
    background-color: #272727;  /* Ciemne tło */
    border-radius: 8px;         /* Zaokrąglone rogi */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4); /* Subtelny cień */
    position: absolute;         /* Pozycjonowanie absolutne */
    top: 10px;                  /* Ustawienie od góry */
    right: 10px;                /* Ustawienie od prawej */
    cursor: pointer;            /* Zmiana kursora na wskaźnik */
    transition: background-color 0.3s, transform 0.2s; /* Płynne przejścia */
    text-decoration: none;      /* Usunięcie podkreślenia linka */
    z-index: 10;                /* Nad innymi elementami */

    /* Jeszcze głębsze wycięcie narożnika */
    -webkit-clip-path: polygon(
        0%   0%,    /* lewy-górny */
        40%  0%,    /* punkt na górnej krawędzi – 40% szerokości */
        100% 40%,   /* punkt na prawej krawędzi – 60% wysokości */
        100% 100%,  /* prawy-dolny */
        0%   100%   /* lewy-dolny */
    );
    clip-path: polygon(
        0%   0%,
        40%  0%,
        100% 40%,
        100% 100%,
        0%   100%
    );
    overflow: hidden;           /* Ukrywamy wystające fragmenty */
}

/* Stylizacja samej strzałki */
.back-arrow {
    font-size: 50px;             /* Rozmiar strzałki */
    color: #fff;                 /* Kolor strzałki */
    transition: transform 0.2s;  /* Płynne skalowanie na hover */
}

/* Efekt hover dla kontenera */
.back-arrow-container:hover {
    background-color: #04a777; /* Kolor tła na zielono */
    transform: scale(1.05);    /* Delikatne powiększenie */
}

/* (opcjonalnie) animacja samej strzałki na hover */
.back-arrow-container:hover .back-arrow {
    transform: translateX(-5px); /* Przesunięcie w lewo */
}




/* Stylizacja kontenera mapy */
.map-container {
    width: 90%; /* Szerokość mapy */
    padding-top: 90%; /* Proporcje kwadratowe */
    background-color: #333; /* Białe tło */
    border-radius: 10px; /* Zaokrąglone rogi */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); /* Cień */
    position: relative; /* Konieczne dla zachowania układu */
    overflow: hidden;
    margin-top: 150px; /* Odstęp od strzałki */
    margin-bottom: 20px; /* Dodany odstęp od dołu */
    order: 2; /* Domyślnie mapa jest pod strzałką */
}

/* Zamiana kolejności elementów na małych ekranach (768px i mniej) */
@media (max-width: 768px) {
    .map-container {
        order: 1; /* Mapa jest teraz nad strzałką */
        width: 100%; /* Szerokość 100% dla mniejszych ekranów */
        padding-top: 100%; /* Proporcje kwadratowe mapy */
        margin-top: 0; /* Brak odstępu od strzałki */
		 margin-bottom: 0px;
		margin-top: 15px;
    }

    .back-arrow-container {
        order: 2; /* Strzałka jest teraz pod mapą */
        width: 100px; /* Mniejsza strzałka na tabletach */
        height: 100px;
        top: unset; /* Usunięcie wartości "top" */
        right: unset; /* Usunięcie wartości "right" */
        position: relative; /* Ustawienie pozycji na "relative" */
		margin-top: 15px;
    }
}

/* Zamiana kolejności elementów na jeszcze mniejszych ekranach (480px i mniej) */
@media (max-width: 480px) {
    .map-container {
        width: 100%; /* Pełna szerokość na smartfonach */
        padding-top: 100%; /* Proporcje kwadratowe mapy */
		 margin-bottom: 0px;
		margin-top: 15px;
    }

    .back-arrow-container {
        width: 80px; /* Jeszcze mniejsza strzałka na smartfonach */
        height: 80px;
		margin-top: 15px;
    }
}

/* Kontener paska postępu */
.progress-container {
    display: flex;
    flex-direction: column; /* Układ w pionie dla podpisu i paska */
    justify-content: center;
    align-items: flex-start; /* Wyśrodkowanie paska i podpisu w poziomie */
    width: 100%; /* Szerokość na pełną szerokość rodzica */
    padding: 10px 0; /* Dodanie odstępu wokół kontenera */
    background-color: transparent; /* Brak tła dla kontenera */
    margin-top: 20px;
}

/* Podpis paska postępu */
.progress-label {
    font-size: 18px;
    color: #fff; /* Biały kolor tekstu */
    margin-bottom: 8px; /* Odstęp między podpisem a paskiem postępu */
    font-weight: bold;
}

/* Zewnętrzny pasek postępu */
.progress-bar {
    width: 100%; /* Szerokość paska postępu */
    background-color: #555; /* Kolor tła paska postępu */
    border-radius: 8px; /* Zaokrąglone rogi */
    height: 30px; /* Większa wysokość paska */
    overflow: hidden; /* Ukrywa wewnętrzne elementy wychodzące poza obszar */
    position: relative;
}

/* Wewnętrzny pasek postępu */
.progress-bar-inner {
    height: 100%;
    width: 0%; /* Domyślnie brak postępu */
    background-color: #04a777; /* Kolor wypełnienia paska postępu */
    border-radius: 8px; /* Zaokrąglone rogi wewnętrznego paska */
    transition: width 0.4s ease; /* Płynne przejście szerokości przy aktualizacji */
}

/* Wartość procentowa */
.progress-value {
    font-size: 16px;
    color: #fff; /* Biały tekst */
    position: absolute;
    right: 10px; /* Wyrównanie do prawej strony paska */
    top: 50%;
    transform: translateY(-50%); /* Wyśrodkowanie pionowe */
    font-weight: bold;
}

/* Stylizacja dla textarea z klasą .textarea */
.textarea {
    width: 100%; /* Pełna szerokość */
    padding: 10px; /* Padding wewnętrzny dla czytelności */
    background-color: #444; /* Tło tekstu */
    color: #fff; /* Kolor tekstu */
    border: 1px solid #555; /* Delikatne obramowanie */
    border-radius: 8px; /* Zaokrąglone rogi */
    font-size: 16px; /* Wielkość tekstu */
    resize: vertical; /* Umożliwia zmianę wysokości, ale nie szerokości */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* Cień dla estetyki */
    transition: border-color 0.3s ease; /* Płynne przejście koloru obramowania */
    margin-top: 5px; /* Odstęp między etykietą a polem */
    margin-bottom: 15px; /* Odstęp między polem a innymi elementami */
    min-height: 250px;
}

/* Focus efekt na textarea z klasą .textarea */
.textarea:focus {
    outline: none; /* Usunięcie domyślnego obrysu */
    border-color: #fff; /* Zmiana koloru obramowania po aktywacji */
}

/* Usunięcie domyślnych stylów przeglądarki, które mogą wprowadzać inne kolory obramowania */
.textarea::-webkit-focus-ring-color {
    outline: none;
}

/* Stylizacja inputów tekstowych */
input[type="text"] {
    width: 100%; /* Pełna szerokość kontenera */
    padding: 10px; /* Wygodny padding */
    background-color: #444; /* Tło pola */
    color: #fff; /* Kolor tekstu */
    border: 1px solid #555; /* Subtelne obramowanie */
    border-radius: 4px; /* Zaokrąglone rogi */
    font-size: 16px; /* Rozmiar tekstu */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* Subtelny cień */
    transition: border-color 0.3s ease; /* Płynne przejście koloru obramowania */
}

/* Focus efekt dla inputów */
input[type="text"]:focus {
    outline: none; /* Usunięcie domyślnego obrysu */
    border-color: #00a99d; /* Zmiana koloru obramowania po aktywacji */
}

/* Stylizacja checkboxów */
input[type="checkbox"] {
    width: 18px; /* Rozmiar pola checkboxa */
    height: 18px;
    background-color: #444; /* Tło */
    border: 1px solid #555; /* Obramowanie */
    border-radius: 4px; /* Zaokrąglone rogi */
    cursor: pointer; /* Kursor na wskaźnik */
    vertical-align: middle; /* Wyrównanie z tekstem */
    appearance: none; /* Usuwa domyślny styl przeglądarki */
    transition: background-color 0.3s ease, border-color 0.3s ease;
	margin-bottom: 10px;
}

/* Stylizacja po zaznaczeniu checkboxa */
input[type="checkbox"]:checked {
    background-color: #008080; /* Kolor zaznaczonego checkboxa */
    border-color: #00a99d; /* Kolor obramowania zaznaczonego checkboxa */
    color: #fff; /* Kolor tekstu */
}

/* Checkbox hover */
input[type="checkbox"]:hover {
    border-color: #00a99d; /* Zmiana koloru obramowania na hover */
}

/* Inline style dla tekstu obok checkboxa */
label[for="disable_player_names"],
label[for="disable_tribe_ids"] {
    font-size: 14px; /* Mniejszy rozmiar tekstu */
    font-weight: normal;
    color: #ddd; /* Subtelniejszy kolor tekstu */
    margin-left: 5px; /* Odstęp od checkboxa */
    display: inline-block;
    vertical-align: middle;
}

/* Stylizacja ogólnej listy */
.entity-list {
    list-style: none; /* Usunięcie domyślnych kropek */
    padding: 0; /* Usunięcie paddingów */
    margin: 10px 0; /* Dodanie odstępu */
}

.entity-item {
    display: flex; /* Ustawienie elementów w jednej linii */
    justify-content: space-between; /* Przycisk "Usuń" po prawej stronie */
    align-items: center; /* Wyrównanie elementów w pionie */
    padding: 10px 15px; /* Padding wewnętrzny dla lepszego wyglądu */
    background-color: #333; /* Kolor tła */
    color: #fff; /* Kolor tekstu */
    margin-bottom: 8px; /* Odstęp między elementami */
    border-radius: 5px; /* Zaokrąglone rogi */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); /* Subtelny cień */
}

/* Stylizacja przycisku "Usuń" */
.entity-delete-button {
    background-color: #008080; /* Kolor tła przycisku */
    color: #fff; /* Kolor tekstu */
    border: none; /* Usunięcie obramowania */
    border-radius: 4px; /* Zaokrąglone rogi */
    padding: 5px 10px; /* Padding dla lepszego wyglądu */
    cursor: pointer; /* Wskaźnik na kursor */
    font-size: 14px; /* Rozmiar czcionki */
    transition: background-color 0.3s ease; /* Płynne przejście koloru */
}

/* Hover efekt na przycisku "Usuń" */
.entity-delete-button:hover {
    background-color: #04a777; /* Jaśniejszy kolor tła po najechaniu */
}

/* Stylizacja nazwy encji */
.entity-name {
    font-weight: bold; /* Wyróżnienie tekstu */
}

/* Stylizacja przycisku "Usuń" */
.delete-button {
    background-color: #008080; /* Kolor tła przycisku */
    color: #fff; /* Kolor tekstu */
    border: none; /* Usunięcie obramowania */
    border-radius: 4px; /* Zaokrąglone rogi */
    padding: 5px 10px; /* Padding dla lepszego wyglądu */
    cursor: pointer; /* Wskaźnik na kursor */
    font-size: 14px; /* Rozmiar czcionki */
    transition: background-color 0.3s ease; /* Płynne przejście koloru */
}

/* Hover efekt na przycisku "Usuń" */
.delete-button:hover {
    background-color: #04a777; /* Jaśniejszy kolor tła po najechaniu */
}

.spinner-container {
    display: none; /* Ukryty domyślnie */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(128, 128, 128, 0.5);
    border-radius: 10px;
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
}

.loader {
    /* Style spinnera jak wcześniej */
    border: 16px solid #f3f3f3;
    border-top: 16px solid #3498db;
    border-radius: 50%;
    width: 120px;
    height: 120px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
/* Kolory dla statusów zgodności */
.styled-table-map .status-matching {
    color: #04a777; /* Zielony */
    font-weight: bold;
}

.styled-table-map .status-mismatching {
    color: #ff4d4d; /* Czerwony */
    font-weight: bold;
}

.styled-table-map .status-unknown {
    color: #ffa500; /* Pomarańczowy dla nieznanego statusu */
    font-weight: bold;
}

/* Stylowanie dla select */
.styled-player-tribe-list {
    width: 75%; /* Zmniejsz szerokość, aby zrobić miejsce dla przycisku */
}

/* Stylowanie dla przycisku Dodaj */
.button-list {
    width: 24%; /* Ustawić szerokość przycisku */
    padding: 12px;
    border: none;
    border-radius: 5px;
    background-color: #008080;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.3s;
}

.button-list:hover{
    background-color: #04a777;
}

/* Stylowanie dla listy wybranych elementów */
.selected-list {
    list-style: none;
    padding: 0;
    margin-top: 10px;
}

.selected-list li {
    background-color: #333;
    color: #fff;
    padding: 10px;
    margin-bottom: 5px;
    border-radius: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.selected-list button {
    background-color: #008080;
    color: #fff;
    border: none;
    padding: 5px 10px;
    border-radius: 5px;
    cursor: pointer;
}

.selected-list button:hover{
    background-color: #04a777;
}

.button-container {
    display: flex;
    border-radius: 5px;
	padding-left: 20px;
	padding-right: 20px;
	margin-bottom: 10px;
	margin-top: 10px;
}

.button-container input[type="radio"] {
    opacity: 0;
    position: relative;
    z-index: -1;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
}
.button-container label {
    flex: 1;
    padding: 10px 0;
    text-align: center;
    cursor: pointer;
    background-color: #008080;
    color: #fff;
    transition: background-color 0.3s;
}

.button-container input[type="radio"]:checked + label {
    background-color: #04a777;
}

/* zaokrąglenie lewego przycisku */
.button-container label:first-of-type {
    border-radius: 15px 0 0 15px;
}

/* zaokrąglenie prawego przycisku */
.button-container label:last-of-type {
    border-radius: 0 15px 15px 0;
}

.coord-container {
    width: calc(100% - 12px);
    display: flex;
    justify-content: space-between; /* rozkłada poziomo */
    gap: 12px;                       /* odstęp między elementami */
}

.coord-input {
    flex-grow: 1;                   /* rośnie, by wypełnić przestrzeń */
    box-sizing: border-box;         /* padding nie powiększa poza height */
    padding: 0 12px;                /* wewnętrzne marginesy */
}

.config-row {
	margin-bottom: 10px;
	margin-top: 10px;
}

.config-panel {
	padding: 1rem;
	background: #333;
	border-radius: 0.5rem;
	margin: 0 auto;      /* poziome wyśrodkowanie */
}


.blur-switch {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* chowamy checkbox */
.blur-switch__input {
  display: none;
}

/* obudowa slidera */
.blur-switch__label {
  display: block;
  width: 40px;
  height: 20px;
  background: #555;
  border-radius: 10px;
  position: relative;
  cursor: pointer;
  overflow: hidden;
}

/* napis OFF/ON */
.blur-switch__inner {
  display: block;
  width: 200%;
  height: 100%;
  transition: transform 0.3s ease;
  transform: translateX(0);
}
.blur-switch__inner::before,
.blur-switch__inner::after {
  float: left;
  width: 50%;
  height: 100%;
  line-height: 20px;
  text-align: center;
  font-size: 10px;
  font-weight: bold;
  color: #fff;
  box-sizing: border-box;
}
.blur-switch__inner::before {
  content: "OFF";
  background: #555;
}
.blur-switch__inner::after {
  content: "ON";
  background: #00a99d;
}

/* gałka */
.blur-switch__knob {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  transition: left 0.3s ease;
}

/* stan ON */
.blur-switch__input:checked + .blur-switch__label .blur-switch__inner {
  transform: translateX(-50%);
}
.blur-switch__input:checked + .blur-switch__label .blur-switch__knob {
  left: 21px;
}

.CodeMirror{border:1px solid #444;border-radius:4px;cursor:pointer}
.fullscreen-editor{position:fixed!important;top:5vh!important;left:5vw!important;
					   width:90vw!important;height:90vh!important;z-index:10000!important}
					   
/* PODSTAWOWE ROZMIARY */
/* DESKTOP / TABLET --------------------------------------------------- */
.two-col {
  display: grid;
  /* kolumny zawsze po 50 %, nawet gdy w środku jest długi tekst / link */
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.two-col > * {
  padding: 1rem;
  box-sizing: border-box;     /* padding wlicza się w 1 fr */

  /* ------- ŁAMANIE TEKSTU -------- */
  overflow-wrap: anywhere;    /* zawija wyrazy, linki itp. */
  word-break: break-word;     /* awaryjne cięcie, gdy znaków jest naprawdę dużo */
}

/* linia oddzielająca kolumny */
.two-col > :nth-child(2) {
  border-left: 2px solid #ccc;
}

/* MOBILE ≤ 640 px ---------------------------------------------------- */
@media (max-width: 640px) {
  .two-col {
    grid-template-columns: 1fr;   /* jedna kolumna */
  }
  .two-col > :nth-child(2) {
    border-left: none;            /* linia niepotrzebna */
  }
}

/* DOTYCZY WSZYSTKICH pre wewnątrz .two-col (możesz zawęzić selektor) */
.two-col pre {
    white-space: pre-wrap;   /* zachowaj \n, ale pozwól łamać w innych miejscach */
    overflow-wrap: anywhere; /* łamij w dowolnym miejscu, gdy brak spacji */
    word-break: break-word;  /* awaryjnie tnij wyraz, jeśli trzeba */
}


/* --------------------------------------------------
   Dodatkowe klasy / poprawki do tabel
-------------------------------------------------- */

.report-heading {
	color: #fff;
	font-size: 1.2rem;
	margin-bottom: 1rem;
}

/* Uniwersalna tabela */
.styled-table {
	width: 100%;
	border-collapse: collapse;
	/*background-color: #333;*/
	font-size: 14px;
	border: none; /* usuń ramki zewnętrzne całej tabeli */
}
.styled-table th {
	background-color: #008080;
	color: #fff;
	font-weight: bold;
	padding: 8px;
	text-align: center;
	border-bottom: 1px solid #444; /* cienka ramka u dołu nagłówka */
}
.styled-table td {
	padding: 8px;
	text-align: center;
	color: #fff;
	background-color: #444;
	border-right: 1px solid rgba(255, 255, 255, 0.2); /* cienka ramka tylko po prawej */
}
.styled-table td:last-child {
	border-right: none; /* usuń prawą ramkę w ostatniej kolumnie */
}
.styled-table tbody tr + tr td {
	border-top: 1px solid #444; /* cienka ramka między wierszami */
}
.styled-table th:first-child,
.styled-table td:first-child {
	border-left: none !important;
}
.styled-table th:last-child,
.styled-table td:last-child {
	border-right: none !important;
}
.styled-table tbody tr:nth-child(even) td {
	background-color: #505050;
}
.styled-table tbody tr:nth-child(odd) td {
	background-color: #444;
}
.styled-table tbody tr:hover td {
	background-color: #3a3a3a;
}

/* --------------------------------------------------
   Tabela zagnieżdżona (szczegóły wiosek)
--------------------------------------------------*/
.nested-table {
	width: 100%;
	border-collapse: collapse;
	border: none; /* usuń ramki zewnętrzne całej tabeli */
	margin-top: 0.5rem;
	font-size: 13px;
}
.nested-table th {
	background-color: #008080;
	color: #fff;
	font-weight: bold;
	padding: 6px;
	text-align: center;
	border-bottom: 1px solid #555; /* oddziel wiersz nagłówka od danych */
}
.nested-table td {
	padding: 6px;
	text-align: center;
	background-color: #444;
	color: #fff;
	border-right: 1px solid #555; /* oddziel kolumny */
	border-bottom: 1px solid #555; /* oddziel wiersze */
}
.nested-table td:last-child {
	border-right: none; /* usuń prawą ramkę w ostatniej kolumnie */
}
.nested-table tr:last-child td {
	border-bottom: none; /* usuń dolną ramkę w ostatnim wierszu */
}
.nested-table tbody tr:nth-child(even) td {
	background-color: #555;
}
.nested-table tbody tr:nth-child(odd) td {
	background-color: #4a4a4a;
}
.nested-table tbody tr:hover td {
	background-color: #3a3a3a;
}

/* --------------------------------------------------
   Komórka z <details> (rozwiń szczegóły)
--------------------------------------------------*/
.no-padding-cell {
	padding: 0;
	background-color: #444;
	border: none !important; /* usuń wszelkie ramki w komórce */
}
.no-padding-cell details {
	margin: 0;
}
/* Pełna ramka wokół summary */
.no-padding-cell summary {
	margin: 0;
	display: block;
	background-color: #333;
	border: 1px solid #555;
	border-radius: 4px;
	padding: 8px 12px;
	color: #00e0c1;
	font-weight: bold;
	cursor: pointer;
	list-style: none; /* usuń domyślny znacznik listy */
	line-height: 1.2; /* wyrównanie w pionie */
}
/* Trójkąt przed tekstem */
.no-padding-cell summary::before {
	content: "►";
	display: inline-block;
	margin-right: 0.5rem;
	font-size: 0.9rem;
	color: #00e0c1;
	transform: none; /* brak obracania */
}
/* Po otwarciu <details>, ciemniejsze tło summary i zmiana trójkąta */
.no-padding-cell details[open] summary {
	background-color: #2b2b2b;
}
.no-padding-cell details[open] summary::before {
	content: "▼";
	color: #00ffc1;
}

/* biały tekst logu + lekkie marginesy */
.log-output{
    color:#fff;
    font-size:.9rem;
    line-height:1.4;
    margin-top:.5rem;
    white-space:pre-line;
}

.filter-form {
	width: 80%;
	margin: 0 auto 1rem auto;
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-end; /* Ustawia przycisk Filtruj na dole w linii */
}

.loading {
	text-align: center;
	padding: 1rem;
	color: #00e0c1;
}
/* Przyciski akcji w tabeli */
.action-btn {
	background: none;
	border: none;
	color: #00e0c1;
	cursor: pointer;
	font-size: 0.9rem;
}
.action-btn:hover {
	text-decoration: underline;
}

/* Checkbox bez obramowania, pogrubiony niebieski, wyśrodkowany */
.status-checkbox {
	width: 18px;
	height: 18px;
	cursor: pointer;
	accent-color: #00e0c1; /* kolor zaznaczenia */
}

/* Kolory statusu całego planu – dla proporcji wpisów */
.plan-status-red {
	color: #ff4d4d;      /* czerwony – jeśli mniej niż 100% wpisów wysłanych */
}
.plan-status-green {
	color: #66cc66;      /* zielony – jeśli wszystkie wpisy wysłane */
}

/* Style dla etykiety obok pojedynczego checkboxa */
.status-label-red {
	color: #ff4d4d;
	margin-left: 0.5rem;
	font-size: 0.9rem;
}
.status-label-green {
	color: #66cc66;
	margin-left: 0.5rem;
	font-size: 0.9rem;
}

/* Przyciski masowej zmiany statusu */
.bulk-btn {
	background: none;
	border: none;
	color: #00e0c1;
	cursor: pointer;
	font-size: 0.85rem;
}
.bulk-btn:hover {
	text-decoration: underline;
}

/* ───────── procenty ───────── */
table.styled-table td.pct-red {
    color:#ff2626 !important;     /* jaskrawszy czerwony 0-80 %  */
    font-weight:600;
}
table.styled-table td.pct-yellow {
    color:#ffcc00 !important;     /* mocniejszy żółty 80-95 %   */
    font-weight:600;
}
table.styled-table td.pct-green {
    color:#00e64d !important;     /* soczysta zieleń  >95 %     */
    font-weight:600;
}

/* ───────── kolumna „Akcja” ───────── */
table.styled-table td.act-off {
    color:#ff2626 !important;     /* OFF – czerwony   */
    font-weight:600;
}
table.styled-table td.act-fejk {
    color:#00e64d !important;     /* FEJK – zielony   */
    font-weight:600;
}
table.styled-table td.act-burzak {
    color:#1e90ff !important;     /* BURZAK – niebieski */
    font-weight:600;
}
table.styled-table td.act-szlachcic {
    color:#d633ff !important;     /* SZLACHCIC – fiolet */
    font-weight:600;
}

/* ─── kolory nagłówków (lepszy kontrast) ─── */
table.styled-table th.hdr-off{
    color:#ff5959;                  /* jaśniejszy czerwony */
    text-shadow:0 0 3px #000;
    font-weight:600;
}
table.styled-table th.hdr-fejk{
    color:#7dff6a;                  /* neon-green          */
    text-shadow:0 0 3px #000;
    font-weight:600;
}
table.styled-table th.hdr-burzak{
    color:#6db4ff;                  /* jasny niebieski     */
    text-shadow:0 0 3px #000;
    font-weight:600;
}
table.styled-table th.hdr-szlachcic{
    color:#e36dff;                  /* jasny fiolet        */
    text-shadow:0 0 3px #000;
    font-weight:600;
}

.pagination { text-align:center; margin-top:6px; }
.page-btn   { margin:0 2px; padding:2px 8px; cursor:pointer; border:1px solid #777; background:#222; color:#ddd; }
.page-btn.active { background:#444; color:#fff; }

/* Wygląd pola z listą kordów */
.coords-display {
    /* kolor i czcionka */
    color: #fff;               /* biały tekst */
    font-family: monospace;    /* czytelne wyrównanie */

    /* zawijanie linii */
    white-space: pre-wrap;     /* zachowuje \n i jednocześnie pozwala zawijać */
    word-wrap: break-word;     /* pozwala łamać długie ciągi bez spacji */

    /* opcjonalne dopieszczenie wyglądu */
    background: rgba(255,255,255,0.05); /* delikatne półprzezroczyste tło */
    padding: .5rem .75rem;
    border-radius: .25rem;
    overflow-y: auto;
	
	margin-bottom: 15px;
}

/* ===========================================================
   LINKI W TABELI WYNIKÓW (i tylko tam)
   =========================================================== */
.styled-table tbody a{
	color:#4fa8ff;            /* domyślny niebieski */
	font-weight:600;
	text-decoration:none;
	transition:color .15s,text-shadow .15s;
}

.styled-table tbody a:visited{
	color:#a681ff;            /* fiolet dla odwiedzonych */
}

.styled-table tbody a:hover,
.styled-table tbody a:focus{
	color:#ffe082;            /* złoty na hover/focus */
	text-shadow:0 0 4px rgba(255,224,130,.6);
	outline:none;
}

/* Strzałka ↗ przy linkach otwieranych w nowej karcie */
.styled-table tbody a[target="_blank"]::after{
	font-size:.75em;
	margin-left:.2em;
	opacity:.6;
	vertical-align:baseline;
}

.example-middle {
	color: #ffd700;          /* złoty/yellow */
}