/**
 * Holiday Management Styles - FIXED VERSION
 * Enhanced styling with Bootstrap override protection
 */

/* Table Header Styling */
.holiday-table thead th {
    background-color: #333 !important;
    color: #fff !important;
    border-color: #444 !important;
    font-weight: 600 !important;
    padding: 12px 8px !important;
    text-align: center !important;
    vertical-align: middle !important;
}

/* Badge Styling - Override Bootstrap with !important */
.holiday-table .badge {
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 4px 8px !important;
    border-radius: 4px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: inline-block !important;
    min-width: 60px !important;
    text-align: center !important;
}

.holiday-table .badge-success {
    background-color: #28a745 !important;
    color: #fff !important;
    border: 1px solid #28a745 !important;
}

.holiday-table .badge-secondary {
    background-color: #6c757d !important;
    color: #fff !important;
    border: 1px solid #6c757d !important;
}

.holiday-table .badge-danger {
    background-color: #dc3545 !important;
    color: #fff !important;
    border: 1px solid #dc3545 !important;
}

/* Table Body Styling */
.holiday-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

.holiday-table tbody td {
    vertical-align: middle !important;
    padding: 10px 8px !important;
}

/* Recurring and Status Column Specific Styling */
.holiday-table tbody td:nth-child(4),  /* Recurring column */
.holiday-table tbody td:nth-child(5) { /* Status column */
    text-align: center !important;
    font-weight: 600 !important;
}

/* Upcoming/Past Holiday Row Styling */
.upcoming-holiday {
    border-left: 4px solid #28a745 !important;
}

.past-holiday {
    opacity: 0.7;
    border-left: 4px solid #6c757d !important;
}

/* Holiday Management Container */
.holiday-management-container {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    padding: 20px;
    margin: 20px 0;
}

/* Header Section */
.crm-header-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #eee;
}

.crm-header-section h3 {
    margin: 0;
    color: #333;
    font-weight: 600;
}

/* Quick Actions Section */
.quick-actions-section {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 6px;
    border-top: 3px solid #007bff;
}

.quick-actions-section h4 {
    margin-bottom: 15px;
    color: #333;
    font-weight: 600;
}

/* Button Styling */
.btn {
    border-radius: 4px !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
}

.btn:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
}

.btn-sm {
    padding: 4px 8px !important;
    font-size: 12px !important;
}

/* Modal Enhancements */
.modal-header {
    background: #333 !important;
    color: #fff !important;
    border-bottom: none !important;
}

.modal-header .modal-title {
    font-weight: 600 !important;
    color: #fff !important;
}

.modal-header .close {
    color: #fff !important;
    opacity: 0.8 !important;
}

.modal-header .close:hover {
    opacity: 1 !important;
}

.modal-body {
    padding: 25px !important;
}

.modal-footer {
    border-top: 1px solid #dee2e6 !important;
    background: #f8f9fa !important;
}

/* Form Styling */
.form-group label {
    font-weight: 600 !important;
    color: #333 !important;
    margin-bottom: 5px !important;
}

.form-control {
    border-radius: 4px !important;
    border: 2px solid #e9ecef !important;
    transition: border-color 0.2s ease !important;
}

.form-control:focus {
    border-color: #007bff !important;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25) !important;
}

/* Form Check (Checkbox) Styling */
.form-check {
    padding-left: 1.5rem !important;
}

.form-check-input {
    margin-left: -1.5rem !important;
}

.form-check-label {
    font-weight: 500 !important;
    color: #555 !important;
}

/* Calendar Styling */
.holiday-calendar-table {
    width: 100% !important;
    border-collapse: collapse !important;
}

.holiday-calendar-table th {
    background: #333 !important;
    color: #fff !important;
    padding: 10px !important;
    text-align: center !important;
    font-weight: 600 !important;
}

.holiday-calendar-table td {
    border: 1px solid #dee2e6 !important;
    padding: 8px !important;
    vertical-align: top !important;
    height: 80px !important;
    position: relative !important;
}

.calendar-day {
    cursor: pointer !important;
    transition: background-color 0.2s ease !important;
}

.calendar-day:hover {
    background-color: #e3f2fd !important;
}

.calendar-day.has-holiday {
    background-color: #fff3cd !important;
}

.calendar-day.has-holiday:hover {
    background-color: #ffeaa7 !important;
}

.day-number {
    font-weight: 600 !important;
    color: #333 !important;
    margin-bottom: 4px !important;
}

.holiday-info {
    font-size: 10px !important;
    color: #856404 !important;
}

.holiday-name {
    display: block !important;
    margin-bottom: 2px !important;
    font-weight: 600 !important;
}

.recurring-indicator {
    background: #17a2b8 !important;
    color: #fff !important;
    border-radius: 50% !important;
    width: 16px !important;
    height: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 10px !important;
    position: absolute !important;
    top: 2px !important;
    right: 2px !important;
}

.calendar-empty {
    background-color: #f8f9fa !important;
}

/* Calendar Navigation */
.calendar-navigation {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 20px !important;
}

/* Notification Styling */
.holiday-notification {
    border-radius: 6px !important;
    border: none !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    font-weight: 500 !important;
}

.holiday-notification .close {
    font-size: 18px !important;
    font-weight: 600 !important;
    opacity: 0.8 !important;
}

.holiday-notification .close:hover {
    opacity: 1 !important;
}

/* Import Section Styling */
.import-instructions {
    background: #e9ecef !important;
    border-radius: 6px !important;
    padding: 15px !important;
    border-left: 4px solid #007bff !important;
}

.import-instructions h6 {
    margin-bottom: 10px !important;
    color: #333 !important;
    font-weight: 600 !important;
}

.import-instructions ul {
    margin-bottom: 10px !important;
    padding-left: 20px !important;
}

.import-instructions li {
    margin-bottom: 4px !important;
    color: #555 !important;
}

/* Alert Styling */
.alert {
    border-radius: 6px !important;
    border: none !important;
    font-weight: 500 !important;
}

.alert-info {
    background-color: #d1ecf1 !important;
    color: #0c5460 !important;
    border-left: 4px solid #17a2b8 !important;
}

/* Category Rules Section */
.category-rules-section {
    background: #f8f9fa !important;
    padding: 20px !important;
    border-radius: 6px !important;
    border: 1px solid #dee2e6 !important;
}

/* Responsive Design */
@media (max-width: 768px) {
    .crm-header-section {
        flex-direction: column !important;
        gap: 15px !important;
        text-align: center !important;
    }
    
    .holiday-table {
        font-size: 12px !important;
    }
    
    .holiday-table th,
    .holiday-table td {
        padding: 6px 4px !important;
    }
    
    .btn-sm {
        padding: 2px 6px !important;
        font-size: 11px !important;
        margin: 1px !important;
    }
    
    .quick-actions-section .row {
        gap: 10px !important;
    }
    
    .modal-dialog {
        margin: 10px !important;
    }
    
    .holiday-calendar-table td {
        height: 60px !important;
        font-size: 11px !important;
    }
}

/* Loading States */
.btn[disabled] {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}

.btn.loading {
    position: relative !important;
}

.btn.loading::after {
    content: '' !important;
    position: absolute !important;
    width: 16px !important;
    height: 16px !important;
    margin: auto !important;
    border: 2px solid transparent !important;
    border-top-color: #ffffff !important;
    border-radius: 50% !important;
    animation: button-loading-spinner 1s ease infinite !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    right: 0 !important;
}

@keyframes button-loading-spinner {
    from {
        transform: rotate(0turn) !important;
    }
    to {
        transform: rotate(1turn) !important;
    }
}

/* Table Responsive Wrapper */
.table-responsive {
    border-radius: 6px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}

/* Success/Error Message Styling */
.holiday-notification.alert-success {
    background-color: #d4edda !important;
    border-color: #c3e6cb !important;
    color: #155724 !important;
    border-left: 4px solid #28a745 !important;
}

.holiday-notification.alert-danger {
    background-color: #f8d7da !important;
    border-color: #f5c6cb !important;
    color: #721c24 !important;
    border-left: 4px solid #dc3545 !important;
}

/* Fixed positioning for notifications */
.holiday-notification[style*="position: fixed"] {
    z-index: 9999 !important;
    max-width: 400px !important;
    word-wrap: break-word !important;
}