.splitview-layout {
  position: relative;
  display: grid;
  grid-template-areas:  "splitview-header splitview-header"
                        "splitview-list-header splitview-details"
                        "splitview-list splitview-details"
                        "splitview-list-actionbar splitview-details-actionbar";
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr auto;
  grid-area: main;
  position: relative;
  overflow: hidden;
  max-height: 100%;
  @include media-breakpoint-up(lg) {
    grid-template-columns: 1fr 1fr;
  }
  @include media-breakpoint-up(xl) {
    grid-template-columns: 1fr 2fr;
  }
  @include media-breakpoint-up(2xl) {
    grid-template-columns: 1fr 3fr;
  }
}

.splitview-layout .splitview-details {
  display: none;
  @include media-breakpoint-up(lg) {
    display: block;
  }
}

// hide content when no item is selected
.splitview-layout .splitview-details-content {
  display: none; 
}

.splitview-layout.item-selected .splitview-list-header {
  display: none;
  @include media-breakpoint-up(lg) {
    display: flex;
  }
}

.splitview-layout.item-selected .splitview-list {
  display: none;
  @include media-breakpoint-up(lg) {
    display: block;
  }
}

.splitview-layout.item-selected {

  .splitview-details {
    display: block;
  }
  .splitview-details-content  {
    display: block; // Show content when items are selected
  }
  .splitview-details-emptystate {
    display: none;
  }
  .splitview-details {
    border-color: $info;
  }
  .splitview-list-actionbar {
    display: none;
  }
  .splitview-details-actionbar {
    display: flex;
  }
  .splitview-list {
    grid-row-start: 3;
    grid-row-end: 5;
  }
}

.splitview-header {
  position: relative;
  grid-area: splitview-header;
  padding-left: $body-padding-mobile;
  padding-right: $body-padding-mobile;
  padding-top: $body-padding-mobile;
  padding-bottom: $spacing-md;
  @include media-breakpoint-up(sm) {
    padding-left: $body-padding-tablet;
    padding-right: $body-padding-tablet;
    padding-top: $body-padding-tablet;
  }
  @include media-breakpoint-up(xl) {
    padding-left: $body-padding-desktop;
    padding-right: $body-padding-desktop;
    padding-top: $body-padding-desktop;
  }
}

.splitview-list {
  position: relative;
  grid-area: splitview-list;
  overflow-y: scroll;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  padding-left: $body-padding-mobile;
  padding-bottom: $spacing-xl;
  @include media-breakpoint-up(sm) {
    padding-left: $body-padding-tablet;
  }
  @include media-breakpoint-up(xl) {
    padding-left: $body-padding-desktop;
  }
}

.splitview-list-header {
  position: relative;
  grid-area: splitview-list-header;
  display: flex;
  flex-direction: row;
  margin-right: $spacing;
  margin-bottom: $spacing-xs;
  margin-left: $body-padding-mobile;
  @include media-breakpoint-up(sm) {
    margin-left: $body-padding-tablet;
  }
  @include media-breakpoint-up(xl) {
    margin-left: $body-padding-desktop;
  }
}

.splitview-list-header::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: $spacing-xxs;
  width: 100%;
  height: $border-width;
  border-bottom: $border-width solid $border-color;
}

.splitview-list-header-title {
  display: inline-block;
  position: relative;
  padding-right: $spacing-sm;
  margin-top: $spacing-xxs;
  font-size: $font-size-h3;
  line-height: 1.1;
  background: $body-bg;
}

.splitview-list-header .form-check {
  margin-top: 8px;
  padding-right: $spacing-xs;
  background-color: $white;
}

.splitview-list-header-actions {
  display: flex;
  flex-direction: row;
  justify-content: end;
  margin-left: auto;
}

.splitview-list-header-actions .linked-icon {
  margin-left: $spacing-sm;
}

////// Splitview Details //////

.splitview-details {
  grid-area: splitview-details;
  padding-left: $spacing;
  padding-right: $spacing;
  overflow-y: scroll;
  overflow-x: hidden;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  max-width: 100%;
  min-width: 0;
  padding-bottom: $spacing-xl;
  @include media-breakpoint-up(lg) {
    border-left: $border-width solid $border-color;
  }
}

.splitview-details-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: $spacing-xs;
  margin-bottom: $spacing-md;
}

.splitview-details-title {
  font-size: $h3-font-size;
}

.splitview-details-header .btn-close-detailview {
  @include media-breakpoint-up(lg) {
    display: none;
  }
}

.list-splitview-meta {
  display: grid;
  place-content: start;
  grid-template-columns: 1fr 2fr;
  gap: $spacing-xs;
  margin-bottom: $spacing-xs;

  dd {
    margin-bottom: 0;
  }
  @include media-breakpoint-up(xl) {
    grid-template-columns: 1fr 2fr 1fr 2fr;
  }
}

.meta-collapsable {
  border-bottom: $border-width solid $border-color;
  margin-bottom: $spacing-md;
  .summary-closed {
    display: block;
  }
  .summary-open {
    display: none;
  }
}

.meta-collapsable > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  height: $btn-sm-height;
  color: $primary;
  &:hover, &:focus {
    color: $white;
    background-color: $link-hover-color;
    border-color: $link-hover-color;
  }
}

.meta-collapsable[open] {
  display: flex;
  flex-direction: column-reverse;
  .summary-open {
    display: block;
  }
  .summary-closed {
    display: none;
  }
}

.splitview-details-content-grid {
  display: grid;
  gap: $spacing-xs;
  margin-bottom: $spacing-md;
  @include media-breakpoint-up(xl) {
    grid-template-columns: 1fr 3fr;
    .label {
      padding-top: 2px;
    }
  }
}

////// Splitview actionbars //////

.splitview-list-actionbar {
  display: flex;
  grid-area: splitview-list-actionbar;
  grid-column-start: 1;
  grid-column-end: 3;
  padding-left: $body-padding-mobile;
  padding-right: $body-padding-mobile;
  background-color: $primary;
  @include media-breakpoint-up(sm) {
    padding-left: $body-padding-tablet;
    padding-right: $body-padding-tablet;
  }
  @include media-breakpoint-up(xl) {
    padding-left: $body-padding-desktop;
  }
}

.splitview-details-actionbar {
  display: none;
  grid-area: splitview-details-actionbar;
  background-color: $info;
  padding-left: $body-padding-mobile;
  padding-right: $body-padding-mobile;
  @include media-breakpoint-up(sm) {
    padding-left: $body-padding-tablet;
    padding-right: $body-padding-tablet;
  }
  .popover-menu {
    background-color: $info;
  }
}


////// Splitview item //////

.splitview-item {
  display: grid;
  grid-template-areas: "split-check split-icon split-text split-status";
  grid-template-columns: auto auto 1fr auto;
  padding: $spacing-xs $spacing $spacing-xs $spacing-xs;
  margin-left: (-$spacing-xs);
  cursor: pointer;
}

.splitview-item.selected {
  color: $white;
  background-color: $info;
  .splitview-item-icon, 
  .splitview-item-metainfo {
    color: $white;
  }
  .status-icon {
    background-color: $white;
  }
  .splitview-item-checkbox input {
    border-color: $white;
  }
  .splitview-item-checkbox input[type=checkbox]:checked {
    background-color: $white;
  }
  .splitview-item-checkbox input[type=checkbox]:checked::after {
    background-color: $info;
  }
}

.splitview-item:hover {
  color: $white;
  background-color: $link-hover-color;
  .splitview-item-icon, 
  .splitview-item-metainfo {
    color: $white;
  }
  .status-icon {
    background-color: $white;
  }
  .splitview-item-checkbox input {
    border-color: $white;
  }
  .splitview-item-checkbox input[type=checkbox]:checked {
    border-color: $white;
    background-color: $white;
  }
  .splitview-item-checkbox input[type=checkbox]:checked::after {
    background-color: $info;
  }
}

.splitview-item-checkbox {
  grid-area: split-check;
  & input {
    margin-right: $spacing-xs;
  }
}

.splitview-item-icon {
  grid-area: split-icon;
  width: $spacing;
}

.splitview-item-text {
  grid-area: split-text;
  padding-right: $spacing-xs;
  line-height: 1.3;
}

.splitview-item-title {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4; 
}

.splitview-item-metainfo {
  margin-top: $spacing-xxs;
  font-size: $font-size-label;
  color: $label-color;
  line-height: 1.3;
}

.splitview-item-status {
  grid-area: split-status;
  display: flex;
  flex-direction: column;
  align-items: end;
  width: $spacing;
}

.splitview-item-status .status-icon {
  margin-bottom: $spacing-xxs;
}

.splitview-item .list-tags {
  margin-top: $spacing-xxs;
}

////// Collapsable splitview item/group //////

.splitview-group > summary::before {
  content: "";
  display: inline-block;
  mask-repeat: no-repeat;
  width: $icon;
  height: $icon;
  margin-right: $spacing-xxs;
  mask-image: url("@images/triangle-centered-right.svg");
  background-color: $primary;
}

.splitview-group[open] > summary::before {
  mask-image: url("@images/triangle-centered-down.svg");
}

.splitview-group > summary:hover::before {
  background-color: $white;
}

.splitview-group .splitview-item:not(summary) {
  padding-left: $spacing-lg+$spacing-sm;
}
