/* Extracted from ChefMateCategoryFilterWidget.php */
.chefmate-cat-buttons-row {
            display: flex;
            flex-wrap: wrap;
        }
        .chefmate-cat-btn {
            cursor: pointer;
            margin: 0;
        }
        .chefmate-cat-btn input[type="radio"] {
            display: none;
        }
        .chefmate-cat-btn span {
            display: inline-block;
            text-align: center;
            transition: all 0.3s ease;
        }
        .chefmate-cat-sort-wrapper {
            display: flex;
            justify-content: center;
        }
        .chefmate-cat-sort-select {
            appearance: none;
            -webkit-appearance: none;
            background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
            background-repeat: no-repeat;
            background-position: right .7em top 50%;
            background-size: .65em auto;
            cursor: pointer;
        }

/* Extracted from CookModeWidget.php */
.chefmate-cook-mode-wrapper { display: inline-flex; align-items: center; cursor: pointer; }
            .chefmate-cook-mode-icon-before, .chefmate-cook-mode-icon-after { display: flex; align-items: center; }
            .chefmate-cook-mode-switch { position: relative; display: inline-block; flex-shrink: 0; width: var(--cm-toggle-width, 44px); height: var(--cm-toggle-height, 24px); }
            .chefmate-cook-mode-switch input { opacity: 0; width: 0; height: 0; }
            .chefmate-cook-mode-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: 0.3s; border-radius: var(--cm-toggle-height, 24px); }
            .chefmate-cook-mode-status { font-weight: 600; min-width: 30px; }
            /* Base inline styles for the slider handle */
            .chefmate-cook-mode-slider:before {
                position: absolute;
                content: "";
                height: var(--cm-handle-size, 18px);
                width: var(--cm-handle-size, 18px);
                left: 3px;
                bottom: 3px;
                background-color: white;
                transition: .4s;
                border-radius: 50%;
            }
            .chefmate-cook-mode-switch input:checked + .chefmate-cook-mode-slider:before {
                transform: translateX(calc(var(--cm-toggle-width, 44px) - var(--cm-handle-size, 18px) - 6px));
            }

/* Extracted from DirectionsWidget.php */
.chefmate-directions-list { display: flex; flex-direction: column; }
            .chefmate-step-box { display: flex; }
            .layout-horizontal .chefmate-step-box { align-items: flex-start; }
            .layout-vertical .chefmate-step-box { flex-direction: column; }
            .chefmate-step-number-wrapper { flex-shrink: 0; }
            .chefmate-step-number { display: inline-flex; align-items: center; justify-content: center; text-align: center; }
            .chefmate-step-content { flex: 1; }

/* Extracted from FAQWidget.php */
.chefmate-faq-question {
                display: flex;
                justify-content: space-between;
                align-items: center;
                cursor: pointer;
                transition: all 0.3s ease;
            }
            .chefmate-faq-question-text {
                flex: 1;
            }
            .chefmate-faq-icon-wrap {
                flex-shrink: 0;
                display: flex;
                align-items: center;
            }
            .chefmate-faq-answer {
                transition: all 0.3s ease;
            }
            .chefmate-faq-icon svg {
                fill: currentColor !important;
            }

/* Extracted from FoodPairingWidget.php */
.chefmate-food-content-wrapper { display: flex; }
.chefmate-food-img { flex: 0 0 auto; }
.chefmate-food-content { flex: 1 1 auto; }

/* Extracted from IngredientsCheckboxWidget.php */
.chefmate-ingredients-list { list-style-type: none; padding-left: 0; margin-bottom: 0; }
            .chefmate-ingredient-label { display: inline-flex; cursor: pointer; }
            .chefmate-ingredient-text { display: inline-block; transition: all 0.3s ease; }
            .chefmate-checked .chefmate-ingredient-text { opacity: 0.6; text-decoration: line-through; }
            .chefmate-checkbox { margin-top: 4px; width: 18px; height: 18px; cursor: pointer; flex-shrink: 0; accent-color: #e67e22; }
            .chefmate-checkbox-before, .chefmate-checkbox-after { display: inline-block; flex-shrink: 0; }

/* Extracted from MeasurementToggleWidget.php */
.chefmate-toggle-switch { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; user-select: none; }
            .chefmate-toggle-track { position: relative; width: var(--cm-track-width, 48px); height: var(--cm-track-height, 24px); border-radius: 50px; flex-shrink: 0; pointer-events: none; }
            .chefmate-toggle-slider-handle { position: absolute; width: var(--cm-handle-size, 18px); height: var(--cm-handle-size, 18px); border-radius: 50%; transition: 0.3s; top: 50%; margin-top: calc(var(--cm-handle-size, 18px) * -0.5); left: 3px; }
            .chefmate-toggle-switch:not(.active) .chefmate-toggle-slider-handle {
                transform: translateX(calc(var(--cm-track-width, 48px) - var(--cm-handle-size, 18px) - 6px));
            }
            .chefmate-toggle-switch .chefmate-toggle-option {
                position: static !important;
                transform: none !important;
                opacity: 1 !important;
                pointer-events: auto !important;
                display: inline-block !important;
                visibility: visible !important;
                transition: color 0.3s ease;
            }

/* Extracted from MediaWidget.php */
.chefmate-video-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; }
.chefmate-video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.chefmate-pdf-btn { display: inline-flex; align-items: center; text-decoration: none; transition: all 0.3s ease; }

/* Extracted from NutritionGridWidget.php */
.chefmate-nutrition-grid { display: grid; }
            .chefmate-nutrition-subheading { grid-column: 1 / -1; width: 100%; }
            .chefmate-nutrition-item { transition: all 0.3s ease; }
            .chefmate-nutrition-label-wrap { display: flex; justify-content: space-between; align-items: center; width: 100%; cursor: pointer; }
            .chefmate-nutrition-checkbox-wrap { display: flex; align-items: center; }
            .chefmate-nutrition-checkbox-wrap .chefmate-checkbox { margin: 0; width: 18px; height: 18px; cursor: pointer; flex-shrink: 0; }
            .chefmate-checkbox-spacer { display: inline-block; width: 8px; }
            .chefmate-checked .chefmate-nutrition-label { text-decoration: line-through; }
            .chefmate-checked .chefmate-nutrition-value { text-decoration: line-through; }
            .chefmate-nutrition-note-type { display: block; }

/* Extracted from RecipeFilterWidget.php */
.chefmate-checkbox { display: flex; align-items: center; cursor: pointer; position: relative; user-select: none; }
        .chefmate-checkbox input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; }
        .chefmate-custom-checkmark { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; background-color: #fff; border: 1px solid #ccc; transition: all 0.2s; }
        .chefmate-custom-checkmark i, .chefmate-custom-checkmark svg { opacity: 0; transition: all 0.2s; }
        .chefmate-checkbox input:checked ~ .chefmate-custom-checkmark i, .chefmate-checkbox input:checked ~ .chefmate-custom-checkmark svg { opacity: 1; }
        .chefmate-checkbox-label { white-space: nowrap; }
        .chefmate-acc-icon { display: flex; align-items: center; justify-content: center; }
        .chefmate-acc-icon svg { width: 16px; height: 16px; }
        .chefmate-acc-icon i { font-size: 16px; }
        .chefmate-filter-accordion .chefmate-acc-closed { display: flex !important; }
        .chefmate-filter-accordion .chefmate-acc-open { display: none !important; }
        .chefmate-filter-accordion.is-active .chefmate-acc-closed { display: none !important; }
        .chefmate-filter-accordion.is-active .chefmate-acc-open { display: flex !important; }

        .chefmate-filter-time { width: 100%; margin-bottom: 20px; }
        .chefmate-filter-label { font-weight: bold; margin-bottom: 10px; display: block; }
        .chefmate-time-slider-wrapper { position: relative; width: 100%; height: 30px; --cm-track-bg: #e0e0e0; --cm-track-active: #0073aa; --cm-thumb-bg: #ffffff; --cm-thumb-border: #0073aa; --cm-thumb-size: 20px; display: flex; align-items: center; }
        .chefmate-time-min, .chefmate-time-max { position: absolute; width: 100%; pointer-events: none; -webkit-appearance: none; appearance: none; background: transparent !important; outline: none; margin: 0; }
        .chefmate-time-min::-webkit-slider-runnable-track, .chefmate-time-max::-webkit-slider-runnable-track { width: 100%; height: 6px !important; background: var(--cm-track-bg) !important; border-radius: 3px !important; }
        .chefmate-time-max::-webkit-slider-runnable-track { background: transparent !important; }
        .chefmate-time-min::-moz-range-track, .chefmate-time-max::-moz-range-track { width: 100%; height: 6px !important; background: var(--cm-track-bg) !important; border-radius: 3px !important; }
        .chefmate-time-max::-moz-range-track { background: transparent !important; }
        .chefmate-time-min::-webkit-slider-thumb, .chefmate-time-max::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; height: var(--cm-thumb-size) !important; width: var(--cm-thumb-size) !important; border-radius: 50% !important; background: var(--cm-thumb-bg) !important; border: 2px solid var(--cm-thumb-border) !important; cursor: pointer; position: relative; z-index: 2; margin-top: calc((var(--cm-thumb-size) / -2) + 3px) !important; }
        .chefmate-time-min::-moz-range-thumb, .chefmate-time-max::-moz-range-thumb { pointer-events: auto; height: var(--cm-thumb-size) !important; width: var(--cm-thumb-size) !important; border-radius: 50% !important; background: var(--cm-thumb-bg) !important; border: 2px solid var(--cm-thumb-border) !important; cursor: pointer; position: relative; z-index: 2; }
        .chefmate-time-values { margin-top: 10px; font-size: 14px; }
        .chefmate-time-values { margin-top: 10px; font-size: 14px; }
        .chefmate-filter-header { margin-bottom: 20px; }
        .chefmate-filter-header-title { margin-bottom: 15px; font-weight: bold; }
        .chefmate-filter-input { width: 100%; box-sizing: border-box; }
        .chefmate-filter-fields-container { display: flex; flex-wrap: wrap; }
        .chefmate-accordion-header { cursor: pointer; display: flex; align-items: center; }
        .chefmate-accordion-grid { display: grid; }
        .chefmate-filter-field { box-sizing: border-box; }
        .chefmate-filter-select { width: 100%; }
        .chefmate-filter-actions { display: flex; align-items: flex-end; gap: 10px; width: 100%; margin-top: 15px; }
        .chefmate-filter-button, .chefmate-filter-clear { cursor: pointer; }
        .chefmate-spinner { border: 4px solid rgba(0, 0, 0, 0.1); width: 40px; height: 40px; border-radius: 50%; border-left-color: #0073aa; animation: chefmateSpin 1s linear infinite; }
        @keyframes chefmateSpin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Extracted from RecipeMetaWidget.php */
.chefmate-meta-item { display: grid; grid-template-columns: auto 1fr; }
        .chefmate-meta-image, .chefmate-meta-icon { display: flex; align-items: center; justify-content: center; grid-row: 1 / 2; grid-column: 1 / 2; }
        .chefmate-meta-text { display: flex; flex-direction: column; line-height: 1.2; grid-row: 1 / 2; grid-column: 2 / 3; }
        .chefmate-meta-label { display: block; font-size: 0.8em; opacity: 0.8; text-transform: uppercase; }
        .chefmate-meta-value { display: block; font-weight: 600; }
        .chefmate-serving-btn-wrap { grid-row: 2 / 3; grid-column: 1 / 3; display: flex; width: 100%; }
        .chefmate-serving-btn { cursor: pointer; display: inline-flex; align-items: center; transition: all 0.3s ease; }

/* Extracted from RecipeRatingWidget.php */
.chefmate-recipe-rating-wrap {
                display: inline-flex;
                align-items: center;
                line-height: 1;
            }
            .chefmate-rating-stars {
                display: inline-flex;
                position: relative;
            }
            .chefmate-rating-stars .star-empty {
                display: inline-flex;
            }
            .chefmate-rating-stars .star-filled {
                display: inline-flex;
                position: absolute;
                top: 0;
                left: 0;
                white-space: nowrap;
                overflow: hidden;
            }

/* Extracted from RecipeReviewsWidget.php */
.chefmate-review-form label { display: block; font-weight: 600; margin-bottom: 5px; }
            .chefmate-input-star { cursor: pointer; }
            .chefmate-review-form-row { display: flex; gap: 15px; margin-bottom: 15px; }
            .chefmate-review-form-col { flex: 1; }
            .chefmate-review-input { width: 100%; box-sizing: border-box; }
            .chefmate-review-submit-btn { cursor: pointer; }
            .chefmate-review-message { margin-top: 15px; display: none; padding: 10px; border-radius: 4px; }

/* Extracted from SearchWidget.php */
.chefmate-standalone-search-form { display: flex; align-items: center; width: 100%; overflow: hidden; box-sizing: border-box; }
        .chefmate-standalone-icon { display: flex; align-items: center; justify-content: center; background: transparent; border: none; padding: 0; cursor: pointer; flex-shrink: 0; }
        .chefmate-standalone-input { flex: 1; background: transparent !important; border: none !important; outline: none !important; padding: 0 !important; width: 100%; box-shadow: none !important; }

/* Extracted from ServingAdjusterWidget.php */
.chefmate-serving-btn-wrap { display: flex; }
            .chefmate-modal-error { color: #ef4444; font-size: 14px; margin-top: 10px; }

/* Extracted from TimerWidget.php */
.chefmate-timer-popup-wrap {
    position: fixed;
    z-index: 99999;
    display: flex;
    flex-direction: column-reverse;
    gap: 0;
    pointer-events: none;
}
.chefmate-timer-template {
    display: none !important;
}
.chefmate-timer-popup {
    display: flex;
    align-items: center;
    gap: 20px;
    pointer-events: auto;
    width: 100%;
    
    border-radius: 8px;
    padding: 15px 20px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    position: relative;
    overflow: hidden;
}
.chefmate-timer-close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
}
.chefmate-timer-close svg {
    width: 20px;
    height: 20px;
    
    transition: fill 0.2s;
}
.chefmate-timer-label {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.chefmate-timer-label-title {
    font-weight: 800;
    font-size: 14px;
    line-height: 1;
    
    text-transform: uppercase;
}
            .chefmate-timer-context {
                font-size: 13px;
                
                
                padding: 2px 6px;
                border-radius: 4px;
                line-height: 1.2;
                white-space: nowrap;
            }
            .chefmate-timer-controls {
                display: flex;
                align-items: center;
                gap: 10px;
            }
            .chefmate-timer-control-btn {
                background: none;
                border: none;
                cursor: pointer;
                padding: 0;
                display: flex;
                align-items: center;
            }
            .chefmate-timer-control-btn svg {
                width: 24px;
                height: 24px;
                
            }
            .chefmate-timer-countdown {
                font-size: 32px;
                font-weight: 800;
                
                font-variant-numeric: tabular-nums;
                line-height: 1;
            }
            
            /* Timer Progress Line */
            .chefmate-timer-progress-wrap {
                position: absolute;
                bottom: 0;
                left: 0;
                height: 4px;
                width: 100%;
                
                z-index: 10;
            }
            .chefmate-timer-progress-fill {
                height: 100%;
                width: 0%;
                transition: width 1s linear;
            }

            /* Timer Complete State */
            .chefmate-timer-popup.timer-ended .chefmate-timer-countdown {
                color: var(--cm-timer-end-color) !important;
            }
            .chefmate-timer-popup.timer-ended .chefmate-timer-progress-fill {
                background-color: var(--cm-timer-end-color) !important;
            }
            .chefmate-timer-popup.timer-ended .chefmate-timer-playpause {
                display: none !important;
            }
            .chefmate-timer-popup.timer-ended .chefmate-timer-reset svg {
                fill: var(--cm-timer-end-color) !important;
            }

            /* Hover states for controls */
            .chefmate-timer-control-btn:hover,
            .chefmate-timer-close:hover {
                background: transparent !important;
            }
            .chefmate-timer-control-btn svg {
                transition: fill 0.2s;
            }

            /* In Editor Preview */
            .elementor-editor-active .chefmate-timer-popup-wrap {
                display: flex !important;
                position: relative !important;
                opacity: 1 !important;
                transform: none !important;
                top: auto !important;
                left: auto !important;
                right: auto !important;
                bottom: auto !important;
            }
            .elementor-editor-active .chefmate-timer-progress-fill {
                width: 100% !important;
            }
            .chefmate-timer-group-left {
                display: flex;
                align-items: center;
                gap: 15px;
            }
            .chefmate-timer-group-right {
                display: flex;
                align-items: center;
                gap: 20px;
            }

/* Extracted from WinePairingWidget.php */
.chefmate-wine-content-wrapper { display: flex; }
.chefmate-wine-img { flex: 0 0 auto; }
.chefmate-wine-content { flex: 1 1 auto; }
