/**
 * Comprehensive Dark Mode Support
 * Additional styles for all elements across themes
 */

/* Flatpickr Dark Mode */
[data-theme] .flatpickr-calendar {
    background: var(--card-bg-color);
    border-color: var(--border-color);
    box-shadow: var(--shadow);
}

[data-theme] .flatpickr-months {
    background: var(--light-bg-color);
}

[data-theme] .flatpickr-current-month {
    color: var(--text-dark);
}

[data-theme] .flatpickr-prev-month,
[data-theme] .flatpickr-next-month {
    color: var(--text-color);
    fill: var(--text-color);
}

[data-theme] .flatpickr-prev-month:hover,
[data-theme] .flatpickr-next-month:hover {
    color: var(--primary-color);
}

[data-theme] .flatpickr-prev-month svg,
[data-theme] .flatpickr-next-month svg {
    fill: var(--text-color);
}

[data-theme] .flatpickr-prev-month:hover svg,
[data-theme] .flatpickr-next-month:hover svg {
    fill: var(--primary-color);
}

[data-theme] .flatpickr-weekdays {
    background: var(--light-bg-color);
}

[data-theme] span.flatpickr-weekday {
    color: var(--secondary-text-color);
}

[data-theme] .flatpickr-day {
    color: var(--text-color);
}

[data-theme] .flatpickr-day:hover {
    background: var(--light-bg-color);
    border-color: var(--border-color);
}

[data-theme] .flatpickr-day.selected {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: white;
}

[data-theme] .flatpickr-day.today {
    border-color: var(--primary-color);
}

[data-theme] .flatpickr-day.disabled {
    color: var(--secondary-text-color);
}

/* Room Cards */
[data-theme] .room-card {
    background-color: var(--card-bg-color);
    border-color: var(--border-color);
}

[data-theme] .room-header {
    color: var(--text-dark);
}

[data-theme] .room-details {
    color: var(--text-color);
}

[data-theme] .special-tag {
    background-color: var(--accent-color);
}

[data-theme] .room-image {
    border-color: var(--border-color);
}

[data-theme] .image-placeholder {
    background-color: var(--light-bg-color);
    color: var(--secondary-text-color);
}

/* Calendar View */
[data-theme] .calendar-view {
    background: var(--card-bg-color);
    border-color: var(--border-color);
}

[data-theme] .calendar-header-title {
    color: var(--text-dark);
}

[data-theme] .calendar-day {
    background: var(--light-bg-color);
    border-color: var(--border-color);
}

[data-theme] .calendar-day.missing {
    background: var(--special-bg-color);
}

[data-theme] .calendar-day.today {
    border-color: var(--primary-color);
}

[data-theme] .day-weekday {
    color: var(--secondary-text-color);
}

[data-theme] .day-number {
    color: var(--text-dark);
}

/* Room span headers keep their bright colors in dark mode */
[data-theme] .room-span {
    /* Room-specific colors already defined in main CSS */
}

/* Tables */
[data-theme] .date-room-table,
[data-theme] .stay-summary-table {
    background: var(--card-bg-color);
}

[data-theme] .date-room-table th,
[data-theme] .stay-summary-table th {
    background: var(--light-bg-color);
    color: var(--text-dark);
    border-color: var(--border-color);
}

[data-theme] .date-room-table td,
[data-theme] .stay-summary-table td {
    color: var(--text-color);
    border-color: var(--border-color);
}

[data-theme] .date-room-table tbody tr:hover,
[data-theme] .stay-summary-table tbody tr:hover {
    background: var(--light-bg-color);
}

[data-theme] .missing-row {
    background: var(--special-bg-color) !important;
    color: var(--text-color) !important;
}

/* Timeline/Option Cards */
[data-theme] .chained-timeline {
    background: var(--card-bg-color);
    border-color: var(--border-color);
}

[data-theme] .chained-option-header {
    background: var(--light-bg-color);
    border-color: var(--border-color);
}

[data-theme] .option-main-info h3 {
    color: var(--text-dark);
}

[data-theme] .option-price {
    color: var(--primary-color);
}

[data-theme] .full-coverage-badge {
    background-color: rgba(139, 200, 139, 0.2);
    color: var(--success-color);
    border-color: var(--success-color);
}

[data-theme] .partial-coverage-badge {
    background-color: var(--special-bg-color);
    color: var(--text-color);
    border-color: var(--accent-color);
}

/* Buttons */
[data-theme] .select-option-button {
    background: var(--primary-color);
    color: white;
}

[data-theme] .select-option-button:hover {
    background: var(--secondary-color);
}

[data-theme] .toggle-button {
    background: var(--card-bg-color);
    color: var(--text-color);
    border-color: var(--border-color);
}

[data-theme] .toggle-button:hover {
    background: var(--light-bg-color);
    border-color: var(--primary-color);
}

/* Footer */
[data-theme] footer {
    background: var(--card-bg-color);
    color: var(--secondary-text-color);
    border-top: 1px solid var(--border-color);
}

/* Messages */
[data-theme] .no-rooms-message {
    background: rgba(232, 168, 118, 0.15);
    color: var(--text-color);
    border-left-color: var(--secondary-color);
}

[data-theme] .no-rooms-message h3 {
    color: var(--secondary-color);
}

[data-theme] .no-rooms-message p {
    color: var(--text-color);
}

[data-theme] #error-container {
    background: var(--card-bg-color);
    border-left: 4px solid var(--error-color);
}

/* Loading Spinner */
[data-theme] .spinner {
    border-color: var(--border-color);
    border-top-color: var(--primary-color);
}

/* Unavailable Container */
[data-theme] #unavailable-container {
    background: var(--card-bg-color);
}

[data-theme] #unavailable-rooms {
    background: var(--card-bg-color);
}

/* Alternative Options Header */
[data-theme] .alternative-options-header {
    border-top-color: var(--border-color);
}

[data-theme] .alternative-options-header h3 {
    color: var(--text-dark);
}

[data-theme] .alternative-options-header p {
    color: var(--secondary-text-color);
}

/* Partial Stays Intro */
[data-theme] .partial-stays-intro {
    color: var(--secondary-text-color);
}

/* Date Summary */
[data-theme] #dates-summary {
    background-color: var(--primary-color-20);
    border-left-color: var(--primary-color);
}

[data-theme] .date-display {
    color: var(--text-color);
}

/* Time Note */
[data-theme] .time-note {
    color: var(--secondary-text-color);
    background: var(--light-bg-color);
}

/* Notification Container */
[data-theme] #notification-container {
    background: var(--card-bg-color);
}

[data-theme] .monitor-button {
    background: var(--light-bg-color);
    color: var(--text-color);
    border-color: var(--border-color);
}

[data-theme] .coming-soon-label {
    background: var(--accent-color);
    color: white;
}

/* Room Info Elements */
[data-theme] .room-info {
    color: var(--text-color);
}

[data-theme] .price {
    color: var(--primary-color);
}

[data-theme] .price-details {
    color: var(--secondary-text-color);
}

[data-theme] .special-note {
    background: var(--special-bg-color);
    color: var(--text-color);
    border-left-color: var(--accent-color);
}

/* Rate Plan Table */
[data-theme] .rate-plan-table {
    background: var(--card-bg-color);
    border-color: var(--border-color);
}

[data-theme] .rate-plan-table th,
[data-theme] .rate-plan-table td {
    border-color: var(--border-color);
    color: var(--text-color);
}

[data-theme] .rate-plan-table th {
    background: var(--light-bg-color);
}

/* Stay Summary */
[data-theme] .stay-summary h4 {
    color: var(--text-dark);
}

/* Chained Summary */
[data-theme] .chained-summary {
    color: var(--text-color);
}

/* Additional Elements - Comprehensive Coverage */

/* Disabled buttons */
[data-theme] button:disabled {
    background-color: var(--border-color);
    color: var(--secondary-text-color);
}

/* Progress bar */
[data-theme] .progress-bar {
    background-color: var(--border-color);
}

/* Warning messages */
[data-theme] .incomplete-warning {
    background-color: rgba(232, 168, 118, 0.2);
    color: var(--text-color);
    border-left-color: var(--secondary-color);
}

/* Table hover states */
[data-theme] .date-room-table tbody tr:hover {
    background-color: var(--light-bg-color);
}

/* Missing row states */
[data-theme] .date-room-table .missing-row {
    background-color: var(--special-bg-color);
}

[data-theme] .date-room-table .missing-row:hover {
    background-color: rgba(232, 168, 118, 0.15);
}

[data-theme] .missing-row {
    background-color: var(--special-bg-color);
}

/* Coverage badges */
[data-theme] .full-coverage-badge {
    background-color: rgba(139, 200, 139, 0.2);
    color: var(--success-color);
}

[data-theme] .partial-coverage-badge {
    background-color: rgba(232, 168, 118, 0.2);
    color: var(--secondary-color);
}

/* Chained option headers */
[data-theme] .chained-header.full-coverage-section,
[data-theme] .chained-header.partial-coverage-section {
    background-color: var(--card-bg-color);
}

[data-theme] .chained-option-header {
    background: var(--primary-color-20);
    border-left-color: var(--primary-color);
}

[data-theme] .chained-option-header.partial {
    background: rgba(232, 168, 118, 0.2);
    border-left-color: var(--secondary-color);
}

/* Option metadata */
[data-theme] .option-meta {
    color: var(--secondary-text-color);
}

[data-theme] .missing-nights {
    color: var(--secondary-color);
}

/* Stay summary */
[data-theme] .stay-summary {
    background: var(--card-bg-color);
}

/* Special request options */
[data-theme] .special-request-options-header {
    background: var(--light-bg-color);
    border-color: var(--border-color);
}

[data-theme] .special-request-options-header h3,
[data-theme] .special-request-options-header p {
    color: var(--secondary-text-color);
}
