/* Obecné styly pro tělo stránky, které se NEVZTAHUJÍ na přihlašovací stránku */
body:not(.login-page) {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    padding: 20px;
    margin: 0;
    height: 100vh;
    display: flex; /* Toto způsobovalo problémy na login stránce */
    flex-direction: column;
}

#calendar {
    max-width: 1100px;
    margin: 20px auto; /* Zarovnání na střed */
    flex-grow: 1; /* Kalendář zabere zbytek místa */
    width: 100%;
}

/* Styly pro naše vlastní události */
/* Cílíme pouze na fc-event, který NENÍ na pozadí */
.fc-event:not(.fc-bg-event).pozadavek-neslouzit {
    background-color: #d9534f; /* Červená pro "Nemůžu" */
    border-color: #d43f3a;
}

.fc-event:not(.fc-bg-event).pozadavek-preference {
    background-color: #337ab7; /* Modrá pro "Preferuji" pro lepší kontrast */
    border-color: #2e6da4;
}

.fc-event.sluzba-pelhrimov {
    background-color: #777; /* Tmavě šedá pro Pelhřimov */
    border-color: #666;
}

.fc-event.sluzba-humpolec {
    background-color: #b0b0b0; /* Světle šedá pro Humpolec */
    border-color: #a0a0a0;
    color: #333; /* Tmavší text pro lepší čitelnost */
}

/* Styl pro pozadí svátků v kalendáři lékaře */
.fc-daygrid-day.svatek-pozadi,
.fc-day.fc-day-other.svatek-pozadi, /* Svátky v jiných měsících */
.fc .svatek-pozadi {
    background-color: #c8e6c9; /* Zelená pro svátky */
}

/* Podbarvení víkendů v kalendáři lékaře */
.fc-day-sat, .fc-day-sun {
    background-color: #e8f5e9; /* Slabší zelená pro víkendy */
}

/* Styly pro hlavičku a přihlášení */
.header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}

.header-bar h1 {
    margin: 0;
}

.nav-buttons {
    display: flex; /* Tlačítka jsou v flex kontejneru */
    gap: 5px; /* Mezera mezi tlačítky */
}

.user-info {
    font-size: 0.9em;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-left: auto; /* Posune celou skupinu doprava */
}

.logout-button {
    display: inline-block;
    padding: 5px 10px;
    background-color: #d9534f;
    color: white;
    text-decoration: none;
    border-radius: 4px;
    margin-left: 10px;
}
.logout-button:hover {
    background-color: #c9302c;
}

.nav-button {
    padding: 6px 12px;
    text-decoration: none;
    background-color: #f0f0f0;
    color: #333;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin: 0 5px;
    white-space: nowrap; /* Zabrání zalamování textu uvnitř tlačítka */
}

/* Responsive úpravy pro hlavičku na menších obrazovkách */
@media (max-width: 900px) {
    .header-bar {
        flex-wrap: wrap; /* Umožní zalamování na menších obrazovkách */
    }
    
    .header-bar h1 {
        width: 100%; /* Nadpis zabere celou šířku */
        margin-bottom: 10px; /* Mezera pod nadpisem */
    }
    
    .user-info {
        width: 100%; /* User-info zabere celou šířku pod nadpisem */
        margin-left: 0; /* Zrušíme margin-left */
        flex-wrap: wrap; /* Umožní zalamování prvků uvnitř */
        gap: 10px;
    }
    
    .nav-buttons {
        width: 100%; /* Tlačítka zaberou celou šířku */
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        margin-bottom: 5px; /* Mezera pod tlačítky */
    }
    
    .nav-button {
        margin: 0; /* Odstraníme margin, používáme gap místo toho */
    }
    
    .user-name {
        width: 100%; /* User name na celou šířku */
    }
    
    .logout-button {
        margin-left: 0; /* Odstraníme margin-left */
    }
}

/* Odsazení pod výběrem měsíce */
.month-selector {
    margin-bottom: 20px;
}

/* === Styly pro modální okno === */
.modal {
    display: none; /* Skryté ve výchozím stavu */
    position: fixed; /* Zůstane na místě i při rolování */
    z-index: 1000; /* Bude nad vším ostatním */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto; /* Povolí rolování, pokud je obsah větší */
    background-color: rgba(0,0,0,0.4); /* Poloprůhledné pozadí */
}

.modal-content {
    background-color: #fefefe;
    margin: 5% auto; /* Vertikálně a horizontálně vycentrovat */
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    max-width: 450px; /* Maximální šířka */
    border-radius: 8px;
    position: relative;
}

/* Širší verze pro náhled tisku */
.modal-content.wide {
    /* Nastavíme poměr stran jako A4 na výšku */
    height: 90vh;
    max-height: 1100px;
    width: auto;
    aspect-ratio: 210 / 297; /* Poměr stran A4 */
    max-width: 90vw;
    display: flex; /* Použijeme flexbox pro lepší uspořádání obsahu */
    flex-direction: column;
}

/* Zajistíme, aby se obsah v náhledu roztáhl */
#preview-content {
    flex-grow: 1; /* Kontejner zabere všechen volný prostor */
    display: flex;
    flex-direction: column;
}

.close-button {
    color: #aaa;
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close-button:hover,
.close-button:focus {
    color: black;
    text-decoration: none;
}

#requestForm fieldset {
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-bottom: 15px;
    padding: 10px;
}

#requestForm legend {
    font-weight: bold;
    padding: 0 5px;
}

.request-group {
    margin-bottom: 15px;
}
.request-group-title {
    font-weight: bold;
    margin: 0 0 8px 0;
}
.request-buttons {
    display: flex;
    gap: 8px;
}
.req-btn {
    flex: 1;
    padding: 10px 5px;
    border: 2px solid transparent;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 500;
    color: white;
    transition: transform 0.1s ease;
}
.req-btn:active {
    transform: scale(0.95);
}

.req-btn.req-preference { background-color: #337ab7; } /* Modrá, sjednoceno s barvou v kalendáři */
.req-btn.req-mohu { background-color: #f0ad4e; color: #333; }
.req-btn.req-neslouzit { background-color: #d9534f; }
.req-btn.req-dovolena { background-color: var(--req-dovolena-color, #ff9800); color: white; } /* Oranžová pro dovolenou */
.req-btn.active {
    border-color: #333;
}

#requestForm label {
    margin-right: 15px;
    display: inline-block; /* Aby byly vedle sebe */
}

.modal-buttons {
    text-align: right;
    margin-top: 20px;
}
.modal-buttons button {
     padding: 8px 15px;
     margin-left: 10px;
     border-radius: 4px;
     cursor: pointer;
}
.modal-buttons .action {
    background-color: #5cb85c;
    color: white;
    border: 1px solid #4cae4c;
}
.modal-buttons .cancel {
    background-color: #f1f1f1;
    color: black;
    border: 1px solid #ccc;
}

/* === Vylepšení formulářů v modálních oknech === */
/* Použijeme grid pro lepší zarovnání popisků a polí */
/* Cílíme pouze na formuláře s třídou .form-grid, abychom neovlivnili jiné formuláře (např. požadavky) */
.modal-content form.form-grid {
    display: grid;
    grid-template-columns: 180px 1fr; /* Fixní šířka pro popisky, zbytek pro pole */
    gap: 15px; /* Mezera mezi řádky */
    align-items: center; /* Vertikální zarovnání na střed */
}

.modal-content form.form-grid label {
    text-align: right; /* Popisky zarovnáme doprava */
    padding-right: 10px;
}

.modal-content form.form-grid input,
.modal-content form.form-grid select,
.modal-content form.form-grid textarea {
    width: 100%; /* Pole zaberou celou šířku druhého sloupce */
    padding: 8px;
    box-sizing: border-box; /* Aby padding nepřidával na šířce */
    border: 1px solid #ccc;
    border-radius: 4px;
}
/* Zabráníme horizontálnímu roztažení textového pole mimo okno */
.modal-content form.form-grid textarea {
    resize: vertical; /* Povolíme měnit pouze výšku */
    min-height: 60px; /* Minimální výška pro lepší vzhled */
}

.fc-event:not(.fc-bg-event).pozadavek-mohu {
    background-color: #f0ad4e; /* Oranžová/Žlutá pro "Mohu" */
    border-color: #eea236;
    color: #333; /* Tmavší text pro lepší čitelnost na žluté */
}

/* Styly pro indikátor obsazenosti */
.shift-indicator {
    font-size: 0.8em;
    margin-left: 5px;
    font-weight: bold;
    /* Přidáme mezeru mezi ikonami */
    margin-right: 3px; 
    display: inline-flex; /* Pro lepší zarovnání */
    align-items: center;
}
.shift-indicator.ok { color: green; }
.shift-indicator.missing { color: red; }

/* Styly pro dropdown v buňce */
.shift-dropdown {
    border: 1px solid #007bff; /* Zvýrazníme aktivní buňku */
    box-sizing: border-box; /* Aby border nepřidal na velikosti */
}

/* Indikátor poznámky */
.note-indicator {
    position: absolute;
    bottom: 1px;
    left: 4px;
    cursor: help;
    font-size: 0.9em;
    font-weight: bold;
    color: #007bff;
}

/* Zvýraznění při fokusu pro navigaci klávesnicí */
.grid-cell:focus {
    outline: 2px solid blue;
    outline-offset: -1px;
}
/* Úprava pro první sloupec s datem v admin mřížce */
.grid-cell.grid-date {
    white-space: nowrap; /* Zabrání zalamování data */
    display: flex;
    align-items: center;
}

/* === Styly pro tisk administrátorského rozhraní === */
/* Nová, zjednodušená a funkční verze */
/* Všechny tiskové styly jsou nyní definovány přímo v admin.js, tento blok již není potřeba */

/* Styly pro tabulku v náhledu, aby se roztáhla */
#preview-content .print-table {
    height: 100%;
    font-size: 0.9em; /* Lehce zmenšíme písmo v náhledu pro lepší přehlednost */
    border: 2px solid black;
}

/* Zarovnání hlavičky tabulky v náhledu doleva */
.print-table th {
    text-align: left;
}

/* Zvýrazněné oddělovače v náhledu tisku */
.print-table .v-separator { border-right: 2px solid black; }
.print-table .h-separator { border-bottom: 2px solid black; }


/* Zvýraznění víkendů a svátků v náhledu a tisku */
/* Cílíme na řádek (tr) v jakékoliv tabulce s třídou .print-table */
.print-table tr.grid-weekend { background-color: #e8f5e9; font-weight: bold; } /* Slabší zelená a tučně */
.print-table tr.grid-holiday { background-color: #c8e6c9; font-weight: bold; } /* Zelená a tučně */

/* === Responzivní styly pro mobilní zařízení === */
@media (max-width: 768px) {
    body {
        padding: 5px;
    }

    /* Hlavní administrátorská stránka */
    .admin-layout {
        flex-direction: column; /* Sloupce pod sebou */
    }
    #final-schedule-container {
        flex: 1; /* Zrušíme pevnou šířku */
    }

    /* Nástrojová lišta pro správu požadavků */
    .toolbar {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
    }

    .toolbar label[for="show-shifts-toggle"] {
        margin-left: 0 !important;
    }

    /* Úprava horní lišty pro mobilní zobrazení */
    /* POZNÁMKA: Základní layout pro hlavičku je již řešen v @media (max-width: 900px) výše */
    /* Zde jen upravujeme detaily pro velmi malé obrazovky */
    .user-name {
        display: none; /* Skryjeme jméno na mobilu pro úsporu místa */
    }
    
    /* Zajistíme, že tlačítka jsou viditelná a správně zalamovaná */
    .nav-buttons {
        display: flex !important; /* Zajistíme, že tlačítka jsou viditelná */
        flex-wrap: wrap;
        gap: 5px;
        width: 100%;
    }
    
    .nav-button {
        display: inline-block !important; /* Zajistíme, že tlačítka jsou viditelná */
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* Stejná logika pro řádek s výběrem měsíce */
    .month-selector {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
    }

    /* Zarovnání tlačítek v záhlaví kalendáře doprava na mobilu */
    .fc .fc-toolbar.fc-header-toolbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px; /* Přidáme mezeru mezi zalamované řádky (např. mezi title a tlačítky) */
    }
    /* Zajistíme, aby se i skupiny tlačítek správně zalamovaly */
    .fc .fc-button-group {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
    }
    /* Sjednotíme zalamování pro VŠECHNY části toolbaru (left, center, right) */
    .fc .fc-toolbar-chunk {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
    }

    /* Skryjeme tiskové tlačítko v kalendáři lékaře na mobilu */
    .fc-printButton-button {
        display: none !important;
    }
}

/* === Styly pro přihlašovací stránku (/login) === */
body.login-page { 
    text-align: center; 
    padding-top: 50px; 
    background-color: #f0f2f5; /* Barva pro případ, že se obrázek nenačte */
    /* Nové pozadí z obrázku */
    background-image: url('/static/img/pozadi.jpg'); /* Cesta k vašemu obrázku */
    background-size: cover; /* Obrázek pokryje celou plochu */
    background-position: center; /* Vystředění obrázku */
    background-repeat: no-repeat; /* Zabrání opakování obrázku */
    background-attachment: fixed; /* Pozadí zůstane na místě při rolování */
}

.login-box { 
    max-width: 400px; 
    margin: 0 auto; 
    padding: 30px; 
    border-radius: 12px; /* Větší zaoblení */
    background-color: rgba(255, 255, 255, 0.95); /* Poloprůhledné pozadí pro čitelnost */
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* Jemný stín */
}

.login-box input { 
    width: 90%; 
    padding: 10px; 
    margin-top: 10px; 
}

.login-box button { 
    padding: 10px 20px; 
    margin-top: 20px; 
    background-color: #337ab7; 
    color: white; 
    border: none; 
    border-radius: 4px; 
    cursor: pointer; 
}

@media (max-width: 768px) {
    body.login-page { padding-top: 20px; }
    .login-box { max-width: 100%; box-shadow: none; padding: 10px; }
}
}