@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

html, body {
  font-family: 'Poppins', sans-serif;
  background-color: #f8fafc;
  color: #1e293b;
}

/* Gradient Header & Buttons (3Media Signature) */
.text-gradient {
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(to right, #2563eb, #9333ea, #db2777);
}

.bg-gradient-primary {
  background-image: linear-gradient(to right, #2563eb, #7c3aed);
}

.bg-gradient-primary:hover {
  background-image: linear-gradient(to right, #1d4ed8, #6d28d9);
}

/* 3Media Navigation Pill Tabs */
.tab-active {
  background-image: linear-gradient(to right, #2563eb, #7c3aed) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.4) !important;
  border: none !important;
  transform: translateY(-1px);
}

.tab-inactive {
  background-color: #ffffff !important;
  color: #475569 !important;
  font-weight: 700 !important;
  border: 1px solid #cbd5e1 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.tab-inactive:hover {
  background-color: #f8fafc !important;
  color: #0f172a !important;
  border-color: #94a3b8 !important;
}

/* Subtabs */
.subtab-active {
  border-bottom: 3px solid #2563eb;
  color: #2563eb;
  font-weight: 800;
}

.subtab-inactive {
  color: #64748b;
  font-weight: 600;
}

.subtab-inactive:hover {
  color: #0f172a;
}

/* Calendar Inventory Table Cell Colors: Green = Active, Yellow = Booked, Red = Hold */
.cell-active {
  background-color: #d1fae5 !important;
  color: #065f46 !important;
  font-weight: 800;
  border-color: #a7f3d0 !important;
}

.cell-booked {
  background-color: #fef3c7 !important;
  color: #92400e !important;
  font-weight: 800;
  border-color: #fde68a !important;
}

.cell-hold {
  background-color: #fee2e2 !important;
  color: #991b1b !important;
  font-weight: 800;
  border-color: #fca5a5 !important;
}

.cell-ended {
  background-color: #f1f5f9 !important;
  color: #64748b !important;
  font-weight: 700;
  border-color: #e2e8f0 !important;
}

.cell-low {
  background-color: #fee2e2 !important;
  color: #991b1b !important;
  font-weight: 700;
}

.cell-med {
  background-color: #fef3c7 !important;
  color: #92400e !important;
  font-weight: 700;
}

.cell-good {
  background-color: #d1fae5 !important;
  color: #065f46 !important;
  font-weight: 800;
}

.cell-maxed {
  background-color: #ffedd5 !important;
  color: #9a3412 !important;
  font-weight: 800;
}

.cell-weekend-header {
  background-color: #fee2e2 !important;
  color: #ef4444 !important;
  font-weight: 900 !important;
}

.cell-weekend-body {
  background-color: #f8fafc;
}

/* Micro Gantt Striped Pattern Blocks (Per Campaign Video - Screenshot 2 Heritage) */
.campaign-bar {
  border-radius: 6px;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  padding: 4px 10px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
  cursor: pointer;
  white-space: nowrap;
}

/* Gantt Cell Day Bar - Solid box height, prevents collapsing to thin line */
.gantt-day-bar {
  width: 100%;
  height: 20px;
  min-height: 20px;
  max-height: 20px;
  border-radius: 4px;
  font-size: 8px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: transform 0.15s ease;
  overflow: hidden;
  box-sizing: border-box;
}
.gantt-day-bar:hover {
  transform: scale(1.05);
  z-index: 10;
}

.campaign-bar:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}

.campaign-bar-blue {
  background: repeating-linear-gradient(45deg, #c7d2fe, #c7d2fe 10px, #e0e7ff 10px, #e0e7ff 20px);
  border: 1.5px solid #818cf8;
  color: #1e3a8a;
}

.campaign-bar-purple {
  background: repeating-linear-gradient(45deg, #e9d5ff, #e9d5ff 10px, #f3e8ff 10px, #f3e8ff 20px);
  border: 1.5px solid #c084fc;
  color: #581c87;
}

.campaign-bar-emerald {
  background: repeating-linear-gradient(45deg, #a7f3d0, #a7f3d0 10px, #d1fae5 10px, #d1fae5 20px);
  border: 1.5px solid #34d399;
  color: #064e3b;
}

.campaign-bar-amber {
  background: repeating-linear-gradient(45deg, #fde68a, #fde68a 10px, #fef3c7 10px, #fef3c7 20px);
  border: 1.5px solid #fbbf24;
  color: #78350f;
}

.campaign-bar-rose {
  background: repeating-linear-gradient(45deg, #fecdd3, #fecdd3 10px, #ffe4e6 10px, #ffe4e6 20px);
  border: 1.5px solid #f43f5e;
  color: #881337;
}

.campaign-bar-cyan {
  background: repeating-linear-gradient(45deg, #a5f3fc, #a5f3fc 10px, #cffafe 10px, #cffafe 20px);
  border: 1.5px solid #22d3ee;
  color: #155e75;
}

.campaign-bar-orange {
  background: repeating-linear-gradient(45deg, #fed7aa, #fed7aa 10px, #ffedd5 10px, #ffedd5 20px);
  border: 1.5px solid #fb923c;
  color: #9a3412;
}

.campaign-bar-indigo {
  background: repeating-linear-gradient(45deg, #c7d2fe, #c7d2fe 10px, #e0e7ff 10px, #e0e7ff 20px);
  border: 1.5px solid #6366f1;
  color: #312e81;
}

.campaign-bar-teal {
  background: repeating-linear-gradient(45deg, #99f6e4, #99f6e4 10px, #ccfbf1 10px, #ccfbf1 20px);
  border: 1.5px solid #2dd4bf;
  color: #115e59;
}

.campaign-bar-fuchsia {
  background: repeating-linear-gradient(45deg, #f5d0fe, #f5d0fe 10px, #fae8ff 10px, #fae8ff 20px);
  border: 1.5px solid #e879f9;
  color: #701a75;
}

.campaign-bar-pink {
  background: repeating-linear-gradient(45deg, #fbcfe8, #fbcfe8 10px, #fce7f3 10px, #fce7f3 20px);
  border: 1.5px solid #f472b6;
  color: #831843;
}

.campaign-bar-lime {
  background: repeating-linear-gradient(45deg, #d9f99d, #d9f99d 10px, #ecfccb 10px, #ecfccb 20px);
  border: 1.5px solid #a3e635;
  color: #365314;
}

.campaign-bar-sky {
  background: repeating-linear-gradient(45deg, #bae6fd, #bae6fd 10px, #e0f2fe 10px, #e0f2fe 20px);
  border: 1.5px solid #38bdf8;
  color: #075985;
}

.campaign-bar-violet {
  background: repeating-linear-gradient(45deg, #ddd6fe, #ddd6fe 10px, #ede9fe 10px, #ede9fe 20px);
  border: 1.5px solid #8b5cf6;
  color: #4c1d95;
}

.campaign-bar-yellow {
  background: repeating-linear-gradient(45deg, #fef08a, #fef08a 10px, #fef9c3 10px, #fef9c3 20px);
  border: 1.5px solid #eab308;
  color: #713f12;
}

.campaign-bar-red {
  background: repeating-linear-gradient(45deg, #fecaca, #fecaca 10px, #fee2e2 10px, #fee2e2 20px);
  border: 1.5px solid #ef4444;
  color: #7f1d1d;
}

.campaign-bar-ended {
  background: repeating-linear-gradient(45deg, #e2e8f0, #e2e8f0 10px, #f1f5f9 10px, #f1f5f9 20px) !important;
  border: 1.5px solid #94a3b8 !important;
  color: #64748b !important;
  opacity: 0.75;
}

/* COC Diamond Marker (Screenshot 2 Purple Diamond) */
.coc-diamond-marker {
  color: #9333ea;
  font-size: 13px;
  line-height: 1;
  font-weight: 900;
  display: inline-block;
  animation: pulse-coc 2s infinite ease-in-out;
}

@keyframes pulse-coc {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.85; }
}

/* Compact Booking Order Card (Screenshot 4 Heritage) */
.compact-bo-card {
  background-color: #ffffff;
  border-radius: 1.25rem;
  border: 1px solid #e2e8f0;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  padding: 1.25rem;
  transition: all 0.25s ease;
  display: flex;
  flex-direction: column;
}

.compact-bo-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  border-color: #cbd5e1;
}

.compact-bo-card.border-action-pending {
  border: 2px solid #f43f5e !important;
  box-shadow: 0 4px 16px rgba(244, 63, 94, 0.16) !important;
  background: linear-gradient(to bottom, #fff5f5, #ffffff 60px) !important;
}

.compact-bo-card.border-action-pending:hover {
  border-color: #e11d48 !important;
  box-shadow: 0 8px 24px rgba(244, 63, 94, 0.26) !important;
}

.bo-top-section {
  display: flex;
  flex-direction: column;
  min-height: 205px;
}

.invoice-installment-card {
  transition: all 0.2s ease;
}
.invoice-installment-card:hover {
  border-color: #cbd5e1;
}

/* Custom Scrollbars */
.custom-scroll::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}
.custom-scroll::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 4px;
}
.custom-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 4px;
}
.custom-scroll::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}

/* Campaign Numbering Badges (Color Synced with Timeline) */
.camp-badge-1 {
  background-color: #2563eb !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.4);
}
.camp-badge-2 {
  background-color: #9333ea !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(147, 51, 234, 0.4);
}
.camp-badge-3 {
  background-color: #059669 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(5, 150, 105, 0.4);
}
.camp-badge-4 {
  background-color: #d97706 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(217, 119, 6, 0.4);
}
.camp-badge-5 {
  background-color: #e11d48 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(225, 29, 72, 0.4);
}

/* Month Filter Pills for Gantt Timeline */
.month-pill-active {
  background-color: #2563eb !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.35) !important;
}
.month-pill-inactive {
  background-color: #f1f5f9 !important;
  color: #475569 !important;
  font-weight: 700 !important;
}
.month-pill-inactive:hover {
  background-color: #e2e8f0 !important;
  color: #0f172a !important;
}

/* FOC / Free Badge */
.badge-foc {
  background-color: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
  font-weight: 900;
  text-transform: uppercase;
}