/* ============================================================
   SkyTravel mobile native full-screen calendar
   ============================================================ */
@media (max-width: 767px) {
  html.sky-mobile-calendar-lock,
  body.sky-mobile-calendar-lock {
    overflow: hidden !important;
  }

  .sky-mobile-calendar {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: #ffffff;
    color: #0b2545;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }

  .sky-mobile-calendar.is-open {
    display: block;
  }

  .sky-mobile-calendar-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background: #ffffff;
  }

  .sky-mobile-calendar-header {
    flex: 0 0 auto;
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr 56px;
    align-items: center;
    min-height: 56px;
    padding-top: env(safe-area-inset-top);
    border-bottom: 1px solid #edf0f5;
    background: #ffffff;
  }

  .sky-mobile-calendar-close {
    width: 56px;
    height: 56px;
    border: 0;
    background: transparent;
    color: #09244a;
    font-size: 32px;
    line-height: 1;
    font-weight: 300;
  }

  .sky-mobile-calendar-title {
    text-align: center;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
    color: #071f44;
  }

  .sky-mobile-calendar-weekdays {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    align-items: center;
    min-height: 48px;
    padding: 0 14px;
    border-bottom: 1px solid #edf0f5;
    background: #ffffff;
  }

  .sky-mobile-calendar-weekday {
    text-align: center;
    font-size: 14px;
    line-height: 1;
    color: #637083;
  }

  .sky-mobile-calendar-weekday.is-sunday {
    color: #ff3b30;
  }

  .sky-mobile-calendar-weekday.is-saturday {
    color: #2f63ff;
  }

  .sky-mobile-calendar-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 12px 18px;
    overscroll-behavior: contain;
    background: #ffffff;
  }

  .sky-mobile-calendar-month {
    padding: 14px 0 10px;
    border-bottom: 1px solid #edf0f5;
  }

  .sky-mobile-calendar-month:last-child {
    border-bottom: 0;
  }

  .sky-mobile-calendar-month-title {
    margin: 0 0 14px;
    text-align: center;
    font-size: 17px;
    line-height: 1.3;
    font-weight: 700;
    color: #071f44;
  }

  .sky-mobile-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    row-gap: 8px;
  }

  .sky-mobile-calendar-empty {
    min-height: 42px;
  }

  .sky-mobile-calendar-day {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #0b2545;
    font-size: 16px;
    line-height: 1;
    appearance: none;
    -webkit-appearance: none;
  }

  .sky-mobile-calendar-day-number {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
  }

  .sky-mobile-calendar-day.is-disabled {
    color: #c5ccd6;
  }

  .sky-mobile-calendar-day.is-in-range,
  .sky-mobile-calendar-day.is-range-start,
  .sky-mobile-calendar-day.is-range-end {
    background: #e7f1ff;
  }

  .sky-mobile-calendar-day.is-range-start {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
  }

  .sky-mobile-calendar-day.is-range-end {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
  }

  .sky-mobile-calendar-day.is-selected {
    background: transparent;
  }

  .sky-mobile-calendar-day.is-selected .sky-mobile-calendar-day-number {
    background: #2f63ff;
    color: #ffffff;
    font-weight: 700;
  }

  .sky-mobile-calendar-footer {
    flex: 0 0 auto;
    padding: 10px 12px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid #edf0f5;
    background: #ffffff;
    box-shadow: 0 -8px 18px rgba(15, 35, 68, 0.04);
  }

  .sky-mobile-calendar-selected {
    display: grid;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
  }

  .sky-mobile-calendar-selected.is-range-mode {
    grid-template-columns: 1fr 1fr;
  }

  .sky-mobile-calendar-selected.is-single-mode {
    grid-template-columns: minmax(160px, 1fr);
    justify-content: center;
    max-width: 260px;
    margin-left: auto;
    margin-right: auto;
  }

  .sky-mobile-calendar-selected-item {
    min-width: 0;
    text-align: center;
  }

  .sky-mobile-calendar-selected-label {
    margin-bottom: 4px;
    font-size: 12px;
    line-height: 1.2;
    color: #516173;
  }

  .sky-mobile-calendar-selected-value {
    min-height: 24px;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 700;
    color: #071f44;
  }

  .sky-mobile-calendar-ok {
    width: 100%;
    height: 50px;
    border: 0;
    border-radius: 6px;
    background: #2f63ff;
    color: #ffffff;
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
  }

  .sky-mobile-calendar-ok:disabled {
    opacity: 0.42;
  }
}
