/* ==========================================================================
   Flight Schedule Calendar (Hardened)
   - No Bootstrap dependencies
   - Strongly scoped + !important to survive Bootstrap 3 / theme styles
   - Prevents footer overlap patterns by ensuring spacing + z-index
   ========================================================================== */

:root {
  --tsa-green: #6fb52d;
  --tsa-blue: #0b78a5;      /* matches Tri-State footer vibe */
  --tsa-blue-dark: #004b82;
  --tsa-gray-light: #f5f5f5;
  --tsa-gray-border: #d8d8d8;
  --tsa-text-dark: #222222;
  --tsa-radius: 12px;
  --tsa-shadow: 0 12px 30px rgba(0,0,0,0.20);
  --tsa-font: "Poppins","Helvetica Neue",Arial,sans-serif;
}

/* Scope hardening */
.tsa-flight-calendar,
.tsa-flight-calendar *,
#tsaFlightModal,
#tsaFlightModal *,
#tsaFlightOverlay {
  box-sizing: border-box !important;
}

/* Keep above absolute/fixed footer layouts */
.tsa-flight-calendar {
  position: relative !important;
  z-index: 5 !important;
  margin: 0 auto 140px !important;
  font-family: var(--tsa-font) !important;
  max-width: 980px !important;
}

/* Header */
.tsa-flight-calendar-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 0 12px !important;
}

.tsa-flight-month-label {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--tsa-text-dark) !important;
  text-align: center !important;
  flex: 1 1 auto !important;
}

.tsa-flight-month-nav {
  display: inline-block !important;
  padding: 8px 14px !important;
  border-radius: 999px !important;
  border: 1px solid var(--tsa-gray-border) !important;
  background: #fff !important;
  color: var(--tsa-blue-dark) !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.tsa-flight-month-nav:hover {
  background: var(--tsa-gray-light) !important;
  text-decoration: none !important;
}

/* Calendar: avoid BS table styles by using spacing and no borders */
.tsa-flight-calendar-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 10px !important;
  table-layout: fixed !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
}

.tsa-flight-calendar-table thead th {
  background: transparent !important;
  border: none !important;
  padding: 0 0 6px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  text-align: left !important;
  color: rgba(0,0,0,0.65) !important;
}

/* Day cards */
.tsa-flight-calendar-table td.tsa-day {
  height: 76px !important;
  vertical-align: top !important;
  padding: 10px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(0,0,0,0.12) !important;
  background: #fff !important;
  box-shadow: 0 1px 0 rgba(0,0,0,0.04) !important;
  position: relative !important;
}

.tsa-flight-calendar-table td.tsa-day.empty {
  opacity: 0.35 !important;
}

/* Clickable days */
.tsa-flight-calendar-table td.flight-calendar-day {
  cursor: default !important;
}

.tsa-flight-calendar-table td.flight-calendar-day.has-flights {
  cursor: pointer !important;
  border: 2px solid rgba(111,181,45,0.65) !important;
  background: #f3fff5 !important;
}

.tsa-flight-calendar-table td.flight-calendar-day.has-flights:hover {
  background: #e7f8eb !important;
}

.tsa-day-number {
  font-weight: 800 !important;
  font-size: 14px !important;
  color: rgba(0,0,0,0.70) !important;
}

/* Flights badge (always visible) */
.tsa-day-indicator {
  display: inline-block !important;
  margin-top: 8px !important;
  padding: 3px 10px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  border-radius: 999px !important;
  background: var(--tsa-green) !important;
  color: #fff !important;
  letter-spacing: .2px !important;
}

/* Modal */
.tsa-flight-modal-open { overflow: hidden !important; }

#tsaFlightOverlay.tsa-flight-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.50) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .20s ease !important;
  z-index: 99998 !important;
}

#tsaFlightOverlay.tsa-flight-overlay.is-open {
  opacity: 1 !important;
  visibility: visible !important;
}

#tsaFlightModal.tsa-flight-modal {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  pointer-events: none !important;
  z-index: 99999 !important;
}

#tsaFlightModal.tsa-flight-modal.is-open { pointer-events: auto !important; }

#tsaFlightModal .tsa-flight-modal-inner {
  width: 100% !important;
  max-width: 960px !important;
  max-height: 90vh !important;
  background: #fff !important;
  border-radius: var(--tsa-radius) !important;
  box-shadow: var(--tsa-shadow) !important;
  display: flex !important;
  flex-direction: column !important;
  opacity: 0 !important;
  transform: translateY(14px) !important;
  transition: opacity .20s ease, transform .20s ease !important;
  margin: 20px !important;
}

#tsaFlightModal.tsa-flight-modal.is-open .tsa-flight-modal-inner {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Sticky header/tabs inside modal */
#tsaFlightModal .tsa-flight-modal-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 18px 22px !important;
  border-bottom: 1px solid var(--tsa-gray-border) !important;
  background: #fff !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
}

#tsaFlightModal .tsa-flight-modal-title {
  margin: 0 !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--tsa-text-dark) !important;
}

#tsaFlightModal .tsa-flight-close {
  border: none !important;
  background: transparent !important;
  font-size: 26px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  color: rgba(0,0,0,0.45) !important;
}

#tsaFlightModal .tsa-flight-close:hover { color: rgba(0,0,0,0.85) !important; }

#tsaFlightModal .tsa-flight-tabs {
  display: flex !important;
  gap: 10px !important;
  padding: 12px 22px 0 !important;
  border-bottom: 1px solid var(--tsa-gray-border) !important;
  background: linear-gradient(#f6f7f8, #eef1f3) !important;
  position: sticky !important;
  top: 58px !important;
  z-index: 2 !important;
}

#tsaFlightModal .tsa-flight-tab-button {
  border: none !important;
  border-radius: 12px !important;
  padding: 10px 22px !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  background: #fff !important;
  color: var(--tsa-blue-dark) !important;
  cursor: pointer !important;
}

#tsaFlightModal .tsa-flight-tab-button.is-active {
  background: var(--tsa-green) !important;
  color: #fff !important;
}

#tsaFlightModal .tsa-flight-modal-body {
  padding: 16px 22px 24px !important;
  overflow-y: auto !important;
  flex: 1 1 auto !important;
}

/* Panels */
#tsaFlightModal .tsa-flight-tab-panel { display: none !important; }
#tsaFlightModal .tsa-flight-tab-panel.is-active { display: block !important; }

/* Flight table */
#tsaFlightModal .tsa-flight-table-wrap { width: 100% !important; overflow-x: auto !important; }
#tsaFlightModal .tsa-flight-table { width: 100% !important; border-collapse: collapse !important; font-size: 14px !important; }

#tsaFlightModal .tsa-flight-table thead th {
  background: var(--tsa-gray-light) !important;
  padding: 10px 10px !important;
  border-bottom: 2px solid var(--tsa-gray-border) !important;
  text-align: left !important;
  font-weight: 800 !important;
}

#tsaFlightModal .tsa-flight-table tbody td {
  padding: 10px 10px !important;
  border-bottom: 1px solid var(--tsa-gray-border) !important;
  color: var(--tsa-text-dark) !important;
}

#tsaFlightModal .tsa-flight-table tbody tr:hover { background: #f6fff7 !important; }

#tsaFlightModal .tsa-no-flights { padding: 12px 0 !important; font-size: 14px !important; color: rgba(0,0,0,0.55) !important; }

@media (max-width: 768px) {
  .tsa-flight-calendar { padding: 0 10px !important; }
  .tsa-flight-calendar-table { border-spacing: 8px !important; }
  .tsa-flight-calendar-table td.tsa-day { height: 64px !important; padding: 8px !important; }

  #tsaFlightModal .tsa-flight-modal-inner {
    max-width: 100% !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }
}
