.skw-range-picker {
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: .85rem;
  background: #fff;
  box-shadow:
    0 24px 64px rgba(15, 23, 42, .16),
    0 4px 14px rgba(15, 23, 42, .08);
  font-size: .72rem;
  z-index: 1085;
  max-width: min(calc(100vw - 1rem), 35.5rem);
  padding: .28rem;
  overflow: hidden;
}

.skw-range-picker .calendar-table {
  border: 0;
  background: transparent;
}

.skw-range-picker .calendar-table td.skw-range-picker__date--has-workload {
  position: relative;
  padding-bottom: .36rem;
}

.skw-range-picker__workload-indicators {
  position: absolute;
  bottom: .13rem;
  left: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .1rem;
  transform: translateX(-50%);
}

.skw-range-picker__workload-indicators i {
  display: block;
  flex: 0 0 .22rem;
  width: .22rem;
  height: .22rem;
  border-radius: 50%;
  background: #2454e6;
}

.skw-range-picker__workload-indicators i.is-green { background: #2ca05a; }
.skw-range-picker__workload-indicators i.is-violet { background: #7b4ce2; }
.skw-range-picker__workload-indicators i.is-orange { background: #f59e0b; }
.skw-range-picker__workload-indicators i.is-red { background: #e43d45; }

.skw-range-picker .drp-calendar {
  box-sizing: border-box;
  width: 50%;
  min-width: 17rem;
  max-width: none;
  background: transparent;
}

.skw-range-picker .drp-calendar.left {
  border-right: 1px solid rgba(148, 163, 184, .12);
}

.skw-range-picker__view-switch {
  display: flex;
  gap: .14rem;
  clear: both;
  margin: .2rem .3rem .32rem;
  padding: .14rem;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: .44rem;
  background: #f8fafc;
}

.skw-range-picker__view-switch.is-single-view {
  display: flex;
}

.skw-range-picker__view-switch button,
.skw-range-picker__period-grid button {
  min-width: 0;
  border: 0;
  background: transparent;
  color: #64748b;
  font: inherit;
  font-size: .58rem;
  font-weight: 700;
  line-height: 1;
}

.skw-range-picker__view-switch button {
  flex: 1 1 0;
  min-height: 1.35rem;
  padding: .2rem .25rem;
  border-radius: .32rem;
}

.skw-range-picker__view-switch button:hover,
.skw-range-picker__period-grid button:hover {
  color: #2454e6;
}

.skw-range-picker__view-switch button.is-active {
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
  color: #2454e6;
}

.skw-range-picker__period-grid {
  display: none;
  padding: .14rem .3rem .36rem;
}

.skw-range-picker__period-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .22rem;
}

.skw-range-picker__year-nav {
  display: grid;
  grid-template-columns: 1.45rem minmax(0, 1fr) 1.45rem;
  align-items: center;
  gap: .25rem;
  margin-bottom: .3rem;
  color: #64748b;
  font-size: .59rem;
  font-weight: 700;
  text-align: center;
}

.skw-range-picker__year-nav button {
  width: 1.45rem;
  height: 1.45rem;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 50%;
  background: #fff;
  color: #475569;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}

.skw-range-picker__year-nav button:hover {
  border-color: rgba(36, 84, 230, .32);
  background: rgba(36, 84, 230, .06);
  color: #2454e6;
}

.skw-range-picker .drp-calendar.skw-range-picker__calendar--period .calendar-table {
  display: none;
}

.skw-range-picker .drp-calendar.skw-range-picker__calendar--period .skw-range-picker__period-grid {
  display: block;
}

.skw-range-picker__period-year {
  display: grid;
  grid-template-columns: 1.45rem minmax(0, 1fr) 1.45rem;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  margin-bottom: .3rem;
  width: 100%;
}

.skw-range-picker__period-year select,
.skw-range-picker__period-year input {
  width: 100%;
  min-height: 1.55rem;
  padding: .12rem .38rem;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: .38rem;
  background: #fff;
  color: #1f2a5a;
  font: inherit;
  font-size: .62rem;
  font-weight: 700;
}

.skw-range-picker__period-year-field {
  position: relative;
  min-width: 0;
}

.skw-range-picker__period-year-menu {
  position: absolute;
  z-index: 3;
  top: calc(100% + .18rem);
  left: 0;
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .14rem;
  width: 100%;
  padding: .18rem;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: .32rem;
  background: #fff;
  box-shadow: 0 .4rem .9rem rgba(15, 23, 42, .12);
}

.skw-range-picker__period-year-field.is-open .skw-range-picker__period-year-menu {
  display: grid;
}

.skw-range-picker__period-year-menu button {
  width: 100%;
  height: 1.25rem;
  padding: 0 .2rem;
  border: 0;
  border-radius: .2rem;
  background: transparent;
  color: #475569;
  font: inherit;
  font-size: .58rem;
  font-weight: 700;
  line-height: 1;
}

.skw-range-picker__period-year-menu button:hover {
  background: rgba(36, 84, 230, .08);
  color: #2454e6;
}

.skw-range-picker__period-year input::-webkit-inner-spin-button,
.skw-range-picker__period-year input::-webkit-outer-spin-button {
  margin: 0;
}

.skw-range-picker__period-year > button {
  width: 1.45rem;
  height: 1.45rem;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 50%;
  background: #fff;
  color: #475569;
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
}

.skw-range-picker__period-year > button:hover {
  border-color: rgba(36, 84, 230, .32);
  background: rgba(36, 84, 230, .06);
  color: #2454e6;
}

.skw-range-picker__period-grid button {
  min-height: 1.72rem;
  padding: .22rem;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: .42rem;
  background: #fff;
  color: #334155;
}

.skw-range-picker__period-grid button:hover {
  border-color: rgba(36, 84, 230, .32);
  background: rgba(36, 84, 230, .06);
}

.skw-range-picker__period-grid button.is-in-range {
  border-color: transparent;
  background: rgba(36, 84, 230, .12);
  color: #1f2a5a;
}

.skw-range-picker__period-grid button.is-start,
.skw-range-picker__period-grid button.is-end {
  border-color: #2454e6;
  background: #2454e6;
  box-shadow: 0 6px 14px rgba(36, 84, 230, .2);
  color: #fff;
}

.skw-range-picker .drp-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .45rem;
  margin-top: .08rem;
  padding: .45rem .45rem .2rem;
  border-top: 1px solid rgba(148, 163, 184, .14);
  background: #f8fafc;
}

.skw-range-picker .drp-selected {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: 0 .56rem;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  color: #334155;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.skw-range-picker .drp-calendar.left .calendar-table,
.skw-range-picker .drp-calendar.right .calendar-table {
  padding: 0;
}

.skw-range-picker .calendar-table table {
  margin: 0;
  border-collapse: separate;
  border-spacing: .08rem;
}

.skw-range-picker .calendar-table td.disabled {
  visibility: hidden;
  pointer-events: none;
}

.skw-range-picker .calendar-table .table-condensed thead th {
  padding-top: .1rem;
  padding-bottom: .1rem;
  color: #64748b;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.skw-range-picker .calendar-table .month {
  padding: .08rem .18rem .24rem;
  color: #1f2a5a;
  font-size: .7rem;
  font-weight: 700;
}

.skw-range-picker .calendar-table .month select {
  min-height: 1.48rem;
  margin: 0 .08rem;
  padding: .08rem 1rem .08rem .38rem;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: .42rem;
  background-color: rgba(255, 255, 255, .94);
  box-shadow: none;
  color: #1f2a5a;
  font-size: .62rem;
  font-weight: 600;
  line-height: 1.2;
  vertical-align: middle;
  appearance: auto;
}

.skw-range-picker .calendar-table .month select:hover {
  border-color: rgba(36, 84, 230, .26);
  background: #fff;
}

.skw-range-picker .calendar-table .month select:focus {
  border-color: rgba(36, 84, 230, .42);
  outline: 0;
  box-shadow: 0 0 0 .12rem rgba(36, 84, 230, .08);
}

.skw-range-picker .calendar-table th.prev,
.skw-range-picker .calendar-table th.next {
  position: relative;
  width: 1.8rem;
  min-width: 1.8rem;
  max-width: 1.8rem;
  height: 1.42rem;
  line-height: 1.42rem;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: .8rem;
  background: rgba(255, 255, 255, .82);
  color: #64748b;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}

.skw-range-picker .calendar-table th.prev:hover,
.skw-range-picker .calendar-table th.next:hover {
  background: #f1f5ff;
  border-color: rgba(36, 84, 230, .18);
  color: #2454e6;
  transform: translateY(-1px);
}

.skw-range-picker .calendar-table th.prev span,
.skw-range-picker .calendar-table th.next span {
  display: none;
}

.skw-range-picker .calendar-table th.prev::before,
.skw-range-picker .calendar-table th.next::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: .42rem;
  height: .42rem;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}

.skw-range-picker .calendar-table th.prev::before {
  transform: translate(-38%, -50%) rotate(-135deg);
}

.skw-range-picker .calendar-table th.next::before {
  transform: translate(-62%, -50%) rotate(45deg);
}

.skw-range-picker td,
.skw-range-picker th {
  width: 1.72rem;
  height: 1.72rem;
  min-width: 1.72rem;
  line-height: 1.72rem;
  border-radius: .48rem;
  font-size: .64rem;
}

.skw-range-picker td.available {
  color: #0f172a;
  font-weight: 600;
  transition: background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.skw-range-picker td.available:hover {
  background: rgba(36, 84, 230, .08);
  color: #1d4ed8;
  transform: translateY(-1px);
}

.skw-range-picker td.off,
.skw-range-picker td.off.end-date,
.skw-range-picker td.off.in-range,
.skw-range-picker td.off.start-date {
  color: #c0cad8;
}

.skw-range-picker td.today {
  position: relative;
  color: #1d4ed8;
  font-weight: 800;
}

.skw-range-picker td.today::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: .18rem;
  width: .2rem;
  height: .2rem;
  border-radius: 50%;
  background: currentColor;
  transform: translateX(-50%);
}

.skw-range-picker td.active,
.skw-range-picker td.active:hover,
.skw-range-picker .ranges li.active {
  background: #2454e6;
  box-shadow: 0 10px 22px rgba(36, 84, 230, .28);
}

.skw-range-picker td.in-range {
  background: rgba(36, 84, 230, .12);
  color: #1f2a5a;
}

.skw-range-picker td.start-date,
.skw-range-picker td.end-date {
  color: #fff;
  font-weight: 700;
}

.skw-range-picker .drp-buttons .btn,
.skw-range-picker .drp-buttons button {
  min-width: 4.7rem;
  min-height: 1.7rem;
  padding: .26rem .68rem;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: .52rem;
  font-size: .62rem;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.skw-range-picker .drp-buttons .cancelBtn {
  background: #fff;
  color: #475569;
}

.skw-range-picker .drp-buttons .cancelBtn:hover {
  border-color: rgba(148, 163, 184, .3);
  background: #f8fafc;
  color: #0f172a;
}

.skw-range-picker .drp-buttons .applyBtn {
  border-color: #2454e6;
  background: #2454e6;
  color: #fff;
  box-shadow: 0 10px 20px rgba(36, 84, 230, .22);
}

.skw-range-picker .drp-buttons .applyBtn:hover,
.skw-range-picker .drp-buttons .applyBtn:focus {
  border-color: #1f49c8;
  background: #1f49c8;
  color: #fff;
  transform: translateY(-1px);
}

.skw-range-picker .drp-buttons .applyBtn:disabled {
  border-color: rgba(148, 163, 184, .18);
  background: #dbe4f3;
  color: #94a3b8;
  box-shadow: none;
  transform: none;
}

@media (max-width: 767.98px) {
  .skw-range-picker {
    width: min(calc(100vw - 1rem), 18.9rem);
    padding: .22rem;
  }

  .skw-range-picker .drp-calendar.left,
  .skw-range-picker .drp-calendar.right {
    float: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .skw-range-picker .drp-calendar.left {
    border-right: 0;
    border-bottom: 1px solid rgba(148, 163, 184, .12);
  }

  .skw-range-picker .drp-calendar.right {
    margin-top: 0;
  }

  .skw-range-picker td,
  .skw-range-picker th {
    width: 1.6rem;
    height: 1.6rem;
    min-width: 1.6rem;
    line-height: 1.6rem;
    font-size: .61rem;
  }

  .skw-range-picker .drp-buttons {
    flex-wrap: wrap;
  }

  .skw-range-picker .drp-selected {
    width: 100%;
    justify-content: center;
  }
}

html[data-color-theme="dark"] .skw-range-picker {
  border-color: rgba(148, 163, 184, .2);
  background: #162031;
  box-shadow: 0 20px 44px rgba(2, 6, 23, .4);
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table,
html[data-color-theme="dark"] .skw-range-picker .drp-calendar,
html[data-color-theme="dark"] .skw-range-picker .drp-buttons {
  background: transparent;
  border-color: rgba(148, 163, 184, .18);
  color: #e2e8f0;
}

html[data-color-theme="dark"] .skw-range-picker .drp-calendar.left {
  border-right-color: rgba(148, 163, 184, .14);
}

html[data-color-theme="dark"] .skw-range-picker__view-switch {
  border-color: rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .56);
}

html[data-color-theme="dark"] .skw-range-picker__view-switch button.is-active,
html[data-color-theme="dark"] .skw-range-picker__period-grid button {
  background: rgba(30, 41, 59, .92);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker__period-grid button {
  border-color: rgba(148, 163, 184, .18);
}

html[data-color-theme="dark"] .skw-range-picker__period-year select,
html[data-color-theme="dark"] .skw-range-picker__period-year input {
  border-color: rgba(148, 163, 184, .2);
  background: rgba(30, 41, 59, .92);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker__year-nav {
  color: #94a3b8;
}

html[data-color-theme="dark"] .skw-range-picker__year-nav button {
  border-color: rgba(148, 163, 184, .2);
  background: rgba(30, 41, 59, .92);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker__period-grid button.is-in-range {
  background: rgba(59, 130, 246, .2);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker__period-grid button.is-start,
html[data-color-theme="dark"] .skw-range-picker__period-grid button.is-end {
  border-color: #3b82f6;
  background: #2563eb;
  color: #fff;
}

html[data-color-theme="dark"] .skw-range-picker .drp-selected {
  border-color: rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .68);
  color: #e2e8f0;
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table .month {
  color: #e2e8f0;
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table .month select {
  border-color: rgba(148, 163, 184, .2);
  background: rgba(15, 23, 42, .86);
  color: #e2e8f0;
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table .month select:hover {
  border-color: rgba(96, 165, 250, .28);
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table .month select:focus {
  border-color: rgba(96, 165, 250, .4);
  box-shadow: 0 0 0 .12rem rgba(96, 165, 250, .1);
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table th.prev,
html[data-color-theme="dark"] .skw-range-picker .calendar-table th.next {
  border-color: rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .82);
  color: #94a3b8;
}

html[data-color-theme="dark"] .skw-range-picker .calendar-table th.prev:hover,
html[data-color-theme="dark"] .skw-range-picker .calendar-table th.next:hover {
  background: rgba(36, 84, 230, .18);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker td.off,
html[data-color-theme="dark"] .skw-range-picker td.off.in-range,
html[data-color-theme="dark"] .skw-range-picker td.off.start-date,
html[data-color-theme="dark"] .skw-range-picker td.off.end-date {
  background: transparent;
  color: #64748b;
}

html[data-color-theme="dark"] .skw-range-picker td.available {
  color: #e2e8f0;
}

html[data-color-theme="dark"] .skw-range-picker td.available:hover {
  background: rgba(59, 130, 246, .16);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker td.in-range {
  background: rgba(59, 130, 246, .18);
  color: #dbeafe;
}

html[data-color-theme="dark"] .skw-range-picker .drp-buttons .cancelBtn {
  border-color: rgba(148, 163, 184, .22);
  background: rgba(15, 23, 42, .82);
  color: #cbd5e1;
}

html[data-color-theme="dark"] .skw-range-picker .drp-buttons .cancelBtn:hover {
  background: rgba(30, 41, 59, .92);
  color: #fff;
}
