.wopb-container {
    max-width: 900px;
    /* margin: 20px auto; */
    padding: 15px;
    font-size: 14px;
}

/* Step Indicators */
.wopb-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.wopb-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    opacity: 0.5;
}

.wopb-step.active {
    opacity: 1;
}

.wopb-step-number {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ddd;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 13px;
    margin-bottom: 5px;
    transition: all 0.3s ease;
}

.wopb-step.active .wopb-step-number {
    background: #F36F21;
    color: white;
}

.wopb-step-label {
    font-size: 14px;
    color: #333;
}

.wopb-step-line {
    width: 60px;
    height: 2px;
    background: #ddd;
    margin: 0 10px;
    margin-bottom: 18px;
}

/* Step Content */
.wopb-step-content {
    position: relative;
    min-height: auto;
}

.wopb-step-pane {
    display: none;
}

.wopb-step-pane.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

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

/* Desktop: Side by Side Layout */
.wopb-single-screen {
    display: flex !important;
    flex-direction: row !important;
    gap: 20px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: flex-start !important;
    justify-content: center;
}

/* Calendar Panel */
.wopb-calendar-panel {
    display: block !important;
    flex: 0 0 45%;
    min-width: 300px;
}

/* Times Panel */
.wopb-times-panel {
    display: block !important;
    flex: 1;
    min-width: 250px;
}

/* Calendar */
#wopb-calendar {
    background: white;
    padding: 10px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    height: auto !important;
}

#wopb-calendar .fc {
    font-size: 11px;
    height: auto !important;
}

#wopb-calendar .fc-view {
    height: auto !important;
}

#wopb-calendar .fc-scrollgrid {
    height: auto !important;
}

#wopb-calendar .fc-month-view {
    height: auto !important;
}

/* Toolbar */
#wopb-calendar .fc-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
}

#wopb-calendar .fc-toolbar-title {
    font-size: 14px !important;
    font-weight: 600;
    order: 2;
}

#wopb-calendar .fc-toolbar-chunk:first-child {
    order: 1;
}

#wopb-calendar .fc-toolbar-chunk:last-child {
    order: 3;
}

#wopb-calendar .fc-button {
    padding: 4px 8px !important;
    font-size: 11px !important;
}

#wopb-calendar .fc-daygrid-day {
    font-size: 12px;
    cursor: pointer;
    border: none !important;
    padding: 6px 10px;
}

.fc-col-header-cell.fc-day {
    padding: 9px 10px;
}

#wopb-calendar .fc-col-header-cell-cushion {
    font-size: 12px;
    padding: 4px 0;
    text-decoration: none;
}

.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > *{
    padding: 0px !important;
}

.entry-content tr td:last-child{
    padding: 0px !important
}

#wopb-calendar .fc-daygrid-day-top {
    justify-content: center;
}

#wopb-calendar .fc-daygrid-day-number {
    text-decoration: none !important;
    padding: 4px;
}

/* Selected Date Display */
.wopb-selected-date {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
    padding: 8px;
    background: #f5f5f5;
    border-radius: 4px;
    text-align: center;
}

/* Times Panel Headers */
.wopb-times-panel h3 {
    font-size: 14px;
    margin: 0 0 10px 0;
    color: #333;
}

/* Time Slots */
#wopb-times {
    display: flex;
    /* flex-direction: column; */
    gap: 9px;
    margin-bottom: 10px;
    min-height: 150px;
    max-height: 215px;
    overflow-y: auto;
    flex-wrap: wrap;
    justify-content: center;
}

#wopb-times:empty::after {
    content: 'Select a date';
    color: #666;
    font-style: italic;
    font-size: 12px;
}

.wopb-slot {
    flex: 0 0 calc(48% - 4px);
    padding: 10px 8px;
    border: 1px solid #F36F21;
    background: white;
    cursor: pointer;
    color: #000 !important;
    border-radius: 4px;
    font-size: 12px;
    text-align: center;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.wopb-slot.active,
.wopb-slot:hover {
    background: #F36F21;
    color: white !important;
}

/* Navigation Buttons */
.wopb-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
}

.wopb-btn-next,
.wopb-btn-back {
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.2s ease;
}

.wopb-btn-next {
    background: #F36F21;
    color: white;
}

.wopb-btn-next:hover:not(:disabled) {
    background: #e5620d;
}

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

.wopb-btn-back {
    background: #FFF7ED;
    color: #F36F21;
}

.wopb-btn-back:hover {
    background: #F36F21;
    color: #fff;
}

/* Prev button - hidden on desktop by default */
#wopb-prev-1 {
    display: none;
}

/* Step 2 Form */
.wopb-step-pane h3 {
    font-size: 18px;
    margin: 0 0 15px 0;
    text-align: center;
    color: #333;
}

#wopb-form input,
#wopb-form textarea {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 14px;
}

#wopb-form input:focus,
#wopb-form textarea:focus {
    outline: none;
    border-color: #0073aa;
}

/* Submit Button */
#wopb_submit {
    width: 100%;
    padding: 15px;
    background: #F36F21;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    margin-top: 10px;
}

#wopb_submit:hover {
    background: #e5620d;
}

/* Response Messages */
#wopb_response {
    text-align: center;
    margin-top: 20px;
    font-size: 16px;
}

#wopb_response p {
    margin: 10px 0;
}

#wopb_response a {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 20px;
    background: #0073aa;
    color: white;
    text-decoration: none;
    border-radius: 4px;
    font-size: 14px;
}

#wopb_response a:hover {
    background: #005177;
}

/* FullCalendar adjustments */
table {
    margin: 0 !important;
}

.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events {
    min-height: 0px !important;
}

.entry-content tr td {
    padding: 20px;
    cursor: pointer;
    border-right: 1px solid var(--fc-border-color) !important;
}

.fc .fc-daygrid-body-natural .fc-daygrid-day-events {
    margin-bottom: 0em;
}

.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky > * {
    padding-bottom: 0px;
}

/* Mobile Responsive (max-width: 768px) */
@media (max-width: 768px) {
    
    .wopb-steps {
        flex-wrap: wrap;
    }
    
    .wopb-step-line {
        width: 30px;
    }
    
    /* Mobile: Container with relative positioning for overlay */
    .wopb-step-pane[data-step="1"] .wopb-single-screen {
        position: relative !important;
        height: 350px !important;
    }
    
    /* Mobile: Calendar - absolute positioned */
    .wopb-step-pane[data-step="1"] .wopb-calendar-panel {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 1;
    }
    
    /* Mobile: Hide calendar when date selected */
    .wopb-step-pane[data-step="1"] .wopb-calendar-panel.mobile-hidden {
        display: none !important;
    }
    
    /* Mobile: Times panel - absolute positioned to overlay calendar */
    .wopb-step-pane[data-step="1"] .wopb-times-panel {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 2;
        display: none !important;
        background: white;
        padding: 10px;
        box-sizing: border-box;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    }
    
    /* Show times panel when date is selected on mobile */
    .wopb-step-pane[data-step="1"] .wopb-times-panel.date-selected {
        display: block !important;
    }
    
    /* Mobile: Show Prev button */
    #wopb-prev-1 {
        display: inline-block !important;
    }
    
    /* Adjust calendar for mobile */
    #wopb-calendar {
        font-size: 10px;
    }
    
    #wopb-calendar .fc-toolbar-title {
        font-size: 12px !important;
    }
    
    #wopb-calendar .fc-daygrid-day {
        font-size: 10px;
    }
    
    #wopb-times {
        max-height: 200px;
    }
}
