/**
 * former templates/default/app.css
 */
/*Media print classes*/
@media print {
  #calendar-view.et2_container,
  #calendar-planner.et2_container,
  #calendar-list.et2_container {
    position: static;
    height: auto !important;
  }
  #calendar-todo.et2_container {
    display: none !important;
  }
  .calendar_calDayTodos .calendar_calDayTodosTable {
    position: relative;
  }
  .calendar_plannerWidget {
    height: auto !important;
  }
  .calendar_plannerWidget .calendar_plannerHeader {
    margin-right: 2px !important;
  }
  .calendar_plannerWidget .calendar_plannerRows {
    height: auto !important;
    overflow: visible !important;
  }
  .calendar_plannerWidget .verticalBar {
    display: none;
  }
  /* Don't split a calendar week across pages */
  #calendar-view_view > tbody > tr.view_row {
    page-break-inside: avoid;
  }
  /* Try to keep it on the page */
  .calendar_calTimeGrid {
    max-height: 18cm;
    max-width: 90vw;
  }
  .calendar_calTimeGrid .calendar_calTimeGridScroll {
    overflow-y: hidden !important;
  }
  /* Let hidden user names be visible */
  #calendar-view_view.hideDayColHeader tr:not(:first-of-type) .calendar_calGridHeader > et2-description {
    position: static;
  }
  #calendar-view_view.hideDayColHeader tr:not(:first-of-type) .calendar_calGridHeader > et2-description {
    overflow: visible !important;
  }
  div.calendar_calEvent {
    opacity: 1;
    filter: opacity(0.85);
    -webkit-filter: opacity(0.85);
    border: 1px solid;
  }
  /* Make times & all day description bold for better visibility */
  div.calendar_calDayColAllDay div.calendar_calEventBodySmall,
  div.calendar_calEventHeader,
  div.calendar_calEventHeaderSmall {
    font-weight: bold;
  }
}
/**
 * Sidebox
 */
#calendar-et2_target {
  position: relative;
}
#calendar-et2_target > div {
  position: relative;
}
#calendar-sidebox_cat_id ~ * {
  vertical-align: top;
  display: inline-block;
  border: none;
  box-shadow: none;
}
.flatpickr-current-month .numInputWrapper {
  color: inherit;
}
/*overrides above for disabled et2-box*/
#calendar-sidebox_cat_id ~ et2-box[disabled] {
  display: none;
}
#calendar-sidebox_weekend {
  /* Special css styling goes here */
}
#calendar-sidebox_date div.flatpickr-calendar.inline {
  width: 100% !important;
  box-shadow: none;
}
#calendar-sidebox_date .flatpickr-day {
  font-size: 11px;
}
#calendar-sidebox_date .inRange {
  background-color: var(--row_hover);
  box-shadow: none;
}
/* Hide email in sidebox */
#calendar-sidebox_owner::part(tag__suffix) {
  display: none;
}
/* Conflict display */
.calendar_conflicts {
  max-height: 540px;
  overflow-y: auto;
}
.calendar_conflicts img {
  width: 22px;
  height: 22px;
}
.calendar_conflicts table[id*="conflicting_participants"] > tbody > tr.r .et2_label {
  /* Color for resources */
  color: blue;
}
/* Loader - hide sizing behind overlay*/
#egw-loadin-prompt_calendar::before {
  opacity: 1;
  background-color: #e6e6e6;
}
/* Space for toolbar */
#calendar-view,
#calendar-todo,
#calendar-planner,
#calendar-list {
  position: absolute;
  left: 0px;
  right: 0px;
}
#calendar-todo {
  position: absolute;
  width: 30%;
  margin-top: 0px;
  z-index: 10;
  bottom: -10px;
  height: calc(100% - 92px);
}
#calendar-view {
  width: 100%;
}
#calendar-view_view td {
  padding: 0px;
}
.calendar_inputFullWidth input {
  width: 100%;
}
/******************************************************************
 * CSS settings for the day, week and month view (timeGridWidget) *
 ******************************************************************/
/*
Names used in the "graphic" are the css classes from this file.
The function names in class uiviews have the leading cal removed and a trailing Widget added:
e.g. the div with class calendar_calTimeGrid is generated by the timeGridWidget method of uiviews.

+++ calendar_calTimeGrid +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+                #### calendar_calDayCols[12h|NoGrip] ###########################################################
+                #... calendar_calDayCol ............................. ... calendar_calDayCol ..........................
+                #.+- calendar_calDayColHeader ---------------------+. .+- calendar_calDayColHeader ------------------+.
+                #.|                                       |. .|                                    |.
+                #.+---------------------------------------+. .+------------------------------------+.
+.calendar_calTimeRowTime.#.** calendar_calEventCol ***** ** calendar_calEventCol *****. .** calendar_calEventCol ***********************.
+.              .#.*                  * *                  *. .*                                    *.
+.              .#.*                  * *                  *. .*                                    *.
+................#.*+- calendar_calEvent -----+* *                  *. .*                                    *.
+.calendar_calTimeRowTime.#.*|                |* *                  *. .*+- calendar_calEvent[Private] --------------+*.
+.              .#.*|                |* *+- calendar_calEvent -----+*. .*|                                  |*.
+.              .#.*+----------------+* *|                |*. .*|                                  |*.
+................#.*                  * *|                |*. .*|                                  |*.
+.calendar_calTimeRowTime.#.*                  * *+----------------+*. .*|                                  |*.
+.              .#.*                  * *                  *. .*+----------------------------------+*.

*/
/* custom ui-tooltip style for calendar
*/
.calendar_uitooltip {
  padding: 0px;
  position: absolute;
  border: none;
  max-height: 400px;
  z-index: 9999;
  max-width: 300px;
  -webkit-box-shadow: 0 0 5px;
  -moz-box-shadow: 0 0 5px;
  box-shadow: 0 0 5px;
}
/* Current time indicator */
.calendar_now {
  position: absolute;
  background: red;
}
.calendar_calTimeGrid .calendar_now {
  height: 2px;
  width: 100%;
  left: 0px;
}
.calendar_calTimeGridList .calendar_now {
  display: none;
}
.calendar_plannerWidget .calendar_now {
  height: 100%;
  width: 2px;
  top: 0px;
}
.calendar_size120b {
  font-size: 120%;
  font-weight: bold;
}
/* marks a day in the colum-header as today
 */
.calendar_calToday,
.calendar_calTimeGrid .calendar_calDayColHeader .calendar_calToday,
.calendar_calTimeGrid .calendar_calDayColHeader .calendar_calToday.et2_link.et2_clickable {
  background: #ffffcc;
  color: #0C5DA5;
}
.calendar_calWeek {
  background: #ffffcc;
  width: auto;
  margin: 0 auto;
  text-align: center;
}
.calendar_calMonth {
  background: #ffffcc;
  width: auto;
  margin: 0 auto;
  text-align: center;
}
/* marks a day in the colum-header as holiday
 */
.calendar_calHoliday,
.calendar_calTimeGrid .calendar_calDayColHeader .calendar_calHoliday.et2_link.et2_clickable {
  background-color: rgba(103, 159, 210, 0.5);
}
/* marks a day in the column-header additionaly as birthday of some contact,
 * it should work together with the backgrounds of calendar_calToday, calendar_calHoliday, th, row_on and row_off
 */
.calendar_calBirthday,
.calendar_calBirthday a {
  color: #626161;
}
#calendar-view .calendar_calBirthday,
#calendar-planner .calendar_plannerHeader .calendar_calBirthdayIcon {
  background-image: url(../../../node_modules/bootstrap-icons/icons/cake2.svg);
  background-repeat: no-repeat;
  background-size: 16px;
  background-position: 10px center;
}
/* Supress tooltips on holidays shown as events */
.calendar_calEventTooltip.calendar_calBirthday,
.calendar_calEventTooltip.calendar_calHoliday {
  display: none;
}
/* timeGridWidget, contains timeRow's and dayCol's
 */
.calendar_calTimeGrid {
  position: relative;
  top: 0px;
  left: 0px;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  page-break-inside: avoid;
}
.calendar_calTimeGrid .calendar_calTimeGridScroll {
  position: relative;
  bottom: 0px;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: default;
}
.calendar_calTimeGrid .calendar_calTimeLabels {
  height: 100%;
}
.calendar_calTimeGrid .loading,
.calendar_plannerWidget .loading {
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  position: absolute;
}
.calendar_calTimeGrid .loading::before,
.calendar_plannerWidget .loading::before {
  opacity: 1;
  background-color: #E6E6E6;
}
/* Timegrid that has hit a minimum size */
.calendar_calTimeGridFixed .calendar_calTimeGridScroll {
  overflow: hidden;
}
/*
Show the day headers for single week view only once.
Hide subsequent headers in week view with non-consolidated owners
*/
#calendar-view_view.hideDayColHeader tr:not(:first-of-type) .calendar_calGridHeader .calendar_calDayColHeader {
  min-height: 0.5em;
}
#calendar-view_view.hideDayColHeader tr:not(:first-of-type) .calendar_calGridHeader .calendar_calDayColHeader > div[data-date] {
  display: none;
}
#calendar-view_view.hideDayColHeader tr:first-of-type .calendar_calGridHeader > et2-description {
  position: absolute;
  top: 2em;
}
#calendar-view_view.hideDayColHeader tr:first-of-type .calendar_calGridHeader .calendar_calDayColHeader_spacer {
  height: calc(1.5em + 32px);
}
#calendar-view_view.hideDayColHeader tr .calendar_calGridHeader > et2-description {
  white-space: nowrap;
  display: block;
  position: static;
  width: calc(100% - 58px);
  margin-left: 58px;
  color: white;
  background-color: #2D6393;
  text-align: center;
  line-height: 1.5em;
  font-size: 14px;
  z-index: 35;
}
/* single row in the time-line you dont need to set a bgcolor, but you can
 */
.calendar_calTimeRow {
  width: 100%;
  /* set via inline style on runtime:
   *  height:
   *  top:
   */
}
.calendar_calTimeRow:not(.calendar_calWorkHours) {
  background-color: rgba(120, 120, 120, 0.1);
}
/* time in a timeRow
 */
.calendar_calTimeRowTime {
  padding-left: 5px;
  height: 100%;
  line-height: 14px;
  font-size: 8pt;
  text-align: left;
}
.calendar_calTimeRowTime[data-minute='0'] {
  border-top: 1px solid silver;
  background-image: none;
}
/* contains (multiple) dayCol's
 */
.calendar_calDayCols,
.calendar_calDayCols12h,
.calendar_calDayColsNoGrid {
  position: absolute;
  top: 0px;
  /*	bottom: 0px; does NOT work in IE, IE needs height: 100%! */
  height: 100%;
  left: 58px;
  right: 0px;
  white-space: nowrap;
}
/* 12h timeformat with am/pm
 */
.calendar_calDayCols12h {
  left: 65px;
}
/* no time grid --> no time column
 */
.calendar_calDayColsNoTime {
  left: 0px;
}
/* contains (multiple) eventCol's
 */
.calendar_calDayCol {
  position: absolute;
  top: 0px;
  height: 100%;
  /* set via inline style on runtime:
 *  left:
 *  width:
 */
  border-left: 1px solid silver;
  transition: none;
}
/* Calendar Id #
*/
#calendar-edit_id {
  display: inline;
}
#calendar-edit_id:before {
  content: "#";
}
/* header for the dayCol
 */
.calendar_calDayColHeader,
.calendar_calGridHeader,
.calendar_calGridHeader > div {
  font-size: 100%;
  line-height: 16px;
}
.calendar_calDayColHeader {
  display: inline-block;
  position: relative;
  vertical-align: top;
  border-right: 1px solid silver;
  height: initial;
  min-height: 2em;
  transition: none;
  z-index: 30;
  white-space: initial;
  padding-bottom: 2ex;
}
.calendar_calDayColHeader > div[data-date] {
  font-size: 14px;
  line-height: 27px;
  text-align: center;
  border-bottom: 1px solid var(--sl-color-neutral-400);
  white-space: nowrap;
  overflow: hidden;
  background-color: var(--sl-color-neutral-100);
}
.hideDayColHeader .calendar_calDayColHeader > div[data-date] {
  position: fixed;
  width: inherit;
  z-index: 100;
}
.blue_title {
  color: white !important;
  background: #2D6393 !important;
}
/* Seperate long and short day names */
.calendar_calDayColHeader > div[data-date] .short_date,
.calendar_calDayColHeader > div[data-date] .long_date {
  padding-right: 1ex;
}
.calendar_calDayColHeader > div[data-date] .short_date {
  display: none;
}
/* Keep header dates when showing one week, multiple users */
.calendar_calTimeGridFixed:not(.calendar_TimeGridNoLabel) .calendar_calDayColHeader > div.et2_clickable.et2_link {
  position: fixed;
  width: inherit;
  margin-top: -1px;
}
/* Indicators for offscreen events */
.calendar_calDayColHeader .hiddenEventBefore,
.calendar_calDayCol .hiddenEventAfter {
  width: 80%;
  left: 10%;
  position: absolute;
  border-radius: 5px;
  border: 6px solid;
  border-left: 0px;
  border-right: 0px;
  overflow: hidden;
  z-index: 40;
  cursor: pointer;
}
.calendar_calDayColHeader .hiddenEventBefore {
  height: 2px;
  bottom: -6px;
  border-top: none;
}
.calendar_calDayColHeader .hiddenEventBefore:hover {
  bottom: -20px;
  height: 16px;
  border-left: 1px;
  border-right: 1px;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  background-color: white;
}
.calendar_calDayCol .hiddenEventAfter {
  border-bottom: none;
  height: 6px;
}
.calendar_calDayCol .hiddenEventAfter:hover {
  margin-top: -20px;
  height: 20px;
  background-color: white;
}
.calendar_calTimeGridFixed .calendar_calDayCol .hiddenEventAfter:hover .calendar_calEvent {
  position: relative;
}
/* Days in a different month, but shown to fill out the week */
.calendar_calDayColHeader.calendar_differentMonth > * {
  color: #6a6a6a;
}
.calendar_calDayCol.calendar_differentMonth {
  background-color: rgba(200, 200, 200, 0.1);
}
/* Daily sortable */
.calendar_calDayColHeader .ui-sortable-handle {
  cursor: ew-resize;
}
.calendar_calDayColAllDay {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: flex-start;
  width: 100%;
  /* Set max height of all day section */
  max-height: 4.2em;
  overflow: hidden;
}
/* If more all day events than shown, show ellipsis & show all on hover */
.calendar_calDayColHeader .calendar_calDayColAllDay.overflown:hover {
  max-height: none;
  overflow: visible;
  position: absolute;
  background-color: #f0f0f0;
  z-index: 50;
  padding-bottom: 2ex;
}
.calendar_calDayColHeader .calendar_calDayColAllDay.overflown:not(:hover)::after {
  content: "\02026";
  line-height: 0.5em;
  height: 1em;
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  text-align: center;
}
.calendar_calDayColAllDay .calendar_calEventHeader {
  display: none;
}
.calendar_calDayColAllDay > .calendar_calEventBodySmall {
  white-space: nowrap;
}
.calendar_calGridHeader > div {
  position: relative;
  height: 100%;
  margin-left: 58px;
  width: initial;
  white-space: nowrap;
  border-left: 1px solid silver;
  display: flex;
  align-items: stretch;
}
#calendar-view_view.hideDayColHeader .calendar_calGridHeader > div {
  height: auto;
}
.calendar_calGridHeader > label {
  float: left;
  font-size: 14px;
  line-height: 27px;
  width: 58px;
  text-align: center;
  position: absolute;
  top: 0px;
}
.calendar_calGridHeader > span.et2_label {
  position: absolute;
  width: 55px;
}
.calendar_TimeGridNoLabel > .calendar_calGridHeader > span.et2_label {
  display: none;
}
.calendar_calDayColHeader img {
  vertical-align: middle;
}
.calendar_calWeekNavHeader,
.calendar_calMonthNavHeader {
  top: 0px;
  left: 0px;
  width: 100%;
  right: 0px;
}
.calendar_calWeekNavHeader,
.calendar_calMonthNavHeader img {
  vertical-align: middle;
}
.calendar_calViewUserNameBox {
  position: absolute;
  top: -1px;
  width: 95%;
  text-align: left;
  font-size: 120%;
  white-space: nowrap;
  border: 1px solid gray;
  height: 17px;
  left: -1px;
  padding-top: 0px;
  padding-left: 10px;
  background: #dac0c0;
}
.calendar_calViewUserName {
  font-weight: normal;
}
.calendar_calViewUserName:first-letter {
  text-transform: uppercase;
}
.calendar_calViewUserNameFirst:after {
  content: ", ";
}
/* alarm_date widget disabled class
*/
.calendar_alarm_date_display {
  display: none;
}
/*overwirte margin applied by egwGridView*/
.calendar_alarm_grid {
  margin-left: 0 !important;
}
/* header of the time-grid, eg. for the weeks in the month-view (leftmost of the day-col-headers)
 */
.calendar_calGridHeader {
  text-align: left;
  z-index: 29;
  border-bottom: 1px solid silver;
  border-top: 1px solid silver;
  min-height: 1ex;
  flex: 0 0 auto;
}
#calendar-view_view tbody.ui-sortable {
  cursor: default;
}
#calendar-view_view tbody.ui-sortable .calendar_calGridHeader {
  cursor: ns-resize;
}
#calendar-view_view tbody.ui-sortable-disabled .calendar_calGridHeader,
#calendar-view_view tbody.ui-sortable-disabled .calendar_calGridHeader label {
  cursor: pointer;
}
/* contains (multiple) events's
 */
.calendar_calEventCol {
  position: absolute;
  top: 0px;
  /*	bottom: 0px; does NOT work in IE, IE needs height: 100%! */
  height: 100%;
  /* set via inline style on runtime:
   *  left:
   *  width:
   */
}
/* contains one event: header-row & -body
 */
.calendar_calEvent {
  position: absolute;
  left: 0px;
  right: 0px;
  overflow: hidden;
  z-index: 20;
  padding-left: 6px;
  min-height: 1.2em;
  min-width: 5px;
  line-height: 1em;
  /* It is important there are no CSS transitions, it breaks resize */
  -webkit-transition: none;
  -moz-transition: none !important;
  -o-transition: none !important;
  -ms-transition: none !important;
  transition: none !important;
  opacity: 0.85;
  -moz-opacity: 0.85;
  box-sizing: border-box;
  touch-action: none;
  /* set via inline style on runtime:
   *  top: depending on startime
   *  height: depending on length
   *  border-color: depending on category
   *  background: depending on category (shade)
   *
   */
  border-color: #808080;
  background-color: #808080;
}
.calendar_calEvent:not(.rowNoView):hover {
  cursor: pointer;
}
/** Multi-line ellipsis */
.calendar_calEvent .calendar_calEventBody {
  overflow: hidden;
}
.calendar_calTimeGrid:not(.calendar_calTimeGridList) *:not(.calendar_calDayColAllDay) > .calendar_calEvent::after {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  height: 5px;
  content: "\02026";
  left: 0px;
  float: right;
  padding-bottom: 5em;
  text-indent: 5px;
  line-height: 5px;
}
/**
 * User has not accepted the invitation
 */
.calendar_calEventUnknown {
  border-color: white;
}
.calendar_calEventUnknown .calendar_calEventBody,
.calendar_calEventUnknown .calendar_calEventBodySmall {
  background-color: white !important;
}
/**
 * All participants accepted the invitation
 */
/**
 * All participants answered the invitation, but not all accepted
 */
.calendar_calEventAllAnswered {
  background-image: linear-gradient(transparent 50%, rgba(255, 255, 255, 0.8) 50%);
  background-repeat: repeat-y;
  background-size: 6px 2px;
}
/**
 * Some participants did NOT answer the invitation
 */
.calendar_calEventSomeUnknown:not(.calendar_calEventUnknown) {
  background-image: linear-gradient(transparent 50%, rgba(255, 255, 255, 0.5) 50%);
  background-repeat: repeat-y;
  background-size: 6px 5px;
}
.calendar_calEvent:not([class*=" cat_"]) {
  /* Defaults for no category, so we don't override it */
  background-color: #808080;
}
/**
 * Events in the header (all day)
 */
.calendar_calDayColHeader .calendar_calEvent {
  position: static;
  display: inline-block;
  white-space: nowrap;
  /* This determines how many per line */
  flex: 1 1 auto;
}
.calendar_calDayColHeader .calendar_calEvent .calendar_calEventBody {
  white-space: nowrap;
}
.calendar_calEventTooltip {
  padding-left: 6px;
  max-height: 400px;
  min-width: 25ex;
  overflow: auto;
}
/* Do not show icons in header, only tooltip */
.calendar_calEventTooltip .calendar_calEventIcons {
  display: inline-block;
}
.calendar_calEventTooltip .calendar_calEventCategoryIcons {
  display: inline-flex;
  padding-inline-end: var(--sl-spacing-medium);
  gap: var(--sl-spacing-2x-small);
}
.calendar_calEventTooltip .calendar_calEventBody,
.calendar_calEventTooltip .calendar_calEventBodySmall {
  padding-bottom: 1em;
}
.calendar_calEventTooltip img {
  max-width: 1.5em;
  vertical-align: middle;
  padding-left: 5px;
}
.calendar_calEventTooltip [data-videoconference] {
  cursor: pointer;
}
.calendar_calAddEvent {
  width: 100%;
  z-index: 10;
}
.calendar_calDayColHeader .calendar_calAddEvent:hover {
  background-color: #D2D7FF;
  cursor: pointer;
}
/* header-row of the event
 */
.calendar_calEventHeader,
.calendar_calEventHeaderSmall {
  position: relative;
  /* as the calendar_calEventIcons use postion: absolute! */
  text-align: left;
  left: 0px;
  right: 0px;
  padding-left: 2px;
  min-height: 1em;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  /* set via inline style on runtime
   *  background-color: depending on category
   *	color: white || black depending on cat;
   */
  background-color: rgba(255, 255, 255, 0.8);
}
.calendar_calEventHeader .calendar_calEventTitle {
  display: none;
}
.calendar_calEventHeaderSmall {
  font-size: 8pt;
  line-height: 10pt;
}
.calendar_calEvent[data-priority='3'] .calendar_calEventTitle {
  color: red;
}
.calendar_calEventIcons {
  position: absolute;
  right: 0px;
  top: 0px;
  /* Do not show icons in header, only tooltip */
  display: none;
}
.calendar_calEventIcons img {
  height: 13px;
}
.calendar_calEventHeaderSmall .calendar_calEventIcons img {
  height: 13px;
}
/* body of the event
 */
.calendar_calEventBody,
.calendar_calEventBodySmall {
  padding: 0px 3px 0px;
  left: 2px;
  right: 2px;
  height: 99%;
  white-space: normal;
  background-color: rgba(255, 255, 255, 0.8);
}
.calendar_calEventBody > p,
.calendar_calEventBodySmall > p {
  white-space: pre-wrap;
}
.calendar_calEventBody .calendar_calTimespan {
  display: none;
}
.calendar_calTimeGrid .calendar_calEventBodySmall {
  font-size: 95%;
}
.calendar_calEventLabel {
  font-weight: bold;
  font-size: 90%;
  display: inline;
}
.calendar_calEventTitle {
  font-weight: bold;
  font-size: 100%;
  display: inline;
}
/* Event is too small for full display */
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='1'] .calendar_calTimespan {
  display: none;
}
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='2'] .calendar_calTimespan,
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='3'] .calendar_calTimespan {
  display: inline;
}
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='1'] .calendar_calEventTitle,
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='2'] .calendar_calEventTitle,
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall[data-visible_lines='3'] .calendar_calEventTitle {
  display: inline;
}
.calendar_calTimeGrid:not(.calendar_calTimeGridList) .calendar_calEventSmall .calendar_calEventBody {
  padding-top: 4em;
}
.calendar_plannerRowWidget .calendar_calEvent:not(.calendar_calEventSmall) .calendar_calTimespan {
  display: none;
}
.calendar_plannerRowWidget .calendar_calEvent:not(.calendar_calEventSmall) .calendar_calEventHeader .calendar_calEventTitle {
  display: inline;
  font-weight: normal;
}
/* Events as displayed in a list, not sized by time */
.calendar_calTimeGridList .calendar_calTimeGridScroll {
  overflow-y: hidden;
}
.calendar_calTimeGridList .calendar_calGridHeader {
  min-height: 1em;
}
.calendar_calTimeGridList .calendar_calDayColAllDay {
  display: none;
}
.calendar_calTimeGridList .calendar_calDayColHeader {
  min-height: initial;
  padding-bottom: 0px;
}
.calendar_calTimeGridList .calendar_calDayColHeader > div[data-date] {
  border: none;
}
.calendar_calTimeGridList .calendar_calDayCol > div.event_wrapper {
  position: absolute;
  top: 0px;
  bottom: 3em;
  width: 100%;
}
.calendar_calTimeGridList .calendar_calEvent {
  height: 1.1em;
  position: relative;
  border: none;
  border-bottom: none;
  border-right: none;
  border-radius: 0px;
  padding-left: 6px;
}
.calendar_calTimeGridList .calendar_calEventHeader {
  display: none !important;
}
.calendar_calTimeGridList .calendar_calEventTitle {
  font-weight: normal;
  display: inline-block;
  white-space: nowrap;
  flex: 1 1;
  overflow: hidden;
  text-overflow: ellipsis;
}
.calendar_calTimeGridList .calendar_calEventBody {
  overflow: hidden;
  border: none;
  background: white !important;
  height: 100%;
  padding-left: 6px;
  display: flex;
}
.calendar_calTimeGridList .calendar_calEventBody .calendar_calTimespan {
  display: inline-block;
  text-align: right;
  padding-right: 1px;
  opacity: 0.8;
  font-size: 90%;
  flex: 0 0 auto;
}
.calendar_calTimeGridList .calendar_calEventBody > p {
  display: none;
}
.calendar_calTimeGridList .calendar_calDayCol .hiddenEventAfter {
  left: 0px;
  width: 100%;
  margin-top: -1.5ex;
  height: 2.1ex;
  border-bottom-left-radius: 0px;
  overflow: visible;
}
.calendar_calTimeGridList .calendar_calDayCol .hiddenEventAfter:before {
  content: attr(data-hidden_label);
  display: block;
  height: 100%;
  min-height: 3ex;
  background: white;
  z-index: 21;
  padding-left: 12px;
}
.calendar_calTimeGridList .calendar_calDayCol .hiddenEventAfter:hover {
  /* Need !important to override calculated height*/
  top: initial !important;
  bottom: 0px;
  white-space: pre;
  background: white;
  height: 100%;
  overflow: auto;
}
.calendar_calTimeGridList .calendar_calDayCol .hiddenEventAfter:hover:before {
  display: none;
}
/* table of the dayView containing 2 cols: 1) day-view, 2) todos
*/
.calendar_calDayView {
  width: 100%;
}
/* calDayTods is the day-view's todo column, containing the calDayTodoHeader and the calDayTodoTable
 */
.calendar_calDayTodos .calendar_calDayTodosHeader {
  margin: 0px;
  padding: 2px;
  font-weight: bold;
  height: 23px;
  line-height: 23px;
}
.calendar_calDayTodos .calendar_calDayTodosTable {
  overflow: auto;
  position: absolute;
  top: 3em;
  bottom: 8px;
  width: 100%;
}
.calendar_calDayTodos {
  width: 98%;
  border: 1px solid silver;
}
.calendar_calDayTodosHeader {
  text-align: center;
}
.calendar_calDayTodosTable tr {
  page-break-inside: avoid;
  display: flex;
}
.calendar_calDayTodosTable tr td span:first-child {
  white-space: nowrap;
}
.calendar_calDayTodosHeader button {
  width: 24px;
  height: 24px;
  padding-left: 0px;
  margin: 0px 4px 1px 0;
  border-radius: 3px;
  border: 1px solid silver;
  background-color: #fafafa;
  position: absolute;
  left: 2px;
}
/******************************************************
 * CSS settings for the planner views (calendar_plannerWidget) *
 ******************************************************/
/* calendar_plannerWidget represents the whole planner, consiting of the calendar_plannerHeader and multiple plannerRowWidgets
 */
.calendar_plannerWidget {
  position: relative;
  top: 0px;
  left: 0px;
  width: 99.5%;
}
.calendar_plannerWidget > div:not(.calendar_plannerHeader) {
  overflow-y: auto;
  overflow-x: hidden;
}
/* calendar_plannerHeader contains a calendar_plannerHeaderTitle and multiple calendar_plannerHeaderRows
 */
.calendar_plannerHeader {
  position: relative;
  top: 0px;
  left: 0px;
}
.calendar_plannerRows {
  position: relative;
}
.calendar_plannerGrid {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 172px;
  right: 0px;
  overflow: hidden;
  height: 100%;
  border-left: 1px solid silver;
  margin-left: -1px;
  z-index: 1;
}
.calendar_plannerGrid > .calendar_plannerScale,
.calendar_plannerGrid > .calendar_plannerScaleDay {
  height: 100%;
  position: absolute;
}
.calendar_plannerGrid .calendar_calToday,
.calendar_plannerGrid .calendar_calHoliday {
  background-color: initial;
}
.calendar_plannerGrid > div:nth-last-child(2) > div {
  border: none;
  border-right: 1px solid silver;
}
.calendar_plannerGrid > div:last-child > div {
  border: none;
}
.calendar_plannerGrid > div:last-child > div:not(:first-child) {
  background-image: linear-gradient(0deg, rgba(192, 192, 192, 0.75) 4px, transparent 0%);
  background-position: top left;
  background-size: 1px 10px;
  background-repeat: repeat-y;
}
/* calendar_plannerRowWidget contains a calendar_plannerRowHeader and multiple eventRowWidgets in an calendar_eventRows
 */
.calendar_plannerRowWidget {
  position: relative;
  top: 0px;
  left: 0px;
  width: 100%;
  min-height: 20px;
  z-index: 2;
}
.calendar_plannerRowWidget:not(:first-child) {
  border-top: 1px solid silver;
}
.calendar_plannerRowWidget[data-has_children]:before {
  padding-right: 20px;
  position: absolute;
  content: " \25B6";
  background-repeat: no-repeat;
  left: 10px;
  top: 2px;
}
.calendar_plannerRowWidget.current_user {
  background-color: rgba(0, 0, 0, 0.05);
}
.calendar_plannerRowWidget:hover {
  background-color: rgba(103, 159, 210, 0.2);
}
/* calendar_plannerScale represents a scale-row of the calendar_plannerHeader, containing multiple planner{Day|Week|Month}Scales
 */
.calendar_plannerScale,
.calendar_plannerScaleDay {
  position: relative;
  top: 0px;
  left: 0%;
  width: 100%;
  height: 20px;
  line-height: 20px;
  display: flex;
  flex-wrap: nowrap;
  align-content: stretch;
}
.calendar_plannerDayScale,
.calendar_plannerMonthScale,
.calendar_plannerWeekScale,
.calendar_plannerHourScale,
.calendar_plannerDayOfMonthScale {
  position: absolute;
  top: 0px;
  /* left+width: is set by the code on runtime */
  text-align: center;
  height: 100%;
  border-right: 1px solid silver;
  border-bottom: 1px solid silver;
  min-height: 2ex;
  /* set via inline style on runtime:
   *  left:
   *  width:
   */
}
.calendar_plannerDayScale,
.calendar_plannerWeekScale,
.calendar_plannerHourScale {
  position: static;
  flex: 1 1 14%;
}
.calendar_plannerHourScale {
  font-size: 90%;
}
.calendar_plannerDayScale {
  font-size: 90%;
}
.calendar_plannerWeekScale {
  line-height: 20px;
}
.calendar_plannerMonthScale {
  font-weight: bold;
}
.calendar_plannerDayScale img,
.calendar_plannerWeekScale img,
.calendar_plannerMonthScale img,
.calendar_plannerDayOfMonthScale img {
  vertical-align: middle;
}
/* calendar_plannerRowHeader contains the user or category name of the calendar_plannerRowWidget
 */
.calendar_plannerRowHeader,
.calendar_plannerHeaderTitle {
  position: absolute;
  top: 0px;
  left: 0%;
  width: 150px;
  height: 100%;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  padding-left: 20px;
  padding-right: 1px;
}
.calendar_plannerRowHeader:hover {
  overflow: visible;
  z-index: 30;
  cursor: pointer;
}
.calendar_plannerHeaderTitle {
  border-right: 1px solid silver;
}
/* calendar_eventRows contain multiple eventRowWidgets
 */
.calendar_eventRows,
.calendar_plannerHeaderRows {
  position: relative;
  top: 0px;
  left: 0px;
  right: 0px;
  margin-left: 172px;
  /* need to be identical for calendar_eventRows and calendar_plannerHeaderRows and match width of calendar_plannerRowHeader/calendar_plannerHeaderTitle */
  min-height: 20px;
  height: 100%;
}
.calendar_plannerWidget .verticalBar {
  width: 8ex;
  height: 100%;
  position: absolute;
  top: 0px;
  border-right: 1px dotted;
  pointer-events: none;
  z-index: 40;
  display: none;
}
.calendar_plannerWidget .verticalBar > span {
  position: absolute;
  bottom: 0px;
  right: 0px;
  background-color: rgba(255, 255, 255, 0.8);
}
/**
 * Filler for month with less then 31 days in yearly planner
 */
.calendar_eventRowsFiller {
  position: absolute;
  top: 0px;
  right: 0px;
  height: 93%;
  background-color: white;
  border: 1px dashed gray;
  border-right: none;
}
/**
 * Weekend or other special days in yearly planner
 */
.calendar_eventRowsMarkedDay {
  position: absolute;
  top: 0px;
  height: 100%;
  z-index: 10;
}
.calendar_eventRowsMarkedDay.calendar_weekend {
  background-color: #e0e0e0;
}
/* calendar_eventRowWidget contains non-overlapping events
 */
.calendar_eventRowWidget {
  position: relative;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 20px;
  border: 1px solid white;
}
.calendar_plannerWidget .calendar_calEventHeader,
.calendar_calEventHeaderSmall {
  height: 100%;
  padding-top: 2px;
}
.calendar_plannerWidget .calendar_calEventSmall[data-full_day='true'] .calendar_calTimespan {
  display: none;
}
.calendar_plannerWidget .calendar_calEventSmall .calendar_calEventTitle {
  display: inline;
}
/* Special colors for the year view */
.calendar_cal_year_legend_weekend {
  background-color: #CCCCCC;
}
.calendar_cal_year_legend {
  background-color: #EFEFEF;
}
.calendar_cal_year_legend {
  background-color: #FFFFCC;
  z-index: 0;
}
.calendar_cal_year_weekend {
  background-color: #F9F9CC;
  z-index: 0;
}
.calendar_cal_year_today {
  border-color: #EE0000;
  border-width: 2px;
}
/**
 * edit series or exception popup used in eventWidget and
 * delete series and exceptions popup used in edit event
 */
#dialog-content {
  display: block;
  height: 100px;
  padding: 6px;
  color: #666666;
  font-size: 13px;
  margin: -2px -1px 0px -2px;
  width: 410px;
}
/**
 * Calendar Drag and Drop
 */
.calendar_d-n-d_helper {
  position: absolute;
  z-index: initial;
}
/* Class for div to show forbiden drop */
.calendar_d-n-d_timeCounter > span {
  position: absolute;
  background-color: #808080;
  color: white;
  left: 0;
  width: 100% !important;
  align: center;
  border: dashed white 1px;
  border-radius: 1px;
}
.calendar_timeDemo {
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #808080;
  color: white;
  width: 100%;
  min-width: 5em;
  align: center;
  border: dashed white 1px;
  border-radius: 1px;
}
.calendar_d-n-d_forbiden {
  background-color: red;
  height: 100%;
  width: 100%;
  text-align: center;
}
/*Class for div to demonstrate dragging time*/
.calendar_d-n-d_timeCounter {
  font-size: 1.1em;
  font-weight: bold;
  text-align: center;
  min-width: 10em;
}
.calendar_d-n-d_timeCounter .loading {
  width: 16px;
  height: 16px;
  position: absolute;
  bottom: 0px;
  right: 0px;
}
#calendar-list_undelete_popup,
#calendar-list_delete_popup {
  display: none;
}
.calendar_freetime_header {
  font-size: 120%;
  font-weight: bold;
}
.calendar_freetime_timeframe {
  position: relative;
}
et2-image.calendar_print_button,
et2-appicon.calendar_print_appicon,
et2-appicon.calendar_print_appicon img {
  height: 24px;
  width: 24px;
  font-size: 24px;
}
et2-image.calendar_print_button::before {
  vertical-align: -0.125em;
  /*reset to bootstrap chosen alignment*/
}
/*Sortable views*/
.srotable_cal_wk_ph {
  border: 2px	dashed gray;
  height: 230px;
  width: 99%;
  background-color: #ece2f7;
}
.srotable_cal_day_ph {
  position: relative;
  width: 33.333333%;
  height: 99%;
  border: 2px	dashed gray;
  background-color: #ece2f7;
  display: inline-block;
}
/**
 * View animation stuff
 */
.calendar_slide {
  /* There is a cleanup timeout in calendar app.js line 563 that must match */
  transition-duration: 0s;
  /* was 2s */
  transition-delay: 50ms;
}
/**
 * Home page portlets
 */
.calendar_favorite_portlet .calendar_calMonthNavHeader a img,
.calendar_favorite_portlet .calendar_calWeekNavHeader a img,
.calendar_favorite_portlet .calendar_calDayColHeader a img,
.calendar_favorite_portlet .calendar_plannerScale a img {
  display: none;
}
#calendar-edit_account + .chzn-container .chzn-results {
  max-height: 195px;
}
#calendar_sidebox_content .ui-datepicker div.ui-datepicker-buttonpane {
  border-top: 0;
  margin: 0;
  padding-right: 3px;
}
/*weekend slideSwitch in toolbar*/
#calendar-toolbar_app_header {
  color: #000;
  font-size: 14px;
  height: 1.6em;
  padding: 4px 3px 3px;
  background: #b4cee773;
  border-radius: var(--sl-border-radius-medium, 3px);
  min-width: fit-content;
  border: 1px solid #d4d4d8;
  text-align: center;
}
/* Integration slide switches in toolbar */
#calendar-toolbar_toolbar et2-switch {
  --sl-toggle-size-medium: 30px;
  --height: 30px;
  height: var(--height);
  display: inline-flex;
}
#calendar-toolbar_toolbar span[data-group="integration"] > et2-switch,
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-integration"],
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-video_toggle"] {
  background-size: 20px;
  background-repeat: no-repeat;
  background-position: center;
  --width: var(--height);
}
#calendar-toolbar_toolbar span[data-group="integration"] > et2-switch::part(base),
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-integration"],
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-video_toggle"] {
  filter: brightness(0) contrast(0.3) opacity(0.7);
}
et2-switch#calendar-toolbar_toolbar-weekend {
  background-image: none !important;
}
#calendar-toolbar_toolbar et2-switch#calendar-toolbar_toolbar-weekend::part(base) {
  width: 100%;
  height: 100%;
}
#calendar-toolbar_toolbar et2-switch#calendar-toolbar_toolbar-weekend .label span {
  background-size: 20px;
}
#calendar-toolbar_toolbar et2-switch#calendar-toolbar_toolbar-weekend .label {
  width: 100%;
  height: 100%;
  align-items: normal;
}
#calendar-toolbar_toolbar et2-switch#calendar-toolbar_toolbar-weekend {
  min-width: 60px;
}
et2-switch#calendar-toolbar_toolbar-weekend::part(control) {
  width: 100%;
}
et2-switch#calendar-toolbar_toolbar-weekend::part(label) {
  width: 100%;
  height: 100%;
}
#calendar-toolbar_toolbar span[data-group="integration"] > et2-switch[checked],
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-integration"][checked],
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-video_toggle"][checked] {
  filter: none;
  box-shadow: inset 1px 1px 1px 1px gray !important;
}
#calendar-toolbar_toolbar span[data-group="integration"] > et2-switch span.label,
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-video_toggle"] span.label,
#toolbar-menulist et2-switch[id^="calendar-toolbar_toolbar-integration"] span.label {
  background: none;
  min-width: 24px;
}
#calendar-toolbar_toolbar et2-switch::part(control) {
  visibility: hidden;
}
#calendar-toolbar_toolbar et2-switch {
  display: inline-block;
  vertical-align: top;
  border-radius: var(--sl-border-radius-medium, 3px);
}
.ui-toolbar-menulist et2-switch,
.ui-toolbar-menulist et2-switch::part(base),
.ui-toolbar-menulist et2-switch::part(label),
.ui-toolbar-menulist et2-switch .label {
  width: 100%!important;
}
#calendar-toolbar button#toolbar-today {
  color: #616161;
  font-weight: 500;
}
#calendar-edit .dialogFooterToolbar {
  min-width: 800px;
}
#calendar_edit_recur_data_chzn {
  width: 99% !important;
  max-width: 99% !important;
}
/* Use media queries and day counts to toggle full days & abbreviations in day labels
  Width breakpoints in media queries chosen somewhat arbitrarily, looking at 'Wednesday'
  to see if it still fits.
*/
@media all and (max-width: 1000px) and (min-width: 481px) {
  /* styles assigned when width is smaller than 1000px */
  .calendar_calDayColHeader > div[data-date] .long_date {
    display: inline;
  }
  .calendar_calDayColHeader > div[data-date] .short_date {
    display: none;
  }
  /* 7 day needs short day labels */
  .calendar_calDayColHeader:first-child:nth-last-child(7) > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(7) ~ .calendar_calDayColHeader > div[data-date] .short_date {
    display: inline;
  }
  .calendar_calDayColHeader:first-child:nth-last-child(7) > div[data-date] .long_date,
  .calendar_calDayColHeader:first-child:nth-last-child(7) ~ .calendar_calDayColHeader > div[data-date] .long_date {
    display: none;
  }
}
@media all and (max-width: 580px) {
  .calendar_calDayColHeader:first-child:nth-last-child(5) > div[data-date] .long_date,
  .calendar_calDayColHeader:first-child:nth-last-child(5) ~ .calendar_calDayColHeader > div[data-date] .long_date {
    display: none;
  }
  .calendar_calDayColHeader:first-child:nth-last-child(5) > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(5) ~ .calendar_calDayColHeader > div[data-date] .short_date {
    display: inline;
  }
}
@media all and (max-width: 480px) {
  /* styles assigned when width is smaller than 480px; */
  .calendar_calDayColHeader > div[data-date] .long_date,
  .calendar_calDayColHeader > div[data-date] .short_date {
    display: none;
  }
  /* 5 day and less fits short day labels */
  .calendar_calDayColHeader:first-child:nth-last-child(3) > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(3) ~ .calendar_calDayColHeader > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(4) > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(4) ~ .calendar_calDayColHeader > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(5) > div[data-date] .short_date,
  .calendar_calDayColHeader:first-child:nth-last-child(5) ~ .calendar_calDayColHeader > div[data-date] .short_date {
    display: inline;
  }
  /* 2 day view and less has enough room for full label */
  .calendar_calDayColHeader:first-child:nth-last-child(1) > div[data-date] .long_date,
  .calendar_calDayColHeader:first-child:nth-last-child(1) ~ .calendar_calDayColHeader > div[data-date] .long_date,
  .calendar_calDayColHeader:first-child:nth-last-child(2) > div[data-date] .long_date,
  .calendar_calDayColHeader:first-child:nth-last-child(2) ~ .calendar_calDayColHeader > div[data-date] .long_date {
    display: inline;
  }
}
#calendar-edit_quantity.et2_textbox_ro {
  opacity: 0.5;
}
#calendar-edit_quantity,
#calendar-edit_role {
  float: left;
}
.category_report_cats {
  height: 80%;
  overflow-y: auto;
  display: block;
}
#calendar-category_report_grid {
  display: block;
  max-height: 550px;
  overflow-y: auto;
}
#toolbar-weekend {
  background-image: none !important;
  filter: none;
}
#calendar-list_nm .nextmatch_header .header_count {
  margin-right: -4px;
}
#calendar-list_nm .nextmatch_header .search {
  display: none;
}
#calendar-edit_calendar-edit-description {
  display: flex;
  flex-direction: column;
}
et2-textarea#calendar-edit_description {
  height: 70%;
  margin-bottom: 2em;
}
et2-button#calendar-toolbar_toolbar-today::part(label) {
  font-weight: bold;
  color: dimgrey;
}
/**
 * Kdots
 */
egw-app {
  --current-day-color: var(--sl-color-amber-200, #ffffcc);
}
#calendar-sidebox_date {
  flex-grow: 0;
}
#calendar-sidebox_date .flatpickr-day {
  color: var(--sl-color-neutral-900);
}
#calendar-sidebox_date .flatpickr-day.today {
  background-color: var(--current-day-color);
  color: var(--sl-color-neutral-900);
}
#calendar-sidebox_date .flatpickr-day.selected {
  background-color: var(--application-color);
}
.calendar_calTimeGrid .calendar_calDayColHeader .calendar_calToday.et2_link.et2_clickable {
  background-color: var(--current-day-color);
}
#calendar-view,
#calendar-todo,
#calendar-planner,
#calendar-list {
  position: relative;
  width: 100% !important;
}
#calendar-sidebox {
  flex-grow: 0;
  width: 100%;
  height: fit-content;
  display: block !important;
}
#calendar-sidebox iframe {
  display: none;
}
#calendar-sidebox_date {
  flex-grow: 0;
}
#calendar-toolbar {
  overflow: hidden;
}
#calendar-toolbar .app_header_wrapper {
  display: flex;
  flex-grow: 1;
  justify-content: center;
}
#calendar-toolbar #calendar-toolbar_app_header {
  color: inherit;
  background-color: transparent;
  border-color: inherit;
  align-items: center;
  border: none;
}
#calendar-toolbar #calendar-toolbar_toolbar_today {
  min-width: 0;
}
#calendar-todo {
  width: 100%;
  height: 100%;
  left: initial ;
  right: initial ;
  bottom: initial ;
}
[slot="filter"]::part(base) {
  display: flex;
  flex-direction: column;
  gap: var(--gap-width);
}
.calendar_calEvent:not([class*=" cat_"]) {
  background-color: var(--primary-background-color);
}
/* CalendarOwner needs this to round avatars */
.kdots-glassy egw-app[id="calendar"] .et2-input-widget:not([disabled])::part(base),
.kdots-glassy egw-app[id="calendar"] .et2-input-widget:not([disabled])::part(input-control),
.kdots-glassy egw-app[id="calendar"] .et2-input-widget:not([disabled])::part(combobox) {
  --sl-border-radius-medium: var(--sl-input-height-medium);
}
