/* CSS Document */
:root
{
	--bs-carousel-indicator-active-bg: var(--ke-primary);
	--bs-carousel-indicator-bg: var(--ke-primary-dark);

}

  .btn-primary{
    --bs-btn-bg: var(--ke-primary);
    --bs-btn-border-color: var(--ke-primary);
    --bs-btn-hover-bg: var(--ke-primary-dark);
    --bs-btn-hover-border-color: var(--ke-primary-dark);
    --bs-btn-active-bg: var(--ke-primary-dark);
    --bs-btn-active-border-color: var(--ke-primary-dark);
	
  }

  .ke-contract-badge{
    font-size: .9rem;
    line-height: 1.2;
  }

		
@media (max-width: 576px) {
  .navbar-brand img {
    height: 32px !important;
  }
}
		
.ke-sticky-topbar,.navbar {
  position: sticky;
  top: 0;
  z-index: 1020;           /* über Cards/Table */
  padding-top: .5rem;
  backdrop-filter: blur(6px);
}
.ke-sticky-topbar{ top: 87px; } /* wenn Navbar 56px hoch ist */

.ke-focus-card{
    border: 2px solid var(--ke-primary);
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,.08);
  }

  /* Login-Kachel: minimal größer & leicht abgesetzt */
  .ke-login-card{
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 0.75rem 1.5rem rgba(0,0,0,.08);
    background: #fff;
  }
  .ke-login-card .card-body{
    padding: 1.75rem 1.5rem;
  }

  /* Mobile Collapse Buttons */
  .ke-collapse-toggle{
    padding: 0;
    border: 0;
    background: transparent;
  }

i.bi { transition: transform .15s ease; }
.card i.bi {
  /*color: #6c757d; /* Bootstrap text-muted */
}
.fs-5 {
  font-size: 1.15rem !important;
}
.fs-7 {
  font-size: 0.75rem;
}
.fs-8 {
  font-size: 0.7rem;
}
/* Guthaben (negative Beträge) */
.ke-credit {
  color: #198754;          /* Bootstrap success */
  font-weight: 600;
}

/* Optional: etwas dezenter für kleine Labels */
.ke-credit-muted {
  color: #198754;
}
.ke-map {
  height: 180px;
  border-radius: .75rem;
  overflow: hidden;
}
.leaflet-control-attribution { font-size: 10px; }
.ke-map-card-hidden {
  display: none;
}
/* Highcharts Series Styling für EPEX Prognose/Zukunft */
.highcharts-series.ke-epex-future path.highcharts-graph{
  stroke-dasharray: 6,4;
  stroke-opacity: 0.45;
}
.highcharts-series.ke-epex-future path.highcharts-area{
  fill-opacity: 0.12;
}
@media (max-height: 700px){
  .modal-dialog{ align-items:flex-start; }
  .modal-body{ max-height: 70vh; overflow:auto; }
}
.ke-floatbox{
  position: fixed;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1050; /* über Cards, unter Modals */
  width: 46px;   /* geschlossen */
  max-width: calc(100vw - 24px);
  transition: width .25s ease;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 .25rem .75rem rgba(0,0,0,.12);
}

.ke-floatbox.is-open{
  width: 280px; /* geöffnet */
}

.ke-floatbox-tab{
  width: 100%;
  border: 0;
  background: var(--ke-primary);
  color: #fff;
  padding: 10px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
}

.ke-floatbox-tabtext{
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  /*font-size: 1em;
  letter-spacing: .05em;*/
  line-height: 1;
  white-space: nowrap;
}

.ke-floatbox.is-open .ke-floatbox-tabtext{
  writing-mode: horizontal-tb;
  transform: none;
  /*font-size: 13px;*/
  font-weight: 600;
}

.ke-floatbox-icon{
  transition: transform .25s ease;
}

.ke-floatbox.is-open .ke-floatbox-icon{
  transform: rotate(180deg);
}

.ke-floatbox-body{
  display: none;
  padding: 12px;
}

.ke-floatbox.is-open .ke-floatbox-body{
  display: block;
}


/* --- Portal Carousel --- */
.ke-carousel{ position:relative; }

/* Safe Padding: verhindert Überdecken durch Pfeile */
.ke-carousel .carousel-inner{
  padding-left: 20px;   /* Platz für Pfeil links */
  padding-right: 20px;  /* Platz für Pfeil rechts */
}

/* Controls + Dots: zunächst verstecken */
.ke-carousel .carousel-control-prev,
.ke-carousel .carousel-control-next,
.ke-carousel .carousel-indicators{
  opacity: 0;
  transition: opacity .18s ease;
}

/* Bei Hover/Fokus innerhalb der Card anzeigen */
.ke-carousel:hover .carousel-control-prev,
.ke-carousel:hover .carousel-control-next,
.ke-carousel:hover .carousel-indicators,
.ke-carousel:focus-within .carousel-control-prev,
.ke-carousel:focus-within .carousel-control-next,
.ke-carousel:focus-within .carousel-indicators{
  opacity: 1;
}

/* Auf Touch-Geräten (kein Hover) immer anzeigen */
@media (hover: none){
  .ke-carousel .carousel-control-prev,
  .ke-carousel .carousel-control-next,
  .ke-carousel .carousel-indicators{
    opacity: 1;
  }
}

/* Controls: mittig */
.ke-carousel .carousel-control-prev,
.ke-carousel .carousel-control-next{
  top: 50%;
  transform: translateY(-50%);
  bottom: auto;
  /*width: 52px; */         /* passt zu padding */
  align-items:center;
  justify-content:center;
  opacity: inherit;     /* steuert Sichtbarkeit über parent */
	width: auto;
}

/* Kein dunkles Overlay */
.ke-carousel .carousel-control-prev:hover,
.ke-carousel .carousel-control-next:hover{
  opacity: 1;
}

/* Icon Button Look */
.ke-carousel .ke-carousel-btn{
  color: var(--ke-primary);
  text-decoration:none;
  pointer-events: auto; /* wichtig, wenn parent opacity 0 */
}

.ke-carousel .ke-carousel-btn i{
  font-size: 1.6rem;
  line-height: 1;
  /*background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 999px;
  padding: .35rem .55rem;
  box-shadow: 0 .25rem .75rem rgba(0,0,0,.08);*/
}

/* Disabled */
.ke-carousel .carousel-control-prev.disabled,
.ke-carousel .carousel-control-next.disabled{
  opacity: .25 !important;
  pointer-events: none;
}

/* Dots unten dezent */
.ke-carousel .carousel-indicators{
  margin-bottom: .35rem;
  pointer-events: none; /* verhindert Klick wenn versteckt */
}
.ke-carousel:hover .carousel-indicators,
.ke-carousel:focus-within .carousel-indicators{
  pointer-events: auto;
}
.ke-carousel .carousel-indicators [data-bs-target]{
  width: 7px;
  height: 7px;
  border-radius: 999px;
}

/* Optional: Dots nicht über Footer legen -> leicht nach innen */
.ke-carousel .carousel-indicators{
  inset-inline: 0;
}

.ke-subnav>.container{
  /*background: rgba(0,0,0,.02); */ /* leicht abgesetzt */
}

.ke-subnav-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .6rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  font-weight: 600;
  font-size: .85rem;
  color: var(--ke-primary);
}

.ke-subnav-btn{
  
  border: 1px solid rgba(0,0,0,.10);
  
  
}

.ke-subnav-btn:hover{
  color: #fff;
  background: var(--ke-primary);
  border-color: var(--ke-primary);
}


/* Mobile: komplett deaktivieren */
@media (max-width: 767.98px){
  .ke-floatbox{
    display: none !important;
  }
}
