/* CSS lịch chọn ngày lsfc (tách từ box/flight_calendar.inc.php, mẻ 3 2026-08-04).
   File include DÙNG CHUNG nhiều trang nên KHÔNG bọc theo class trang.
   LỌC TRÙNG: đã bỏ 33 rule .lsfc-* TRÙNG HỆT overide-v2.css (các selector này
   không xuất hiện ở file CSS nào khác nên bỏ bản trùng không đổi cascade).
   Còn 8 rule trùng nằm trong @media thì GIỮ NGUYÊN cho an toàn. */
/* ═══ Flight Calendar Popup ═══ */
.lsfc-popup {
    position: absolute;
    z-index: 99999;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.06);
    padding: 12px 16px 10px;
    width: 700px;
    max-width: calc(100vw - 24px);
    box-sizing: border-box;
    display: none;
    font-family: inherit;
}
.lsfc-prev, .lsfc-next {
    width: 32px; height: 32px; border-radius: 50%; border: none;
    background: #fdf0f7; color: #ed007f; font-size: 16px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    align-self: flex-start; margin-top: 4px; transition: background .15s;
}
.lsfc-prev:hover, .lsfc-next:hover { background: #f8d7e8; }
.lsfc-months { display: flex; gap: 16px; flex: 1 1 0; min-width: 0; padding: 0 6px; }
/* Tour search: chỉ 1 tháng → popup hẹp lại (giống lịch "Lịch khởi hành" trang chi tiết),
   không kéo dài 700px như chế độ 2 tháng của Vé máy bay / Khách sạn. */
.lsfc-popup.lsfc-single { width: 380px; }
/* Ô ngày (chế độ 1 tháng): căn số/giá vào GIỮA theo chiều dọc + thu gọn khoảng cách + giá chữ nhỏ hơn
   → số ngày và giá thành 1 cụm gọn (không bị airy, giá không "lạc" thành 1 dòng rời như trước). */
.lsfc-popup.lsfc-single .lsfc-day { height: 42px; justify-content: center; padding: 2px 0; }
.lsfc-popup.lsfc-single .lsfc-day-price { font-size: 9px; margin-top: 1px; }
.lsfc-popup.lsfc-single .lsfc-day.is-today .lsfc-day-price { margin-top: 1px; }
.lsfc-month-title { font-size: 14px; font-weight: 600; color: #222; text-align: center; margin-bottom: 12px; line-height: 32px; }
.lsfc-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; margin-bottom: 4px; }
.lsfc-weekdays > div { text-align: center; font-size: 12px; color: #5f6368; font-weight: 500; padding: 4px 0; }
.lsfc-weekdays > div:last-child { color: #d93025; }
.lsfc-day {
    height: 44px; display: flex; flex-direction: column; align-items: center;
    justify-content: flex-start; padding: 4px 0 3px; cursor: pointer; border-radius: 6px;
    position: relative; transition: background .12s; color: #ed007f; font-weight: 600;
    min-width: 0; overflow: hidden;
}
.lsfc-day-price { font-size: 10px; font-weight: 500; color: #5f6368; margin-top: 4px; letter-spacing: -.2px; line-height: 1; }
.lsfc-day:hover:not(.is-past):not(.is-empty) { background: #fdf0f7; }
/* nowrap + font nhỏ: "Hôm nay" phải nằm 1 DÒNG, nếu wrap 2 dòng sẽ vượt chiều cao ô 42px
   (overflow:hidden) → bị cắt. 8px vừa khít bề ngang ô ~37px ở chế độ 1 tháng. */
.lsfc-day-tag { font-size: 8px; color: #ed007f; line-height: 1; font-weight: 500; margin-bottom: 1px; white-space: nowrap; }
.lsfc-day.is-today { padding-top: 1px; }
.lsfc-day.is-selected .lsfc-day-num {
    background: #ed007f; color: #fff; width: 26px; height: 26px;
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    line-height: 1; font-weight: 700;
}
.lsfc-day.is-selected .lsfc-day-price { color: #ed007f; font-weight: 600; }
.lsfc-holidays { margin-top: 12px; padding: 10px 8px 0; border-top: 1px solid #f0f0f0; display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; }
.lsfc-holiday-item .lsfc-h-day { font-weight: 700; margin-right: 4px; }
/* Lịch 1 tháng (bộ lọc tour): 2 nút ‹ › ĐẶT TUYỆT ĐỐI ở 2 góc hàng tiêu đề (thay vì nằm trong flex
   nav chèn 2 BÊN cả khối tháng) → grid ngày trải HẾT bề ngang popup, hết 2 khoảng trắng lớn 2 bên.
   .lsfc-nav đã position:relative. Mobile @media cũng đã absolute nút này nên không xung đột. */
.lsfc-popup.lsfc-single .lsfc-prev { position: absolute; left: 0; top: 0; z-index: 2; }
.lsfc-popup.lsfc-single .lsfc-next { position: absolute; right: 0; top: 0; z-index: 2; }
.lsfc-popup.lsfc-single .lsfc-months { padding: 0; }
.lsfc-popup.lsfc-single .lsfc-weekdays > div { font-size: 13px; font-weight: 600; color: #555; padding: 8px 0 6px; }
.lsfc-popup.lsfc-single .lsfc-weekdays > div:nth-child(6),
.lsfc-popup.lsfc-single .lsfc-weekdays > div:nth-child(7) { color: #ed007f; }

/* Hide floating widgets khi popup mở */
body.lsfc-open .box-search-group,
body.lsfc-open .zalo-chat-widget,
body.lsfc-open .go_top,
body.lsfc-open #subiz-button-container,
body.lsfc-open .subiz-widget-container,
body.lsfc-open #wpwidget,
body.lsfc-open .dlv-bot-fab,
body.lsfc-open iframe[src*="subiz"],
body.lsfc-open iframe[src*="zalo"] {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Backdrop (mobile only) */
.lsfc-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 99998;
}

@media (max-width: 767px) {
    /* Bottom-sheet modal */
    .lsfc-popup {
        position: fixed !important;
        bottom: 0;
        top: auto !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 16px 16px 0 0;
        max-height: 92vh;
        overflow-y: auto;
        padding: 0 12px 24px;
    }
    .lsfc-months { flex-direction: column; gap: 18px; padding: 0; }
    .lsfc-prev, .lsfc-next { position: absolute; top: 8px; z-index: 2; }
    .lsfc-prev { left: 8px; }
    .lsfc-next { right: 8px; }
    /* Sticky header with close button */
    .lsfc-mobile-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 0 10px;
        margin-bottom: 8px;
        border-bottom: 1px solid #f0f0f0;
        position: sticky;
        top: 0;
        background: #fff;
        z-index: 3;
    }
    .lsfc-mobile-header-title { font-size: 15px; font-weight: 600; color: #222; }
    .lsfc-mobile-close-btn {
        width: 30px; height: 30px; border-radius: 50%; border: none;
        background: #f5f5f5; color: #555; font-size: 20px; line-height: 1;
        display: flex; align-items: center; justify-content: center; cursor: pointer;
    }
    /* Prevent body scroll when popup open */
    body.lsfc-open { overflow: hidden; }
    /* Ẩn header mobile (.mainHead z-index:100 tạo stacking riêng → đè đỉnh bottom-sheet)
       để bộ chọn ngày hiện hẳn LÊN TRÊN. Chỉ mobile (trong @media), desktop giữ header. */
    body.lsfc-open .mainHead { display: none !important; }
}

/* ═══ Kiểu "dải ngày" (.lsfc-range) — client 08/10/2026, trang kết quả khách sạn ═══
   Bật bằng data-lsfc-range trên #lsHotelCheckin (JS gắn .lsfc-range lên popup). Số ngày màu chữ thường,
   dải nền nối nhận phòng → trả phòng, hai đầu là vòng tròn đặc, nhãn thứ T2…CN, mũi tên ‹ › trơn ở hai
   góc hàng tiêu đề. Các trang chưa bật giữ nguyên lịch cũ. */
.lsfc-popup.lsfc-range { padding: 16px 20px 12px; }
.lsfc-popup.lsfc-range .lsfc-months { gap: 28px; padding: 0; }
.lsfc-popup.lsfc-range .lsfc-month-title { font-size: 15px; font-weight: 700; color: var(--c-text); text-transform: capitalize; margin-bottom: 4px; }
.lsfc-popup.lsfc-range .lsfc-prev,
.lsfc-popup.lsfc-range .lsfc-next {
    position: absolute; top: 0; z-index: 2; margin-top: 0;
    background: transparent; color: var(--c-primary); font-size: 26px; line-height: 1;
}
.lsfc-popup.lsfc-range .lsfc-prev { left: -6px; }
.lsfc-popup.lsfc-range .lsfc-next { right: -6px; }
.lsfc-popup.lsfc-range .lsfc-prev:hover:not(:disabled),
.lsfc-popup.lsfc-range .lsfc-next:hover { background: var(--c-primary-light); }
.lsfc-popup.lsfc-range .lsfc-prev:disabled { color: #c0c4ca; opacity: 1; }
.lsfc-popup.lsfc-range .lsfc-weekdays { gap: 0; margin-bottom: 2px; }
.lsfc-popup.lsfc-range .lsfc-weekdays > div,
.lsfc-popup.lsfc-range .lsfc-weekdays > div:last-child { font-size: 13px; font-weight: 700; color: #5f6368; padding: 6px 0; }
/* Cột sát nhau để dải nền liền mạch trong một tuần; hàng cách nhau 6px. */
.lsfc-popup.lsfc-range .lsfc-grid { gap: 6px 0; border-top: 0; padding-top: 2px; }
.lsfc-popup.lsfc-range .lsfc-day {
    height: 42px; justify-content: center; padding: 0; border-radius: 0;
    color: var(--c-text); font-weight: 500; overflow: visible;
}
.lsfc-popup.lsfc-range .lsfc-day.is-sunday { color: #d93025; }
.lsfc-popup.lsfc-range .lsfc-day.is-past { color: #c0c4ca; }
.lsfc-popup.lsfc-range .lsfc-day > span { position: relative; z-index: 1; }
.lsfc-popup.lsfc-range .lsfc-day-num,
.lsfc-popup.lsfc-range .lsfc-day.is-today .lsfc-day-num { font-size: 15px; line-height: 1.15; }
.lsfc-popup.lsfc-range .lsfc-day-price { margin-top: 2px; }
.lsfc-popup.lsfc-range .lsfc-day-price.is-blank { display: none; }
.lsfc-popup.lsfc-range .lsfc-day-tag { color: var(--c-primary); margin-bottom: 0; }
/* Vòng tròn (rê chuột + hai đầu dải) vẽ bằng ::before nằm dưới chữ, trên dải nền. */
.lsfc-popup.lsfc-range .lsfc-day::before {
    content: ""; position: absolute; left: 50%; top: 50%; width: 40px; height: 40px;
    margin: -20px 0 0 -20px; border-radius: 50%; background: transparent; transition: background .12s;
}
/* Tháng có giá theo ngày (.has-price): số + giá không lọt vòng tròn → đổi thành ô bo góc phủ cả ô ngày. */
.lsfc-popup.lsfc-range .lsfc-grid.has-price .lsfc-day::before {
    left: 2px; right: 2px; top: 0; bottom: 0; width: auto; height: auto; margin: 0; border-radius: 10px;
}
.lsfc-popup.lsfc-range .lsfc-day:hover:not(.is-past):not(.is-empty) { background: transparent; }
.lsfc-popup.lsfc-range .lsfc-day:hover:not(.is-past):not(.is-empty)::before { background: #f1f3f4; }
/* Dải ngày */
.lsfc-popup.lsfc-range .lsfc-day.is-in-range,
.lsfc-popup.lsfc-range .lsfc-day.is-in-range:hover:not(.is-past):not(.is-empty) { background: var(--c-primary-light); color: var(--c-primary-hover); }
.lsfc-popup.lsfc-range .lsfc-day.is-in-range:hover:not(.is-past):not(.is-empty)::before { background: #f9c6e1; }
.lsfc-popup.lsfc-range .lsfc-day.is-range-start,
.lsfc-popup.lsfc-range .lsfc-day.is-range-start:hover:not(.is-past):not(.is-empty) { background: linear-gradient(to right, transparent 50%, var(--c-primary-light) 50%); }
.lsfc-popup.lsfc-range .lsfc-day.is-range-end,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end:hover:not(.is-past):not(.is-empty) { background: linear-gradient(to left, transparent 50%, var(--c-primary-light) 50%); }
/* Hai đầu dải / ngày đang chọn: vòng tròn đặc, chữ trắng (kể cả giá + nhãn "Hôm nay" nằm trong vòng). */
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost)::before,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end::before,
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost):hover:not(.is-past):not(.is-empty)::before,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end:hover:not(.is-past):not(.is-empty)::before { background: var(--c-primary); }
.lsfc-popup.lsfc-range .lsfc-day.is-selected .lsfc-day-num {
    background: transparent; color: inherit; width: auto; height: auto; display: inline; font-weight: 700;
}
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost),
.lsfc-popup.lsfc-range .lsfc-day.is-range-end,
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost) .lsfc-day-price,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end .lsfc-day-price,
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost) .lsfc-day-tag,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end .lsfc-day-tag { color: #fff; font-weight: 700; }
.lsfc-popup.lsfc-range .lsfc-day.is-selected.is-ghost .lsfc-day-num { font-weight: 500; }
.lsfc-popup.lsfc-range .lsfc-day.is-selected.is-ghost .lsfc-day-price { color: #5f6368; font-weight: 500; }

@media (max-width: 767px) {
    .lsfc-popup.lsfc-range { padding: 0 12px 24px; }
    .lsfc-popup.lsfc-range .lsfc-months { gap: 14px; }
    .lsfc-popup.lsfc-range .lsfc-month-title { text-align: left; padding-left: 6px; }
    .lsfc-popup.lsfc-range .lsfc-day { height: 44px; }
}

/* ═══ Màu T7 / CN / lễ tết (client 08/10/2026, theo hình tham khảo) + dòng ngày ÂM LỊCH dưới số ngày (đang TẮT) ═══
   ⚠ Dòng ngày âm chỉ in khi DLVLunar.showLabel bật (js/dlv-lunar.js) — client xem rồi bảo ẩn (cùng ngày). Đang tắt nên
   không có .has-lunar / .lsfc-day-lunar: ô ngày giữ chiều cao cũ, chỉ còn phần màu bên dưới có tác dụng.
   JS (box/flight_calendar.inc.php + bản lịch trong box/local_search_bar.php) in <span class="lsfc-day-lunar">d/m</span>
   ngay dưới số ngày, gắn .has-lunar lên lưới, .is-saturday cho T7, .is-holiday cho lễ tết (lễ vẫn mang .is-sunday
   để ăn màu đỏ sẵn có). Dữ liệu: window.DLVLunar (static-assets/js/dlv-lunar.js) — chưa nạp thì không có span và
   không có .has-lunar ⇒ lịch giữ nguyên kích thước cũ.
   Màu: T7 xanh dương (token --c-info), CN + lễ đỏ kèm nền hồng nhạt, ngày đã qua xám như mọi ngày đã qua.
   Ô cao thêm ~10px cho vừa một dòng âm lịch (44 → 54px; lịch 1 tháng của tour 42 → 52px). */
.lsfc-day-lunar { margin-top: 1px; font-size: 9.5px; font-weight: 400; line-height: 1; letter-spacing: -.1px; color: #8a9099; }
.lsfc-grid.has-lunar .lsfc-day { height: 54px; }
.lsfc-grid.has-lunar .lsfc-day-price { margin-top: 3px; }
.lsfc-popup.lsfc-single .lsfc-grid.has-lunar .lsfc-day { height: 52px; }
.lsfc-weekdays > div:nth-child(6),
.lsfc-popup.lsfc-single .lsfc-weekdays > div:nth-child(6) { color: var(--c-info); }
.lsfc-popup.lsfc-single .lsfc-weekdays > div:nth-child(7) { color: #d93025; }
.lsfc-day.is-saturday:not(.is-past) { color: var(--c-info); }
.lsfc-day.is-sunday.is-past { color: #c0c4ca; }
.lsfc-day.is-sunday:not(.is-past) .lsfc-day-lunar { color: #e57373; }
.lsfc-day.is-past .lsfc-day-lunar { color: inherit; }
/* Nền hồng nhạt cho CN / lễ còn chọn được ở lịch 1 tháng (.lsfc-single). Kiểu mặc định tô nền trong khối "Kiểu mặc định
   08/10/2026" cuối file; kiểu "dải ngày" có nền dải riêng nên không tô. */
.lsfc-popup.lsfc-single .lsfc-day.is-sunday:not(.is-past):not(.is-selected) { background: #fdeef0; }
.lsfc-popup.lsfc-single .lsfc-day.is-sunday:not(.is-past):not(.is-selected):hover { background: #fbdfe3; }
/* Kiểu "dải ngày" (trang kết quả khách sạn): số + ngày âm nằm gọn trong vòng tròn 40px; hai đầu dải chữ trắng. */
.lsfc-popup.lsfc-range .lsfc-grid.has-lunar .lsfc-day { height: 44px; }
.lsfc-popup.lsfc-range .lsfc-day-lunar { margin-top: 0; }
.lsfc-popup.lsfc-range .lsfc-day.is-saturday:not(.is-past):not(.is-selected):not(.is-in-range):not(.is-range-end) { color: var(--c-info); }
.lsfc-popup.lsfc-range .lsfc-day.is-selected:not(.is-ghost) .lsfc-day-lunar,
.lsfc-popup.lsfc-range .lsfc-day.is-range-end .lsfc-day-lunar { color: #fff; }

/* ═══ KIỂU MẶC ĐỊNH 08/10/2026 — thiết kế lại lịch 2 tháng (vé máy bay / khách sạn / combo; desktop + bảng trượt mobile) ═══
   Client gửi ảnh lịch vé máy bay desktop: "Phần lịch chưa được đẹp, thiết kế đẹp hơn đi". Chỉ đổi DÁNG, không đổi markup
   lẫn cách chọn ngày. Phạm vi: popup KHÔNG mang .lsfc-range (kết quả khách sạn, có kiểu riêng ở trên) và KHÔNG mang
   .lsfc-single (lịch 1 tháng của tour, kiểu ở overide-v2.css).
   · Số ngày màu chữ thường thay cho hồng toàn bộ — hồng để dành cho ngày đang chọn (cùng hướng "bớt màu hồng" client nhắc
     nhiều lần 07/10). T7 xanh dương, CN + lễ đỏ trên nền hồng rất nhạt, ngày đã qua xám.
   · Ngày đang chọn: tô đặc CẢ Ô (trước chỉ một vòng 26px quanh số), số + giá chữ trắng. Khứ hồi / nhận – trả phòng: dải
     hồng nhạt nối hai ngày (.is-range-start / .is-in-range / .is-range-end do hai bản JS của lịch gắn).
   · "Hôm nay": viền hồng quanh ô + nhãn nhỏ nằm đè lên mép trên ô — trước nhãn chen vào luồng làm số của ô đó tụt thấp
     và nhỏ hơn các ô cùng hàng.
   · Giá: xám nhỏ dưới số; giá thấp nhất tháng xanh lá đậm.
   · Desktop: mũi tên ‹ › tròn viền mảnh đặt ở hai góc hàng tiêu đề (trước chèn hai bên làm hẹp lưới ngày), tiêu đề
     "Tháng 10 2026" đậm, khung bo 16px.
   Độ ưu tiên: mọi luật đều mang tiền tố 3 class nên thắng luật gốc .lsfc-* (overide-v2.css + đầu file này) mà không cần
   !important; trong khối, luật đứng SAU thắng luật đứng trước cùng độ ưu tiên — giữ thứ tự: thứ → đã qua → rê chuột →
   hôm nay → dải → đang chọn. */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-month-title { font-size: 15px; font-weight: 700; color: #111827; text-transform: capitalize; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-weekdays { gap: 0; margin-bottom: 0; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-weekdays > div { padding: 2px 0 7px; font-size: 12px; font-weight: 600; color: #6b7280; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-weekdays > div:nth-child(6) { color: var(--c-info); }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-weekdays > div:nth-child(7) { color: #d93025; }
/* Cột sát nhau để dải ngày liền mạch trong một tuần; hàng cách nhau 3px. */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-grid { gap: 3px 0; padding-top: 7px; border-top: 1px solid #f1f2f4; }
/* Ô cao 44px như bản cũ: khung 2 tháng không cao thêm, đỡ tràn mép dưới ở màn laptop thấp. */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day {
    height: 44px; justify-content: center; padding: 0; border-radius: 10px; overflow: visible;
    color: #1f2937; font-weight: 600; transition: background .12s, color .12s;
}
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-grid.has-lunar .lsfc-day { height: 54px; }   /* khi bật lại dòng ngày âm (DLVLunar.showLabel) */
/* Tháng CHƯA có giá nào (khách sạn; vé máy bay lúc giá chưa về): bỏ dòng giá trống để số ngày nằm giữa ô. Tháng đã có
   giá thì ô thiếu giá vẫn giữ dòng trống cho số thẳng hàng với các ô có giá. */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-grid:not(.has-price) .lsfc-day-price.is-blank { display: none; }
/* …nhưng hễ MỘT tháng đang hiện đã có giá thì tháng còn lại cũng giữ dòng trống — hai tháng cạnh nhau không lệch hàng số
   trong lúc giá tháng sau còn đang tải. */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single):has(.lsfc-grid.has-price) .lsfc-grid:not(.has-price) .lsfc-day-price.is-blank { display: block; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day-num,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-today .lsfc-day-num { font-size: 15px; line-height: 1.2; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day-price,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-today .lsfc-day-price { margin-top: 3px; font-size: 10.5px; font-weight: 500; color: #6b7280; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day-price.is-low { color: #0e8a4f; font-weight: 700; }
/* Thứ */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-saturday { color: var(--c-info); }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-sunday { color: #d93025; background: #fff4f4; }
/* Đã qua */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-past,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-past .lsfc-day-price { color: #c5cad3; background: transparent; }
/* Rê chuột */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day:hover:not(.is-past):not(.is-empty) { background: #f3f4f6; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-sunday:hover:not(.is-past):not(.is-empty) { background: #ffe7e7; }
/* Hôm nay */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-today { padding-top: 0; box-shadow: inset 0 0 0 1.5px var(--c-primary); }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day-tag {
    position: absolute; top: 0; left: 50%; transform: translate(-50%, -55%); margin: 0; padding: 0 4px;
    border-radius: 4px; background: #fff; font-size: 8.5px; font-weight: 600; line-height: 1.3; color: var(--c-primary);
}
/* Dải ngày */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-in-range,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-in-range:hover:not(.is-past):not(.is-empty) { border-radius: 0; background: #fde7f2; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-in-range:hover:not(.is-past):not(.is-empty) { background: #fbd3e8; }
/* Đang chọn */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-selected,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-selected:hover:not(.is-past):not(.is-empty) { background: var(--c-primary); color: #fff; box-shadow: 0 4px 10px rgba(237, 0, 127, .28); }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-selected .lsfc-day-num { display: block; width: auto; height: auto; background: transparent; color: inherit; font-weight: 700; line-height: 1.2; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-selected .lsfc-day-price,
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-selected .lsfc-day-price.is-low { color: #fff; font-weight: 600; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-range-start { border-radius: 10px 0 0 10px; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-day.is-range-end { border-radius: 0 10px 10px 0; }
/* Chú thích lễ + chú thích giá */
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-holidays { margin-top: 8px; padding: 9px 0 0; border-top: 1px solid #f1f2f4; gap: 6px 8px; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-holiday-item { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; background: #fff4f4; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-holiday-item .lsfc-h-day { color: #d93025; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-holiday-item .lsfc-h-name { color: #4b5563; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-legend { margin-top: 8px; padding: 9px 0 0; border-top: 1px solid #f1f2f4; gap: 8px; color: #6b7280; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-holidays + .lsfc-legend { margin-top: 8px; padding-top: 0; border-top: 0; }
.lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-legend-dot { width: 8px; height: 8px; border-radius: 50%; background: #0e8a4f; }
@media (min-width: 768px) {
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) {
        width: 720px; padding: 16px 22px 12px; border: 1px solid #eef0f3; border-radius: 16px;
        box-shadow: 0 18px 48px rgba(17, 24, 39, .16), 0 2px 8px rgba(17, 24, 39, .06);
    }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-months { gap: 28px; padding: 0; }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-month-title { margin-bottom: 6px; line-height: 34px; }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-prev,
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-next {
        position: absolute; top: 0; z-index: 2; width: 34px; height: 34px; margin-top: 0;
        border: 1px solid #e5e7eb; background: #fff; color: #374151; font-size: 18px; line-height: 1;
        box-shadow: 0 1px 2px rgba(17, 24, 39, .06); transition: border-color .15s, background .15s, color .15s;
    }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-prev { left: 0; }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-next { right: 0; }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-prev:hover:not(:disabled),
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-next:hover:not(:disabled) { border-color: var(--c-primary); background: #fff5fa; color: var(--c-primary); }
    .lsfc-popup:not(.lsfc-range):not(.lsfc-single) .lsfc-prev:disabled { opacity: .35; cursor: default; }
}
