/* YOOtheme Integration CSS - Address & Offers Plugin - ALL MODES */

/* ========================================================================
   CSS VARIABLES - Skynet Colors
   ======================================================================== */
:root {
    --skynet-primary: #0098d8;
    --skynet-primary-dark: #0077ad;
}

/* ========================================================================
   GENERAL YOOTHEME INTEGRATION
   ======================================================================== */

.yootheme-ao-plugin-wrapper .ao-offers-grid {
    /* Zachowaj plugin grid ale zintegruj z YOOtheme gap setting */
    /* Gap will be set dynamically via CSS classes */
}

/* Admin info is handled in template.php for proper permission checking */

/* Zapewnij że plugin cards pasują do YOOtheme aesthetic */
.yootheme-ao-plugin-wrapper .ao-offer-card {
    transition: all 0.3s ease !important;
}

.yootheme-ao-plugin-wrapper .ao-offer-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1) !important;
}

/* =========================================================================
   FORM BUILDER TOGGLE GROUPS (Offer list / configurator wrappers)
   ========================================================================= */

/* Keep responsive grid for nested fields (UIkit was overriding display) */
.yootheme-ao-plugin-wrapper .ao-form-advanced__row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__row.ao-form-advanced__row--two-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Shared label styling for both simple and advanced toggles */
.yootheme-ao-plugin-wrapper .ao-toggle-label,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: var(--ao-form-radius, 12px);
    border: 1px solid var(--ao-form-border, #e0e4ec);
    background: #f5f7fb;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.yootheme-ao-plugin-wrapper .ao-toggle-text,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-text {
    order: 1;
    flex: 1 1 auto;
    margin-right: 12px;
    font-weight: 500;
    color: var(--ao-form-heading, #1a1a1a);
}

.yootheme-ao-plugin-wrapper .ao-toggle-icon,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-icon {
    order: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 4px;
    margin-left: 5px;
    border-radius: 12px;
    background: #e9eff6;
    line-height: 1;
    font-size: 14px;
    color: var(--ao-form-primary, #0098d8);
    transition: transform 0.3s ease;
    transform: rotate(-90deg);
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-icon--rotated {
    transform: rotate(0deg);
}

.yootheme-ao-plugin-wrapper .ao-toggle-checkbox,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-checkbox {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
}

.yootheme-ao-plugin-wrapper .ao-toggle-label:hover,
.yootheme-ao-plugin-wrapper .ao-toggle-label.ao-toggle-label--expanded,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label:hover,
.yootheme-ao-plugin-wrapper .ao-form-advanced__toggle-label--expanded {
    border-color: var(--ao-form-primary, #0098d8);
    background: rgba(0, 152, 216, 0.08);
}

.yootheme-ao-plugin-wrapper .ao-form-advanced__conditional {
    border: 1px solid var(--ao-form-border, #e0e4ec);
    border-radius: var(--ao-form-radius, 12px);
    padding: 20px;
    background: var(--ao-form-bg, #fff);
    box-shadow: var(--ao-form-shadow, 0 6px 24px rgba(0, 0, 0, 0.08));
}

/* ========================================================================
   OFFER LIST MODE
   ======================================================================== */

/* Gap sizes for offers grid */
/* TODO: remove after confirming frontend-main.css handles all grids
 .yootheme-mode-offer_list.gap-small .ao-offers-grid {
    gap: 10px !important;
}

.yootheme-mode-offer_list.gap-default .ao-offers-grid {
    gap: 20px !important;
}

.yootheme-mode-offer_list.gap-large .ao-offers-grid {
    gap: 30px !important;
}

/* Column overrides - will be applied via CSS classes */
.yootheme-mode-offer_list.cols-1 .ao-offers-grid {
    grid-template-columns: 1fr !important;
}

.yootheme-mode-offer_list.cols-2 .ao-offers-grid {
    grid-template-columns: repeat(2, 1fr) !important;
}

.yootheme-mode-offer_list.cols-3 .ao-offers-grid {
    grid-template-columns: repeat(3, 1fr) !important;
}

.yootheme-mode-offer_list.cols-4 .ao-offers-grid {
    grid-template-columns: repeat(4, 1fr) !important;
}

/* Responsive override for YOOtheme element */
@media (max-width: 768px) {
    .yootheme-mode-offer_list .ao-offers-grid {
        grid-template-columns: 1fr !important; /* Single column on mobile */
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .yootheme-mode-offer_list.cols-3 .ao-offers-grid,
    .yootheme-mode-offer_list.cols-4 .ao-offers-grid {
        grid-template-columns: repeat(2, 1fr) !important; /* Max 2 on tablet */
    }
} */

/* ========================================================================
   ADDRESS SEARCH MODE
   ======================================================================== */

/* 🎨 CLIENT CUSTOMIZATION - CSS Variables (BEZ wartości domyślnych) */

/* UWAGA: To są tylko DEKLARACJE variables.
   Klient MUSI ustawić wartości przez YooTheme HTML Element.
   Zobacz: /docs/YOOTHEME_SIMPLE_SNIPPET.html
*/

.yootheme-mode-address_search {
    /* CSS Variables - klient ustawia w HTML Element */
    /* --ao-search-title-color */
    /* --ao-search-title-size */
    /* --ao-search-title-weight */
    /* --ao-search-title-align */
    /* --ao-search-input-border-color */
    /* --ao-search-input-border-width */
    /* --ao-search-input-border-radius */
    /* --ao-search-input-padding */
    /* --ao-search-input-focus-glow */
    /* --ao-search-button-bg */
    /* --ao-search-button-bg-hover */
    /* --ao-search-button-border-radius */
    /* --ao-search-button-padding */
    /* --ao-search-checkbox-color */
}

/* INSTRUKCJA:
   - Ten plik zawiera TYLKO strukturę i layout
   - Kolory i style ustawia klient przez YooTheme HTML Element
   - Przykład: /docs/YOOTHEME_SIMPLE_SNIPPET.html
*/

/* ========================================================================
   TYLKO STRUKTURA - bez kolorów (klient ustawia w HTML Element)
   ======================================================================== */

/* Input fields - podstawowa struktura */
.yootheme-mode-address_search input[type="text"],
.yootheme-mode-address_search input[name="city"],
.yootheme-mode-address_search input[name="street"],
.yootheme-mode-address_search input[name="number"] {
    /* Struktura - klient nadpisuje kolory w HTML Element */
    border-radius: var(--ao-search-input-border-radius, 8px) !important;
    border-width: var(--ao-search-input-border-width, 1px) !important;
    padding: var(--ao-search-input-padding, 12px 16px) !important;
    transition: all 0.3s ease !important;
    box-sizing: border-box !important;
}

/* Input focus - struktura */
.yootheme-mode-address_search input:focus {
    outline: none !important;
    /* Kolory focus - klient ustawia w HTML Element */
}

/* Przycisk - podstawowa struktura */
.yootheme-mode-address_search .ao-search-button,
.yootheme-mode-address_search button[type="submit"] {
    /* Struktura - klient nadpisuje kolory i rozmiary w HTML Element */
    border-radius: var(--ao-search-button-border-radius, 8px) !important;
    padding: var(--ao-search-button-padding, 12px 24px) !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    /* min-height - klient ustawia w HTML Element przez CSS variable */
}

/* Przycisk hover - animacje */
.yootheme-mode-address_search .ao-search-button:hover,
.yootheme-mode-address_search button[type="submit"]:hover {
    transform: translateY(-2px) !important;
    /* Kolory hover - klient ustawia w HTML Element */
}

/* Checkbox label - struktura */
.yootheme-mode-address_search .ao-checkbox-label {
    font-size: 14px !important;
    cursor: pointer !important;
}

/* KONIEC STRUKTURY - kolory w HTML Element */

/* Width variants - standard (600px), extended (2/3), full (100%) */

/* Standard width - 600px (default/wąski) */
.yootheme-mode-address_search.search-width-standard .ao-address-search-proxy-wrapper {
    max-width: 600px;
    margin: 0 auto;
}

/* Extended width - 2/3 ekranu (rozszerzony) */
.yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper {
    max-width: 66.67%;
    margin: 0 auto;
}

/* IMPORTANT: Rozszerzony tryb - wszystkie pola równo rozłożone */
.yootheme-mode-address_search.search-width-extended .ao-form-row.ao-form-row-with-button {
    grid-template-columns: 1fr 1fr 1fr auto !important;
}

/* Full width - 100% */
.yootheme-mode-address_search.search-width-full .ao-address-search-proxy-wrapper {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.yootheme-mode-address_search.search-width-full .ao-address-search-form-proxy {
    width: 100% !important;
}

/* Fix button width for address search - AGGRESSIVE APPROACH */
.yootheme-mode-address_search .ao-search-button {
    white-space: nowrap !important;
    width: auto !important;
    min-width: auto !important;
    max-width: none !important;
    padding: 12px 24px !important;
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    overflow: visible !important;
    text-overflow: visible !important;
    box-sizing: border-box !important;
    word-wrap: normal !important;
    word-break: normal !important;
}

.yootheme-mode-address_search .ao-form-row-with-button {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
}

.yootheme-mode-address_search .ao-form-row-with-button > * {
    flex-shrink: 1;
}

.yootheme-mode-address_search .ao-form-row-with-button .ao-search-button {
    flex-shrink: 0 !important;
}

/* Optimize house number field width */
.yootheme-mode-address_search input[name="number"] {
    max-width: 120px;
    flex-shrink: 0;
}

/* Gap control for address search form fields */
.yootheme-mode-address_search.gap-small .ao-form-row,
.yootheme-mode-address_search.gap-small .ao-form-row.ao-form-row-with-button {
    gap: 8px !important;
}

.yootheme-mode-address_search.gap-default .ao-form-row,
.yootheme-mode-address_search.gap-default .ao-form-row.ao-form-row-with-button {
    gap: 12px !important;
}

.yootheme-mode-address_search.gap-medium .ao-form-row,
.yootheme-mode-address_search.gap-medium .ao-form-row.ao-form-row-with-button {
    gap: 16px !important;
}

.yootheme-mode-address_search.gap-large .ao-form-row,
.yootheme-mode-address_search.gap-large .ao-form-row.ao-form-row-with-button {
    gap: 24px !important;
}

/* No street checkbox styling */
.yootheme-mode-address_search .ao-checkbox-row {
    margin: 10px 0;
    padding: 8px 0;
}

.yootheme-mode-address_search .ao-checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
    color: #666;
}

.yootheme-mode-address_search .ao-no-street-checkbox {
    margin-right: 8px;
    margin-left: 0;
}

.yootheme-mode-address_search .ao-checkbox-text {
    user-select: none;
}

/* Disabled street field styling - ULTRA HIGH SPECIFICITY for YooTheme */
html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper input[name="street"].ao-disabled,
.yootheme-mode-address_search .ao-address-search-proxy-wrapper input[name="street"].ao-disabled,
.yootheme-mode-address_search input[name="street"].ao-disabled {
    background-color: #f5f5f5 !important;
    color: #999 !important;
    cursor: not-allowed !important;
    opacity: 0.6 !important;
    pointer-events: none !important;
}

/* Responsive design for address search */
@media (max-width: 768px) {
    /* Mobile: wszystkie stany na 100% szerokości */
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper,
    .yootheme-mode-address_search.search-width-standard .ao-address-search-proxy-wrapper,
    .yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper,
    .yootheme-mode-address_search.search-width-full .ao-address-search-proxy-wrapper {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 15px !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Mobile: ULTRA HIGH SPECIFICITY - override frontend-main.css grid */
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row.ao-form-row-with-button,
    html body .yootheme-mode-address_search .ao-address-search-proxy-wrapper .ao-form-row.ao-form-row-with-button,
    .yootheme-mode-address_search .ao-address-search-proxy-wrapper .ao-form-row.ao-form-row-with-button {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
        grid-template-columns: none !important;
        grid-template-rows: none !important;
        align-items: stretch !important;
    }

    /* Mobile: wszystkie inputy na pełną szerokość - ULTRA HIGH SPECIFICITY */
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[type="text"],
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="city"],
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="street"],
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button input[name="number"],
    .yootheme-mode-address_search .ao-form-row-with-button input {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 100% !important;
        box-sizing: border-box !important;
    }

    /* Mobile: przycisk na pełną szerokość - ULTRA HIGH SPECIFICITY */
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper div.ao-form-row-with-button button.ao-search-button,
    .yootheme-mode-address_search .ao-form-row-with-button .ao-search-button {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 100% !important;
        box-sizing: border-box !important;
    }

    /* Mobile: autocomplete wrapper na pełną szerokość */
    html body div.yootheme-mode-address_search div.ao-address-search-proxy-wrapper .ao-autocomplete-wrapper,
    .yootheme-mode-address_search .ao-autocomplete-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    /* Tablet: rozszerzony tryb na 80% zamiast 66.67% */
    .yootheme-mode-address_search.search-width-extended .ao-address-search-proxy-wrapper {
        max-width: 80% !important;
    }

    /* Tablet: grid 2+1 dla rozszerzonego */
    .yootheme-mode-address_search.search-width-extended .ao-form-row.ao-form-row-with-button {
        grid-template-columns: 2fr 1fr 0.8fr auto !important;
    }
}

/* ========================================================================
   LOCATION BASED MODE
   ======================================================================== */

/* Location offers specific styling */
.yootheme-mode-location_based .ao-location-status {
    text-align: center;
    margin-bottom: 20px;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 8px;
}

/* ========================================================================
   SELECTED LOCATION MODE
   ======================================================================== */

/* Selected location specific styling */
.yootheme-mode-selected_location.full-width .ao-selected-location-display {
    display: flex;
    width: 100%;
}

.yootheme-mode-selected_location.standard-width .ao-selected-location-display {
    display: inline-flex;
    max-width: fit-content;
}

.yootheme-mode-selected_location .ao-selected-location-display {
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    font-size: 0.95em;
}

.yootheme-mode-selected_location .ao-location-text {
    font-weight: 500;
    color: #495057;
}

.yootheme-mode-selected_location .ao-change-location-button {
    background: var(--ao-primary-color, rgb(35, 152, 216)) !important;
    color: white !important;
    border: 1px solid var(--ao-primary-color, rgb(35, 152, 216)) !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
    font-size: 0.9em !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

.yootheme-mode-selected_location .ao-change-location-button:hover {
    background: var(--ao-secondary-color, rgb(30, 137, 195)) !important;
    border-color: var(--ao-secondary-color, rgb(30, 137, 195)) !important;
    transform: translateY(-1px) !important;
}

.yootheme-mode-selected_location .ao-no-location {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 12px 16px;
    background: #ffffff;
    border: 1px solid rgb(35, 152, 216);
    border-radius: 8px;
    color: #495057;
    font-size: 0.95em;
    max-width: fit-content;
    white-space: nowrap;
}

.yootheme-mode-selected_location .ao-location-error {
    text-align: center;
    padding: 20px;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 8px;
    color: #721c24;
}

/* Responsive design for selected location */
@media (max-width: 768px) {
    .yootheme-mode-selected_location .ao-selected-location-display {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    .yootheme-mode-selected_location .ao-change-location-button {
        margin-left: 0 !important;
        width: 100%;
    }
}

/* ========================================================================
   CONFIGURATOR MODE
   ======================================================================== */

/* KONFIGURATOR - Rozszerzone stylowanie */
.yootheme-mode-configurator {
    font-family: -apple-system, BlinkMacSystemFont, "Segue UI", Roboto, sans-serif;
}

/* Gap control for configurator - smaller gaps to prevent layout issues */
.yootheme-mode-configurator.gap-small .ao-offers-grid,
.yootheme-mode-configurator.gap-small .configurator-progress,
.yootheme-mode-configurator.gap-small .ao-configurator-progress,
.yootheme-mode-configurator.gap-small .step-container,
.yootheme-mode-configurator.gap-small .ao-step-container {
    gap: 8px !important;
}

.yootheme-mode-configurator.gap-default .ao-offers-grid,
.yootheme-mode-configurator.gap-default .configurator-progress,
.yootheme-mode-configurator.gap-default .ao-configurator-progress,
.yootheme-mode-configurator.gap-default .step-container,
.yootheme-mode-configurator.gap-default .ao-step-container {
    gap: 12px !important;
}

.yootheme-mode-configurator.gap-large .ao-offers-grid,
.yootheme-mode-configurator.gap-large .configurator-progress,
.yootheme-mode-configurator.gap-large .ao-configurator-progress,
.yootheme-mode-configurator.gap-large .step-container,
.yootheme-mode-configurator.gap-large .ao-step-container {
    gap: 15px !important;
}

/* Progress steps na górze */
.yootheme-mode-configurator .configurator-progress,
.yootheme-mode-configurator .ao-configurator-progress {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 8px;
}

.yootheme-mode-configurator .configurator-progress .step,
.yootheme-mode-configurator .ao-configurator-progress .step {
    display: flex;
    align-items: center;
    padding: 8px 16px;
    background: #e9ecef;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
    color: #6c757d;
}

.yootheme-mode-configurator .configurator-progress .step.active,
.yootheme-mode-configurator .ao-configurator-progress .step.active {
    background: rgb(35, 152, 216);
    color: white;
}

/* Główny kontener kroku */
.yootheme-mode-configurator .step-container,
.yootheme-mode-configurator .ao-step-container {
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    border: 1px solid #e9ecef;
}

/* Tytuł kroku */
.yootheme-mode-configurator h1,
.yootheme-mode-configurator h2,
.yootheme-mode-configurator h3 {
    color: #212529;
    font-weight: 600;
    margin-bottom: 20px;
}

/* Karty ofert w konfiguratorze */
/* TODO: remove after verifying frontend-main.css handles cards
.yootheme-mode-configurator .offer-card,
.yootheme-mode-configurator .ao-offer-card {
    background: #fff;
    border: 2px solid #e9ecef;
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.yootheme-mode-configurator .offer-card:hover,
.yootheme-mode-configurator .ao-offer-card:hover {
    border-color: rgb(35, 152, 216);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,123,255,0.15);
} */

.yootheme-mode-configurator .offer-card.selected,
.yootheme-mode-configurator .ao-offer-card.selected {
    border-color: rgb(35, 152, 216);
    background: rgba(35, 152, 216, 0.05);
}

/* Tytuł oferty */
.yootheme-mode-configurator .offer-title,
.yootheme-mode-configurator .ao-offer-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 15px;
}

/* Opis oferty */
.yootheme-mode-configurator .offer-description,
.yootheme-mode-configurator .ao-offer-description {
    color: #6c757d;
    margin-bottom: 20px;
    line-height: 1.5;
}

/* Zalety oferty - lista z bullet points */
/* TODO: remove after verifying frontend-main.css handles points
.yootheme-mode-configurator .offer-benefits,
.yootheme-mode-configurator .ao-offer-benefits,
.yootheme-mode-configurator h4 + ul {
    list-style: none;
    padding: 0;
    margin: 15px 0;
}

.yootheme-mode-configurator .offer-benefits li,
.yootheme-mode-configurator .ao-offer-benefits li,
.yootheme-mode-configurator h4 + ul li {
    padding: 5px 0 5px 25px;
    position: relative;
    color: #495057;
}

.yootheme-mode-configurator .offer-benefits li:before,
.yootheme-mode-configurator .ao-offer-benefits li:before,
.yootheme-mode-configurator h4 + ul li:before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--skynet-primary);
    font-weight: bold; 
}
*/

/* Cena */
/* TODO: remove after verifying frontend-main.css handles price block
.yootheme-mode-configurator .offer-price,
.yootheme-mode-configurator .ao-offer-price,
.yootheme-mode-configurator .price {
    font-size: 1.5rem;
    font-weight: 700;
    color: rgb(35, 152, 216);
    margin: 20px 0;
} */

/* Opcje konfiguracyjne */
.yootheme-mode-configurator .config-options,
.yootheme-mode-configurator .ao-config-options {
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid #e9ecef;
}

.yootheme-mode-configurator .config-options h4,
.yootheme-mode-configurator .ao-config-options h4 {
    margin-bottom: 15px;
    color: #495057;
    font-size: 1rem;
    font-weight: 600;
}

/* Checkboxy i radio buttons */
.yootheme-mode-configurator input[type="checkbox"],
.yootheme-mode-configurator input[type="radio"] {
    margin-right: 10px;
    transform: scale(1.2);
}

.yootheme-mode-configurator label {
    cursor: pointer;
    display: flex;
    align-items: center;
    padding: 8px 0;
    color: #495057;
}

/* Przyciski */
.yootheme-mode-configurator .btn,
.yootheme-mode-configurator button {
    background: rgb(35, 152, 216);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 6px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-block;
}

.yootheme-mode-configurator .btn:hover,
.yootheme-mode-configurator button:hover {
    background: rgb(30, 137, 195);
    transform: translateY(-1px);
}

/* Responsive - Konfigurator mobile */
@media (max-width: 768px) {
    /* Progress bar wrap on mobile */
    .yootheme-mode-configurator .configurator-progress,
    .yootheme-mode-configurator .ao-configurator-progress {
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    /* Compact padding on mobile */
    .yootheme-mode-configurator .step-container,
    .yootheme-mode-configurator .ao-step-container {
        padding: 20px !important;
    }
}

/* ========================================================================
   TV CHANNELS MODE
   ======================================================================== */

/* TV CHANNELS - YooTheme Integration */
.yootheme-mode-tv_channels {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* TV Channels - Custom Color Override */
.yootheme-mode-tv_channels .ao-category-icon {
    background: rgb(35, 152, 216) !important;
    border-color: rgb(25, 130, 190) !important;
}

.yootheme-mode-tv_channels .ao-package-tab.active {
    background: rgb(35, 152, 216) !important;
    border-color: rgb(35, 152, 216) !important;
}

.yootheme-mode-tv_channels .ao-package-tab:focus {
    outline: 2px solid rgb(35, 152, 216);
    outline-offset: -2px;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header {
    background: rgb(35, 152, 216) !important;
    color: white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-name {
    color: white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-icon {
    color: white !important;
    border: 1px solid white !important;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-category-toggle,
.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-toggle-plus,
.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header .ao-toggle-minus {
    color: white !important;
}

.yootheme-mode-tv_channels .ao-category-header:focus {
    outline: 2px solid rgb(35, 152, 216);
    outline-offset: -2px;
}

.yootheme-mode-tv_channels .ao-category-count {
    background: rgb(35, 152, 216) !important;
}

/* Package switcher tabs styling */
.yootheme-mode-tv_channels .ao-package-tabs {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.yootheme-mode-tv_channels .ao-package-tab {
    background: #f8f9fa;
    border: 2px solid #e9ecef;
    color: #495057;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-weight: 500;
}

.yootheme-mode-tv_channels .ao-package-tab:hover {
    background: #e9ecef;
    transform: translateY(-2px);
}

.yootheme-mode-tv_channels .ao-package-tab.active {
    background: rgb(35, 152, 216);
    border-color: rgb(35, 152, 216);
    color: white;
}

/* Package statistics header */
.yootheme-mode-tv_channels .ao-tv-stats-header {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 25px;
}

.yootheme-mode-tv_channels .ao-tv-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

.yootheme-mode-tv_channels .ao-tv-stat-item {
    text-align: center;
    padding: 15px;
    background: white;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.yootheme-mode-tv_channels .ao-package-name {
    font-size: 1.2rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 8px;
}

.yootheme-mode-tv_channels .ao-package-description {
    color: #6c757d;
    font-size: 0.95rem;
}

/* Categories accordion */
.yootheme-mode-tv_channels .ao-category-section {
    background: white;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    margin-bottom: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.yootheme-mode-tv_channels .ao-category-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 20px;
    background: #f8f9fa;
    cursor: pointer;
    transition: all 0.3s ease;
}

.yootheme-mode-tv_channels .ao-category-header:hover {
    background: #e9ecef;
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-header {
    background: rgb(35, 152, 216);
    color: white;
}

.yootheme-mode-tv_channels .ao-category-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.yootheme-mode-tv_channels .ao-category-icon {
    font-size: 1.2rem;
    width: 24px;
    text-align: center;
}

.yootheme-mode-tv_channels .ao-category-name {
    font-weight: 600;
    font-size: 1.1rem;
}

.yootheme-mode-tv_channels .ao-category-meta {
    display: flex;
    align-items: center;
    gap: 10px;
}

.yootheme-mode-tv_channels .ao-category-count {
    background: rgb(35, 152, 216);
    color: white !important;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.85rem;
    font-weight: 500;
    border: 1px solid rgb(35, 152, 216);
}

.yootheme-mode-tv_channels .ao-category-section.expanded .ao-category-count {
    background: white;
    color: rgb(35, 152, 216);
    border: 1px solid white;
}

/* Channels grid */
.yootheme-mode-tv_channels .ao-channels-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 16px;
    padding: 20px;
}

.yootheme-mode-tv_channels .ao-channel-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px;
    border-radius: 8px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.yootheme-mode-tv_channels .ao-channel-item:hover {
    background: #f8f9fa;
    transform: translateY(-2px);
}

.yootheme-mode-tv_channels .ao-channel-logo-container {
    position: relative;
    margin-bottom: 8px;
}

.yootheme-mode-tv_channels .ao-channel-logo {
    max-width: 60px;
    max-height: 40px;
    object-fit: contain;
}

.yootheme-mode-tv_channels .ao-channel-quality {
    position: absolute;
    top: -6px;
    right: -6px;
    background: var(--skynet-primary);  /* Use CSS variable */
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: bold;
}

.yootheme-mode-tv_channels .ao-channel-quality.ao-quality-4k {
    background: #dc3545;
}

.yootheme-mode-tv_channels .ao-channel-name {
    font-size: 0.85rem;
    text-align: center;
    color: #495057;
    font-weight: 500;
}

/* Responsive design for TV channels */
@media (max-width: 768px) {
    .yootheme-mode-tv_channels .ao-package-tabs {
        gap: 8px;
    }

    .yootheme-mode-tv_channels .ao-package-tab {
        padding: 10px 16px;
        font-size: 0.9rem;
    }

    .yootheme-mode-tv_channels .ao-tv-stats-grid {
        grid-template-columns: 1fr;
    }

    .yootheme-mode-tv_channels .ao-channels-grid {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: 12px;
    }
}

/* Full width variants - will be applied dynamically */
.yootheme-mode-tv_channels.tv-full-width .ao-tv-channels {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.yootheme-mode-tv_channels.tv-standard-width .ao-tv-channels {
    max-width: 1200px;
    margin: 0 auto;
}

/* Gap size variants - will be applied dynamically */
.yootheme-mode-tv_channels.tv-gap-small .ao-package-tabs {
    gap: 8px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-package-tabs {
    gap: 16px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-package-tabs {
    gap: 24px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-tv-stats-grid {
    gap: 15px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-tv-stats-grid {
    gap: 20px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-tv-stats-grid {
    gap: 30px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-category-section {
    margin-bottom: 10px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-category-section {
    margin-bottom: 15px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-category-section {
    margin-bottom: 20px;
}

.yootheme-mode-tv_channels.tv-gap-small .ao-channels-grid {
    gap: 12px;
}

.yootheme-mode-tv_channels.tv-gap-medium .ao-channels-grid {
    gap: 16px;
}

.yootheme-mode-tv_channels.tv-gap-large .ao-channels-grid {
    gap: 24px;
}
