/**
 * kDots main styles
 *
 * Note that light / dark colors should go in kdots_light.less & kdots_dark.less
 */


/** Theme customisations **/
@import "./less/light.less";
@import "./less/dark.less";
/** End theme customisations **/

html, body {
  width: 100vw;
  height: 100vh;
  overflow: clip;
  padding: 0px;
  margin: 0px;

  /** Messages **/
  .sl-toast-stack {
	top: auto;
	bottom: 0px;

	sl-alert et2-checkbox {
	  padding-top: var(--sl-spacing-large);
	}
  }

  #egw_message {
	display: none
  }

  /** end messages **/
}

.egw_menu::part(popup)
{
  z-index: var(--sl-z-index-dropdown);
}

egw-framework#egw_fw_basecontainer {
  --icon-size: 32px;
  --sl-tooltip-arrow-size: 0;

  /* Internals */

  &::part(status-split) {
	/* This limits the max size of the status panel */
	--max: 32px;
  }

  &::part(header) {
	--icon-size: 32px;
	--tab-icon-size: var(--icon-size);
	--tab-icon-size-active: 40px;

	color: var(--primary-background-color);
	gap: var(--sl-spacing-medium);

	font-size: var(--icon-size);
  }

  /* Content slotted inside */

  [slot="logo"] img {
	max-width: 220px;
	max-height: var(--icon-size);
	display: block;
	text-align: center;
  }

  sl-icon-button[slot="header"], et2-image[slot="header"] {
	font-size: var(--icon-size);
	color: inherit
  }


  div#egw_fw_toggler {
	position: initial;
	display: none;
  }

  #egw_fw_topmenu_info_items {
	position: relative;
	order: 99;
	margin-left: auto;
	display: flex;

	.topmenu_info_item {
	  min-width: 1em;
	  min-height: 1em;
	}
  }

  div#egw_fw_sidebar_r {
	position: initial;
	top: initial;

	et2-avatar, et2-lavatar {
	  --size: 26px;
	}
  }

  .egw_fw_ui_sidemenu_entry_header {
	display: flex;
	gap: var(--sl-spacing-medium);
	padding-left: 1em;
  }
}

/*** HEADER ***/
#egw_fw_topmenu_info_items {
  display: flex;
  flex-direction: row-reverse;

  & > * {
	border: none;
	background: transparent;
  }

  et2-avatar {
	--size: var(--icon-size);
	&::part(base) {
	  vertical-align: initial;
	}
  }

  .topmenu_info_item {
	height: var(--icon-size);
	width: var(--icon-size);
	display: inline-block;
	padding-left: 0px;
	background-size: 20px;
	background-position: center center;
	background-repeat: no-repeat;
	cursor: pointer;

	&:hover {
	  background-color: var(--sl-input-background-color-hover);
	}
  }

  #topmenu_info_timer {
	order: 1;
	position: relative;
	display: flex;
	align-items: center;
	padding: 0px;

	#topmenu_timer {
	  display: block;
	  width: 100%;
	  z-index: 2;
	}

	&:hover {
	  cursor: pointer;
	}

	&:before {
	  content: "";
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	  background-image: url(../../timesheet/templates/default/images/navbar.svg);
	  background-repeat: no-repeat;
	  background-size: 32px;
	  background-position: center center;
	  filter: opacity(0.3);
	}
  }

  #topmenu_info_quick_add {
	position: relative;

	span#quick_add {
	  display: block;
	  background-image: url(../../api/templates/default/images/add.svg);
	  background-repeat: no-repeat;
	  background-size: 24px;
	  background-position: center;
	  width: 100%;
	  height: 100%;
	  padding-right: 3px;

	  &:before {
		content: " ";
		font-size: 2em;
		line-height: 0.6em;
		background-color: white;
	  }
	}

	#quick_add_selectbox {
	  height: 0px;
	  display: inline-block;
	  text-align: initial;

	  sl-option {
		white-space: nowrap;
	  }
	}

	#quick_add_selectbox::part(emptyLabel) {
	  /* do NOT show empty label, required for clearing value */
	  display: none;
	}

	#quick_add_selectbox::part(form-control-input), #timer_selectbox::part(form-control-input) {
	  border: none !important;
	}

	#quick_add_selectbox::part(form-control), #timer_selectbox::part(form-control) {
	  margin-left: -3em;
	}

	#quick_add_selectbox::part(listbox), #timer_selectbox::part(menu) {
	  max-height: 60vh;
	}

	#quick_add_selectbox {
	  height: 0px;
	  overflow: hidden;
	}

	#quick_add_selectbox::part(combobox) {
	  visibility: hidden;
	}
  }

  #topmenu_info_user_avatar {
	sl-menu-item et2-image {
	  width: 1em;
	}
  }
  button#topmenu_info_search {
	background-image: url(../../api/templates/default/images/topmenu_items/search.svg);
  }
}

#topmenu_info_print_title {
  background-image: url(../../../api/templates/default/images/print.svg);

  span {
	width: 45px;
	height: 45px;
	display: inline-block;
  }
}

/*** END HEADER ***/

/*** APPLICATION ***/
egw-app {
  &::part(name) {
	display: flex;
	align-items: center;
	text-wrap: nowrap;
  }

  &::part(content) {
	flex-direction: column;
	overflow-y:hidden;
  }

  & > div[id] > div {
	height: 100%;
  }
}

/* Individual application colors, should go in each app's CSS */
body, :root {
  // Color code for applications - not used by framework
  --addressbook-color: #003366;
  --admin-color: #333333;
  --bookmarks-color: #CC6633;
  --calendar-color: #CC0033;
  --filemanager-color: #ff9933;
  --infolog-color: #660033;
  --mail-color: #006699;
  --projectmanager-color: #669999;
  --resources-color: #003333;
  --timesheet-color: #330066;
  --tracker-color: #009966;
  --wiki-color: #797979;
  --ranking-color: #404040;
  --default-color: #797979;
  --kanban-color: #4663c8;

  egw-app[name="addressbook"] {
	--application-color: var(--addressbook-color);
  }

  egw-app[name="admin"] {
	--application-color: var(--admin-color);
  }

  egw-app[name="bookmarks"] {
	--application-color: var(--bookmarks-color);
  }

  egw-app[name="calendar"] {
	--application-color: var(--calendar-color);
  }

  egw-app[name="filemanager"] {
	--application-color: var(--filemanager-color);
  }

  egw-app[name="infolog"] {
	--application-color: var(--infolog-color);
  }

  egw-app[name="mail"] {
	--application-color: var(--mail-color);
  }

  egw-app[name="projectmanager"] {
	--application-color: var(--projectmanager-color);
  }

  egw-app[name="resources"] {
	--application-color: var(--resources-color);
  }

  egw-app[name="timesheet"] {
	--application-color: var(--timesheet-color);
  }

  egw-app[name="tracker"] {
	--application-color: var(--tracker-color);
  }

  egw-app[name="wiki"] {
	--application-color: var(--wiki-color);
  }

  egw-app[name="ranking"] {
	--application-color: var(--ranking-color);
  }
}

/*** END APPLICATION ***/

/*** WIDGETS ***/
/* This should mostly go away with webcomponents */

/* Get nextmatch sizing more nicely without messing with dynheight */
div.et2_nextmatch {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%;
  width: 100%;
  overflow: hidden;

  & > div:not(:first-child) {
	flex: 1 1 100%;
	max-height: 100%;
  }

  .egwGridView_outer {
	border-collapse: collapse;

	thead > tr {
	  background-color: var(--sl-color-neutral-50);
	  border-bottom: var(--sl-panel-border-width) solid var(--sl-color-neutral-200);

	  th {
		border-right: var(--sl-panel-border-width) solid var(--sl-color-neutral-200);

		div.innerContainer {
		  max-height: 10em;
		  overflow-x: hidden;
		  overflow-y: auto;
		}
	  }

	  th.optcol span.selectcols {
		height: 9px;
		padding: 4px 14px 0 2px;
		margin-top: 4px;
		background-image: url(../../api/templates/default/images/selectcols.svg);
		background-repeat: no-repeat;
		background-size: 10px 10px;
		display: inline-block;
		background-position: top;
	  }
	}

	.egwGridView_scrollarea {
	  overflow-x: hidden;
	  overflow-y: auto;
	  table {
		border-collapse: collapse;
		tr {
		  border-bottom: var(--sl-panel-border-width) solid var(--sl-color-neutral-200);
		}
		tr.selected {
		  background-color: var(--highlight-background-color);
		}
	  }
	}
  }
}


/*** END WIDGETS ***/