/*!
 * @quasar/quasar-ui-qcalendar v4.1.2
 * (c) 2025 Jeff Galbraith <jeff@quasar.dev>
 * Released under the MIT License.
 */
.q-calendar {
  position: relative;
  display: flex;
  flex-direction: column;
  color: var(--calendar-color);
  background: var(--calendar-background);
  width: 100%;
  min-width: auto;
  overflow: hidden;
}
.q-calendar__bordered {
  border: var(--calendar-border);
}
.q-calendar__button {
  display: inline-block;
  flex-direction: row;
  align-items: center;
  position: relative;
  outline: 0;
  border: 0;
  vertical-align: middle;
  padding: 0;
  font-size: 0.75em;
  line-height: 1.715em;
  text-decoration: none;
  color: inherit;
  background: transparent;
  text-transform: uppercase;
  text-align: center;
  width: auto;
  height: auto;
  min-height: 2em;
  min-width: 2em;
  will-change: background;
  transition: background 0.3s;
}
.q-calendar__button--rounded {
  border-radius: 6px;
}
.q-calendar__button--round {
  border-radius: 50%;
}
.q-calendar__button--bordered {
  border: var(--calendar-border);
}
.q-calendar__left {
  text-align: left !important;
  justify-content: flex-start;
}
.q-calendar__center {
  text-align: center !important;
  justify-content: center;
}
.q-calendar__right {
  text-align: right !important;
  justify-content: flex-end;
}
.q-calendar__justify {
  justify-content: space-between !important;
}
.q-calendar__header--inline {
  display: flex;
  flex: 1 0 0;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
}
.q-calendar__ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.q-calendar__overflow-wrap {
  overflow-wrap: break-word;
  overflow: hidden;
}
.q-calendar__parent {
  transition: transform 0.3s;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 2px;
  width: 2px;
  height: 2px;
  cursor: pointer;
}
.q-calendar__parent--expanded {
  margin: 0 2px;
  transform: rotate(-135deg);
}
.q-calendar__parent--collapsed {
  margin: 0 2px;
  transform: rotate(45deg);
}
.q-calendar__child {
  position: relative;
  transition: max-height 0.28s linear;
}
.q-calendar__child--expanded {
  max-height: 800px;
  height: auto;
}
.q-calendar__child--collapsed {
  max-height: 0;
  overflow-y: hidden;
}
.q-calendar__focusable, .q-calendar__manual-focusable, .q-calendar__hoverable {
  outline: 0;
}
.q-calendar__focus-helper {
  position: absolute;
  top: 0;
  left: 0; /* rtl:ignore */
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.4s cubic-bezier(0.25, 0.8, 0.5, 1);
}
.q-calendar__focus-helper:before, .q-calendar__focus-helper:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0; /* rtl:ignore */
  width: 100%;
  height: 100%;
  opacity: 0;
  border-radius: inherit;
  transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.6s cubic-bezier(0.25, 0.8, 0.5, 1);
}
.q-calendar__focus-helper:before {
  background: #000;
}
.q-calendar__focus-helper:after {
  background: #fff;
}
.q-calendar__focus-helper--rounded {
  border-radius: 6px;
}
.q-calendar__focus-helper--round {
  border-radius: 50%;
}
.q-calendar__focusable:focus > .q-calendar__focus-helper, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper, .q-calendar__hoverable:hover > .q-calendar__focus-helper {
  background: currentColor;
  opacity: 0.15;
}
.q-calendar__focusable:focus > .q-calendar__focus-helper:before, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper:before, .q-calendar__hoverable:hover > .q-calendar__focus-helper:before {
  opacity: 0.1;
}
.q-calendar__focusable:focus > .q-calendar__focus-helper:after, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper:after, .q-calendar__hoverable:hover > .q-calendar__focus-helper:after {
  opacity: 0.4;
}
.q-calendar__focusable:focus > .q-calendar__focus-helper, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper {
  opacity: 0.22;
}
.q-calendar .disabled,
.q-calendar .disabled *,
.q-calendar [disabled],
.q-calendar [disabled] * {
  outline: 0 !important;
  cursor: not-allowed !important;
}
.q-calendar .disabled,
.q-calendar [disabled] {
  opacity: 0.6 !important;
}

.q-calendar {
  color: var(--calendar-color);
  background: var(--calendar-background);
}
.q-calendar .q-calendar__scroll::-webkit-scrollbar {
  width: var(--calendar-scrollbar-width-height);
  height: var(--calendar-scrollbar-width-height);
}
.q-calendar .q-calendar__scroll::-webkit-scrollbar-track {
  background: var(--calendar-scrollbar-track);
  box-shadow: inset 0 0 4px var(--calendar-scrollbar-track);
}
.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner {
  background: var(--calendar-scrollbar-track);
}
.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb {
  background: var(--calendar-scrollbar-thumb);
  border-radius: 5px;
}
.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover {
  background: var(--calendar-scrollbar-thumb-hover);
}

.q-dark div.q-calendar,
.body--dark div.q-calendar,
.q-calendar--dark.q-calendar {
  color: var(--calendar-color-dark);
  background: var(--calendar-background-dark);
}
.q-dark div.q-calendar__bordered,
.body--dark div.q-calendar__bordered,
.q-calendar--dark.q-calendar__bordered {
  border: var(--calendar-border-dark);
}
.q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar,
.body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar,
.q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar {
  width: var(--calendar-scrollbar-width-height);
  height: var(--calendar-scrollbar-width-height);
}
.q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-track,
.body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-track,
.q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-track {
  background: var(--calendar-scrollbar-track-dark);
  box-shadow: inset 0 0 4px var(--calendar-scrollbar-track-dark);
}
.q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner,
.body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner,
.q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner {
  background: var(--calendar-scrollbar-track-dark);
}
.q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb,
.body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb,
.q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb {
  background: var(--calendar-scrollbar-thumb-dark);
  border-radius: 5px;
}
.q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover,
.body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover,
.q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover {
  background: var(--calendar-scrollbar-thumb-hover-dark);
}

.q-calendar-task {
  display: flex;
  flex: 1;
  flex-direction: column;
  flex-wrap: nowrap;
  height: 100%;
  width: 100%;
}
.q-calendar-task__head {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: column;
}
.q-calendar-task__head--tasks {
  position: relative;
  display: flex;
}
.q-calendar-task__head--days {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  -webkit-user-select: none;
          user-select: none;
  font-size: 1rem;
}
.q-calendar-task__head--day {
  position: relative;
  flex: 1 1 100%;
  flex-wrap: nowrap;
  overflow: hidden;
  width: 0;
  outline: 0;
}
.q-calendar-task__title {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
}
.q-calendar-task__title--task {
  position: relative;
  display: flex;
}
.q-calendar-task__title--days {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  -webkit-user-select: none;
          user-select: none;
  font-size: 1rem;
}
.q-calendar-task__title--day {
  position: relative;
  flex: 1 1 100%;
  flex-wrap: nowrap;
  overflow: hidden;
  width: 0;
  outline: 0;
}
.q-calendar-task__head--weekday, .q-calendar-task__head--date {
  display: flex;
  flex-wrap: nowrap;
  -webkit-user-select: none;
          user-select: none;
  margin: 2px;
  flex: 1 0 0;
}
.q-calendar-task__container {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
}
.q-calendar-task__body {
  position: relative;
  display: flex;
  flex: 1 1 60%;
  overflow: hidden;
}
.q-calendar-task__scroll-area {
  overflow: auto;
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;
}
.q-calendar-task__task {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
  width: 100%;
}
.q-calendar-task__task--section {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
  width: 100%;
}
.q-calendar-task__task--container {
  position: relative;
  min-height: 22px;
}
.q-calendar-task__task--item {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
}
.q-calendar-task__task--days-row {
  position: relative;
  display: flex;
  flex: none;
}
.q-calendar-task__task--day {
  display: flex;
  justify-content: center;
  align-items: center;
}
.q-calendar-task__footer {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: column;
}
.q-calendar-task__footer--wrapper {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
}
.q-calendar-task__footer--task, .q-calendar-task__footer--day-wrapper {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: row;
}

.q-calendar-task__head.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  top: 0;
  z-index: 2;
}

.q-calendar-task__head--tasks.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  top: 0;
  z-index: 2;
}

.q-calendar-task__title--task.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  top: 0;
  z-index: 2;
}

.q-calendar-task__task--container.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  z-index: 1;
}

.q-calendar-task__task--item.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  z-index: 1;
}

.q-calendar-task__footer.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  bottom: 0;
  z-index: 1;
}

.q-calendar-task__footer--task.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  bottom: 0;
  z-index: 2;
}

.q-calendar-task__footer--day.q-calendar__sticky {
  position: sticky;
  left: 0; /* rtl:ignore */
  z-index: 2;
}

.q-calendar-task__head {
  color: var(--calendar-color);
  background: var(--calendar-background);
  border-bottom: var(--calendar-border);
  font-weight: var(--calendar-head-font-weight);
}
.q-calendar-task__head--tasks {
  color: var(--calendar-color);
  background: var(--calendar-background);
  border-right: var(--calendar-border);
}
.q-calendar-task__head--day {
  border-right: var(--calendar-border);
}
.q-calendar-task__head--day:last-child {
  border-right: none;
}
.q-calendar-task__head--day.q-active-date .q-calendar__button {
  color: var(--calendar-active-date-color);
  background: var(--calendar-active-date-background);
}
.q-calendar-task__head--day.q-current-day .q-calendar__button {
  border: var(--calendar-border-current);
}
.q-calendar-task__head--day.q-disabled-day {
  color: var(--calendar-disabled-date-color);
  background: var(--calendar-disabled-date-background) !important;
}
.q-calendar-task__title {
  color: var(--calendar-color);
  background: var(--calendar-background);
  border-top: var(--calendar-border);
}
.q-calendar-task__title--task {
  color: var(--calendar-color);
  background: var(--calendar-background);
  border-right: var(--calendar-border);
}
.q-calendar-task__title--day {
  border-right: var(--calendar-border);
}
.q-calendar-task__title--day:last-child {
  border-right: none;
}
.q-calendar-task__title--day.q-disabled-day {
  color: var(--calendar-disabled-date-color);
  background: var(--calendar-disabled-date-background) !important;
}
.q-calendar-task__task {
  border-bottom: var(--calendar-border);
}
.q-calendar-task__task:last-child {
  border-bottom: none !important;
}
.q-calendar-task__task--section {
  border-bottom: var(--calendar-border-section);
}
.q-calendar-task__task--item {
  background: var(--calendar-background);
  border-right: var(--calendar-border);
}
.q-calendar-task__task--day {
  border-right: var(--calendar-border);
}
.q-calendar-task__task--day:last-child {
  border-right: none;
}
.q-calendar-task__footer {
  font-weight: var(--calendar-head-font-weight);
}
.q-calendar-task__footer--wrapper {
  border-top: var(--calendar-border);
}
.q-calendar-task__footer--task {
  background: var(--calendar-background);
  border-right: var(--calendar-border);
}
.q-calendar-task__footer--day {
  background: var(--calendar-background);
  border-right: var(--calendar-border);
}
.q-calendar-task__footer--day:last-child {
  border-right: none;
}

.q-dark div .q-calendar-task__head,
.body--dark div .q-calendar-task__head,
.q-calendar--dark .q-calendar-task__head {
  color: var(--calendar-color-dark);
  background: var(--calendar-background-dark);
  border-bottom: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__head--tasks,
.body--dark div .q-calendar-task__head--tasks,
.q-calendar--dark .q-calendar-task__head--tasks {
  color: var(--calendar-color-dark);
  background: var(--calendar-background-dark);
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__head--day,
.body--dark div .q-calendar-task__head--day,
.q-calendar--dark .q-calendar-task__head--day {
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__head--day.q-active-date .q-calendar__button,
.body--dark div .q-calendar-task__head--day.q-active-date .q-calendar__button,
.q-calendar--dark .q-calendar-task__head--day.q-active-date .q-calendar__button {
  color: var(--calendar-active-date-color-dark);
  background: var(--calendar-active-date-background-dark);
}
.q-dark div .q-calendar-task__head--day.q-current-day .q-calendar__button,
.body--dark div .q-calendar-task__head--day.q-current-day .q-calendar__button,
.q-calendar--dark .q-calendar-task__head--day.q-current-day .q-calendar__button {
  border: var(--calendar-border-current-dark);
}
.q-dark div .q-calendar-task__head--day.q-disabled-day,
.body--dark div .q-calendar-task__head--day.q-disabled-day,
.q-calendar--dark .q-calendar-task__head--day.q-disabled-day {
  color: var(--calendar-disabled-date-color-dark);
  background: var(--calendar-disabled-date-background-dark) !important;
}
.q-dark div .q-calendar-task__title,
.body--dark div .q-calendar-task__title,
.q-calendar--dark .q-calendar-task__title {
  color: var(--calendar-color-dark);
  background: var(--calendar-background-dark);
  border-top: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__title--task,
.body--dark div .q-calendar-task__title--task,
.q-calendar--dark .q-calendar-task__title--task {
  color: var(--calendar-color-dark);
  background: var(--calendar-background-dark);
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__title--day,
.body--dark div .q-calendar-task__title--day,
.q-calendar--dark .q-calendar-task__title--day {
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__title--day.q-disabled-day,
.body--dark div .q-calendar-task__title--day.q-disabled-day,
.q-calendar--dark .q-calendar-task__title--day.q-disabled-day {
  color: var(--calendar-disabled-date-color-dark);
  background: var(--calendar-disabled-date-background-dark) !important;
}
.q-dark div .q-calendar-task__task,
.body--dark div .q-calendar-task__task,
.q-calendar--dark .q-calendar-task__task {
  border-bottom: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__task--section,
.body--dark div .q-calendar-task__task--section,
.q-calendar--dark .q-calendar-task__task--section {
  border-bottom: var(--calendar-border-section-dark);
}
.q-dark div .q-calendar-task__task--item,
.body--dark div .q-calendar-task__task--item,
.q-calendar--dark .q-calendar-task__task--item {
  background: var(--calendar-background-dark);
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__task--day,
.body--dark div .q-calendar-task__task--day,
.q-calendar--dark .q-calendar-task__task--day {
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__footer--wrapper,
.body--dark div .q-calendar-task__footer--wrapper,
.q-calendar--dark .q-calendar-task__footer--wrapper {
  border-top: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__footer--task,
.body--dark div .q-calendar-task__footer--task,
.q-calendar--dark .q-calendar-task__footer--task {
  background: var(--calendar-background-dark);
  border-right: var(--calendar-border-dark);
}
.q-dark div .q-calendar-task__footer--day,
.body--dark div .q-calendar-task__footer--day,
.q-calendar--dark .q-calendar-task__footer--day {
  background: var(--calendar-background-dark);
  border-right: var(--calendar-border-dark);
}