.fl-public-viewer{margin:24px 0;padding:16px;border:1px solid #dfe3e8;border-radius:14px;background:#fff}.fl-public-viewer *{box-sizing:border-box}.fl-public-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.fl-public-title{display:none;color:#111827!important;-webkit-text-fill-color:#111827!important;font-size:22px;font-weight:700;line-height:1.35}.fl-public-controls{display:flex;gap:8px;flex-wrap:wrap}.fl-public-btn{min-height:42px;padding:9px 14px!important;border:1px solid #cbd5e1!important;border-radius:9px!important;background:#fff!important;color:#1f2937!important;-webkit-text-fill-color:#1f2937!important;font:600 14px/1.2 inherit!important;cursor:pointer}.fl-public-btn.active{border-color:#2563eb!important;background:#2563eb!important;color:#fff!important;-webkit-text-fill-color:#fff!important}.fl-public-stage{position:relative;overflow:hidden;border:1px solid #e2e8f0;border-radius:10px;line-height:0}.fl-public-image{display:block;width:100%;height:auto;max-width:none}.fl-number-layer{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none}.markers-visible .fl-number-layer{opacity:1;visibility:visible;pointer-events:auto}.fl-shape-number{position:absolute;display:flex;width:34px;height:34px;align-items:center;justify-content:center;padding:0!important;border:3px solid #fff!important;border-radius:50%!important;background:var(--shape-color)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font:700 16px/1 sans-serif!important;transform:translate(-50%,-50%);box-shadow:0 2px 7px rgba(15,23,42,.3);cursor:pointer}.fl-shape-number.selected{outline:4px solid rgba(37,99,235,.28);outline-offset:2px}.fl-public-lens{position:absolute;display:none;width:220px;height:220px;overflow:hidden;border:5px solid #fff;border-radius:50%;background:#fff;box-shadow:0 5px 22px rgba(15,23,42,.38);pointer-events:none;transform:translate(-50%,-50%);z-index:30}.fl-public-lens.show{display:block}.zoom-active .fl-public-stage{cursor:crosshair}.fl-public-lens canvas{display:block;width:100%;height:100%}.fl-public-info{margin-top:12px;padding:15px 16px;border:1px solid #cbd5e1;border-left:5px solid #2563eb;border-radius:10px;background:#f8fafc;color:#0f172a;line-height:1.55}.fl-public-info[hidden]{display:none!important}.fl-public-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:5px}.fl-public-info-title{color:#0f172a!important}.fl-public-info-description{color:#334155!important;white-space:pre-line}.fl-public-info-close{width:30px;height:30px;padding:0!important;border:1px solid #cbd5e1!important;border-radius:50%!important;background:#fff!important;color:#334155!important;-webkit-text-fill-color:#334155!important;font:700 20px/1 sans-serif!important;cursor:pointer}@media(max-width:700px){.fl-public-viewer{padding:10px}.fl-public-head{align-items:stretch;flex-direction:column}.fl-public-controls{display:grid;grid-template-columns:1fr 1fr}.fl-public-btn{width:100%;font-size:12px!important}.fl-public-title{font-size:19px}.fl-shape-number{width:30px;height:30px;font-size:14px!important}.fl-public-lens{width:160px;height:160px}}
/* Bildserie / CT- und MRT-Navigation */
.fl-medical-series {
  width: 100%;
  margin: 24px 0;
  outline: none;
}

.fl-medical-series:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.28);
  outline-offset: 5px;
  border-radius: 16px;
}

.fl-series-navigation {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 10px;
}

.fl-series-btn {
  display: inline-flex !important;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  color: #111827 !important;
  -webkit-text-fill-color: #111827 !important;
  font: 700 32px/1 sans-serif !important;
  box-shadow: none !important;
  cursor: pointer;
}

.fl-series-btn:hover,
.fl-series-btn:focus-visible {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  -webkit-text-fill-color: #1d4ed8 !important;
}

.fl-series-status {
  min-width: 76px;
  color: #334155;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

.fl-series-slide[hidden] {
  display: none !important;
}

.fl-series-slide .fl-public-viewer {
  margin-top: 0;
  margin-bottom: 0;
}

.fl-series-help {
  margin: 9px 0 0;
  color: #64748b;
  font-size: 13px;
  text-align: center;
}

@media (max-width: 700px) {
  .fl-series-navigation {
    gap: 10px;
  }

  .fl-series-btn {
    width: 42px;
    height: 42px;
    font-size: 28px !important;
  }
}

/* Version 4.1: Zähler auf dunklen oder farbigen Hintergründen immer weiß */
.fl-medical-series .fl-series-status,
.fl-medical-series .fl-series-status span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
}

/* Version 5.0: CT-/MRT-Serienmodus */
.fl-ct-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.fl-ct-player-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.fl-ct-speed-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: inherit;
  font-size: 14px;
  font-weight: 600;
}

.fl-ct-speed {
  min-height: 42px;
  padding: 7px 30px 7px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #1f2937;
}

.fl-ct-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}

.fl-series-ct-mri .fl-ct-layout {
  grid-template-columns: 38px minmax(0, 1fr);
}

.fl-ct-slider-wrap {
  display: flex;
  height: var(--fl-ct-scroll-height, 320px);
  min-height: 150px;
  max-height: 460px;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
  border: 1px solid rgba(255, 255, 255, .95);
  border-radius: 9px;
  background: rgba(255, 255, 255, .04);
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .08);
}

.fl-ct-slider {
  /* Vertikaler Regler im Stil eines Chrome-/Windows-Scrollbalkens. */
  -webkit-appearance: none;
  appearance: none;
  writing-mode: vertical-lr;
  direction: rtl;
  width: 16px;
  height: calc(var(--fl-ct-scroll-height, 320px) - 18px);
  min-height: 132px;
  max-height: 442px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: ns-resize;
}

.fl-ct-slider::-webkit-slider-runnable-track {
  width: 12px;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 8px;
  background: rgba(203, 213, 225, .55);
  box-shadow: inset 0 0 2px rgba(0, 0, 0, .18);
}

.fl-ct-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 48px;
  margin: 0;
  border: 1px solid rgba(0, 0, 0, .28);
  border-radius: 7px;
  background: #8b949e;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}

.fl-ct-slider::-webkit-slider-thumb:hover {
  background: #707983;
}

.fl-ct-slider:focus-visible {
  outline: 2px solid #2271b1;
  outline-offset: 3px;
}

/* Firefox */
.fl-ct-slider::-moz-range-track {
  width: 12px;
  height: 100%;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 8px;
  background: rgba(203, 213, 225, .55);
  box-shadow: inset 0 0 2px rgba(0, 0, 0, .18);
}

.fl-ct-slider::-moz-range-thumb {
  width: 12px;
  height: 48px;
  border: 1px solid rgba(0, 0, 0, .28);
  border-radius: 7px;
  background: #8b949e;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}

.fl-ct-slider::-moz-range-thumb:hover {
  background: #707983;
}

.fl-series-ct-mri .fl-series-status,
.fl-series-ct-mri .fl-series-status span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.fl-ct-play:disabled,
.fl-ct-stop:disabled {
  opacity: .55;
  cursor: not-allowed;
}

@media (max-width: 700px) {
  .fl-series-ct-mri .fl-ct-layout {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .fl-ct-slider-wrap {
    min-height: 230px;
  }

  .fl-ct-slider {
    width: 16px;
    height: 190px;
  }

  .fl-ct-player-row {
    width: 100%;
  }

  .fl-ct-speed-label {
    width: 100%;
    justify-content: center;
  }
}

/* Version 5.1: EKG/Röntgen 2 zeigt die gezeichneten Elemente direkt statt Nummern. */
.fl-direct-overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .15s ease;
  z-index:5;
}
.fl-series-single-direct .markers-visible .fl-direct-overlay{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.fl-series-single-direct .fl-number-layer{
  display:none!important;
}

/* Version 5.6: CT/MRT-Player mit zwei Geschwindigkeiten. */
.fl-series-ct-mri .fl-ct-player-row{
  display:flex;
}
.fl-direct-overlay *{vector-effect:non-scaling-stroke}


/* Version 5.9: Direkte Markierungen in EKG/Röntgen 2 sind anklickbar. */
.fl-direct-shape{
  pointer-events:visiblePainted;
  cursor:pointer;
  outline:none;
}
.fl-direct-shape:hover,
.fl-direct-shape:focus-visible,
.fl-direct-shape.selected{
  filter:drop-shadow(0 0 3px rgba(37,99,235,.95));
}
.fl-direct-shape:focus-visible{
  outline:2px solid #2563eb;
  outline-offset:2px;
}

/* Version 5.10: EKG/Röntgen 2 – einzelne Markierung beim Überfahren anzeigen. */
.fl-series-single-direct .fl-direct-overlay{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.fl-series-single-direct .fl-direct-shape{
  opacity:0;
  pointer-events:painted;
  transition:opacity .12s ease, filter .12s ease;
}
.fl-series-single-direct .markers-visible .fl-direct-shape,
.fl-series-single-direct:not(.markers-visible) .fl-direct-shape.fl-hover-preview,
.fl-series-single-direct:not(.markers-visible) .fl-direct-shape:focus-visible{
  opacity:1;
}
.fl-series-single-direct:not(.markers-visible) .fl-direct-shape.fl-hover-preview{
  filter:drop-shadow(0 0 4px rgba(37,99,235,.98));
}


/* Version 5.11: angeklickte Direktmarkierung bleibt sichtbar; Hover zeigt weiterhin ein weiteres Element. */
.fl-series-single-direct:not(.markers-visible) .fl-direct-shape.selected{
  opacity:1;
  filter:drop-shadow(0 0 4px rgba(37,99,235,.98));
}

/* Version 5.15: Die Zoom-Lupe bleibt auf dem gewählten Punkt zentriert und
   darf an allen vier Bildrändern vollständig über den Bildbereich hinausragen. */
.fl-public-viewer.zoom-active .fl-public-stage {
  overflow: visible;
  z-index: 20;
}

.fl-public-viewer.zoom-active .fl-public-lens {
  z-index: 100;
}
