/* Daterangepicker Custom Styles - Buyuk Takvim Light Theme */

/* Ranges (sol menü - Bugün, Dün vs.) tamamen gizle */
.daterangepicker .ranges {
    display: none !important;
}

/* Sol kenardaki border'ı kaldır */
.daterangepicker.show-ranges.ltr .drp-calendar.left {
    border-left: none !important;
}

/* ========== LIGHT THEME ========== */
.daterangepicker {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
    border-radius: 8px !important;
    font-size: 14px !important;
}

.daterangepicker .calendar-table {
    background-color: #ffffff !important;
    border: none !important;
}

/* Takvim boyutlarını büyüt */
.daterangepicker .drp-calendar {
    max-width: 340px !important;
}

.daterangepicker .calendar-table th,
.daterangepicker .calendar-table td {
    min-width: 42px !important;
    width: 42px !important;
    height: 36px !important;
    line-height: 36px !important;
    font-size: 14px !important;
    color: #1f2937 !important;
}

/* Ay başlığı */
.daterangepicker th.month {
    font-size: 16px !important;
    font-weight: 600 !important;
    padding: 10px 0 !important;
    color: #111827 !important;
}

/* Gün isimleri */
.daterangepicker .calendar-table thead th {
    font-weight: 600 !important;
    color: #6b7280 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
}

/* Takvim padding */
.daterangepicker .drp-calendar.left {
    padding: 16px !important;
}

.daterangepicker .drp-calendar.right {
    padding: 16px !important;
}

/* Calendar table padding */
.daterangepicker .drp-calendar.left .calendar-table {
    padding-right: 16px !important;
    border-right: 1px solid #e5e7eb !important;
}

/* Hover efekti */
.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
    background-color: #f3f4f6 !important;
    border-radius: 6px !important;
}

/* Seçili tarih aralığı */
.daterangepicker td.in-range {
    background-color: #fef3c7 !important;
    color: #92400e !important;
}

/* Başlangıç ve bitiş tarihleri */
.daterangepicker td.start-date,
.daterangepicker td.end-date {
    background-color: #f59e0b !important;
    color: #ffffff !important;
    border-radius: 0 !important;
}

.daterangepicker td.start-date.active,
.daterangepicker td.end-date.active {
    background-color: #d97706 !important;
    color: #ffffff !important;
}

/* Seçili giriş/çıkış günleri - daha açık turuncu */
.daterangepicker td.half-day-checkin.start-date,
.daterangepicker td.half-day-checkout.start-date,
.daterangepicker td.half-day-checkin.end-date,
.daterangepicker td.half-day-checkout.end-date,
.daterangepicker td.half-day-checkin.in-range,
.daterangepicker td.half-day-checkout.in-range {
    background-color: #fed7aa !important;
    color: #9a3412 !important;
}

.daterangepicker td.half-day-checkin.start-date::before,
.daterangepicker td.half-day-checkout.start-date::before,
.daterangepicker td.half-day-checkin.end-date::before,
.daterangepicker td.half-day-checkout.end-date::before {
    opacity: 0.7 !important;
}

/* Geçmiş ayların günleri */
.daterangepicker td.off,
.daterangepicker td.off.in-range {
    background-color: transparent !important;
    color: #d1d5db !important;
}

/* Disabled tarihler - Kapalı günler */
.daterangepicker td.disabled {
    background-color: #ffdad1 !important;
    color: #dc2626 !important;
    text-decoration: line-through !important;
    cursor: not-allowed !important;
    border: 1px solid #fff !important;
    border-radius: 0 !important;
}

/* Buton alanı */
.daterangepicker .drp-buttons {
    padding: 12px 16px !important;
    border-top: 1px solid #e5e7eb !important;
    background-color: #f9fafb !important;
}

.daterangepicker .drp-buttons .btn {
    font-size: 13px !important;
    padding: 8px 16px !important;
    border-radius: 6px !important;
}

.daterangepicker .applyBtn {
    background-color: #f59e0b !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

.daterangepicker .applyBtn:hover {
    background-color: #d97706 !important;
}

.daterangepicker .cancelBtn {
    color: #6b7280 !important;
}

/* Seçili tarih gösterimi */
.daterangepicker .drp-selected {
    font-size: 13px !important;
    color: #374151 !important;
    font-weight: 500 !important;
}

/* Navigasyon okları */
.daterangepicker .calendar-table .next span,
.daterangepicker .calendar-table .prev span {
    padding: 4px !important;
    border-width: 0 2px 2px 0 !important;
    border-color: #6b7280 !important;
}

.daterangepicker .calendar-table .next:hover span,
.daterangepicker .calendar-table .prev:hover span {
    border-color: #111827 !important;
}

/* Select dropdown'ları */
.daterangepicker select.monthselect,
.daterangepicker select.yearselect {
    font-size: 13px !important;
    padding: 4px 8px !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 4px !important;
    background-color: #ffffff !important;
    color: #374151 !important;
}

/* Bugün vurgusu */
.daterangepicker td.today {
    font-weight: 700 !important;
}

.daterangepicker td.today::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    background-color: #f59e0b;
    border-radius: 50%;
}

/* ========== HALF-DAY STYLES ========== */
/* Backoffice tarzı diagonal gösterim - #ffdad1 rengi */

/* Half-day hücrelere position relative ver */
.daterangepicker .calendar-table td.half-day-checkin,
.daterangepicker .calendar-table td.half-day-checkout {
    position: relative !important;
    overflow: visible !important;
    z-index: 1 !important;
}

/* Pseudo element ile diagonal çiz */
.daterangepicker .calendar-table td.half-day-checkin::before,
.daterangepicker .calendar-table td.half-day-checkout::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* Check-out: Sol üst köşe dolu (sabah çıkış) */
.daterangepicker .calendar-table td.half-day-checkout::before {
    background: linear-gradient(
        to bottom right,
        #ffdad1 0%,
        #ffdad1 50%,
        transparent 50%,
        transparent 100%
    ) !important;
}

/* Check-in: Sağ alt köşe dolu (öğleden sonra giriş) */
.daterangepicker .calendar-table td.half-day-checkin::before {
    background: linear-gradient(
        to top left,
        #ffdad1 0%,
        #ffdad1 50%,
        transparent 50%,
        transparent 100%
    ) !important;
}

/* Hem check-in hem check-out aynı gün - iki üçgen + ortada çizgi */
.daterangepicker .calendar-table td.half-day-checkin.half-day-checkout::before {
    background:
        linear-gradient(
            to bottom right,
            #ffdad1 0%,
            #ffdad1 calc(50% - 1px),
            transparent calc(50% - 1px),
            transparent calc(50% + 1px),
            #ffdad1 calc(50% + 1px),
            #ffdad1 100%
        ) !important;
}

/* Ortadaki çizgi için after pseudo element */
.daterangepicker .calendar-table td.half-day-checkin.half-day-checkout::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background: linear-gradient(
        to bottom right,
        transparent 0%,
        transparent calc(50% - 1px),
        #fff calc(50% - 1px),
        #fff calc(50% + 1px),
        transparent calc(50% + 1px),
        transparent 100%
    ) !important;
}

/* Gün numarası üstte kalmalı */
.daterangepicker .calendar-table td.half-day-checkin,
.daterangepicker .calendar-table td.half-day-checkout {
    color: #1f2937 !important;
    border: 1px solid #fff !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

/* ========== CONFLICT ROW STYLES ========== */
/* CSS source order = öncelik. Multi-class kayıtlarda (örn. RES+OPT)
   en yüksek severity en SON yazılır → cascade'de baskın renk olur.
   Hiyerarşi (soft → hard): OPT (sarı) → CAL (turuncu) → RES (kırmızı) */

/* Opsiyon çakışması - sarı/amber satır (soft uyarı) */
.fi-ta-row.conflict-option {
    background-color: #fef3c7 !important;
}
.dark .fi-ta-row.conflict-option {
    background-color: rgba(251, 191, 36, 0.25) !important;
}

/* OpsiyonAI aktif villa - belirgin mor satır (çakışma yokken; conflict sınıfları sonra
   tanımlı olduğu için cascade'de onlar baskın = çakışma kırmızısı/turuncusu önceliklidir) */
.fi-ta-row.opsiyonai-active {
    background-color: #ede9fe !important;
}
.dark .fi-ta-row.opsiyonai-active {
    background-color: rgba(139, 92, 246, 0.22) !important;
}

/* Takvim (özel durum) çakışması - turuncu satır */
.fi-ta-row.conflict-calendar {
    background-color: #ffedd5 !important;
}
.dark .fi-ta-row.conflict-calendar {
    background-color: rgba(251, 146, 60, 0.25) !important;
}

/* Rezervasyon çakışması - kırmızı satır (en sert sinyal, en son tanımlı = cascade baskın) */
.fi-ta-row.conflict-reservation {
    background-color: #fee2e2 !important;
}
.dark .fi-ta-row.conflict-reservation {
    background-color: rgba(239, 68, 68, 0.25) !important;
}

/* Görüşme bayatlama - aranmamış/4sa+ ön rez: SOL TURUNCU ŞERİT (ikincil sinyal).
   background-IMAGE kullanır (background-color DEĞİL) → mevcut çakışma satır
   renkleriyle (background-color) ÇATIŞMAZ, üstüne biner: hem şerit hem çakışma
   rengi birlikte görünür. Sözü-geçmiş kırmızı şerit (.promise-overdue) bundan SONRA
   tanımlı → bir satır ikisine de uyarsa kırmızı baskın (cascade, eşit specificity →
   son kural kazanır). (box-shadow tercih edilmedi: tablo border-collapse:collapse). */
.fi-ta-row.contact-stale {
    background-image: linear-gradient(to right, #f59e0b 0, #f59e0b 4px, transparent 4px) !important;
}
.dark .fi-ta-row.contact-stale {
    background-image: linear-gradient(to right, #fbbf24 0, #fbbf24 4px, transparent 4px) !important;
}

/* Ödeme sözü geçmiş - SOL KIRMIZI ŞERİT (en güçlü sinyal: söz verdi, ödemedi → ACİL ara).
   contact-stale'den SONRA tanımlı → her ikisine uyan satırda kırmızı kazanır. */
.fi-ta-row.promise-overdue {
    background-image: linear-gradient(to right, #ef4444 0, #ef4444 4px, transparent 4px) !important;
}
.dark .fi-ta-row.promise-overdue {
    background-image: linear-gradient(to right, #f87171 0, #f87171 4px, transparent 4px) !important;
}

/* ========== PRICELIST REPEATER STYLES ========== */
/* Modal içindeki pricelist repeater - kompakt görünüm */
.fi-modal [data-field-wrapper] .fi-fo-repeater {
    gap: 0 !important;
}

.fi-modal .fi-fo-repeater-item {
    border: 1px solid #e5e7eb !important;
    border-top: none !important;
    padding: 0.5rem 1rem !important;
    background: #fff !important;
}

.dark .fi-modal .fi-fo-repeater-item {
    border-color: #374151 !important;
    background: #1f2937 !important;
}

/* İlk item için üst border */
.fi-modal .fi-fo-repeater-item:first-child {
    border-top: none !important;
}

/* Grid item'ları 8 kolon */
.fi-modal .fi-fo-repeater-item .fi-fo-grid {
    display: grid !important;
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
    align-items: center !important;
}

/* Input alanları kompakt */
.fi-modal .fi-fo-repeater-item input,
.fi-modal .fi-fo-repeater-item select {
    padding: 0.375rem 0.5rem !important;
    font-size: 13px !important;
    height: auto !important;
}

/* Placeholder (pricelist name) stil */
.fi-modal .fi-fo-repeater-item .fi-fo-placeholder {
    font-size: 13px !important;
    font-weight: 500 !important;
}

/* Repeater actions gizle */
.fi-modal .fi-fo-repeater-item-actions {
    display: none !important;
}
