body {
  padding-top: env(safe-area-inset-top);
  background-color: #f8f9fa; /* gleich wie theme-color */
}


@font-face {
  font-family: 'VfB Font';
  src: url('../qrfonts/VfB-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'VfB Font';
  src: url('../qrfonts/VfB-Bold.ttf') format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'VfB Font';
  src: url('../qrfonts/VfB-Italic.ttf') format('truetype');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'VfB Font';
  src: url('../qrfonts/VfB-BoldItalic.ttf') format('truetype');
  font-weight: bold;
  font-style: italic;
}

.card {
  border-radius: 0.5rem;
}

.btn-dark {
  background-color: #343a40;
  border-color: #343a40;
}

.btn-dark:hover {
  background-color: #23272b;
  border-color: #1d2124;
}



.card-header {
  background-color: #f8f9fa;
}

.card > .card-header:first-child {
  border-top-left-radius: 0.375rem;  /* = .card's default border-radius */
  border-top-right-radius: 0.375rem;
}

.card {
  border-radius: 0.375rem; /* Standard bei Bootstrap 5 */
}


.card-header.collapsed {
  border-bottom: none !important;
  border-bottom-color: transparent !important;
  border-bottom-left-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}


.card-header:not(.collapsed) {
  border-bottom: none !important;
  border-bottom-color: transparent !important;
  border-bottom-left-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}


#reader {
  width: 100%;
  max-width: 600px;
  margin: auto;
  position: relative;
}

#reader > div {
  width: 100% !important;
  height: auto !important;
}

#reader video {
  width: 100% !important;
  height: auto !important;
  border-radius: .5rem;
  object-fit: cover;
}

.form-control::placeholder {
  color: #aaa;
  font-size: 0.9em;
  opacity: 0.6;
}

.custom-field-label {
  min-height: 3.2rem;
  font-size: 0.9rem;
  line-height: 1.3;
  white-space: normal;
  text-wrap: balance; /* verbessert Umbrüche bei modernen Browsern */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.5rem;
}


.form-switch .form-check-input:checked {
  background-color: #198754; /* Bootstrap "success" grün */
  border-color: #198754;
}

.badge-muted {
  background-color: #78787844;
}

.pac-container {
  z-index: 1060 !important; /* mindestens so hoch wie Bootstrap Modal (1055–1060) */
}

.is-invalid {
  border-color: #dc3545;
}

.dt-buttons .btn {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: inherit; /* oder z. B. #198754 für Bootstrap-success */
}

.dt-buttons .btn:hover {
  background-color: rgba(0,0,0,0.05);
  border-radius: 0.375rem;
}

.dt-buttons .btn i {
  vertical-align: middle;
}


/* Diasabled Buttons */
.feld-deaktiviert {
  background-color: #f2f2f2 !important;
  color: #999 !important;
  border: 1px dashed #ccc !important;
  pointer-events: none;
  opacity: 1 !important;
  position: relative;
}

.feld-deaktiviert::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 8%;
  width: 84%;
  height: 1px;
  background: #aaa;
  transform: rotate(-5deg);
  pointer-events: none;
}

.feld-deaktiviert i {
  color: #bbb !important;
  opacity: 0.6;
}


/* Feldoptionen im Modal mit weißem Text bei Disabled */
.btn-outline-secondary.active:disabled,
.btn-outline-secondary.disabled.active {
  color: #fff !important;
}


/* Aktive Seite Pagination */
.dataTables_wrapper .dataTables_paginate .page-item.active .page-link {
  background-color: #6c757d !important; /* Bootstrap secondary */
  border-color: #6c757d !important;
  color: white !important;
}

/* DataTables Detail View Styles */
.dt-responsive-container {
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
}

.dt-responsive-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 1px solid #e9ecef;
  gap: 1rem;
  flex-wrap: wrap;
}

.dt-responsive-label {
  flex: 0 0 40%;
  font-weight: 500;
  color: #6c757d;
  font-size: 0.875rem;
}

.dt-responsive-value {
  flex: 1 1 60%;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* Mail Templates Table Styles */
#mailTemplatesTable td {
  vertical-align: middle !important;
}

/* Typ Spalte */
#mailTemplatesTable td:first-child,
#mailTemplatesTable th:first-child {
  white-space: nowrap; /* Das darf bleiben, wenn du Umbruch verhindern willst */
  max-width: none;
  width: auto;
}

/* Status und Standard Spalten */
#mailTemplatesTable td:first-child,
#mailTemplatesTable th:first-child {
  white-space: nowrap;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Status und Standard Spalten */
#mailTemplatesTable .action-column {
  white-space: nowrap;
  max-width: 150px;
}



@media (max-width: 575.98px) {
  .statistik-text .label-text {
    display: none;
  }

    #columnToggleBtn {
    width: 100% !important;
  }
  
  #datatable-custom-search-group {
    max-width: none !important;
  }

  /* .btn-compact {
    padding: 0.25rem 0.4rem !important;
    font-size: 0.75rem !important;
    border: none !important;
    box-shadow: none !important;
  } */
   
  .row > .col:first-child {
    margin-top: 1rem;
  }

  .feld-icon-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(42px, 1fr));
    gap: 0.25rem;
    align-items: center;
    justify-content: start;
  }

  .extra-preview {
    margin-top: 6px;      /* etwas Abstand nach oben */
    margin-left: 4rem !important;  /* Abstand zur Emoji-Spalte */
  }

}



@media (orientation: landscape) and (max-width: 1024px) {
  .schichtplan-container,
  .mailtemplate-container,
  .dashboard-container,
  .header-container,
  .veranstaltung-container,
  .veranstaltungen-container,
  .signup-container {
    max-width: 100% !important;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .extra-preview {
    margin-top: 6px;      /* etwas Abstand nach oben */
    margin-left: 4rem !important;  /* Abstand zur Emoji-Spalte */
  }
}


td.dtr-control::before {
  font-size: 0.65rem !important;
  color: #999 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

td.dtr-control {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
  width: 1.5rem !important;
}

/* Note Editor Styles */
.note-toolbar .dropdown-toggle .caret + .caret {
  display: none !important;
}

.note-fontname option[value='VfB Font'] {
  font-family: 'VfB Font', sans-serif;
}

/* In deine globale CSS-Datei (z. B. assets/css/styles.css) */

.form-check-input:checked {
  background-color: #198754; /* Bootstrap "success" grün z. B. */
  border-color: #198754;
}

.form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(25, 135, 84, 0.25);
}

.form-control:focus {
  color: #212529;
  background-color: #fff;
  border-color: #198754;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
}

select.form-control:focus {
  border-color: #198754;
  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
}

select:focus {
  border-color: #198754;
  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
}

.card-header {
  overflow: visible;
  position: relative; /* wichtig für z-index-Kontext */
  z-index: 1;          /* stellt sicher, dass Tooltips nicht überdeckt werden */
}

.drag-handle {
  cursor: grab;
  touch-action: none; /* manchmal nötig */
  padding: 0.5rem;
}

.sortable-container, .schichtplan-container {
  position: relative;
}

.sortable-item, .schicht-item {
  display: block;
  width: 100%;
  position: relative;
  margin-bottom: 1rem;
}

.sortable-item > .card, .schicht-item > .card {
  width: 100%;
  margin: 0;
}

.sortable-placeholder {
  height: 140px;
  border: 2px dashed #999;
  background: #f8f9fa;
  margin-bottom: 1rem;
}

.btn-pill-fixed {
  min-width: 70px;
  text-align: center;
}


.sortable-placeholder-rolle {
  height: 70px;
  border: 2px dashed #999;
  background: #f8f9fa;
  margin-bottom: 1rem;
}

/* cursor: grab überall dort, wo man ziehen kann */
[draggable="true"] {
  cursor: grab;
}

/* während Drag */
[draggable="true"]:active {
  cursor: grabbing;
}

.sortable-placeholder-eintrag {
  height: 42px;
  background: transparent;
  border-left: 4px solid var(--bs-primary); /* oder #0d6efd */
  margin-bottom: 6px;
  border-radius: 0;
  padding-left: 0.5rem;
  position: relative;
  font-style: italic;
  color: #6c757d;
}

.sortable-placeholder-eintrag::before {
  content: "↳ Hier ablegen";
  font-size: 0.9rem;
  color: #adb5bd;
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
}

.dropzone.drag-over {
  background-color: #f8f9fa;
  outline: 2px dashed #ced4da;
  outline-offset: -2px;
  border-radius: 6px;
  transition: outline 0.1s ease-in-out;
}


/* Drag-Effekt für das Element */
.dragging {
  opacity: 0.5;
  transition: opacity 0.2s ease;
}

/* Eingefügtes Element animiert einfliegen lassen */
.moving-item {
  transition: all 0.3s ease;
  opacity: 0;
  transform: translateY(10px); /* leichter Versatz nach unten */
}

/* Danach eingeblendet */
.moving-item.show {
  opacity: 1;
  transform: translateY(0);
}




.rolle-card {
  background: #fafafa;
  border: 1px solid #ddd;
  border-radius: 0.5rem;
  padding: 1rem;
  margin-bottom: 1rem;
}

.rolle-card .form-control,
.rolle-card .form-select {
  width: 100%;
}

@media (min-width: 576px) {
  .rolle-card {
    padding: 0.75rem 1rem;
  }

  .rolle-card .form-control-sm,
  .rolle-card .form-select-sm {
    font-size: 0.875rem;
  }
}

.rolle-entry .form-control-sm,
.rolle-entry .form-select-sm,
.rolle-entry .btn-sm {
  height: calc(1.5em + .5rem + 2px); /* exakt gleich für alle */
  padding-top: .25rem;
  padding-bottom: .25rem;
}

.rolle-entry .emoji-picker-btn {
  width: 2.5rem;
  height: auto;
  padding: 0.25rem;
  font-size: 1rem;
  line-height: 1.8; /* exakt wie bei .form-control-sm in Bootstrap 5 */
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem; /* exakt wie bei form-control-sm */
  background-color: #fff;
}

/* Fix: übergeordnete Container dürfen Picker nicht abschneiden */
.card-body,
.rollen-container,
.schicht-item {
  overflow: visible !important;
  position: relative;
}


.rolle-entry .drag-handle {
  cursor: move;
}

label.btn > .badge {
    line-height: 1;
    font-size: 0.75rem;
}

.btn .badge {
    font-size: 0.75rem;
    line-height: 1;
    padding: 0.25em 0.5em;
    display: inline-block;
}


.card.card-accent-start-warning {border-left: .5rem solid var(--bs-warning);}


/* .feld-icon-wrapper {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.5rem;
} */


  /* Layout-Zeilen in der Auswahl-Übersicht */
  .summary-row{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%}
  .summary-main{order:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;max-width:100%}
  .summary-right{order:2;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;width:100%}

  /* ➜ Extra-Felder (Chips) immer in eigener Zeile */
  .summary-chips{
    order:3;
    display:flex;
    flex-wrap:wrap;
    gap:.35rem;
    width:100%;
    margin-top:.25rem;
  }

  /* kompakte Pill & Chips (wie zuvor) */
  .dtpill{display:inline-flex;align-items:center;gap:.5rem;padding:.2rem .55rem;border:1px solid var(--bs-border-color);
          border-radius:.5rem;background:var(--bs-light);font-size:.85rem;line-height:1.1;white-space:nowrap}
  .dtpill-warning{background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);border-color:var(--bs-warning-border-subtle)}
  .sum-chip{font-size:.8rem;background:var(--bs-secondary-bg);color:var(--bs-secondary-color);border:1px solid var(--bs-border-color)}
  .sum-remove.btn{line-height:1;padding:.15rem .4rem}
  /* #auswahl-summary .border-warning{border-left-width:.35rem!important} */
  #auswahl-summary .list-group-item.border-warning{
    border-color: var(--bs-border-color) !important;          /* alle wieder grau */
    border-inline-start-color: var(--bs-warning-border-subtle) !important; /* links gelb */
    border-inline-start-width: .35rem !important;             /* links dicker Akzent */
    border-inline-start-style: solid !important;
  }

  /* Desktop: Titel links, Pill/✕ rechts — Chips bleiben DARUNTER (volle Breite) */
  @media (min-width:768px){
    .summary-row{flex-direction:row;align-items:center;gap:.5rem;flex-wrap:wrap}
    .summary-main{order:1;margin-right:.5rem}
    .summary-right{order:2;margin-left:auto;width:auto}
    .summary-chips{order:3;width:100%;margin-top:.25rem} /* <— zwingt neue Zeile */
  }

  /* responsive Header-Layout für renderAufgabenliste */
  .ral-hdr-row{display:flex;flex-direction:column;gap:.25rem}
  .ral-hdr-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
  .ral-hdr-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}

  /* ab md: wieder in eine Zeile, Pill rechts */
  @media (min-width:768px){
    .ral-hdr-row{flex-direction:row;align-items:center}
    .ral-hdr-right{margin-left:auto}
  }






