/* Belegungsplan (öffentlich und intern) */
.bp-auswahl { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.bp-auswahl a { padding: .35rem .8rem; border: 1px solid #ddd; border-radius: 999px; text-decoration: none; color: inherit; background: #fff; }
.bp-auswahl a.aktiv { background: #b4501a; border-color: #b4501a; color: #fff; }
.bp-navigation { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin: 0 0 .8rem; }
.bp-pfeil { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border: 1px solid #ddd;
  border-radius: 50%; text-decoration: none; font-size: 1.3rem; color: inherit; background: #fff; }
.bp-heute { font-size: .9rem; }
.bp-rahmen { overflow-x: auto; border: 1px solid #e7e2dd; border-radius: 8px; background: #fff; }
.bp-raster { display: grid; grid-template-columns: 3.2rem repeat(7, minmax(90px, 1fr)); min-width: 720px; }
.bp-kopf { text-align: center; font-weight: 600; padding: .45rem .2rem; border-bottom: 1px solid #e7e2dd; background: #fef0e7; line-height: 1.2; }
.bp-kopf small { display: block; font-weight: 400; color: #5f6670; }
.bp-kopf.heute { background: #f57d32; color: #fff; }
.bp-kopf.heute small { color: #fff; }
.bp-zeiten, .bp-tag { position: relative; height: var(--bp-hoehe); }
.bp-zeiten span { position: absolute; right: .3rem; transform: translateY(-50%); font-size: .7rem; color: #5f6670; }
.bp-zeiten span:first-child { transform: none; }
.bp-tag { border-left: 1px solid #eee; }
.bp-tag.heute { background: #fffaf6; }
.bp-linie { position: absolute; left: 0; right: 0; border-top: 1px solid #f1eeea; }
.bp-eintrag { position: absolute; box-sizing: border-box; overflow: hidden; padding: 2px 4px; border-radius: 4px; font-size: .72rem;
  line-height: 1.2; text-decoration: none; color: #222; border: 1px solid; border-left-width: 3px; text-align: left; }
.bp-eintrag small { display: block; font-weight: 600; }
.bp-eintrag span { display: block; overflow-wrap: anywhere; }
.bp-eintrag.training { background: #fef0e7; border-color: #f57d32; }
.bp-eintrag.buchung { background: #e8eef9; border-color: #3d63b0; }
.bp-eintrag.anfrage { background: repeating-linear-gradient(45deg, #fff, #fff 5px, #f4f4f4 5px, #f4f4f4 10px); border-color: #999; border-style: dashed; }
a.bp-eintrag:hover { filter: brightness(.95); z-index: 2; }
.bp-legende { font-size: .85rem; display: flex; gap: .6rem; flex-wrap: wrap; }
.bp-legende .bp-eintrag { position: static; display: inline-block; padding: .1rem .5rem; font-size: .8rem; }
@media print {
  .bp-navigation a, .bp-auswahl, .bp-aktionen { display: none !important; }
  .bp-rahmen { overflow: visible; border: 0; }
  .bp-raster { min-width: 0; }
}

/* Zeitraum im Plan markieren */
[data-markieren] .bp-tag { cursor: crosshair; user-select: none; }
.bp-markierung { position: absolute; left: 2px; right: 2px; z-index: 3; background: rgba(61, 99, 176, .18); border: 2px solid #3d63b0;
  border-radius: 4px; font-size: .75rem; font-weight: 700; color: #1f3d7a; padding: 1px 4px; pointer-events: none; }
.bp-markierung.konflikt { background: rgba(200, 40, 40, .15); border-color: #c62828; color: #8e1b1b; }
.bp-auswahl-leiste { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 60; display: flex; gap: .8rem;
  align-items: center; flex-wrap: wrap; justify-content: center; max-width: calc(100vw - 2rem); background: #fff; border: 1px solid #ddd;
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.2); padding: .6rem .9rem; }
.bp-auswahl-leiste .w-knopf, .bp-auswahl-leiste .knopf { margin: 0; }
.bp-auswahl-weg { margin: 0; background: none; border: 0; font-size: 1.3rem; cursor: pointer; color: #666; padding: 0 .3rem; }
.bp-tipp { font-size: .85rem; color: #5f6670; margin: .5rem 0 0; }
@media print { .bp-tipp, .bp-auswahl-leiste { display: none !important; } }
