/* Voeg het lokale lettertype toe */
@font-face {
  font-family: "BebasNeue";
  src: url("../fonts/BebasNeue-Regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Druk Wide Medium";
  src: url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.eot");
  src: url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.eot?#iefix")format("embedded-opentype"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.woff2")format("woff2"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.woff")format("woff"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.ttf")format("truetype"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.svg#Druk Wide Medium")format("svg");
}

@font-face {
  font-family: "Druk Wide Medium";
  src: url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.eot");
  src: url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.eot?#iefix")format("embedded-opentype"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.woff2")format("woff2"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.woff")format("woff"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.ttf")format("truetype"),
  url("https://db.onlinewebfonts.com/t/7e389c5e310dc537b083e0e25ea6eab5.svg#Druk Wide Medium")format("svg");
}

footer p {
  font-size: 85%;
}

.logo-text {
  font-family: "Druk Wide Medium", Arial, Helvetica, sans-serif;
  /* transform: scale(1.5, 1); Trek de letters uit (x,y) */
  letter-spacing: 2px; /* Meer ruimte tussen de tekens */
  margin-left: 1.5rem !important;
}

g.linkgroup {
  fill: none;
  stroke: #555;
  stroke-opacity: 0.4;
  stroke-width: 1.5;
}

g.node circle.selected {
  r: 10px;
  stroke: white;
  stroke-width: 2px;
  filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.5));
}

g.node circle.highlighted {
  r: 7px;
  transition: all 300ms ease; /* Voeg een transition toe */
  filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.5));
}

g.node circle {
  r: 5px;
}
g.node circle:focus {
  outline: none;
}

g.node circle:hover {
  r: 8;
  transition: r 300ms ease; /* Voeg een transition toe */
  cursor: pointer;
}

g.link line.dash-line {
  stroke-width: 1.5px;
  stroke-dasharray: 5, 5;
  animation: dash-animation 1s linear infinite;
}

@keyframes dash-animation {
  to {
    stroke-dashoffset: -10;
  }
}

.svg-container .search-box {
  position: absolute;
  top: 30px;
  left: 40px;
  z-index: 10;
}
.search-box {
  width: 400px;
  transition: width 150ms ease;
}

/* Responsive styling voor search-box op kleine schermen */
@media (max-width: 991.98px) {
  .svg-container .search-box {
    left: 20px;
    top: 20px;
  }
  .search-box {
    width: calc(100% - 40px);
    max-width: 400px;
  }
}

@media (max-width: 575.98px) {
  .svg-container .search-box {
    left: 10px;
    top: 10px;
  }
  .search-box {
    width: calc(100% - 20px);
  }
}
.search-box.collapsed {
  width: 0px;
  transition: width 300ms ease;
}
#search-box {
  transition: width 150ms ease;
}
#search-box.collapsed {
  padding-left: 1.5rem;
  padding-right: 1rem;
  transition: all 300ms ease;
}

.svg-container {
  position: relative;
}

.lineage-layer-legend {
  row-gap: 0.5rem;
  column-gap: 0.75rem;
}

.lineage-layer-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.7rem;
  cursor: pointer;
  user-select: none;
}

.lineage-layer-radio {
  appearance: none;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  border: 1px solid var(--lineage-layer-color, #ccc);
  background: transparent;
  display: inline-block;
  cursor: pointer;
  margin: 0;
}

.lineage-layer-radio:checked {
  background: var(--lineage-layer-color, #ccc);
}

.lineage-layer-radio:focus-visible {
  outline: 2px solid var(--phoenix-primary);
  outline-offset: 2px;
}

g.legend {
  cursor: grab;
}

.legend text {
  font-size: 10px;
  fill: var(--phoenix-heading-color);
}
svg {
  margin: 0 !important;
}

svg#tree {
  /* max-width: 100%; */
  min-height: 350px;
  font-size: 70%;
  /* user-select: none; */
}

.alert {
  --phoenix-alert-padding-x: 1.5rem;
  --phoenix-alert-padding-y: .5rem;
}
.alert-dismissible .btn-close {
  padding: .75rem 1.5rem;
}
/* Custom fade transition duration for flash alerts (300ms) */
.alert.fade {
  transition: opacity 300ms linear !important;
}

.search-box .dropdown-menu .dropdown-item.active {
  background: #eff2f6 !important;
}

/* Verberg de standaard DataTables search box */
.dt-search {
  display: none !important;
}

/* Pas fs-9 styling toe op DataTables info en lengthMenu */
.dt-paging button,
.dt-info,
.dt-length label,
.dt-length select {
  font-size: 0.64rem !important;
}

/* Maak paginatie knoppen groter (DataTables en overige paginaties) */
.dt-paging .page-link,
#dataproducts-table_wrapper .page-link {
  padding: 0.5rem 0.75rem !important;
  min-width: 2rem;
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.sign-in-bg-holder {
  background-image: var(--sign-in-bg-holder);
}
.forgot-password-bg-holder {
  background-image: var(--forgot-password-bg-holder);
}
.profile-bg-holder {
  background-image: linear-gradient(0deg, #000000 -3%, rgba(0, 0, 0, 0) 83%), var(--profile-bg-holder);
}

/* SVG Logo styling - works for all inline SVG logos */
.inline-svg-logo svg,
svg.inline-svg-logo {
  color: var(--phoenix-logo-text);
}

.inline-svg-logo svg path,
svg.inline-svg-logo path {
  fill: currentColor;
}

/* Navbar brand logo vertical alignment fix */
.navbar-brand-logo {
  display: inline-flex;
  align-items: center;
}

.navbar-brand-logo svg {
  display: block;
}

#metadata-search-list svg {
  height: 1em;
}

/* Vertical alignment for SVG icons in metadata search dropdown */
.dropdown-item .d-flex span[data-feather] svg,
.dropdown-item .d-flex span[data-feather] {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

/* Hide edit icon in table by default, show on row hover */
tbody tr td:last-child span[data-feather="edit"] {
  opacity: 0;
  transition: opacity 0.2s ease;
}

tbody tr:hover td:last-child span[data-feather="edit"] {
  opacity: 1;
}

/* Product cards op search-results pagina: volledige breedte */
.search-results-page .product-card-container {
  display: block !important;
  justify-content: unset !important;
  background-color: var(--phoenix-navbar-top-bg-color);
}

.search-results-page .product-card-container .product-card {
  max-width: 100% !important;
  width: 100% !important;
}

.search-results-page .product-card-container .product-card:hover .product-name {
  text-decoration: none !important;
  color: inherit !important;
}
/* Generic loading screen */
.loading-screen {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--phoenix-navbar-top-bg-color);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 500ms ease-out;
}

.loading-screen.hidden {
  opacity: 0;
  pointer-events: none;
}

.loading-screen-content {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Vertical alignment fix voor nav-link icon en text */
.nav-link-icon svg {
  display: block;
}

.btn-wish {
  width: 1.5rem;
  height: 1.5rem;
}
.btn-wish.btn-wish-primary-remove {
  background-color: var(--phoenix-primary) !important;
  color: var(--phoenix-emphasis-bg) !important;
  border: 1px solid var(--phoenix-primary) !important;
}
.btn-wish.btn-wish-primary-add {
  background-color: var(--phoenix-emphasis-bg) !important;
  color: var(--phoenix-emphasis-bg) !important;
  border: 1px solid var(--phoenix-primary) !important;
}
.btn-wish.btn-wish-primary-add path {
  fill: var(--phoenix-primary) !important;
}
.btn-wish.btn-wish-primary-remove path {
  fill: var(--phoenix-emphasis-bg) !important;
  stroke-width: 10%;
  stroke: var(--phoenix-primary);
}

/* Disable horizontal scrollbar in product filter column */
#productFilterColumn {
  overflow-x: hidden !important;
}

.carousel-control-prev, .carousel-control-next {
  color: var(--phoenix-heading-color);
}
.carousel-control-prev:hover, .carousel-control-prev:focus, .carousel-control-next:hover, .carousel-control-next:focus {
  color: inherit !important;
  opacity: 1;
}
.carousel-indicators [data-bs-target] {
  background-color: var(--phoenix-heading-color);
  margin-right: 0.5rem;
  margin-left: 0.5rem;
}

/* Carousel indicators als cirkels */
#controlProduct .carousel-indicators [data-bs-target] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--phoenix-heading-color);
  filter: drop-shadow(0 0 3px var(--phoenix-emphasis-bg));
}

/* Carousel controls alleen zichtbaar bij hover */
#controlProduct .carousel-control-prev,
#controlProduct .carousel-control-next {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

#controlProduct:hover .carousel-control-prev,
#controlProduct:hover .carousel-control-next {
  opacity: 1;
  filter: drop-shadow(0 0 3px var(--phoenix-emphasis-bg));
}

/* Dataproduct detail image: square card + centered image */
.product-image-card {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.product-image-card .carousel-inner,
.product-image-card .carousel-item {
  width: 100%;
  height: 100%;
}

.product-image-card .carousel-item {
  position: relative;
}

.product-image-card .carousel-item.active,
.product-image-card .carousel-item.carousel-item-next,
.product-image-card .carousel-item.carousel-item-prev {
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/* Search loading overlay for top-search dropdown */
.search-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--phoenix-navbar-top-bg-color);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  font-size: 0.875rem;
  color: var(--phoenix-tertiary-color);
  opacity: 0;
  transition: opacity 200ms ease;
  pointer-events: none;
}

.search-loading-overlay.visible {
  opacity: 1;
  pointer-events: auto;
}

/* Disabled state for search input during loading */
.search-input.loading {
  opacity: 0.7;
  cursor: wait;
}

/* Context menu with fade transition */
.context-menu {
  opacity: 0;
  transition: opacity 300ms ease;
  pointer-events: none;
}

.context-menu.visible {
  opacity: 1;
  pointer-events: auto;
}

/* Vertical tab: center the active indicator vertically with smooth transition */
.vertical-tab .nav-link.active::after {
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}

@media (max-width: 575.98px) {
  .vertical-tab .nav-link.active::after {
    top: auto;
    bottom: -6px;
    transform: rotate(45deg);
  }
}

/* Lineage search box: border-radius aanpassing wanneer dropdown open is */
.lineage-search-box .search-input {
  transition: border-radius 200ms ease;
}

.lineage-search-box.show .search-input {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.lineage-search-box .dropdown-menu {
  transition: border-radius 200ms ease;
}

.lineage-search-box .dropdown-menu.show {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.content:has(.helix-viz) {
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--phoenix-navbar-top-height, 60px));
  overflow: hidden;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.content:has(.helix-viz) > .title,
.content:has(.helix-viz) > .mb-4 {
  padding-left: var(--phoenix-content-padding-x, 1.5rem);
  padding-right: var(--phoenix-content-padding-x, 1.5rem);
  flex-shrink: 0;
}

@media (min-width: 992px) {
  .content:has(.helix-viz) > .title,
  .content:has(.helix-viz) > .mb-4 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

.content:has(.helix-viz) .svg-container {
  flex: 1 1 auto;
  min-height: 200px;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  overflow: hidden;
}

.content:has(.helix-viz) footer {
  flex-shrink: 0;
}

/* Main search box styling - 50% larger than top search box */
.navbar-main-search-box {
  width: 37.5rem !important;
  max-width: 100%;
}

/* Responsive styling voor main search box */
@media (max-width: 991.98px) {
  .navbar-main-search-box {
    width: calc(100% - 40px) !important;
    max-width: 37.5rem;
  }
}

@media (max-width: 575.98px) {
  .navbar-main-search-box {
    width: calc(100% - 20px) !important;
  }
}

/* Geen outline op uitgeschakelde periode-knoppen */
#btn-next-period:disabled,
#btn-next-period:disabled:focus,
#btn-prev-period:disabled,
#btn-prev-period:disabled:focus {
  outline: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

/* Compacte Dropzone previews voor data product wizard */
#dataproduct-dropzone .dz-message {
  min-height: 11rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

#dp-image-preview .dz-image-preview .dz-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

#dp-image-preview .dz-image-preview .dz-remove {
  right: 0.25rem;
  top: 0.25rem;
  width: 1.5rem;
  height: 1.5rem;
  line-height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--phoenix-emphasis-bg);
}

/* Compacte cell padding voor icon configuration tabel */
#icon-configuration-table > :not(caption) > * > * {
  padding: 0.5rem 0.5rem;
}

#icon-configuration-table > :not(caption) > * > *:first-child {
  padding-left: 0.5rem;
}

#icon-configuration-table > :not(caption) > * > *:last-child {
  padding-right: 0.5rem;
}

