/* ==========================================================================
   FRONTEND - REGISTRAČNÍ A EDITAČNÍ FORMULÁŘ
   ========================================================================== */

/* Základní rozložení formuláře */
.reg-form { 
    max-width: 800px !important; 
    margin: 0 auto; 
    background: #ffffff;
    padding: 40px;
    border-radius: 5px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Nadpisy sekcí */
.reg-form h2 {
    margin-top: 0; 
    color: var(--zavod-primary, #3182ce);
    margin-bottom: 10px;
}

.reg-form h3 { 
    margin: 25px 0 15px 0; 
    padding-bottom: 8px; 
    border-bottom: 2px solid #edf2f7; 
    color: var(--zavod-primary, #3182ce); 
    font-size: 18px; 
}

.reg-form h3:first-of-type { 
    margin-top: 0; 
}

/* Popisky u úpravy přihlášky */
.reg-form-desc {
    color: #718096;
    margin-bottom: 25px;
}

/* Rozložení posádky (Jezdec / Spolujezdec) */
.reg-form .crew-section { 
    display: flex; 
    gap: 30px; 
    flex-wrap: wrap; 
}

.reg-form .crew-col { 
    flex: 1; 
    min-width: 280px; 
}

/* Formulářové prvky */
.reg-form .form-group { 
    margin-bottom: 14px; 
}

/* Flexbox rozložení pro SPZ a ROK vedle sebe */
.reg-form .form-group-flex {
    display: flex;
    gap: 15px;
}

.reg-form .form-control { 
    width: 100%; 
    padding: 10px; 
    border: 1px solid #cbd5e0; 
    border-radius: 5px; 
    box-sizing: border-box; 
    font-size: 14px; 
    transition: border-color 0.2s ease;
		background-color: var(--zavod-secondary, #e2e8f0);
}

.reg-form .form-group-flex .form-control {
    flex: 1;
}

.reg-form .form-control:focus { 
    border-color: var(--zavod-primary, #3182ce); 
    outline: none; 
    box-shadow: 0 0 0 3px rgba(49, 130, 206, 0.1);
}

/* Zvýrazněný popisek u výběru tříd */
.reg-form .form-label-bold {
    font-weight: 600;
    margin-bottom: 5px;
    display: block;
    color: #2d3748;
}

/* Grid závodních tříd (Radio buttony) */
.reg-form .classes-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); 
    gap: 10px; 
    margin-top: 10px; 
}

.reg-form .classes-grid label { 
    display: flex !important; 
    flex-direction: column; 
    align-items: center; 
    background: var(--zavod-secondary, #e2e8f0); 
    border: 1px solid #e2e8f0; 
    padding: 8px; 
    border-radius: 6px; 
    margin: 0 !important; 
    cursor: pointer; 
    transition: all 0.2s ease; 
    justify-content: center; 
    font-weight: 600; 
    font-size: 13px; 
}

.reg-form .classes-grid label:hover,
.reg-form .classes-grid label:has(input:checked) { 
    background: var(--zavod-accent, #e2e8f0); 
    border-color: var(--zavod-primary, #3182ce);
		color: var(--zavod-secondary, #e2e8f0);
}

.reg-form .classes-grid input[type="radio"] { 
    margin-bottom: 4px; 
    margin-top: 0; 
}

/* Sekce souhlasů a podmínek (Checkboxy dole) */
.reg-form .form-group-terms {
    margin-top: 20px;
    border-top: 1px solid #e2e8f0;
    padding-top: 15px;
}

.reg-form .form-group-terms label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-weight: 600;
    cursor: pointer;
}

.reg-form .form-group-terms input[type="checkbox"] {
    margin-top: 3px;
}

.reg-form .form-group-terms a {
    color: var(--zavod-primary, #3182ce);
    text-decoration: underline;
}

/* Box s vypočtenou cenou startovného */
.reg-form .price-box {
    background: #f0fdf4; 
    border: 1px solid #bbf7d0; 
    padding: 15px; 
    border-radius: 6px; 
    margin-top: 20px; 
    margin-bottom: 20px; 
    font-size: 16px; 
    color: #1a5235;
}

.reg-form .price-box .calculated-price {
    font-weight: bold; 
    color: #16a34a; 
    font-size: 19px;
}

.reg-form .price-box-note {
    font-size: 12px;
    color: #b58105;
    margin-top: 4px;
}

/* Tlačítko pro odeslání */
.reg-form .submit-btn-wrapper {
    margin-top: 15px;
}

.reg-form .submit-btn-wrapper .button {
    width: 100%; 
    padding: 12px; 
    font-size: 16px; 
    font-weight: bold; 
    cursor: pointer;
    text-align: center;
}

/* Systémové zprávy AJAXu */
#reg-zavod-msg, #edit-zavod-msg { 
    margin-top: 15px; 
}

.zavod-msg-success {
    background: #f0fdf4;
    color: #16a34a;
    padding: 15px;
    border-radius: 6px;
    border: 1px solid #bbf7d0;
    font-weight: 600;
}

.zavod-msg-error {
    background: #fff5f5;
    color: #9b2c2c;
    padding: 15px;
    border-radius: 6px;
    border: 1px solid #fed7d7;
    font-weight: 600;
}

/* Pomocné třídy pro specifické mezery */
.reg-mt-15 { margin-top: 15px !important; }
.reg-mt-20 { margin-top: 20px !important; }

/* Informační hlášky stavu registrace (otevřeno/zavřeno) */
.reg-info {
    padding: 15px; 
    border-radius: 6px; 
    font-weight: 600; 
    text-align: center;
    border: 1px solid transparent;
}

.reg-info.info-pending {
    background: #e2e8f0; 
    border-color: #cbd5e0;
    color: #2d3748;
}

.reg-info.info-closed {
    background: #fffaf0; 
    border-color: #feebc8; 
    color: #c05621;
}


/* =========================================
   NEBEZPEČNÁ ZÓNA (Odstoupení posádky)
   ========================================= */
.zavod-danger-zone {
    padding: 25px;
    border-radius: 5px;
    background: #fff5f5;
    border: 1px solid #fed7d7;
}

.zavod-danger-zone h3 {
    color: #c53030 !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.zavod-danger-zone p {
    color: #9b2c2c;
    margin-bottom: 20px;
    font-size: 14px;
}

/* Vynucená pojistka tlačítka proti tématům (např. Bootstrap) */
.button.zavod-btn-danger,
.zavod-btn-danger {
    background-color: #e53e3e !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: bold !important;
    padding: 12px 20px !important;
    border-radius: 5px !important;
    cursor: pointer !important;
    display: inline-block !important;
    text-align: center;
}

.button.zavod-btn-danger:hover,
.zavod-btn-danger:hover {
    background-color: #c53030 !important;
}

/* =========================================
   VYNUCENÍ ZOBRAZENÍ PRO EDITAČNÍ REŽIM
   ========================================= */

/* Přebije jakékoliv skrytí z JS nebo page builderu */
.reg-form.zavod-edit-mode {
    display: block !important;
}

/* Vynucené zobrazení červeného tlačítka pro odstoupení */
.zavod-danger-zone #withdraw-zavod-btn {
    display: inline-block !important;
}


/* ==========================================================================
   FRONTEND - TLAČÍTKA
   ========================================================================== */


/*.zavod-frontend-buttons {display: flex; gap: 20px; flex-wrap: nowrap;}
.zavod-frontend-buttons-pdf {display: flex; gap: 20px; flex-wrap: nowrap; flex-direction: column;}
.zavod-frontend-buttons-pdf .button {width:100%;}
.zavod-frontend-buttons .button {width:50%;}
*/

@media only screen and (max-width: 767px) {
		.zavod-frontend-buttons {flex-wrap: wrap;}
		.zavod-frontend-buttons .button {width:100%;}
		.mfn-countdown-mobile-center {gap:5px !important}

.reg-form .crew-section {
    display: flex;
    gap: 5px;
    flex-direction: column;
    align-content: center;
    flex-wrap: wrap;
}
}


/* 1. Nastavení obalovacího kontejneru */
.zavod-settings .mcb-wrap-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 15px; /* Mezera mezi prvky */
}

/* 2. Nadpisy a ostatní obsah zaberou vždy 100 % šířky */
.zavod-settings .mcb-wrap-inner > .column:not(.column_button) {
    flex: 0 0 100%;
    width: 100% !important;
}

/* 3. Tlačítka - chytře rozdělená podle počtu na řádku */
.zavod-settings .mcb-wrap-inner > .column_button {
    /* 
       flex-grow: 1 (povolí tlačítku vyplnit prázdné místo na řádku)
       flex-shrink: 1 
       flex-basis: calc(50% - 15px) (udává, že chceme primárně 2 vedle sebe) 
    */
    flex: 1 1 calc(50% - 15px); 
    
    width: auto !important;
    margin: 0 !important;
}

/* 4. Responzivita - na telefonech opět seřadíme na 100 % pod sebe */
@media (max-width: 767px) {
    .zavod-settings .mcb-wrap-inner > .column_button {
        flex: 1 1 100%;
    }
}


/* 1. Nastavení obalovacích kontejnerů pro frontend tlačítka */
.zavod-frontend-buttons,
.zavod-frontend-buttons-pdf {
    display: flex;
    flex-wrap: wrap;
    gap: 15px; /* Mezera mezi tlačítky */
}

/* 2. Tlačítka - chytře rozdělená podle počtu na řádku */
.zavod-frontend-buttons .button,
.zavod-frontend-buttons-pdf .button {
    /* flex-grow: 1, flex-shrink: 1, flex-basis: pod 50% */
    flex: 1 1 calc(50% - 15px); 
    
    width: auto !important; /* Přepisuje případné fixní/inline šířky */
    margin: 0 !important; /* Vynuluje výchozí margin-bottom */
    box-sizing: border-box; /* Pojistka, aby vnitřní padding nerozbil výpočet */
}

/* 3. Responzivita - na telefonech opět seřadíme na 100 % pod sebe */
@media (max-width: 767px) {
    .zavod-frontend-buttons .button,
    .zavod-frontend-buttons-pdf .button {
        flex: 1 1 100%;
    }
}


/* ==========================================================================
   FRONTEND - RYCHLÉ ZPRÁVY (ONLINE VÝVĚSKA)
   ========================================================================== */

.zavod-news-wrapper {
   
}

.zavod-news-empty {
    padding: 20px;
    background: #f7fafc;
    border: 1px dashed #cbd5e0;
    text-align: center;
    color: #718096;
    border-radius: 6px;
    font-weight: 500;
}

/* Základní rozložení pro desktop (3 sloupce) */
.zavod-news-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 3 stejně široké sloupce */
    gap: 20px; /* Mezera mezi kartami */
}

/* Tablet (2 sloupce) */
@media (max-width: 992px) {
    .zavod-news-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobil (1 sloupec) */
@media (max-width: 767px) {
    .zavod-news-list {
        grid-template-columns: 1fr;
    }
}

/* Karta zprávy */
.zavod-news-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-left: 4px solid var(--zavod-accent, #183766);
    border-radius: 6px;
    padding: 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.zavod-news-card:hover {
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Hlavička s datem a ikonou */
.zavod-news-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #edf2f7;
    color: #4a5568;
}

.zavod-news-icon {
    color: var(--zavod-primary, #3182ce);
    font-size: 16px;
}

.zavod-news-date {
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.5px;
}

/* Textový obsah zprávy */
.zavod-news-content {
    font-size: 15px;
    line-height: 1.6;
    color: #2d3748;
}

.zavod-news-content p {
    margin-top: 0;
    margin-bottom: 10px;
}

.zavod-news-content p:last-child {
    margin-bottom: 0;
}

/* Patička s tlačítkem přílohy */
.zavod-news-footer {
    margin-top: 15px;
    padding-top: 15px;
}

.zavod-news-btn {
    display: inline-flex !important;
    align-items: center;
    width: auto !important;
    gap: 8px;
    padding: 10px 20px;
}
/* Štítek indikující odeslání e-mailem */
.zavod-news-email-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 10px;
    font-size: 11px;
    font-weight: 600;
    color: #16a34a;
    background: #f0fdf4;
    padding: 2px 8px;
    border-radius: 12px;
    border: 1px solid #bbf7d0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Responzivita hlavičky pro menší telefony */
@media (max-width: 480px) {
    .zavod-news-header {
        flex-wrap: wrap;
    }
    .zavod-news-email-badge {
        margin-left: 0;
        margin-top: 4px;
        width: fit-content;
    }
}

/* =========================================
   MODÁLNÍ TABULKA (Seznamy a startovky)
   ========================================= */

/* Základní rozložení buněk */
#fe-modal-table {
    width: 100%;
    border-collapse: collapse;
}
#fe-modal-table thead tr {
    background: #edf2f7;
    text-align: left;
}
#fe-modal-table th, 
#fe-modal-table td {
    padding: 10px;
    border-bottom: 1px solid #e2e8f0;
}
#fe-modal-table th.text-center,
#fe-modal-table td.text-center {
    text-align: center;
}

/* Ovládací prvky řazení nad tabulkou */
.zavod-sort-controls {
    margin-bottom: 12px;
    text-align: right;
}
.zavod-sort-label {
    font-size: 13px;
    color: #718096;
    margin-right: 10px;
}
.zavod-sort-controls .button {
    padding: 4px 10px;
    margin-bottom: 0;
}
.zavod-sort-controls .button + .button {
    margin-left: 5px;
}

/* Specifické stavy tabulky */
.zavod-empty-state {
    padding: 20px !important;
    text-align: center !important;
}
.zavod-col-stc {
    width: 60px;
}
.zavod-st-cislo {
    font-weight: bold;
    color: #2b6cb0;
    font-size: 16px;
    text-align: center;
}
.zavod-text-bold {
    font-weight: bold;
}

/* Stavy a štítky posádek */
.zavod-row-vyrazeno {
    opacity: 0.6;
}
.zavod-badge-vyrazeno {
    background: #fff5f5;
    color: #c53030;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    margin-left: 8px;
    border: 1px solid #fed7d7;
    font-weight: bold;
    display: inline-block;
    vertical-align: middle;
}
.zavod-status-ano {
    color: #16a34a;
    font-weight: bold;
}
.zavod-status-ne {
    color: #718096;
}
.zavod-status-admin {
    color: #dd6b20;
    font-weight: bold;
}



/* =========================================
   MODÁLNÍ OKNO (Přesunuto z inline stylů)
   ========================================= */
#fe-zavod-modal-overlay {
    display: none; 
    position: fixed; 
    top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0,0,0,0.7); 
    z-index: 999999999; 
    padding: 15px; 
    box-sizing: border-box;
}

.zavod-modal-container {
    background: #fff; 
    width: 100%; max-width: 1050px; 
    margin: 5vh auto 0; 
    border-radius: 8px; 
    display: flex; flex-direction: column; 
    max-height: 85vh; overflow: hidden;
}

.zavod-modal-header {
    padding: 15px 20px; 
    background: #f7f7f7; 
    border-bottom: 1px solid var(--zavod-secondary, #e2e8f0); 
    display: flex; justify-content: space-between; align-items: center;
}

.zavod-modal-header h3 {
    margin: 0; font-size: 18px; color: #2d3748; font-weight: 500;
}

.zavod-modal-close {
    cursor: pointer; font-size: 28px; line-height: 1; color: #4a5568;
}

.zavod-modal-body {
    padding: 15px; overflow-y: auto; flex: 1;
}

.zavod-modal-footer {
    padding: 12px 20px; 
    background: #f7f7f7; 
    text-align: right;
    border-top: 1px solid var(--zavod-secondary, #e2e8f0);
}




.countdown-expired-message {display: flex;   flex-direction: column;  align-items: center;}
.countdown-expired-message h3, .countdown-expired-message h4 {color:#F8C32E; margin-bottom:20px;}
.countdown-title {display: flex;justify-content: center; color: var(--zavod-countdown-number); margin-bottom:0px;}
.counter-number {font-weight:900; color: var(--zavod-countdown-number) !important;}



/* ==========================================================================
   FRONTEND - PREZENTACE ZÁVODU (GRID)
   ========================================================================== */
.zavod-prezentace-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin: 0;
}

.zavod-prezentace-item {
    text-align: center;
    background: #fff;
    border-radius: 5px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    transition: transform 0.2s ease;
}

.zavod-prezentace-item:hover {
    transform: translateY(-5px);
}

.zavod-prezentace-item img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

.zavod-prezentace-item h4 {
    margin: 0;
    padding: 15px;
    font-size: 1.1em;
    color: var(--zavod-primary, #3182ce);
}

/* Responzivita pro menší monitory a tablety (1/2 layout) */
@media (max-width: 992px) {
    .zavod-prezentace-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Responzivita pro mobily (1/1 layout) */
@media (max-width: 576px) {
    .zavod-prezentace-grid { grid-template-columns: 1fr; }
}


/* ==========================================================================
   FRONTEND - VIDEA ZÁVODU (GRID A YOUTUBE RESPONSIVE)
   ========================================================================== */
.zavod-videa-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Videa jsou širší, lepší je 1/2 layout */
    gap: 20px;
    margin: 2em 0;
}

.zavod-videa-item {
    text-align: center;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.zavod-videa-item h4 {
    margin: 0;
    padding: 15px;
    font-size: 1.1em;
    color: var(--zavod-primary, #3182ce);
}

/* Trik pro udržení poměru stran 16:9 u iframe (YouTube) */
.zavod-video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* Poměr 16:9 */
    height: 0;
    overflow: hidden;
    background: #000;
}

.zavod-video-wrapper iframe,
.zavod-video-wrapper object,
.zavod-video-wrapper embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* Responzivita pro mobily (1/1 layout) */
@media (max-width: 767px) {
    .zavod-videa-grid { grid-template-columns: 1fr; }
}
