        /* Progress Form Container */
        .progress-form-wrapper {
            position: relative;
            margin-top: -90px;
            z-index: 2;
        }

        .progress-form-container {
            background: var(--color-white);
            padding: 15px;
            border-radius: 50px;
            box-shadow: var(--box-shadow);
            max-width: 1200px;
            margin: 0 auto;
        }

        /* Progress Steps Navigation */
        .progress-steps-wrapper {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 10px;
            padding: 5px 0 5px 0;
        }

        .progress-steps {
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }

        .progress-step {
            display: flex;
            flex-direction: column;
            align-items: center;
            position: relative;
            z-index: 2;
        }

        .progress-step-circle {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            background: var(--theme-color-light);
            color: var(--color-dark);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            font-size: 18px;
            transition: var(--transition);
            border: 3px solid transparent;
        }

        .progress-step.active .progress-step-circle {
            background: var(--theme-color);
            color: var(--color-white);
            border-color: var(--theme-color);
        }

        .progress-step-label {
            margin-top: 8px;
            font-size: 13px;
            font-weight: 700;
            color: var(--color-dark);
            white-space: nowrap;
        }

        .progress-step-line {
            width: 150px;
            height: 3px;
            background: #d0d0d0;
            position: relative;
            top: 0px;
            margin-bottom: 33px;
            z-index: 1;
        }

        /* Remove old tab styles */
        .progress-tabs {
            display: none;
        }

        .progress-tab {
            display: none;
        }

        /* Radio Button Sub-Tabs */
        .radio-subtabs {
            display: flex;
            gap: 20px;
            margin-bottom: 15px;
            margin-top: 5px;
            align-items: center;
            flex-wrap: wrap;
        }

        .radio-subtabs label {
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            font-weight: 500;
            color: var(--color-dark);
            padding: 8px 16px;
            border-radius: 25px;
            transition: var(--transition);
        }

        .radio-subtabs input[type="radio"] {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: var(--theme-color);
        }

        .radio-subtabs label:has(input[type="radio"]:checked) {
            background: var(--theme-color-light);
            font-weight: 600;
        }

        /* Tab Content */
        .tab-content-wrapper {
            min-height: 450px;
            position: relative;
        }

        .tab-pane-custom {
            display: none;
            animation: fadeIn 0.3s;
        }

        .tab-pane-custom.active {
            display: block;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        /* Content Area */
        .content-area {
            background: #f5f5f5;
            border-radius: 25px;
            padding: 15px 20px 20px 20px;
            min-height: 280px;
            margin-bottom: 10px;
        }

        /* Country Selection (Tab 1) */
        /* Country Selection (Tab 1) - 3-column grid */
        .country-list {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 0;
            max-height: 252px;
            overflow-y: auto;
            padding-right: 5px;
        }

        .country-list::-webkit-scrollbar {
            width: 8px;
        }

        .country-list::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 10px;
        }

        .country-list::-webkit-scrollbar-thumb {
            background: var(--theme-color);
            border-radius: 10px;
        }

        .country-item {
            display: flex;
            align-items: center;
            padding: 8px 6px;
            cursor: pointer;
            border-bottom: 1px solid #e0e0e0;
            min-width: 0;
        }

        .country-item:last-child {
            border-bottom: none;
        }

        .country-item input[type="radio"] {
            width: 16px;
            height: 16px;
            flex-shrink: 0;
            margin-right: 8px;
            cursor: pointer;
            accent-color: var(--theme-color);
        }

        .country-item label {
            font-size: 14px;
            color: var(--color-dark);
            cursor: pointer;
            margin: 0;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 4px;
            min-width: 0;
        }

        /* My home country badge */
        .home-country-label {
            color: #28a745;
            font-size: 11px;
            font-weight: 500;
            white-space: nowrap;
        }

        .country-header-title {
            margin-bottom: 15px;
            color: var(--color-dark);
            font-size: 17px;
            font-weight: 600;
        }

        /* Holiday Tab (Tab 2) */
        .country-header {
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 25px;
        }
        
        /*
        .country-flag {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            object-fit: cover;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            border: 2px solid #e0e0e0;
        }
        */


        .country-flag {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            object-fit: cover;
            border: 2px solid #ddd;
        }
        
        .country-flag-small {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            object-fit: cover;
            border: 1px solid #ddd;
        }




        .country-name {
            font-size: 18px;
            font-weight: 400;
            color: var(--color-dark);
        }

        .holiday-controls {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            margin-bottom: 20px;
            flex-wrap: wrap;
            gap: 30px;
        }

        .control-group {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .control-label {
            font-weight: 500;
            color: var(--color-dark);
        }

        .icon-btn {
            background: var(--theme-color);
            color: white;
            border: none;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: var(--transition);
        }

        .icon-btn:hover {
            background: var(--color-dark);
        }

        .holiday-table {
            width: 100%;
            margin-top: 20px;
        }

        .holiday-table thead {
            background: var(--theme-color-light);
        }

        .holiday-table th {
            padding: 8px;
            text-align: left;
            color: var(--color-dark);
            font-weight: 600;
            border-bottom: 2px solid var(--theme-color);
        }

        .holiday-table td {
            padding: 6px 8px;
            border-bottom: 1px solid #e0e0e0;
        }

        .holiday-table tr.deleted {
            opacity: 0.4;
            background: #f5f5f5;
        }

        .action-icons {
            display: flex;
            gap: 10px;
        }

        .action-icon {
            cursor: pointer;
            color: var(--theme-color);
            font-size: 18px;
            transition: var(--transition);
        }

        .action-icon:hover {
            color: var(--color-dark);
        }

        .action-icon.delete {
            color: var(--body-text-color);
        }

        /* Stretch Type Tab (Tab 3) */
        .stretch-selector {
            display: flex;
            justify-content: center;
            gap: 10px;
            margin-bottom: 30px;
            flex-wrap: wrap;
        }

        .stretch-option {
            background: var(--color-white);
            border: 2px solid var(--theme-color-light);
            border-radius: 25px;
            padding: 10px 20px;
            cursor: pointer;
            transition: var(--transition);
            font-weight: 500;
        }

        .stretch-option.active {
            background: var(--theme-color);
            color: white;
            border-color: var(--theme-color);
        }

        .slider-container {
            max-width: 600px;
            margin: 40px auto;
        }

        .slider-label {
            margin-bottom: 15px;
            font-weight: 500;
            color: var(--color-dark);
            font-size: 16px;
        }

        .slider-label-value {
            font-weight: 600;
            color: var(--theme-color);
        }

        .slider-minmax {
            display: flex;
            justify-content: space-between;
            margin-bottom: 5px;
            font-size: 14px;
            color: var(--body-text-color);
        }

        .slider-input {
            width: 100%;
            height: 8px;
            border-radius: 5px;
            outline: none;
            background: linear-gradient(to right, var(--theme-color) 0%, var(--theme-color) 50%, #ddd 50%, #ddd 100%);
            -webkit-appearance: none;
            margin-bottom: 10px;
        }

        .slider-input::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: var(--theme-color);
            cursor: pointer;
            box-shadow: 0 2px 6px rgba(0,0,0,0.2);
        }

        .slider-input::-moz-range-thumb {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            background: var(--theme-color);
            cursor: pointer;
            box-shadow: 0 2px 6px rgba(0,0,0,0.2);
            border: none;
        }

        .goal-text {
            margin-top: 30px;
            padding: 20px;
            background: white;
            border-radius: 15px;
            border-left: 4px solid var(--theme-color);
        }

        .goal-text strong {
            color: var(--color-dark);
        }

        /* Trip Dates Tab (Tab 4) */
        .trip-table {
            width: 100%;
            margin-top: 20px;
        }

        .trip-table thead {
            background: var(--theme-color-light);
        }

        .trip-table th {
            padding: 8px;
            text-align: left;
            color: var(--color-dark);
            font-weight: 600;
            border-bottom: 2px solid var(--theme-color);
        }

        .trip-table th.sortable-th {
            cursor: pointer;
            user-select: none;
            white-space: nowrap;
        }

        .trip-table th.sortable-th:hover {
            background: var(--theme-color);
            color: var(--color-white);
        }

        .trip-table th.sortable-th:hover .sort-arrow {
            color: var(--color-white);
        }

        /* Bootstrap .table tables (dashboard, my_trips pages) */
        .table th.sortable-th {
            cursor: pointer;
            user-select: none;
            white-space: nowrap;
        }

        .table th.sortable-th:hover {
            background: var(--theme-color);
            color: var(--color-white);
        }

        .table th.sortable-th:hover .sort-arrow {
            color: var(--color-white);
        }

        .sort-arrow {
            display: inline-block;
            margin-left: 5px;
            font-size: 11px;
            color: #aaa;
            transition: color 0.15s;
        }

        .sort-arrow.active-asc::after  { content: '▲'; }
        .sort-arrow.active-desc::after { content: '▼'; }
        .sort-arrow.active-asc,
        .sort-arrow.active-desc {
            color: var(--theme-color);
            font-size: 11px;
        }
        /* Hide the ⇅ text when an active class is applied */
        .sort-arrow.active-asc,
        .sort-arrow.active-desc { font-size: 0; }
        .sort-arrow.active-asc::after,
        .sort-arrow.active-desc::after { font-size: 11px; }

        .trip-table td {
            padding: 6px 8px;
            border-bottom: 1px solid #e0e0e0;
        }

        .trip-table input[type="checkbox"] {
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: var(--theme-color);
        }

        /* Navigation Buttons */
        .progress-navigation {
            display: flex;
            justify-content: center;
            gap: 12px;
            margin-top: 10px;
            flex-wrap: wrap;
        }

        .nav-btn {
            background: #999;
            color: white;
            border: none;
            padding: 6px 20px;
            border-radius: 25px;
            font-weight: 500;
            cursor: pointer;
            transition: var(--transition);
            font-size: 14px;
        }

        .nav-btn:hover {
            background: #777;
        }

        .nav-btn.primary {
            background: var(--theme-color);
        }

        .nav-btn.primary:hover {
            background: var(--color-dark);
        }

        .nav-btn:disabled {
            background: #ccc;
            cursor: not-allowed;
        }

        /* Responsive */
        @media (max-width: 768px) {
            .progress-form-container {
                padding: 15px;
                border-radius: 25px;
            }

            .progress-tabs {
                gap: 5px;
            }

            .progress-tab {
                padding: 8px 12px;
                font-size: 14px;
            }

            .content-area {
                padding: 20px;
            }

            /* Stack country grid to 1 column on mobile */
            .country-list {
                grid-template-columns: 1fr;
                max-height: 280px;
            }

            .holiday-table, .trip-table {
                font-size: 14px;
            }

            .holiday-table th, .holiday-table td,
            .trip-table th, .trip-table td {
                padding: 8px;
            }
        }
 
/* ============================================================================
   MODAL STYLES - Perfect Modals for Stretchtraveler
   ============================================================================*/

/* Modal Overlay - Full screen dark background */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000; /* Very high z-index to appear above everything */
    backdrop-filter: blur(3px);
}

/* Modal Content Box - Compact, centered, beautiful */
.modal-content {
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    max-width: 400px; /* ~4 inches at standard DPI */
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-30px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Modal Header - With icon on left, no X button */
.modal-header {
    background: linear-gradient(135deg, var(--theme-color) 0%, var(--color-dark) 100%);
    color: white;
    padding: 20px 25px;
    border-radius: 20px 20px 0 0;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
}

.modal-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    flex: 1;
}

/* Icon styling for modal headers */
.modal-header i {
    font-size: 24px;
    color: white;
    opacity: 0.9;
}

/* REMOVE the X close button completely */
.modal-close {
    display: none !important;
}

/* Modal Body - Clean, spacious content area */
.modal-body {
    padding: 25px;
    max-height: 400px; /* ~4 inches at standard DPI */
    overflow-y: auto;
}

/* Scrollbar styling for modal body */
.modal-body::-webkit-scrollbar {
    width: 6px;
}

.modal-body::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.modal-body::-webkit-scrollbar-thumb {
    background: var(--theme-color);
    border-radius: 10px;
}

/* Form groups inside modals */
.modal-body .form-group {
    margin-bottom: 20px;
}

.modal-body .form-group:last-child {
    margin-bottom: 0;
}

.modal-body label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--color-dark);
    font-size: 14px;
}

.modal-body input[type="text"],
.modal-body input[type="date"],
.modal-body .form-control {
    width: 100%;
    padding: 10px 15px;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    font-size: 14px;
    transition: var(--transition);
    box-sizing: border-box;
}

.modal-body input[type="text"]:focus,
.modal-body input[type="date"]:focus,
.modal-body .form-control:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(255, 99, 71, 0.1);
}

/* Weekend checkboxes - 2 column grid */
.weekend-checkboxes {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 10px 0;
}

.weekend-checkbox-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #f9f9f9;
    border-radius: 10px;
    cursor: pointer;
    transition: var(--transition);
}

.weekend-checkbox-item:hover {
    background: var(--theme-color-light);
}

.weekend-checkbox-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--theme-color);
}

.weekend-checkbox-item label {
    margin: 0 !important;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
}

/* Modal Footer - Clean button area */
.modal-footer {
    padding: 15px 25px 20px;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    border-top: 1px solid #e0e0e0;
}

.modal-footer .nav-btn {
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    transition: var(--transition);
}

.modal-footer .nav-btn:not(.primary) {
    background: #e0e0e0;
    color: var(--color-dark);
}

.modal-footer .nav-btn:not(.primary):hover {
    background: #d0d0d0;
}

.modal-footer .nav-btn.primary {
    background: var(--theme-color);
    color: white;
}

.modal-footer .nav-btn.primary:hover {
    background: var(--color-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/*===========================================================================
   TRIP MODAL CALENDAR STYLES - Dashboard & My Trips
   ============================================================================*/

/* Trip Modal - Wider for calendar */
#viewTripModal .modal-content {
    max-width: 900px;
    width: 90%;
}

/* Trip Descriptive Bar */
.trip-desc-bar {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
}

.trip-desc-values {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 15px;
    gap: 15px;
}

.trip-desc-values span {
    font-size: 14px;
    color: #333;
}

.trip-desc-construction {
    font-size: 15px;
    color: #555;
    line-height: 1.6;
    padding-top: 15px;
    border-top: 1px solid #dee2e6;
}

/* Trip Calendar + Legend Container */
.trip-calendar-legend-container {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

/* Legend - Left Side */
.trip-legend {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 120px;
}

.trip-legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.trip-legend-circle {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    flex-shrink: 0;
}

.trip-legend-circle.weekend {
    background-color: #ffc107;
}

.trip-legend-circle.pto {
    background-color: #2196F3;
}

.trip-legend-circle.holiday {
    background-color: #4caf50;
}

.trip-legend-label {
    font-size: 14px;
    color: #333;
}

/* Calendar Wrapper */
.trip-calendar-wrapper {
    flex: 1;
    min-width: 0; /* Allow flex item to shrink */
}

/*===========================================================================
   JQUERY UI DATEPICKER CUSTOMIZATION FOR TRIP MODAL
   ============================================================================*/

/* Base Datepicker Styling */
.ui-datepicker {
    background: white;
    border: 1px solid #ddd;
    padding: 10px;
    box-shadow: none;
    font-family: inherit;
}

.ui-datepicker-header {
    background: var(--theme-color);
    color: white;
    padding: 10px;
    border-radius: 5px;
}

.ui-datepicker-title {
    color: white;
    font-weight: 600;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
    cursor: pointer;
}

.ui-datepicker table {
    width: 100%;
    margin: 0;
}

.ui-datepicker th {
    padding: 5px;
    font-weight: 600;
    color: #666;
    font-size: 12px;
}

.ui-datepicker td {
    padding: 2px;
    text-align: center;
}

.ui-datepicker td a {
    display: block;
    padding: 6px;
    text-align: center;
    text-decoration: none;
    color: #333;
    border-radius: 50%;
    transition: var(--transition);
}

/* Trip Date Range Styling */
.ui-datepicker .trip-date a {
    position: relative;
}

/* PTO Days - Blue Circle */
.ui-datepicker .pto-day a {
    background-color: #2196F3 !important;
    color: white !important;
    border-radius: 50%;
    font-weight: 600;
}

/* Weekend Days - Yellow Circle */
.ui-datepicker .weekend-day a {
    background-color: #ffc107 !important;
    color: #333 !important;
    border-radius: 50%;
    font-weight: 600;
}

/* Holiday Days - Green Circle */
.ui-datepicker .holiday-day a {
    background-color: #4caf50 !important;
    color: white !important;
    border-radius: 50%;
    font-weight: 600;
}

/* Non-trip dates */
.ui-datepicker td a:not(.pto-day):not(.weekend-day):not(.holiday-day) {
    color: #999;
}

/* Hover effects for trip dates */
.ui-datepicker .trip-date a:hover {
    opacity: 0.8;
}

/* Responsive - Trip Modal */
@media (max-width: 768px) {
    #viewTripModal .modal-content {
        max-width: 95%;
    }
    
    .trip-calendar-legend-container {
        flex-direction: column;
        gap: 20px;
    }
    
    .trip-legend {
        flex-direction: row;
        flex-wrap: wrap;
        min-width: auto;
    }
    
    .trip-desc-values {
        flex-direction: column;
        gap: 10px;
    }
}

/* View Calendar Modal - Special styling */
.calendar-view {
    text-align: center;
    padding: 20px;
}

.calendar-view p {
    margin: 0;
    color: var(--color-dark);
    font-size: 15px;
    line-height: 1.6;
}

/* Tab 4 Trip Table - Deleted state */
.trip-table tr.deleted {
    opacity: 0.4;
    background: #f5f5f5;
    text-decoration: line-through;
}

.trip-table tr.deleted td {
    color: #999;
}

.trip-table tr.deleted input[type="checkbox"] {
    pointer-events: none;
    opacity: 0.5;
}

.trip-table tr.deleted input[type="checkbox"]:checked {
    accent-color: #999;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .modal-content {
        max-width: 95%;
        width: 95%;
    }
    
    .modal-header {
        padding: 15px 20px;
    }
    
    .modal-header h3 {
        font-size: 16px;
    }
    
    .modal-body {
        padding: 20px;
    }
    
    .modal-footer {
        padding: 12px 20px 15px;
    }
    
    .weekend-checkboxes {
        grid-template-columns: 1fr;
    }
}


/* Weekend radio options - Single column, clean layout */
.weekend-radio-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.weekend-radio-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    background: #f9f9f9;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    cursor: pointer;
    transition: var(--transition);
}

.weekend-radio-item:hover {
    background: var(--theme-color-light);
    border-color: var(--theme-color);
}

.weekend-radio-item input[type="radio"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--theme-color);
}

.weekend-radio-item input[type="radio"]:checked + .weekend-label {
    font-weight: 600;
    color: var(--theme-color);
}

.weekend-label {
    font-size: 15px;
    cursor: pointer;
    flex: 1;
}

/* Trip calendar - disable all interactions */
#tripDetailsContent .calendar-grid {
    pointer-events: none;
    user-select: none;
}
#qsTripDetailsContent .calendar-grid {
    pointer-events: none;
    user-select: none;
}

#tripDetailsContent .calendar-day {
    cursor: default !important;
}
#qsTripDetailsContent .calendar-day {
    cursor: default !important;
}

/* Deleted rows - strikethrough styling for all tables */
.holiday-table tr.deleted,
.trip-table tr.deleted {
    opacity: 0.4;
    background: #f5f5f5;
    text-decoration: line-through;
}

.holiday-table tr.deleted td,
.trip-table tr.deleted td {
    text-decoration: line-through;
    color: #999;
}

/* If you have a blocked dates table, add this class to it in HTML and include here */
.blocked-table tr.deleted {
    opacity: 0.4;
    background: #f5f5f5;
    text-decoration: line-through;
}

.blocked-table tr.deleted td {
    text-decoration: line-through;
    color: #999;
}

/* ============================================================================
   VIEW TRIP MODAL - FINAL VERSION
   ============================================================================ */

/* Modal sizing - FIXED height management */
.view-trip-modal-content {
    max-width: 800px !important;
    max-height: 85vh !important; /* Reduced from 90vh */
    min-height: auto !important;
    overflow: hidden !important; /* Hide overflow on modal itself */
    display: flex !important;
    flex-direction: column !important;
}

/* Header */
.view-trip-header {
    background: linear-gradient(90deg, #4db8c4 0%, #2b5876 100%) !important;
    color: white !important;
    padding: 20px 30px !important;
}

.view-trip-header h3,
.view-trip-header span,
.view-trip-header i {
    color: white !important;
}


/* Body - scrollable if needed */
.view-trip-body {
    padding: 20px 30px 20px !important;
    overflow-y: auto !important; /* Body scrolls, not modal */
    flex: 1 !important;
    max-height: calc(85vh - 180px) !important; /* Leave room for header + footer */
}

/* Footer - REDUCED height */
.view-trip-footer {
    padding: 12px 30px 15px !important;
    justify-content: center !important;
    flex-shrink: 0 !important; /* Prevent footer from shrinking */
    border-top: 1px solid #e0e0e0; /* Visual separation */
    background: white; /* Ensure footer is visible */
}

/* Close button */
.trip-close-btn {
    background: #4db8c4 !important;
    padding: 10px 35px !important;
    font-size: 15px !important;
}

.trip-close-btn:hover {
    background: #3a9ca8 !important;
}

/* Descriptive bar - TALLER, BLUE labels, LARGER construction text */
.trip-desc-bar {
    background: #f5f5f5;
    border-left: 5px solid #4db8c4;
    border-radius: 8px;
    padding: 18px 25px !important;
    margin-bottom: 20px;
    text-align: left;
    min-height: 90px;
}

/* Top line - BLUE labels */
.trip-desc-values {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #333;
    font-weight: 400;
}

.trip-desc-values strong {
    color: #4db8c4 !important; /* BLUE color */
    font-weight: 600;
}

/* Construction text - BOLD and LARGER */
.trip-desc-construction {
    font-style: italic;
    color: #666;
    line-height: 1.7;
    font-size: 15px !important; /* LARGER */
    font-weight: 700;
    margin-top: 8px;
}

/* Calendar + Legend container */
.trip-calendar-legend-container {
    display: flex;
    gap: 25px;
    margin-bottom: 15px;
    align-items: flex-start;
}

/* Legend - VERTICAL, LEFT of calendar */
.trip-legend {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 15px;
    background: #f9f9f9;
    border-radius: 8px;
    min-width: 110px;
    flex-shrink: 0;
}

.trip-legend-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Solid color circles for legend */
.trip-legend-circle {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
}

.trip-legend-circle.weekend {
    background: #FFD700;
}

.trip-legend-circle.pto {
    background: #4A90E2;
}

.trip-legend-circle.holiday {
    background: #4CAF50;
}

.trip-legend-label {
    font-size: 13px;
    color: #333;
    font-weight: 500;
}

/* Calendar wrapper - full visibility */
.trip-calendar-wrapper {
    flex: 1;
    display: flex;
    justify-content: center;
    min-height: 380px;
}

/* jQuery UI Datepicker - HORIZONTAL layout */
#tripDetailsContent .ui-datepicker {
    border: 2px solid #4db8c4;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    padding: 0;
    width: auto !important;
    display: inline-block !important;
    overflow: hidden;
}
#qsTripDetailsContent .ui-datepicker {
    border: 2px solid #4db8c4;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    padding: 0;
    width: auto !important;
    display: inline-block !important;
    overflow: hidden;
}

/* CRITICAL: Make calendars display HORIZONTALLY */
#tripDetailsContent .ui-datepicker-group {
    float: left !important;
    width: 250px !important;
    margin: 0 !important;
}
#qsTripDetailsContent .ui-datepicker-group {
    float: left !important;
    width: 250px !important;
    margin: 0 !important;
}

#tripDetailsContent .ui-datepicker-group:first-child {
    border-right: 1px solid #ddd;
}
#qsTripDetailsContent .ui-datepicker-group:first-child {
    border-right: 1px solid #ddd;
}

/* Month header — no radius by default; outer corners handled per-group below */
#tripDetailsContent .ui-datepicker-header {
    background: #4db8c4;
    color: white;
    border: none;
    padding: 12px;
    border-radius: 0;
}
#qsTripDetailsContent .ui-datepicker-header {
    background: #4db8c4;
    color: white;
    border: none;
    padding: 12px;
    border-radius: 0;
}

/* Left calendar: round only top-left corner */
#tripDetailsContent .ui-datepicker-group:first-child .ui-datepicker-header {
    border-radius: 8px 0 0 0;
}
#qsTripDetailsContent .ui-datepicker-group:first-child .ui-datepicker-header {
    border-radius: 8px 0 0 0;
}

/* Right calendar: round only top-right corner */
#tripDetailsContent .ui-datepicker-group:last-child .ui-datepicker-header {
    border-radius: 0 8px 0 0;
}
#qsTripDetailsContent .ui-datepicker-group:last-child .ui-datepicker-header {
    border-radius: 0 8px 0 0;
}

#tripDetailsContent .ui-datepicker-title {
    color: white;
    font-weight: 700;
    text-align: center;
    font-size: 15px;
    line-height: 1.2;
}
#qsTripDetailsContent .ui-datepicker-title {
    color: white;
    font-weight: 700;
    text-align: center;
    font-size: 15px;
    line-height: 1.2;
}

/* Hide navigation arrows */
#tripDetailsContent .ui-datepicker-prev,
#tripDetailsContent .ui-datepicker-next {
    display: none !important;
}
#qsTripDetailsContent .ui-datepicker-prev,
#qsTripDetailsContent .ui-datepicker-next {
    display: none !important;
}

/* Calendar table - FULL GRID LINES */
#tripDetailsContent .ui-datepicker-calendar {
    width: 100%;
    border-collapse: collapse;
}
#qsTripDetailsContent .ui-datepicker-calendar {
    width: 100%;
    border-collapse: collapse;
}

/* Day headers */
#tripDetailsContent .ui-datepicker th {
    padding: 8px 4px;
    font-weight: 600;
    font-size: 11px;
    color: #666;
    background: #f5f5f5;
    border: 1px solid #ddd;
    text-align: center;
}
#qsTripDetailsContent .ui-datepicker th {
    padding: 8px 4px;
    font-weight: 600;
    font-size: 11px;
    color: #666;
    background: #f5f5f5;
    border: 1px solid #ddd;
    text-align: center;
}

/* Day cells - FULL GRID */
#tripDetailsContent .ui-datepicker td {
    padding: 0;
    border: 1px solid #ddd;
    background: white;
    text-align: center;
    width: 35px;
    height: 35px;
}
#qsTripDetailsContent .ui-datepicker td {
    padding: 0;
    border: 1px solid #ddd;
    background: white;
    text-align: center;
    width: 35px;
    height: 35px;
}

/* Day cell content */
#tripDetailsContent .ui-datepicker td a,
#tripDetailsContent .ui-datepicker td span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    font-weight: 500;
    font-size: 13px;
    border: none;
    color: #999;
    background: transparent;
    padding: 0;
    margin: 0;
}
#qsTripDetailsContent .ui-datepicker td a,
#qsTripDetailsContent .ui-datepicker td span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    font-weight: 500;
    font-size: 13px;
    border: none;
    color: #999;
    background: transparent;
    padding: 0;
    margin: 0;
}

/* HIDE dates from other months */
#tripDetailsContent .ui-datepicker td.ui-datepicker-other-month {
    visibility: hidden !important;
}
#qsTripDetailsContent .ui-datepicker td.ui-datepicker-other-month {
    visibility: hidden !important;
}

/* Trip date range cells - LIGHT GRAY BACKGROUND */
#tripDetailsContent .ui-datepicker td.trip-date {
    background: #d0d0d0 !important;
    position: relative;
}
#qsTripDetailsContent .ui-datepicker td.trip-date {
    background: #d0d0d0 !important;
    position: relative;
}

/* Trip dates - BLACK text */
#tripDetailsContent .ui-datepicker td.trip-date a,
#tripDetailsContent .ui-datepicker td.trip-date span {
    color: black !important;
    font-weight: 700 !important;
    z-index: 2;
    position: relative;
}
#qsTripDetailsContent .ui-datepicker td.trip-date a,
#qsTripDetailsContent .ui-datepicker td.trip-date span {
    color: black !important;
    font-weight: 700 !important;
    z-index: 2;
    position: relative;
}

/* SOLID COLORED CIRCLES - ON TOP of gray background */

/* PTO Day - BLUE circle */
#tripDetailsContent .ui-datepicker td.pto-day a,
#tripDetailsContent .ui-datepicker td.pto-day span {
    background: #4A90E2 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}
#qsTripDetailsContent .ui-datepicker td.pto-day a,
#qsTripDetailsContent .ui-datepicker td.pto-day span {
    background: #4A90E2 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}

/* Weekend Day - YELLOW circle */
#tripDetailsContent .ui-datepicker td.weekend-day a,
#tripDetailsContent .ui-datepicker td.weekend-day span {
    background: #FFD700 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}
#qsTripDetailsContent .ui-datepicker td.weekend-day a,
#qsTripDetailsContent .ui-datepicker td.weekend-day span {
    background: #FFD700 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}

/* Holiday Day - GREEN circle */
#tripDetailsContent .ui-datepicker td.holiday-day a,
#tripDetailsContent .ui-datepicker td.holiday-day span {
    background: #4CAF50 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}
#qsTripDetailsContent .ui-datepicker td.holiday-day a,
#qsTripDetailsContent .ui-datepicker td.holiday-day span {
    background: #4CAF50 !important;
    border-radius: 50% !important;
    color: black !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    margin: auto;
}

/* Disable hover */
#tripDetailsContent .ui-datepicker td a:hover {
    background: inherit !important;
    cursor: default !important;
}
#qsTripDetailsContent .ui-datepicker td a:hover {
    background: inherit !important;
    cursor: default !important;
}

/* Disable all interactions */
#tripDetailsContent .ui-datepicker {
    pointer-events: none !important;
    user-select: none !important;
}
#qsTripDetailsContent .ui-datepicker {
    pointer-events: none !important;
    user-select: none !important;
}

/* Clear floats */
#tripDetailsContent .ui-datepicker:after {
    content: "";
    display: table;
    clear: both;
}
#qsTripDetailsContent .ui-datepicker:after {
    content: "";
    display: table;
    clear: both;
}

/* Responsive */
@media (max-width: 850px) {
    .view-trip-modal-content {
        max-width: 95% !important;
    }
    
    .trip-calendar-legend-container {
        flex-direction: column;
    }
    
    #tripDetailsContent .ui-datepicker-group {
        float: none !important;
        display: block !important;
        border-right: none !important;
        border-bottom: 1px solid #ddd;
    }
#qsTripDetailsContent .ui-datepicker-group {
        float: none !important;
        display: block !important;
        border-right: none !important;
        border-bottom: 1px solid #ddd;
    }
}

/* Algorithm Loading Spinner Animation (Tab3) */
.algorithm-loader {
    position: fixed;
    width: 100%;
    height: 100%;
    background: var(--theme-color);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    top: 0;
    left: 0;
    z-index: 99999;
  }

  .algorithm-loader p {
    color: white;
    margin-top: 20px;
    font-size: 18px;
    font-weight: 500;
  }

/* Export Modal Styles */

   .export-format-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 10px 0;
}

.export-format-option {
    cursor: pointer;
    display: block;
}

.export-format-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.format-card {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    background: white;
    transition: all 0.3s ease;
}

.format-card i {
    font-size: 24px;
    color: var(--theme-color);
}

.format-card span {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-dark);
}

.export-format-option input[type="radio"]:checked + .format-card {
    border-color: var(--theme-color);
    background: rgba(36, 189, 199, 0.1);
    box-shadow: 0 2px 8px rgba(36, 189, 199, 0.2);
}

.format-card:hover {
    border-color: var(--theme-color);
    transform: translateX(5px);
}

/* Download link hover effect */
#exportDownloadLink:hover {
    color: var(--color-dark);
    transform: scale(1.1);
    transition: all 0.2s ease;
}

/* ========================================
   UPDATED: Export Download Modal - Wider
   ======================================== */

/* Make download modal wider */
#exportDownloadModal .modal-content {
    max-width: 650px;  /* Increased from default */
    width: 90%;
}

/* Ensure filename and download are on same line */
#exportDownloadModal .modal-body > div:first-child > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 2px solid var(--theme-color);
    flex-wrap: nowrap;  /* Prevent wrapping */
    gap: 20px;
}

/* Filename section */
#exportDownloadModal .modal-body > div:first-child > div > div:first-child {
    flex: 1;
    min-width: 0;  /* Allow text truncation if needed */
}

/* Download section */
#exportDownloadModal .modal-body > div:first-child > div > div:last-child {
    flex-shrink: 0;  /* Don't shrink download icon */
    min-width: 80px;
    text-align: right;
}

/* Ensure labels are on same line */
#exportDownloadModal .modal-body > div:first-child > div > div > div:first-child {
    font-size: 14px;
    color: #6c757d;
    margin-bottom: 5px;
    white-space: nowrap;
}

/* Filename text - allow wrapping if super long */
#exportDownloadModal #exportFilename {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-dark);
    word-break: break-word;
}
/* Save Plan Modals - Styling    */
/* Success Modal - Icon animation */
#saveSuccessModal .modal-body > div > div:first-child {
    animation: successPulse 0.6s ease-in-out;
}

@keyframes successPulse {
    0% { transform: scale(0.5); opacity: 0; }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); opacity: 1; }
}

/* Plan Limit Modal - Warning icon animation */
#planLimitModal .modal-body > div > div:first-child {
    animation: warningShake 0.5s ease-in-out;
}

@keyframes warningShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}

/* Success message highlight */
#saveSuccessModal h3 {
    color: #4CAF50;
}

/* Warning message highlight */
#planLimitModal h3 {
    color: #ff9800;
}

/* Modal footer buttons - better spacing */
.modal-footer {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

/* Primary button in success modal - emphasized */
#saveSuccessModal .modal-footer .nav-btn.primary {
    background: #4CAF50;
    border-color: #4CAF50;
}

#saveSuccessModal .modal-footer .nav-btn.primary:hover {
    background: #45a049;
    border-color: #45a049;
}

/* Stats display - Plans remaining */
#saveSuccessModal p:last-child {
    background: #e8f5e9;
    padding: 10px 15px;
    border-radius: 6px;
    display: inline-block;
}

/* Warning box in plan limit modal */
#planLimitModal .modal-body p:last-child {
    background: #f5f5f5;
    padding: 12px 15px;
    border-radius: 6px;
    border-left: 4px solid #ff9800;
}
/* Tag Your Plan Modal - Styling */
/* Tag suggestions grid */
.tag-suggestions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

/* Tag chip buttons */
.tag-chip {
    background: #f5f5f5;
    border: 2px solid #e0e0e0;
    border-radius: 20px;
    padding: 8px 15px;
    font-size: 13px;
    color: var(--color-dark);
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 6px;
    justify-content: center;
}

.tag-chip:hover {
    background: var(--theme-color);
    border-color: var(--theme-color);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 2px 8px rgba(36, 189, 199, 0.3);
}

.tag-chip i {
    font-size: 14px;
}

/* Plan tag input */
#planTag {
    width: 100%;
    padding: 10px;
    font-size: 15px;
    border: 2px solid #ddd;
    border-radius: 6px;
    transition: border-color 0.2s ease;
}

#planTag:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(36, 189, 199, 0.1);
}

/* Character counter */
#planTagCounter {
    color: #999;
    font-size: 12px;
}

#planTagCounter.warning {
    color: #ff9800;
    font-weight: 600;
}

/* ========================================
   Save Plan Modals - Styling
   ======================================== */

/* Success Modal - Icon animation */
#saveSuccessModal .modal-body > div > div:first-child {
    animation: successPulse 0.6s ease-in-out;
}

@keyframes successPulse {
    0% { transform: scale(0.5); opacity: 0; }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); opacity: 1; }
}

/* Plan Limit Modal - Warning icon animation */
#planLimitModal .modal-body > div > div:first-child {
    animation: warningShake 0.5s ease-in-out;
}

@keyframes warningShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}

/* Success message highlight */
#saveSuccessModal h3 {
    color: #4CAF50;
}

/* Warning message highlight */
#planLimitModal h3 {
    color: #ff9800;
}

/* Modal footer buttons - better spacing */
.modal-footer {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

/* Primary button in success modal - emphasized */
#saveSuccessModal .modal-footer .nav-btn.primary {
    background: #4CAF50;
    border-color: #4CAF50;
}

#saveSuccessModal .modal-footer .nav-btn.primary:hover {
    background: #45a049;
    border-color: #45a049;
}

/* Stats display - Plans remaining */
#saveSuccessModal p:last-child {
    background: #e8f5e9;
    padding: 10px 15px;
    border-radius: 6px;
    display: inline-block;
}

/* Warning box in plan limit modal */
#planLimitModal .modal-body p:last-child {
    background: #f5f5f5;
    padding: 12px 15px;
    border-radius: 6px;
    border-left: 4px solid #ff9800;
}
/* ========================================
   DASHBOARD STYLES - FINAL COSMETIC FIXES
   Replace dashboard section in stretch.css
   ======================================== */

/* Dashboard Full Width Layout */
.dashboard-full-width {
    width: 100%;
}

/* Floating Header Section - DARKER GRAY */
.dashboard-header-section {
    background: #e0e4e8;
    border-radius: 10px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.dashboard-header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

/* User Avatar Section */
.user-avatar-section {
    display: flex;
    align-items: center;
    gap: 15px;
}

.user-avatar-circle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, #667eea 0%, #24bdc7 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
}

.user-avatar1 {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #667eea 0%, #24bdc7 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
    border-radius: 40px 40px 40px 0;   
}

.user-info-text {
    display: flex;
    flex-direction: column;
}

.user-name {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin-bottom: 5px;
}

.user-email {
    font-size: 14px;
    color: #666;
}

/* Dashboard Cards Row */
.dashboard-cards-row {
    display: flex;
    gap: 20px;
    flex: 1;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* Dashboard Widgets - ENHANCED STYLING */
.dashboard-widget {
    background: white;
    border-radius: 10px;
    padding: 20px;
    min-width: 180px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.2s, box-shadow 0.2s;
}

.dashboard-widget:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}

.dashboard-widget-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.dashboard-widget-text {
    display: flex;
    flex-direction: column;
}

.dashboard-widget-label {
    font-size: 13px;
    color: #666;
    margin-bottom: 8px;
    display: block;
}

.dashboard-widget-value {
    font-size: 28px;
    font-weight: 700;
    margin: 0;
    line-height: 1;
}

/* Widget Icons - WHITE COLOR FORCED */
.dashboard-widget-icon {
    font-size: 36px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white !important;  /* FORCE WHITE COLOR */
}

.dashboard-widget-icon i {
    color: white !important;  /* FORCE WHITE COLOR ON ICON */
}

/* Widget Colors - THICKER BORDERS + ICON BACKGROUNDS */
.dashboard-widget-color-1 {
    border-left: 6px solid #24bdc7;
}

.dashboard-widget-color-1 .dashboard-widget-value {
    color: #24bdc7;
}

.dashboard-widget-color-1 .dashboard-widget-icon {
    background: #24bdc7;
}

.dashboard-widget-color-2 {
    border-left: 6px solid #36e8bf;
}

.dashboard-widget-color-2 .dashboard-widget-value {
    color: #36e8bf;
}

.dashboard-widget-color-2 .dashboard-widget-icon {
    background: #36e8bf;
}

.dashboard-widget-color-3 {
    border-left: 6px solid #c3c3c3;
}

.dashboard-widget-color-3 .dashboard-widget-value {
    color: #c3c3c3;
}

.dashboard-widget-color-3 .dashboard-widget-icon {
    background: #c3c3c3;
}

/* Right Sidebar */
.plan-sidebar {
    background: white;
    border-radius: 10px;
    padding: 25px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    position: sticky;
    top: 20px;
}

/* Plan Sidebar Title - BLUE BACKGROUND */
.plan-sidebar-title {
    font-size: 20px;
    font-weight: 600;
    color: white;
    margin: -25px -25px 20px -25px;
    padding: 15px 25px;
    background: #24bdc7;
    border-radius: 10px 10px 0 0;
}

/* Plan Select Dropdown - DARKER BORDER + DROPDOWN ARROW */
.plan-select-container {
    margin-bottom: 25px;
}

.plan-select {
    width: 100%;
    padding: 10px 35px 10px 15px;
    border: 2px solid #999;
    border-radius: 5px;
    font-size: 14px;
    background: white;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 12px;
    cursor: pointer;
    transition: border-color 0.2s;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.plan-select:hover {
    border-color: #24bdc7;
}

.plan-select:focus {
    border-color: #24bdc7;
    outline: none;
    box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.1);
}

/* Section Headings */
.section-heading {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin-bottom: 15px;
    margin-top: 25px;
}

.settings-section,
.results-section {
    margin-bottom: 20px;
}

/* Accordion Styling - BOLD BLUE LABELS */
.accordion-item {
    border: 2px solid #999;
    border-radius: 5px !important;
    margin-bottom: 10px;
    overflow: hidden;
}

.accordion-header {
    margin-bottom: 0;
}

.accordion-button {
    background: #f8f9fa;
    color: #1a9ba5;  /* Dark blue */
    font-weight: 600;  /* BOLD - was 500 */
    font-size: 14px;
    padding: 12px 15px;
    border: none;
    transition: background 0.2s;
}

.accordion-button:not(.collapsed) {
    background: #e3f2fd;
    color: #1a9ba5;
    box-shadow: none;
}

.accordion-button:hover {
    background: #e8f5e9;
}

.accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

.accordion-button::after {
    margin-left: auto;
}

.accordion-body {
    padding: 15px;
    font-size: 13px;
}

/* Sidebar Detail Items */
.sidebar-detail-item {
    margin-bottom: 12px;
}

.sidebar-detail-item:last-child {
    margin-bottom: 0;
}

.sidebar-detail-label {
    font-weight: 600;
    color: #555;
    font-size: 13px;
    margin-bottom: 4px;
}

.sidebar-detail-value {
    color: #333;
    font-size: 13px;
}

/* Holiday Items */
.sidebar-holiday-item {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 13px;
    color: #333;
}

.sidebar-holiday-item:last-child {
    border-bottom: none;
}

/* Blackout Items */
.sidebar-blackout-item {
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
}

.sidebar-blackout-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sidebar-blackout-item .sidebar-detail-label {
    margin-bottom: 3px;
}

.sidebar-blackout-item .sidebar-detail-value {
    font-size: 12px;
    color: #666;
}

/* Sidebar Links */
.sidebar-link {
    display: block;
    padding: 10px 12px;
    color: #333;
    text-decoration: none;
    border-radius: 5px;
    transition: background 0.2s, color 0.2s;
    font-size: 14px;
    margin-bottom: 5px;
}

.sidebar-link:hover {
    background: #f0f0f0;
    color: #24bdc7;
}

.sidebar-link i {
    margin-right: 8px;
    color: #24bdc7;
}

.sidebar-profile-link {
    display: block;
    padding: 12px 15px;
    background: #f8f9fa;
    color: #333;
    text-decoration: none;
    border-radius: 5px;
    transition: background 0.2s, color 0.2s;
    font-size: 14px;
    text-align: center;
    font-weight: 500;
}

.sidebar-profile-link:hover {
    background: #e3f2fd;
    color: #24bdc7;
}

.sidebar-profile-link i {
    margin-right: 8px;
}

/* Sidebar Menu Section */
.sidebar-menu-section {
    margin-bottom: 15px;
}

/* Chart Container - LIGHT GRAY BACKGROUND */
#tripChart {
    background: #f5f5f5;  /* Light gray background */
    padding: 20px;
    border-radius: 8px;
}

/* Modal Styles */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}

.modal-content,
.modal-content-large {
    background: white;
    border-radius: 10px;
    padding: 0;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 5px 20px rgba(0,0,0,0.3);
    animation: modalFadeIn 0.3s ease;
}

.modal-content {
    width: 90%;
    max-width: 500px;
}

.modal-content-large {
    width: 90%;
    max-width: 800px;
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 25px;
    border-bottom: 1px solid #e0e0e0;
    border-radius: 10px 10px 0 0;
}

.modal-title {
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: #333;
}

.modal-close {
    background: none;
    border: none;
    font-size: 28px;
    color: #999;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.modal-close:hover {
    color: #333;
}

.modal-body {
    padding: 25px;
}

.modal-footer {
    padding: 15px 25px;
    border-top: 1px solid #e0e0e0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* Trip Action Icons */
.trip-action-icon {
    cursor: pointer;
    font-size: 16px;
    transition: transform 0.2s, color 0.2s;
}

.trip-action-icon:hover {
    transform: scale(1.2);
}

/* Responsive Design */
@media (max-width: 1200px) {
    .dashboard-cards-row {
        justify-content: center;
    }
}

@media (max-width: 992px) {
    .dashboard-header-content {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .dashboard-cards-row {
        width: 100%;
        justify-content: space-between;
    }
    
    .dashboard-widget {
        flex: 1;
        min-width: 150px;
    }
    
    .plan-sidebar {
        position: static;
        margin-top: 20px;
    }
}

@media (max-width: 768px) {
    .dashboard-header-section {
        padding: 20px;
    }
    
    .user-avatar-circle {
        width: 60px;
        height: 60px;
        font-size: 24px;
    }
    
    .user-name {
        font-size: 20px;
    }
    
    .dashboard-cards-row {
        flex-direction: column;
    }
    
    .dashboard-widget {
        width: 100%;
    }
}

/* ========================================
   END DASHBOARD STYLES
   ======================================== */
/* ========================================
   UNIFIED BUTTON STYLES - RED HOVER
   All buttons now have red hover effect
   ======================================== */

/* Base button styles */
.btn, .nav-btn, .theme-btn {
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-block;
    text-align: center;
    text-decoration: none;
    line-height: 1.5;
}

/* ========================================
   PRIMARY BUTTONS - TEAL → RED HOVER
   ======================================== */

.btn-primary, .nav-btn.primary, .theme-btn {
    background: #24bdc7 !important;
    color: white !important;
}

.btn-primary:hover, 
.nav-btn.primary:hover, 
.theme-btn:hover {
    background: #dc3545 !important;  /* Bootstrap red */
    color: white !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
    text-decoration: none;
}

.btn-primary:focus,
.btn-primary:active,
.nav-btn.primary:focus,
.nav-btn.primary:active,
.theme-btn:focus,
.theme-btn:active {
    background: #c82333 !important;  /* Darker red */
    color: white !important;
    outline: none;
    text-decoration: none;
}

.theme-btn:visited {
    color: white !important;
}

/* ========================================
   SECONDARY BUTTONS - GRAY → RED HOVER
   ======================================== */

.btn-secondary, .nav-btn:not(.primary) {
    background: #6c757d;
    color: white;
}

.btn-secondary:hover, 
.nav-btn:not(.primary):hover {
    background: #dc3545 !important;  /* Red hover */
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
}

/* ========================================
   DANGER BUTTONS - RED → DARKER RED HOVER
   ======================================== */

.btn-danger {
    background: #dc3545;
    color: white;
}

.btn-danger:hover {
    background: #c82333 !important;  /* Darker red */
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.5);
}

/* ========================================
   INFO BUTTONS - BLUE → RED HOVER
   ======================================== */

.btn-info {
    background: #17a2b8;
    color: white;
}

.btn-info:hover {
    background: #dc3545 !important;  /* Red hover */
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
}

/* ========================================
   WARNING BUTTONS - ORANGE → RED HOVER
   ======================================== */

.btn-warning {
    background: #ffc107;
    color: #212529;
}

.btn-warning:hover {
    background: #dc3545 !important;  /* Red hover */
    color: white !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
}

/* ========================================
   SUCCESS BUTTONS - GREEN → RED HOVER
   ======================================== */

.btn-success {
    background: #28a745;
    color: white;
}

.btn-success:hover {
    background: #dc3545 !important;  /* Red hover */
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
}

/* ========================================
   DISABLED STATE
   ======================================== */

.btn:disabled, 
.nav-btn:disabled,
.theme-btn:disabled {
    background: #ccc !important;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.btn:disabled:hover,
.nav-btn:disabled:hover,
.theme-btn:disabled:hover {
    background: #ccc !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ========================================
   BUTTON SIZES
   ======================================== */

.btn-sm, .nav-btn.btn-sm, .theme-btn.btn-sm {
    padding: 8px 16px;
    font-size: 14px;
}

.btn-lg, .nav-btn.btn-lg, .theme-btn.btn-lg {
    padding: 16px 32px;
    font-size: 18px;
}

/* ========================================
   BUTTON GROUPS
   ======================================== */

.btn-group .btn {
    margin-right: 10px;
}

.btn-group .btn:last-child {
    margin-right: 0;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 768px) {
    .btn, .nav-btn, .theme-btn {
        padding: 10px 20px;
        font-size: 14px;
    }
    
    .btn-lg, .nav-btn.btn-lg, .theme-btn.btn-lg {
        padding: 12px 24px;
        font-size: 16px;
    }
}


/* =========================================================
   BLOG INDEX POLISH (categories/tags dropdown badges + cards)
   ========================================================= */

/* Reduce big white gap below blog hero section */
.blog-area.py-120 {
  padding-top: 60px !important;
  padding-bottom: 90px !important;
}

.blog-filter-row {
  margin-bottom: 14px !important;
}

/* Put both badges on one line, left aligned */
.blog-filter-badges {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
}

/* Keep compact badge look */
.dropdown-inline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

/* Replace Bootstrap caret with a white triangle inside badge */
.dropdown-inline .dropdown-toggle::after {
  content: "";
  display: inline-block;
  margin-left: 10px;
  vertical-align: middle;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid rgba(255,255,255,0.95);
}

/* Make toggle clickable without changing badge style */
.dropdown-inline .dropdown-toggle {
  cursor: pointer;
  user-select: none;
}

/* Dropdown menu as grid (3 per row) */
.dropdown-menu.dropdown-grid {
  padding: 10px;
  width: min(520px, 92vw);
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.08);
  display: none; /* keep closed until Bootstrap adds .show */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.dropdown-menu.dropdown-grid.show {
  display: grid;
}

.dropdown-menu.dropdown-grid .dropdown-item {
  white-space: normal;
  border-radius: 8px;
  padding: 10px 10px;
  font-size: 14px;
  line-height: 1.2;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dropdown-menu.dropdown-grid .dropdown-item:hover {
  background-color: #f0f7ff;
  color: var(--theme-color);
}

.dd-count {
  font-size: 11px;
  padding: 4px 6px;
}

@media (max-width: 576px) {
  .dropdown-menu.dropdown-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Slightly smaller blog cards and images */
.blog-item-img {
  overflow: hidden;
  border-radius: 10px; /* matches typical theme rounding */
}

.blog-item-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;   /* keeps consistent tiles without distortion */
  object-fit: cover;      /* no stretching; crops if needed */
  display: block;
}


.blog-title a {
  font-size: 18px;
  line-height: 1.25;
}

/* Read More + Featured aligned on same row */
.blog-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
}

/* Slightly smaller button (doesn't change theme colors) */
.blog-readmore-btn {
  padding: 10px 16px !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

/* Featured badge aligned with button */
.featured-inline-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  /* SAME height as Read More */
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  box-sizing: border-box;

  /* Badge look (rounded / pill) */
  border-radius: 999px;

  /* Keep gold Featured color */
  background: linear-gradient(135deg, #ffc107 0%, #ff9800 100%);
  color: #fff;

  /* Move clearly left to avoid card edge */
  margin-left: -28px;

  white-space: nowrap;
}

/* Blog meta row: keep on one line */
.blog-item-meta ul {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  align-items: center;
  overflow: hidden;
}

.blog-item-meta ul li a {
  font-size: 12.5px;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .blog-item-meta ul {
    flex-wrap: wrap; /* allow wrap on small screens */
  }
}

/* Ensure theme doesn't force image distortion */
.blog-item-img img{object-fit: cover !important; height:auto !important;}

* ===== Blog Post Sidebar Enhancements ===== */

.blog-sidebar .widget-title {
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 20px;
}
.blog-sidebar .widget-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 3px;
  background: var(--theme-color);
}

.search-widget .search-form {
  position: relative;
}
.search-widget .search-form input {
  width: 100%;
  padding: 12px 45px 12px 15px;
  border: 2px solid rgba(0,0,0,0.25);
  border-radius: 8px;
}
.search-widget .search-form button {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--theme-color);
}

.category-list li a {
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.25s ease;
}
.category-list li a:hover {
  transform: translateX(5px);
  color: var(--theme-color);
}

.recent-post-item {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
}
.recent-post-img {
  width: 100px;
  height: 100px;
  overflow: hidden;
  border-radius: 8px;
}
.recent-post-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recent-post-content span {
  display: block;
  font-size: 13px;
  color: #888;
}

/* ========================================
   AFFILIATE PLANNER PAGE STYLES
   Add to end of stretch.css
   ======================================== */

   .planner-area {
    background: #ffffff;
}

.affiliate-grid {
    margin-bottom: 40px;
}

/* Affiliate Card - Compact & Clean with Animation */
.planner-area .affiliate-card {
    display: block !important;
    background: #f5f5f5 !important;
    border-radius: 12px !important;
    padding: 20px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    height: 100%;
    min-height: 100px;
}

.planner-area .affiliate-card:hover {
    background: #e8e8e8 !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 24px rgba(36, 189, 199, 0.3) !important;
    text-decoration: none !important;
}

.planner-area .affiliate-card-inner {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* Icon Circle - Smaller and More Compact */
.planner-area .affiliate-icon {
    flex-shrink: 0;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 2px solid #24bdc7 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
}

.planner-area .affiliate-icon i {
    font-size: 22px !important;
    color: #24bdc7 !important;
    transition: all 0.3s ease !important;
}

/* Hover Effect - Red Background */
.planner-area .affiliate-card:hover .affiliate-icon {
    background: #dc3545 !important;
    border-color: #dc3545 !important;
    transform: scale(1.1) !important;
}

.planner-area .affiliate-card:hover .affiliate-icon i {
    color: #ffffff !important;
}

/* Content */
.planner-area .affiliate-content {
    flex: 1;
}

.planner-area .affiliate-title {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 5px !important;
    line-height: 1.3 !important;
}

.planner-area .affiliate-partner {
    font-size: 12px !important;
    color: #999 !important;
    margin: 0 !important;
}

/* Disclaimer */
.planner-area .affiliate-disclaimer {
    font-size: 14px;
    color: #666;
    padding: 20px;
    background: #f9f9f9;
    border-radius: 8px;
}

.planner-area .affiliate-disclaimer strong {
    color: #333;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 991px) {
    .planner-area .affiliate-card-inner {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 767px) {
    .planner-area .affiliate-icon {
        width: 50px !important;
        height: 50px !important;
    }
    
    .planner-area .affiliate-icon i {
        font-size: 24px !important;
    }
    
    .planner-area .affiliate-title {
        font-size: 16px !important;
    }
    
    .planner-area .affiliate-partner {
        font-size: 11px !important;
    }
}

/* ========================================
   END AFFILIATE PLANNER PAGE STYLES
   ======================================== */

/* ========================================
   AFFILIATE MINI WIDGET STYLES
   Add to end of stretch.css
   ======================================== */

   .affiliate-mini-widget {
    margin: 20px auto 40px auto; /* Auto left/right for centering */
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    border: 2px solid #000000; /* Black border for widget container */
    max-width: max-content; /* Shrink to fit content */
    width: fit-content; /* Shrink to fit content */
}

/* Category Tabs Strip - Horizontal Badges */
.affiliate-tabs-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 15px 20px;
    background: #ffffff;
    border-bottom: 2px solid #f0f0f0;
    justify-content: flex-start; /* Left align badges */
}

.affiliate-tab-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    background: #e8f7f8 !important; /* Light teal */
    color: #0d5c63 !important; /* Dark teal text */
    border: 2px solid #000000 !important; /* Black border for badges */
    border-radius: 25px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
}

/* Hover Effect - Red Background */
.affiliate-tab-badge:hover {
    background: #dc3545 !important; /* Red hover like buttons */
    color: #ffffff !important;
    border-color: #000000 !important;
    transform: translateY(-2px) !important;
}

.affiliate-tab-badge.active {
    background: #24bdc7 !important;
    color: #ffffff !important;
    border-color: #000000 !important;
}

.affiliate-tab-badge i {
    font-size: 16px !important;
}

/* Dropdown Content Area */
.affiliate-dropdown-content {
    padding: 20px;
    background: #ffffff;
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Affiliate Grid Inside Dropdown */
.affiliate-dropdown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
}

/* Mini Card - Compact Design with Black Border */
.affiliate-mini-card {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    padding: 15px !important;
    background: #f5f5f5 !important;
    border: 2px solid #000000 !important; /* Black border for cards */
    border-radius: 10px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
}

.affiliate-mini-card:hover {
    background: #e8e8e8 !important;
    transform: translateX(4px) !important;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* Mini Icon */
.affiliate-mini-icon {
    flex-shrink: 0 !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    border: 2px solid #24bdc7 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
}

.affiliate-mini-icon i {
    font-size: 24px !important;
    color: #24bdc7 !important;
    transition: all 0.3s ease !important;
}

/* Hover Effect - Red Icon Background like Planner cards */
.affiliate-mini-card:hover .affiliate-mini-icon {
    background: #dc3545 !important; /* Red background on hover */
    border-color: #dc3545 !important;
    transform: scale(1.1) !important;
}

.affiliate-mini-card:hover .affiliate-mini-icon i {
    color: #ffffff !important;
}

/* Mini Content */
.affiliate-mini-content {
    flex: 1 !important;
}

.affiliate-mini-title {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #333 !important;
    margin-bottom: 3px !important;
    line-height: 1.3 !important;
}

.affiliate-mini-partner {
    font-size: 12px !important;
    color: #999 !important;
    margin: 0 !important;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 768px) {
    .affiliate-tabs-strip {
        justify-content: center;
    }
    
    .affiliate-dropdown-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   END AFFILIATE MINI WIDGET STYLES
   ======================================== */

/* ========================================
   VIDEO CAROUSEL SECTION
   Add to end of stretch.css
   ======================================== */

/* White scalloped background area */
.video-carousel-area {
    background: #ffffff;
    padding: 60px 0 80px 0;
    position: relative;
    margin-top: -80px; /* Pull up into hero section */
    border-radius: 30px 30px 0 0;
    z-index: 2;
}

/* Carousel wrapper */
.video-carousel-wrapper {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    background: #000;
}

/* Carousel items */
.carousel-inner {
    border-radius: 20px;
}

.carousel-item {
    height: 600px;
    position: relative;
}

.carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Video slide specific */
.video-slide {
    height: 600px;
    position: relative;
    background: #000;
}

.video-thumbnail {
    width: 100%;
    height: 100%;
    position: relative;
    cursor: pointer;
}

.video-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Play button overlay */
.play-button-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    background: rgba(36, 189, 199, 0.9);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 4px solid #ffffff;
}

.play-button-overlay:hover {
    background: #dc3545;
    transform: translate(-50%, -50%) scale(1.1);
}

.play-button-overlay i {
    font-size: 40px;
    color: #ffffff;
    margin-left: 5px; /* Optical centering */
}

/* Video element */
.carousel-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Carousel captions */
.carousel-caption {
    background: rgba(0, 0, 0, 0.6);
    padding: 20px 40px;
    border-radius: 10px;
    bottom: 40px;
}

.carousel-caption h5 {
    font-size: 28px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 10px;
}

.carousel-caption p {
    font-size: 16px;
    color: #ffffff;
    margin: 0;
}

/* Carousel controls (arrows) */
.carousel-control-prev,
.carousel-control-next {
    width: 60px;
    height: 60px;
    background: rgba(36, 189, 199, 0.8);
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
}

.carousel-control-prev {
    left: 20px;
}

.carousel-control-next {
    right: 20px;
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
    background: #dc3545;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 30px;
    height: 30px;
}

/* Carousel indicators (dots) */
.carousel-indicators {
    bottom: 20px;
}

.carousel-indicators button {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    border: 2px solid #ffffff;
    margin: 0 5px;
}

.carousel-indicators button.active {
    background: #24bdc7;
    border-color: #24bdc7;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 991px) {
    .carousel-item {
        height: 450px;
    }
    
    .video-slide {
        height: 450px;
    }
    
    .play-button-overlay {
        width: 80px;
        height: 80px;
    }
    
    .play-button-overlay i {
        font-size: 32px;
    }
    
    .carousel-caption h5 {
        font-size: 22px;
    }
    
    .carousel-caption p {
        font-size: 14px;
    }
}

@media (max-width: 767px) {
    .video-carousel-area {
        padding: 40px 0 60px 0;
    }
    
    .carousel-item {
        height: 350px;
    }
    
    .video-slide {
        height: 350px;
    }
    
    .play-button-overlay {
        width: 70px;
        height: 70px;
    }
    
    .play-button-overlay i {
        font-size: 28px;
    }
    
    .carousel-control-prev,
    .carousel-control-next {
        width: 50px;
        height: 50px;
    }
    
    .carousel-control-prev {
        left: 10px;
    }
    
    .carousel-control-next {
        right: 10px;
    }
    
    .carousel-caption {
        padding: 15px 20px;
        bottom: 20px;
    }
    
    .carousel-caption h5 {
        font-size: 18px;
    }
    
    .carousel-caption p {
        font-size: 13px;
    }
}

/* ========================================
   END VIDEO CAROUSEL SECTION
   ======================================== */

/* ============================================================
   RADIO BUTTON GROUP BADGE BACKGROUNDS
   Add to your stretch.css or main stylesheet
   ============================================================ */

/* Gray Badge Background for Radio Button Groups */
.radio-subtabs {
    display: flex;
    gap: 0;
    background: #d3d3d3; Light gray badge background - matches slider track color */
    padding: 4px; /* Small padding around the buttons */
    border-radius: 25px; /* Rounded ends to match radio button pills */
    position: relative;
    width: fit-content; /* Badge wraps to content width */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); /* Subtle shadow for depth */
}

/* Individual Radio Button Labels */
.radio-subtabs label {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin: 0;
    padding: 10px 24px;
    border-radius: 20px; /* Matches the badge border radius */
    transition: all 0.3s ease;
    background: transparent;
    z-index: 1;
}

/* Hide the actual radio input */
.radio-subtabs input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* Radio Button Text */
.radio-subtabs span {
    font-size: 15px;
    font-weight: 500;
    color: #4a5568; /* Dark gray text for unselected */
    transition: color 0.3s ease;
    position: relative;
    z-index: 2;
}

/* Active/Checked Radio Button */
.radio-subtabs input[type="radio"]:checked + span {
    color: #ffffff; /* White text when selected */
}

/* Active Button Background */
.radio-subtabs label:has(input[type="radio"]:checked) {
    background: #24bdc7; /* Teal background for active button */
    box-shadow: 0 2px 6px rgba(36, 189, 199, 0.3); /* Subtle teal glow */
}

/* Hover Effect on Unselected Buttons */
.radio-subtabs label:hover:not(:has(input[type="radio"]:checked)) {
    background: rgba(36, 189, 199, 0.1); /* Light teal hint on hover */
}

/* ============================================================
   TAB-SPECIFIC ADJUSTMENTS
   ============================================================ */

/* Tab 2: Holidays vs Blackout Dates - Left aligned */
#tab2 .radio-subtabs {
    justify-content: flex-start;
}

/* Tab 3: Strategy Selection - Center aligned */
#tab3 .radio-subtabs {
    justify-content: center;
    margin: 0 auto; /* Center the entire badge strip */
}

/* ============================================================
   ALTERNATIVE: If you want a slightly darker gray
   (matching the slider's unfilled track)
   ============================================================ */

/* Uncomment this if you prefer the darker slider gray */
/*
.radio-subtabs {
    background: #bcc5d3; 
}
*/

/* ============================================================
   RESPONSIVE DESIGN
   ============================================================ */

@media (max-width: 768px) {
    .radio-subtabs label {
        padding: 8px 18px;
    }
    
    .radio-subtabs span {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .radio-subtabs {
        flex-direction: column; /* Stack buttons vertically on very small screens */
        width: 100%;
    }
    
    .radio-subtabs label {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================================================
   AFFILIATE MINI-WIDGET STYLES - Compact 7-Category Display
   ============================================================================ */

.affiliate-mini-widget {
    margin-top: 20px;
}

.affiliate-tabs-strip {
    display: flex;
    gap: 10px;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 15px;
    justify-content: flex-start;
    margin: 0;
    margin-left: 0 !important;
    padding-left: 15px !important;
}

.affiliate-tab-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 22px;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 115px;
    background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
}

.affiliate-tab-badge i {
    font-size: 32px;
    color: white;
}

.affiliate-tab-badge span {
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
    color: white;
}

/* COLORED BACKGROUNDS for each category */
.affiliate-tab-badge[data-category="Flights"] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
}

.affiliate-tab-badge[data-category="Hotels"],
.affiliate-tab-badge[data-category="Hotels & Hostels"] {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%) !important;
}

.affiliate-tab-badge[data-category="Car Rental"] {
    background: linear-gradient(135deg, #ff9a56 0%, #ff6a00 100%) !important;
}

.affiliate-tab-badge[data-category="Getting Around"],
.affiliate-tab-badge[data-category="Transportation"] {
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%) !important;
}

.affiliate-tab-badge[data-category="Activities"],
.affiliate-tab-badge[data-category="Tours & Activities"] {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%) !important;
}

.affiliate-tab-badge[data-category="Insurance"] {
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%) !important;
}

.affiliate-tab-badge[data-category="SIMs VPNs"],
.affiliate-tab-badge[data-category="SIMs & VPNs"] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
}

.affiliate-tab-badge[data-category="Gear & Tech"],
.affiliate-tab-badge[data-category="Travel Gear"] {
    background: linear-gradient(135deg, #30cfd0 0%, #330867 100%) !important;
}

/* Partial match fallbacks */
.affiliate-tab-badge[data-category*="Flight"] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
}

.affiliate-tab-badge[data-category*="Hotel"] {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%) !important;
}

.affiliate-tab-badge[data-category*="Car"],
.affiliate-tab-badge[data-category*="Rental"] {
    background: linear-gradient(135deg, #ff9a56 0%, #ff6a00 100%) !important;
}

.affiliate-tab-badge[data-category*="Getting"],
.affiliate-tab-badge[data-category*="Transportation"] {
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%) !important;
}

.affiliate-tab-badge[data-category*="Activities"],
.affiliate-tab-badge[data-category*="Tours"] {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%) !important;
}

.affiliate-tab-badge[data-category*="Insurance"] {
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%) !important;
}

.affiliate-tab-badge[data-category*="SIM"],
.affiliate-tab-badge[data-category*="VPN"] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
}

.affiliate-tab-badge[data-category*="Gear"],
.affiliate-tab-badge[data-category*="Tech"] {
    background: linear-gradient(135deg, #30cfd0 0%, #330867 100%) !important;
}

.affiliate-tab-badge.active {
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    transform: scale(1.05);
}

.affiliate-tab-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}

.affiliate-dropdown-content {
    margin-top: 15px;
}

.affiliate-dropdown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 12px;
}

.affiliate-mini-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    background: #f8f9fa;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s ease;
}

.affiliate-mini-card:hover {
    border-color: #667eea;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.affiliate-mini-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea 0%, #24bdc7 100%);
    border-radius: 8px;
}

.affiliate-mini-icon i {
    font-size: 20px;
    color: white;
}

.affiliate-mini-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.affiliate-mini-title {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
}

.affiliate-mini-partner {
    font-size: 11px;
    color: #666;
    margin: 0;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .affiliate-tabs-strip {
        overflow-x: scroll;
        -webkit-overflow-scrolling: touch;
    }
    
    .affiliate-tab-badge {
        min-width: 100px;
        padding: 14px 18px;
    }
    
    .affiliate-tab-badge i {
        font-size: 28px;
    }
    
    .affiliate-tab-badge span {
        font-size: 13px;
    }
}
/* ---- Fix planner Trip Detail modal header layout (keep everything left) ---- */
#viewTripModal .modal-header.view-trip-header{
    justify-content: flex-start !important;  /* overrides space-between */
    gap: 10px !important;
  }
  
  /* prevent h3 from expanding and pushing the dates away */
  #viewTripModal .modal-header.view-trip-header h3{
    flex: 0 0 auto !important;              /* overrides .modal-header h3 { flex: 1; } */
    white-space: nowrap;
  }
  
  /* keep dates immediately after title */
  #viewTripModal #tripModalDates{
    margin-left: 6px !important;
    flex: 0 0 auto;
    text-align: left !important;
  }

/* ============================================================
   QUICK STRETCH WIDGET — CSS
   All classes prefixed qs- to avoid collisions
   ============================================================ */

/* ── Outer wrapper (positions the tooltip absolutely) ─────── */
.qs-card-outer {
    /* Scalloped white banner — same style as progress-form-container */
    background: var(--color-white);
    border-radius: 50px;
    box-shadow: var(--box-shadow);
    max-width: 620px;
    margin: -90px auto 0;
    padding: 36px 40px 20px;
    position: relative;
    z-index: 2;
}

/* ── Inner gray card sits inside the white scalloped banner ─ */
.qs-card {
    background: #f5f6f8;
    border-radius: 20px;
    padding: 28px 32px 24px;
    box-shadow: none;
}

/* ── Country row ─────────────────────────────────────────── */
.qs-country-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.qs-flag {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    flex-shrink: 0;
}

.qs-country-name {
    font-size: 20px;
    font-weight: 600;
    color: var(--theme-color);
}

/* ── Heading ─────────────────────────────────────────────── */
.qs-heading {
    text-align: center;
    font-size: 17px;
    font-weight: 600;
    color: #888;
    margin-bottom: 20px;
    letter-spacing: 0.02em;
}

/* ── Strategy pill toggle ────────────────────────────────── */
.qs-strategy-toggle {
    display: flex;
    background: #e8e9ec;
    border-radius: 30px;
    padding: 4px;
    gap: 2px;
    margin-bottom: 28px;
}

.qs-strategy-btn {
    flex: 1;
    text-align: center;
    padding: 10px 8px;
    border-radius: 26px;
    font-size: 13px;
    font-weight: 600;
    color: #777;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    user-select: none;
}

.qs-strategy-btn.active {
    background: var(--theme-color);
    color: white;
    box-shadow: 0 2px 8px rgba(36,189,199,0.35);
}

.qs-strategy-btn:not(.active):hover {
    background: #d8d9dc;
    color: #444;
}

/* ── Strategy tooltip (dashboard-widget card style) ──────── */
.qs-tooltip {
    position: absolute;
    z-index: 500;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: white;
    border-radius: 10px;
    padding: 14px 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.14);
    min-width: 230px;
    max-width: 320px;
    pointer-events: none;
}

.qs-tooltip-icon-wrap {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    background: var(--theme-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.qs-tooltip-icon-wrap i {
    color: white;
    font-size: 18px;
}

.qs-tooltip-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Bold strategy name */
.qs-tooltip-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}

/* Regular description text */
.qs-tooltip-desc {
    font-size: 12px;
    font-weight: 400;
    color: #666;
    line-height: 1.45;
}

/* ── Slider block ─────────────────────────────────────────── */
.qs-slider-block {
    margin-top: 8px;
}

/* Row 1: label text + teal value */
.qs-slider-label-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 12px;
}

.qs-slider-label-text {
    font-weight: 500;
    color: var(--color-dark);
    font-size: 16px;
}

.qs-slider-value {
    font-weight: 700;
    color: var(--theme-color);
    font-size: 16px;
}

/* Row 2: min-label | slider | max-label  */
.qs-slider-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.qs-slider-edge {
    font-size: 13px;
    color: #999;
    white-space: nowrap;
    flex-shrink: 0;
}

/* The range input stretches to fill remaining space */
.qs-slider-input {
    flex: 1;
}

/* ── Stretch button ───────────────────────────────────────── */
.qs-stretch-btn-wrap {
    display: flex;
    justify-content: center;
    margin-top: 28px;
    margin-bottom: 40px;
}

.qs-stretch-btn {
    background: var(--theme-color);
    color: white;
    border: none;
    border-radius: 30px;
    padding: 14px 52px;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(36,189,199,0.4);
    transition: transform 0.15s, box-shadow 0.15s;
    letter-spacing: 0.04em;
}

.qs-stretch-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(36,189,199,0.5);
}

.qs-stretch-btn:active {
    transform: translateY(0);
}

/* ── Results panel ────────────────────────────────────────── */
.qs-results-heading {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin-bottom: 24px;
    padding: 8px 0 0;
}

.qs-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0 24px 0 4px;   /* 24px right padding so criteria never touches edge */
}

/* Results panel — same hero-overlap as widget */
.qs-results-panel-wrapper {
    margin-top: -90px;
    z-index: 2;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 600px) {
    .qs-card { padding: 24px 20px 20px; }
    .qs-strategy-btn { font-size: 11px; padding: 9px 4px; }
    .qs-stretch-btn { padding: 13px 36px; font-size: 16px; }
    .qs-card-outer  { margin-top: 0; border-radius: 30px; padding: 24px 20px 16px; }
    .qs-results-header { flex-direction: column; align-items: flex-start; }
}

/* ── QS View Trip modal — match Stretch Finder modal width ──── */
#qsViewTripModal .modal-content {
    max-width: 900px;
    width: 90%;
}

/* Force desc-values onto one line inside QS modal, matching Tab4 */
#qsViewTripModal .trip-desc-values {
    flex-wrap: nowrap;
    gap: 12px;
    font-size: 13px;
    white-space: nowrap;
    align-items: baseline;
}

#qsViewTripModal .trip-desc-values span {
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── End Quick Stretch CSS ────────────────────────────────── */

/* ═══════════════════════════════════════════════════════════════════════
   SHARED PLAN LINK  (sl-*)
   Styles for the Share Checked modal flow and the public recipient page.
════════════════════════════════════════════════════════════════════════ */

/* ── Share modal — recipient rows ──────────────────────────────────── */
.sl-modal-section-label {
    font-size: 12px;
    font-weight: 700;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}

.sl-sender-row {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #f5f6f8;
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 24px;
}

.sl-sender-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #24BDC7, #2b5876);
    color: white;
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sl-sender-label {
    font-size: 13px;
    color: #888;
    margin-bottom: 4px;
}

.sl-input {
    width: 100%;
    padding: 9px 14px;
    border: 1.5px solid #dde1e7;
    border-radius: 8px;
    font-size: 14px;
    color: #333;
    background: white;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.sl-input:focus {
    outline: none;
    border-color: var(--theme-color);
    box-shadow: 0 0 0 3px rgba(36,189,199,0.12);
}

.sl-recipient-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.sl-recipient-num {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--theme-color);
    color: white;
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sl-recipient-row .sl-input {
    flex: 1;
}

.sl-remove-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: #f0f0f0;
    border-radius: 50%;
    color: #888;
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s;
}

.sl-remove-btn:hover {
    background: #ffe0e0;
    color: #d32f2f;
}

.sl-add-btn {
    background: none;
    border: 1.5px dashed var(--theme-color);
    border-radius: 8px;
    color: var(--theme-color);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 16px;
    cursor: pointer;
    width: 100%;
    margin-top: 6px;
    transition: background 0.2s;
}

.sl-add-btn:hover:not(:disabled) {
    background: rgba(36,189,199,0.06);
}

.sl-add-btn:disabled {
    cursor: not-allowed;
}

.sl-error {
    color: #d32f2f;
    font-size: 13px;
    margin-top: 8px;
    display: none;
}

/* Share modal — wider than default */
#slShareModal .modal-content,
#slPreviewModal .modal-content {
    max-width: 560px;
    width: 92%;
}

/* ── Email preview pane ─────────────────────────────────────────────── */
.sl-preview-box {
    background: #fafbfc;
    border: 1.5px solid #e4e8ed;
    border-radius: 10px;
    padding: 22px 26px;
    font-size: 14px;
    color: #444;
    line-height: 1.7;
    max-height: 360px;
    overflow-y: auto;
}

.sl-preview-recipients {
    background: #f0f9fa;
    border-radius: 8px;
    padding: 10px 16px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #555;
}

.sl-preview-recipients ul {
    margin: 6px 0 0;
    padding-left: 18px;
}

/* ── Public recipient page ──────────────────────────────────────────── */
.sl-intro-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}

.sl-intro-left {
    display: flex;
    align-items: center;
    gap: 18px;
}

.sl-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, #24BDC7 0%, #2b5876 100%);
    color: white;
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(36,189,199,0.35);
}

.sl-intro-heading {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 4px;
}

.sl-intro-sub {
    font-size: 14px;
    color: #777;
    margin: 0;
}

.sl-signup-btn {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(135deg, #24BDC7, #2b5876);
    color: white;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    padding: 12px 26px;
    border-radius: 30px;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(36,189,199,0.35);
    transition: transform 0.2s, box-shadow 0.2s;
    flex-shrink: 0;
}

.sl-signup-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(36,189,199,0.45);
    color: white;
    text-decoration: none;
}

/* ── Context bar (flag + strategy + weekend + expiry) ───────────────── */
.sl-context-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    background: #f5f6f8;
    border-radius: 10px;
    padding: 0 4px;
    margin-bottom: 24px;
    border: 1px solid #eaecf0;
}

.sl-context-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    font-size: 13px;
    color: #555;
    border-right: 1px solid #e4e8ed;
}

.sl-context-item:last-child {
    border-right: none;
}

.sl-flag {
    width: 24px;
    height: 17px;
    border-radius: 3px;
    object-fit: cover;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

.sl-context-label {
    font-weight: 600;
    color: #333;
}

.sl-context-icon {
    color: var(--theme-color);
    font-size: 14px;
}

.sl-expires {
    color: #888;
    font-size: 12px;
}

/* ── CTA footer banner ──────────────────────────────────────────────── */
.sl-cta-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: linear-gradient(135deg, #24BDC7 0%, #2b5876 100%);
    border-radius: 14px;
    padding: 28px 36px;
    margin-top: 36px;
    flex-wrap: wrap;
}

.sl-cta-text {
    flex: 1;
    min-width: 260px;
}

.sl-cta-heading {
    font-size: 20px;
    font-weight: 700;
    color: white;
    margin: 0 0 8px;
}

.sl-cta-body {
    font-size: 14px;
    color: rgba(255,255,255,0.85);
    margin: 0;
    line-height: 1.6;
}

.sl-cta-btn {
    display: inline-flex;
    align-items: center;
    background: white;
    color: #24BDC7;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    padding: 14px 30px;
    border-radius: 30px;
    white-space: nowrap;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transition: transform 0.2s, box-shadow 0.2s;
    flex-shrink: 0;
}

.sl-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 22px rgba(0,0,0,0.2);
    color: #2b5876;
    text-decoration: none;
}

/* ── View trip modal on recipient page — same width as account pages ── */
#slViewTripModal .modal-content {
    max-width: 900px;
    width: 90%;
}

#slViewTripModal .trip-desc-values {
    flex-wrap: nowrap;
    gap: 12px;
    font-size: 13px;
    white-space: nowrap;
    align-items: baseline;
}

#slViewTripModal .trip-desc-values span {
    white-space: nowrap;
    flex-shrink: 0;
}

/* Datepicker scoping for the shared page calendar */
#slTripDetailsContent .ui-datepicker { width: 560px !important; }
#slTripDetailsContent .ui-datepicker-group { width: 50% !important; float: left !important; box-sizing: border-box !important; }
#slTripDetailsContent .ui-datepicker-group:first-child { border-right: 1px solid #e0e0e0 !important; }
#slTripDetailsContent .ui-datepicker-group:first-child .ui-datepicker-header { border-radius: 4px 0 0 0 !important; }
#slTripDetailsContent .ui-datepicker-group:last-child  .ui-datepicker-header { border-radius: 0 4px 0 0 !important; }
#slTripDetailsContent .ui-datepicker-header { background: linear-gradient(90deg, #4db8c4, #2b5876) !important; color: white !important; border: none !important; padding: 10px !important; border-radius: 0 !important; }
#slTripDetailsContent .ui-datepicker-title { color: white !important; font-weight: 600 !important; font-size: 13px !important; }
#slTripDetailsContent .ui-datepicker-prev, #slTripDetailsContent .ui-datepicker-next { display: none !important; }
#slTripDetailsContent .ui-datepicker-calendar { width: 100% !important; border-collapse: collapse !important; }
#slTripDetailsContent .ui-datepicker th { background: #f8f9fa !important; color: #666 !important; font-size: 11px !important; padding: 6px 4px !important; text-align: center !important; border-bottom: 1px solid #e0e0e0 !important; }
#slTripDetailsContent .ui-datepicker td { padding: 2px !important; text-align: center !important; }
#slTripDetailsContent .ui-datepicker td a,
#slTripDetailsContent .ui-datepicker td span { display: flex !important; align-items: center !important; justify-content: center !important; width: 28px !important; height: 28px !important; margin: 0 auto !important; border-radius: 50% !important; font-size: 12px !important; text-decoration: none !important; color: #333 !important; background: transparent !important; border: none !important; }
#slTripDetailsContent .ui-datepicker td.ui-datepicker-other-month { opacity: 0.25 !important; }
#slTripDetailsContent .ui-datepicker td.trip-date    a,
#slTripDetailsContent .ui-datepicker td.trip-date    span { background: #e3f7f8 !important; color: #1a8a94 !important; }
#slTripDetailsContent .ui-datepicker td.pto-day      a,
#slTripDetailsContent .ui-datepicker td.pto-day      span { background: #4db8c4 !important; color: white !important; font-weight: 700 !important; }
#slTripDetailsContent .ui-datepicker td.weekend-day  a,
#slTripDetailsContent .ui-datepicker td.weekend-day  span { background: #2b5876 !important; color: white !important; font-weight: 600 !important; }
#slTripDetailsContent .ui-datepicker td.holiday-day  a,
#slTripDetailsContent .ui-datepicker td.holiday-day  span { background: #ff8c42 !important; color: white !important; font-weight: 700 !important; }
#slTripDetailsContent .ui-datepicker td a:hover { background: #b2ebf2 !important; color: #333 !important; }
#slTripDetailsContent .ui-datepicker:after { content: '' !important; display: table !important; clear: both !important; }

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .sl-intro-row    { flex-direction: column; align-items: flex-start; }
    .sl-context-bar  { flex-direction: column; padding: 4px 0; }
    .sl-context-item { border-right: none; border-bottom: 1px solid #e4e8ed; }
    .sl-context-item:last-child { border-bottom: none; }
    .sl-cta-banner   { flex-direction: column; text-align: center; }
    .sl-recipient-row { flex-wrap: wrap; }
}

/* ── End Shared Plan Link CSS ──────────────────────────────────────── */

/* =====================================================
   COMING SOON PAGE FIXES
   The coming_soon.html uses .testimonial-area.ts-bg
   as its wrapper (not .coming-soon), so we re-scope
   all the newsletter/button/countdown styles here.
======================================================= */

/* Make the section fill the viewport */
.testimonial-area.ts-bg {
    min-height: 100vh;
    display: flex;
    align-items: center;
}

/* Newsletter form container */
.testimonial-area.ts-bg .newsletter-form {
    position: relative;
    margin-top: 30px;
}

/* Email input */
.testimonial-area.ts-bg .newsletter-form .input-newsletter {
    height: 55px;
    display: block;
    width: 100%;
    border: none;
    border-radius: 50px;
    font-size: 14px;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 25px;
    padding-right: 150px;    /* reserve space for the absolutely-positioned button */
    box-shadow: none;
    font-family: var(--body-font, 'Roboto', sans-serif);
    color: #333;
}

.testimonial-area.ts-bg .newsletter-form .input-newsletter:focus {
    outline: none;
    box-shadow: none;
}

/* Subscribe button — positioned inside the input pill */
.testimonial-area.ts-bg .newsletter-form button {
    position: absolute;
    right: 4px;
    top: 4px;
    bottom: 4px;
    height: auto;
    border: none;
    border-radius: 50px;
    background: var(--theme-color);
    display: inline-block;
    color: var(--color-white);
    padding-left: 25px;
    padding-right: 25px;
    font-weight: 500;
    font-family: var(--body-font, 'Roboto', sans-serif);
    font-size: 15px;
    cursor: pointer;
    transition: background 0.3s ease;
    white-space: nowrap;
}

.testimonial-area.ts-bg .newsletter-form button:hover {
    background-color: var(--color-dark, #0C2C7A);
    color: var(--color-white);
}


/* =====================================================
   LOGO SIZE FIX
   .logo-display is only sized inside .navbar normally.
   On the coming-soon page it sits in .site-heading,
   so we give it a standalone max-width here.
======================================================= */
.site-heading .logo-display {
    max-width: 220px;   /* ~30% smaller than the ~300px navbar version */
    height: auto;
    display: block;
    margin: 0 auto;
}


/* =====================================================
   COUNTDOWN FIX
   Ensure countdown singles display inline-block so
   they sit side-by-side and are visible.
======================================================= */
.countdown-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 30px;
}

.countdown-single {
    display: inline-block;
    border: 6px solid var(--theme-color);
    background: var(--color-white);
    padding: 10px 14px;
    margin: 6px;
    position: relative;
    overflow: hidden;
    border-radius: 100px;
    box-shadow: 0 3px 24px rgb(0 0 0 / 10%);
    min-width: 70px;
    text-align: center;
}

.countdown-single h2 {
    color: var(--theme-color);
    font-size: 25px;
    font-weight: 700;
    margin: 0;
    font-family: var(--heading-font, 'Barlow', sans-serif);
}

.countdown-single h5 {
    color: var(--theme-color);
    font-size: 11px;
    font-weight: 600;
    margin: 3px 0 0 0;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-family: var(--body-font, 'Roboto', sans-serif);
}

/* Responsive tweaks for small screens */
@media (max-width: 576px) {
    .countdown-single {
        min-width: 52px;
        padding: 7px 10px;
    }
    .countdown-single h2 {
        font-size: 18px;
    }
    .countdown-single h5 {
        font-size: 9px;
    }
    .site-heading .logo-display {
        max-width: 160px;
    }
}
/* =====================================================
   HEADER TOP SOCIAL ICONS FIX
   Force display:inline-block so width/height/line-height
   are respected and icons sit centred in their circles.
   Also aligns the circle dimensions to match line-height.
======================================================= */
.top-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    line-height: 1;
}


/* =====================================================
   LOGO WIDTH FIX — stretchescapes is wider than
   stretchtraveler so we increase navbar-brand img
   from style.css's 190px to 230px to prevent the
   last letter being clipped.
======================================================= */
.navbar-brand img {
    width: 230px;
}

@media all and (max-width: 991px) {
    .navbar-brand img {
        width: 160px;
    }
}

@media all and (max-width: 400px) {
    .navbar-brand img {
        width: 140px;
    }
}
