/* ============================================================================
   DATERANGEPICKER - THEME-AWARE CSS
   Uses design system CSS variables so light/dark mode works automatically.
   Fallback values ensure it works outside the v2-shell context too.
   ============================================================================ */

/* CSS variable defaults (light mode fallback) */
.daterangepicker {
    --drp-bg:        var(--bg-1, #ffffff);
    --drp-bg-hover:  var(--bg-2, #f5f5f9);
    --drp-bg-off:    var(--bg-1, #ffffff);
    --drp-border:    var(--line, #d9dee3);
    --drp-text:      var(--fg-0, #566a7f);
    --drp-text-muted:var(--fg-1, #a1b0be);
    --drp-primary:   var(--bs-primary, #696cff);
    --drp-primary-rgb: var(--bs-primary-rgb, 105, 108, 255);
    --drp-range-bg:  var(--bg-2, #f0f0ff);
    --drp-radius:    var(--r-2, 8px);
    --drp-shadow:    0 8px 24px rgba(0, 0, 0, 0.12);
}

/* ─── Picker Panel ─────────────────────────────────────── */
.daterangepicker {
    position: absolute;
    color: var(--drp-text);
    background-color: var(--drp-bg);
    border-radius: var(--drp-radius);
    border: 1px solid var(--drp-border);
    box-shadow: var(--drp-shadow);
    width: 278px;
    padding: 4px;
    margin-top: 1px;
    top: 100px;
    left: 20px;
    z-index: 3001;
}

/* ─── Arrow / Caret ─────────────────────────────────────── */
.daterangepicker:before,
.daterangepicker:after {
    position: absolute;
    display: inline-block;
    content: '';
}
.daterangepicker:before {
    top: -7px;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid var(--drp-border);
}
.daterangepicker:after {
    top: -6px;
    border-right: 6px solid transparent;
    border-bottom: 6px solid var(--drp-bg);
    border-left: 6px solid transparent;
}
.daterangepicker.dropup {
    margin-top: -5px;
}
.daterangepicker.dropup:before {
    top: initial;
    bottom: -7px;
    border-bottom: initial;
    border-top: 7px solid var(--drp-border);
}
.daterangepicker.dropup:after {
    top: initial;
    bottom: -6px;
    border-bottom: initial;
    border-top: 6px solid var(--drp-bg);
}

/* Open direction variants */
.daterangepicker.opensleft:before  { right: 9px; }
.daterangepicker.opensleft:after   { right: 10px; }
.daterangepicker.openscenter:before,
.daterangepicker.openscenter:after { left: 0; right: 0; width: 0; margin-left: auto; margin-right: auto; }
.daterangepicker.opensright:before { left: 9px; }
.daterangepicker.opensright:after  { left: 10px; }

.daterangepicker.dropdown-menu { max-width: none; }

/* ─── Calendar Structure ────────────────────────────────── */
.daterangepicker.single .ranges,
.daterangepicker.single .calendar { float: none; }

.daterangepicker.show-calendar .calendar { display: block; }

.daterangepicker .calendar {
    display: none;
    max-width: 270px;
    margin: 4px;
}
.daterangepicker .calendar.single .calendar-table { border: none; }

.daterangepicker .calendar th,
.daterangepicker .calendar td {
    white-space: nowrap;
    text-align: center;
    min-width: 32px;
}

/* ─── Calendar Table ────────────────────────────────────── */
.daterangepicker .calendar-table {
    border: 1px solid var(--drp-border);
    padding: 4px;
    border-radius: var(--drp-radius);
    background-color: var(--drp-bg);
}

.daterangepicker table { width: 100%; margin: 0; }

/* ─── Day Cells ─────────────────────────────────────────── */
.daterangepicker td,
.daterangepicker th {
    text-align: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1px solid transparent;
    white-space: nowrap;
    cursor: pointer;
    color: var(--drp-text);
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
    background-color: var(--drp-bg-hover);
    border-color: transparent;
    color: var(--drp-text);
}

/* Week numbers */
.daterangepicker td.week,
.daterangepicker th.week {
    font-size: 80%;
    color: var(--drp-text-muted);
}

/* Days outside current month */
.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
    background-color: var(--drp-bg-off);
    border-color: transparent;
    color: var(--drp-text-muted);
    opacity: 0.5;
}

/* In-range highlight */
.daterangepicker td.in-range {
    background-color: rgba(var(--drp-primary-rgb), 0.12);
    border-color: transparent;
    color: var(--drp-text);
    border-radius: 0;
}

/* Start / end date rounded corners */
.daterangepicker td.start-date            { border-radius: 6px 0 0 6px; }
.daterangepicker td.end-date              { border-radius: 0 6px 6px 0; }
.daterangepicker td.start-date.end-date   { border-radius: 6px; }

/* Selected / active dates */
.daterangepicker td.active,
.daterangepicker td.active:hover {
    background-color: var(--drp-primary);
    border-color: transparent;
    color: #fff;
    border-radius: 6px;
}

.daterangepicker th.month { width: auto; }

/* Disabled */
.daterangepicker td.disabled,
.daterangepicker option.disabled {
    color: var(--drp-text-muted);
    cursor: not-allowed;
    text-decoration: line-through;
}

/* ─── Month / Year Selects ──────────────────────────────── */
.daterangepicker select.monthselect,
.daterangepicker select.yearselect {
    font-size: 12px;
    padding: 2px 4px;
    height: auto;
    margin: 0;
    cursor: default;
    background-color: var(--drp-bg-hover);
    color: var(--drp-text);
    border: 1px solid var(--drp-border);
    border-radius: 4px;
    outline: none;
}
.daterangepicker select.monthselect { margin-right: 2%; width: 56%; }
.daterangepicker select.yearselect  { width: 40%; }

.daterangepicker select.hourselect,
.daterangepicker select.minuteselect,
.daterangepicker select.secondselect,
.daterangepicker select.ampmselect  { width: 50px; margin-bottom: 0; }

/* ─── Date Text Input (top of picker) ───────────────────── */
.daterangepicker .input-mini {
    background-color: var(--drp-bg-hover);
    color: var(--drp-text);
    border: 1px solid var(--drp-border);
    border-radius: 6px;
    height: 30px;
    line-height: 30px;
    display: block;
    vertical-align: middle;
    margin: 0 0 5px 0;
    padding: 0 6px 0 28px !important;
    width: 100%;
}
.daterangepicker .input-mini.active {
    border: 1px solid var(--drp-primary);
}

.daterangepicker .daterangepicker_input { position: relative; }
.daterangepicker .daterangepicker_input i { position: absolute; left: 8px; top: 8px; }

.daterangepicker.rtl .input-mini        { padding-right: 28px; padding-left: 6px; }
.daterangepicker.rtl .daterangepicker_input i { left: auto; right: 8px; }

/* ─── Time Picker ───────────────────────────────────────── */
.daterangepicker .calendar-time {
    text-align: center;
    margin: 5px auto;
    line-height: 30px;
    position: relative;
    padding-left: 28px;
}
.daterangepicker .calendar-time select.disabled {
    color: var(--drp-text-muted);
    cursor: not-allowed;
}

/* ─── Range Sidebar ─────────────────────────────────────── */
.ranges {
    font-size: 11px;
    float: none;
    margin: 4px;
    text-align: left;
}
.ranges ul {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    width: 100%;
}
.ranges li {
    font-size: 13px;
    background-color: var(--drp-bg-hover);
    border: 1px solid var(--drp-border);
    border-radius: 6px;
    color: var(--drp-primary);
    padding: 6px 14px;
    margin-bottom: 6px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ranges li:hover {
    background-color: var(--drp-primary);
    border-color: var(--drp-primary);
    color: #fff;
}
.ranges li.active {
    background-color: var(--drp-primary);
    border-color: var(--drp-primary);
    color: #fff;
}

/* ─── Responsive ────────────────────────────────────────── */
@media (min-width: 564px) {
    .daterangepicker { width: auto; }
    .daterangepicker .ranges ul { width: 160px; }

    .daterangepicker.single .ranges ul  { width: 100%; }
    .daterangepicker.single .calendar.left { clear: none; }

    .daterangepicker.single.ltr .ranges,
    .daterangepicker.single.ltr .calendar { float: left; }
    .daterangepicker.single.rtl .ranges,
    .daterangepicker.single.rtl .calendar { float: right; }

    .daterangepicker.ltr { direction: ltr; text-align: left; }
    .daterangepicker.ltr .calendar.left  { clear: left; margin-right: 0; }
    .daterangepicker.ltr .calendar.left .calendar-table {
        border-right: none;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .daterangepicker.ltr .calendar.right { margin-left: 0; }
    .daterangepicker.ltr .calendar.right .calendar-table {
        border-left: none;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    .daterangepicker.ltr .left .daterangepicker_input  { padding-right: 12px; }
    .daterangepicker.ltr .calendar.left .calendar-table { padding-right: 12px; }
    .daterangepicker.ltr .ranges,
    .daterangepicker.ltr .calendar { float: left; }

    .daterangepicker.rtl { direction: rtl; text-align: right; }
    .daterangepicker.rtl .calendar.left  { clear: right; margin-left: 0; }
    .daterangepicker.rtl .calendar.left .calendar-table {
        border-left: none;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    .daterangepicker.rtl .calendar.right { margin-right: 0; }
    .daterangepicker.rtl .calendar.right .calendar-table {
        border-right: none;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .daterangepicker.rtl .left .daterangepicker_input  { padding-left: 12px; }
    .daterangepicker.rtl .calendar.left .calendar-table { padding-left: 12px; }
    .daterangepicker.rtl .ranges,
    .daterangepicker.rtl .calendar { text-align: right; float: right; }
}

@media (min-width: 730px) {
    .daterangepicker .ranges { width: auto; }
    .daterangepicker.ltr .ranges { float: left; }
    .daterangepicker.rtl .ranges { float: right; }
    .daterangepicker .calendar.left { clear: none !important; }
}