:root{--bg:#f4f6fb;--card:#ffffff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--brand:#2563eb;--danger:#dc2626;--ok:#16a34a;--warn:#f59e0b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand a{font-weight:800;color:var(--text);text-decoration:none}.topbar nav{display:flex;gap:14px;flex-wrap:wrap}.topbar nav a{color:#374151;text-decoration:none;font-weight:600}.topbar nav a:hover{color:var(--brand)}.container{max-width:1380px;margin:0 auto;padding:22px}.footer{text-align:center;color:var(--muted);padding:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.06);padding:22px;margin-bottom:18px}.card.narrow{max-width:460px;margin:50px auto}.card.wide{min-width:0}.card.side{height:max-content}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}h1,h2,h3{margin:0 0 12px}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:13px}.form{display:grid;gap:12px}.form.compact{gap:10px}.form label{display:grid;gap:5px;font-weight:650}.form input,.form select,.form textarea,.copy,.inline input,.userrow input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font:inherit}.form .check{display:flex;grid-template-columns:none;align-items:center;gap:10px;font-weight:500}.form .check input{width:auto}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:10px 14px;background:var(--brand);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(.95)}.btn.ghost{background:#eef2ff;color:#1f2937}.btn.danger{background:var(--danger)}.btn.small{padding:6px 10px;border-radius:9px;font-size:13px}.flash{padding:12px 14px;border-radius:12px;margin-bottom:16px;background:#eff6ff;border:1px solid #bfdbfe}.flash.success{background:#ecfdf5;border-color:#bbf7d0}.flash.error{background:#fef2f2;border-color:#fecaca}.flash.warning{background:#fffbeb;border-color:#fde68a}.split{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.legend{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.legend span{display:inline-flex;align-items:center;gap:6px;background:#f9fafb;border:1px solid var(--line);border-radius:999px;padding:5px 9px}.legend i,.dot{width:11px;height:11px;border-radius:50%;display:inline-block}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:9px 8px}.table th{font-size:13px;color:var(--muted);font-weight:800}.inline{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.mt{margin-top:12px}.userrow{display:grid;grid-template-columns:1.1fr 1.4fr 50px 140px 140px auto;gap:8px;align-items:center;margin-bottom:8px}.fc .fc-button{border-radius:10px!important}.fc .fc-toolbar-title{font-size:1.4rem!important}.fc-event{border-radius:8px!important;padding:2px 4px}.fc-bg-event{opacity:.45!important}@media(max-width:900px){.grid.two{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:10px;flex-direction:column}.split{flex-direction:column}.legend{justify-content:flex-start}.userrow{grid-template-columns:1fr}.container{padding:14px}}
.draft-filter{margin-bottom:10px}.mt{margin-top:12px}.fc-event[style*="rgb"]{font-weight:650}.fc-event-title{font-weight:700}.legend .muted{opacity:.75}.color-preview{display:inline-flex;align-items:center;gap:8px}.color-preview input[type=color]{width:52px;padding:3px;height:38px}
.inline select,.inline textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font:inherit}.tablewrap{overflow:auto}.table input[type=checkbox]{transform:scale(1.1)}code{background:#f3f4f6;border:1px solid var(--line);border-radius:6px;padding:1px 5px}.btn + .btn{margin-left:6px}
.user-admin-card{border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:10px;background:#fbfdff}.delete-user-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.delete-user-form .check{display:flex;align-items:center;gap:7px;margin:0}.delete-user-form input[type=checkbox]{width:auto}.danger-zone{border-color:#fecaca;background:#fff7f7}

.alertcard { border: 2px solid #f59e0b; background: #fffbeb; }
.swap-list { display: grid; gap: 12px; margin-top: 12px; }
.swap-card { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px; border: 1px solid #f3d18a; border-radius: 16px; background: #fff; }
.swap-card .inline { flex-wrap: nowrap; }
@media (max-width: 760px) { .swap-card { align-items: stretch; flex-direction: column; } .swap-card .inline { justify-content: flex-start; } }

/* v1.7: übersichtlichere Benutzer-/Parteiverwaltung */
.users-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(520px,1.55fr);gap:22px;align-items:start}.user-list-panel{min-width:0}.party-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.party-color-dot{width:18px;height:18px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--line);flex:0 0 auto}.party-title{display:grid;gap:1px;min-width:0}.party-title strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-title span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-service-count{margin-left:auto;background:#f3f4f6;border:1px solid var(--line);border-radius:999px;padding:4px 9px;color:var(--muted);font-size:13px;white-space:nowrap}.party-edit-form{display:grid;grid-template-columns:minmax(160px,1.1fr) minmax(210px,1.45fr) 78px 135px 135px auto;gap:10px;align-items:end}.party-edit-form label{display:grid;gap:4px;font-weight:650;font-size:13px;color:#374151}.party-edit-form input{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;font:inherit}.party-edit-form input[type=color]{height:41px;padding:3px}.party-actions{display:flex;align-items:end}.user-admin-card{background:#fff;border-color:#dbe2ea;box-shadow:0 3px 14px rgba(15,23,42,.04)}@media(max-width:1100px){.users-layout{grid-template-columns:1fr}.party-edit-form{grid-template-columns:1fr 1fr}.party-actions{align-items:stretch}.party-actions .btn{width:100%}}@media(max-width:650px){.party-edit-form{grid-template-columns:1fr}.party-card-header{align-items:flex-start}.party-service-count{margin-left:0}.party-card-header{flex-wrap:wrap}}

/* Reithalle Buchung */
.hall-grid{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.hall-grid th{background:#f8fafc;color:#374151;font-size:13px;text-align:left;padding:10px;border-bottom:1px solid var(--line)}.hall-grid td{height:42px;border-bottom:1px solid #eef2f7;border-right:1px solid #eef2f7;padding:5px;vertical-align:top}.hall-grid tr:last-child td{border-bottom:0}.hall-grid td:last-child{border-right:0}.hall-time{width:78px;color:var(--muted);font-weight:700;font-size:13px;background:#fbfdff}.booking-chip{display:block;border-radius:10px;padding:6px 8px;font-size:13px;font-weight:750;color:#fff;min-height:30px;box-shadow:0 3px 10px rgba(15,23,42,.08)}.booking-chip .meta{display:block;font-weight:600;font-size:12px;opacity:.95}.booking-chip.block{background:#6b7280;color:#fff}.booking-chip.freejump{background:#7c3aed;color:#fff}.booking-chip.empty{background:transparent;color:transparent;box-shadow:none}.booking-actions{margin-top:4px}.booking-actions button{font-size:11px;padding:4px 7px;border-radius:8px}.stat-list{display:grid;gap:8px}.stat-row{display:grid;grid-template-columns:130px minmax(0,1fr) 62px;gap:10px;align-items:center}.bar{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:#2563eb;border-radius:999px}.season-grid{display:grid;grid-template-columns:120px repeat(3, minmax(120px,1fr));gap:8px;align-items:end}.opening-grid{display:grid;grid-template-columns:120px repeat(4, minmax(100px,1fr));gap:8px;align-items:end;margin-bottom:8px}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#f9fafb;border-radius:999px;padding:5px 9px;font-size:13px}.sep{border:0;border-top:1px solid var(--line);margin:18px 0}.mini-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdff;margin-bottom:10px}.horse-list{display:flex;gap:8px;flex-wrap:wrap}.horse-pill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:#fff}@media(max-width:760px){.hall-grid{font-size:13px}.hall-grid td{height:52px}.hall-time{width:58px}.season-grid,.opening-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:90px minmax(0,1fr) 46px}}

/* Reithalle Buchung v1.2: kompakter Klick-Kalender */
.booking-layout{align-items:start}.calendar-help{margin-top:2px;margin-bottom:14px}.hall-calendar{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}.calendar-head{display:grid;grid-template-columns:72px 1fr 1fr;border-bottom:1px solid var(--line);background:#f8fafc}.calendar-head>div{padding:10px 12px;font-size:13px;font-weight:800;color:#374151;border-right:1px solid var(--line)}.calendar-head>div:last-child{border-right:0}.calendar-body{display:grid;grid-template-columns:72px minmax(0,1fr);min-height:var(--calendar-height)}.calendar-times{position:relative;background:#fbfdff;border-right:1px solid var(--line);height:var(--calendar-height)}.calendar-times span{position:absolute;right:10px;transform:translateY(-50%);font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.calendar-times span:first-child{transform:translateY(0)}.calendar-lanes{position:relative;height:var(--calendar-height);background:linear-gradient(90deg, transparent calc(50% - .5px), #eef2f7 calc(50% - .5px), #eef2f7 calc(50% + .5px), transparent calc(50% + .5px))}.calendar-hour-line{position:absolute;left:0;right:0;border-top:1px solid #e8edf5;z-index:1}.slot-hit{position:absolute;border:0;background:transparent;border-radius:10px;z-index:2;cursor:pointer}.slot-hit.lane-c{left:8px;width:calc(50% - 14px)}.slot-hit.lane-a{left:calc(50% + 6px);width:calc(50% - 14px)}.slot-hit:hover,.slot-hit:focus-visible,.slot-hit.selected{background:rgba(37,99,235,.10);outline:2px solid rgba(37,99,235,.28);outline-offset:-2px}.calendar-event{position:absolute;z-index:5;border-radius:13px;padding:7px 9px;color:#fff;box-shadow:0 8px 18px rgba(15,23,42,.16);overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:28px}.calendar-event.lane-c{left:8px;width:calc(50% - 14px)}.calendar-event.lane-a{left:calc(50% + 6px);width:calc(50% - 14px)}.calendar-event.lane-both{left:8px;right:8px}.calendar-event strong{font-size:13px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event span{font-size:12px;line-height:1.18;font-weight:650;opacity:.96;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.block{background:#6b7280}.calendar-event.freejump{background:#7c3aed}.calendar-event .booking-actions{margin-top:4px;pointer-events:auto}.calendar-event .booking-actions .btn{font-size:11px;padding:3px 7px}.selected-slot{margin:0 0 12px;padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;color:#1e3a8a;font-weight:750}.booking-panel.pulse{animation:panelPulse .6s ease}@keyframes panelPulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.28)}100%{box-shadow:0 0 0 12px rgba(37,99,235,0)}}@media(max-width:760px){.calendar-head{grid-template-columns:52px minmax(118px,1fr) minmax(118px,1fr)}.calendar-body{grid-template-columns:52px minmax(236px,1fr);overflow-x:auto}.calendar-times{position:sticky;left:0;z-index:6}.calendar-lanes{min-width:236px}.calendar-head>div{padding:9px 8px}.calendar-times span{right:7px;font-size:11px}.calendar-event{padding:6px 7px;border-radius:11px}.calendar-event strong{font-size:12px}.calendar-event span{font-size:11px}.slot-hit.lane-c,.calendar-event.lane-c{left:6px;width:calc(50% - 10px)}.slot-hit.lane-a,.calendar-event.lane-a{left:calc(50% + 4px);width:calc(50% - 10px)}.calendar-event.lane-both{left:6px;right:6px}}

/* Reithalle Buchung v1.4: kompakte Benutzerverwaltung */
.admin-user-tools{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 0 16px}.user-search{display:grid;gap:5px;font-weight:700;min-width:min(100%,380px);flex:1}.user-search input{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fff;font:inherit}.admin-create-user,.user-details{border:1px solid var(--line);border-radius:14px;background:#fbfdff;margin:12px 0;padding:0}.admin-create-user>summary,.user-details>summary{list-style:none;cursor:pointer;padding:11px 13px;font-weight:800;color:#1f2937;display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-create-user>summary::-webkit-details-marker,.user-details>summary::-webkit-details-marker{display:none}.admin-create-user>summary:after,.user-details>summary:after{content:'öffnen';font-size:12px;font-weight:800;color:#2563eb;background:#eef2ff;border-radius:999px;padding:4px 8px}.admin-create-user[open]>summary:after,.user-details[open]>summary:after{content:'schließen'}.admin-create-user form,.user-details form,.user-details h3,.user-details .horse-list{padding-left:13px;padding-right:13px}.admin-create-user form{padding-bottom:13px}.admin-create-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr)) 90px 140px 110px;gap:10px;align-items:end}.admin-create-grid label{display:grid;gap:5px}.admin-create-grid input,.admin-create-grid select,.admin-create-user textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font:inherit}.admin-create-grid input[type=color]{height:42px;padding:3px}.admin-user-list{display:grid;gap:10px}.compact-user-card{padding:12px}.compact-user-card[hidden]{display:none}.compact-user-card .party-card-header{margin-bottom:8px}.compact-horse-list{margin-top:4px}.compact-horse-list .horse-pill{font-size:13px;padding:4px 8px}.user-details{background:#fff;margin-top:10px}.user-details .horse-list{padding-bottom:4px}.user-details .inline{padding:0 13px 13px}.user-details h3{font-size:15px;margin-top:14px;margin-bottom:6px}@media(max-width:1200px){.admin-create-grid{grid-template-columns:1fr 1fr}.party-edit-form{grid-template-columns:1fr 1fr}}@media(max-width:700px){.admin-user-tools{align-items:stretch}.admin-user-tools .pill{justify-content:center}.admin-create-grid,.party-edit-form{grid-template-columns:1fr}.compact-user-card{padding:10px}.compact-user-card .party-card-header{align-items:flex-start;flex-wrap:wrap}.compact-user-card .party-service-count{margin-left:0}.user-search{min-width:100%}}

/* Reithalle Buchung v1.5: Feiertagsprüfung */
.holiday-details{border:1px solid var(--line);border-radius:14px;background:#fbfdff;margin:12px 0 16px;padding:0}.holiday-details>summary{cursor:pointer;list-style:none;padding:11px 13px;font-weight:800;color:#1f2937}.holiday-details>summary::-webkit-details-marker{display:none}.holiday-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;padding:0 13px 13px}.holiday-year{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px}.holiday-year strong{display:block;margin-bottom:6px}.holiday-year ul{margin:0;padding-left:18px;color:#374151}.holiday-year li{margin:3px 0;font-size:13px}

/* Reithalle Buchung v1.6: lesbarere Kalenderblöcke, einheitliche Farben, sauberer Abschluss */
.calendar-times span:last-child{transform:translateY(-100%)}
.calendar-event{background:#2563eb!important;padding:5px 68px 5px 8px;display:block;justify-content:flex-start;line-height:1.12;overflow:hidden;min-height:30px}
.calendar-event.booking{background:#2563eb!important}.calendar-event.freejump{background:#7c3aed!important}
.calendar-event.block{background:#374151!important}
.calendar-event .event-time{display:inline-flex;align-items:center;max-width:100%;margin:0 0 2px 0;padding:1px 6px;border-radius:999px;background:rgba(255,255,255,.18);font-size:10.5px;line-height:1.25;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-event strong{display:block;margin:0;font-size:12.5px;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-event .event-sub{display:block;margin-top:1px;font-size:11.5px;line-height:1.1;font-weight:650;opacity:.96;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-event .booking-actions{position:absolute;right:6px;top:5px;margin:0;pointer-events:auto}
.calendar-event .booking-actions .btn{font-size:10.5px;line-height:1;padding:4px 7px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.calendar-event.lane-both{padding-right:76px}
@media(max-width:760px){.calendar-event{padding:5px 58px 5px 7px}.calendar-event .event-time{font-size:10px;padding:1px 5px}.calendar-event strong{font-size:12px}.calendar-event .event-sub{font-size:11px}.calendar-event .booking-actions .btn{font-size:10px;padding:3px 6px}.calendar-event.lane-both{padding-right:64px}}


/* Reithalle Buchung v1.8: deutlich auffälligere Überschneidungs-/Fehlermeldungen */
.flash.error,
.flash.conflict{
  position:sticky;
  top:76px;
  z-index:80;
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:18px 20px;
  border-width:3px;
  border-radius:18px;
  box-shadow:0 18px 44px rgba(127,29,29,.22), 0 0 0 9999px rgba(15,23,42,.04);
  font-size:17px;
  line-height:1.35;
  font-weight:850;
  animation:flashPop .28s ease-out, flashShake .42s ease-out .08s;
}
.flash.error::before,
.flash.conflict::before{
  content:'⚠️';
  flex:0 0 auto;
  font-size:28px;
  line-height:1;
}
.flash.conflict{
  color:#7c2d12;
  background:#fff7ed;
  border-color:#f97316;
}
.flash.error{
  color:#7f1d1d;
  background:#fff1f2;
  border-color:#dc2626;
}
@keyframes flashPop{
  from{opacity:0;transform:translateY(-12px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes flashShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-5px)}
  40%{transform:translateX(5px)}
  60%{transform:translateX(-3px)}
  80%{transform:translateX(3px)}
}
@media(max-width:760px){
  .flash.error,
  .flash.conflict{
    top:96px;
    padding:16px;
    font-size:15.5px;
    border-radius:16px;
  }
  .flash.error::before,
  .flash.conflict::before{font-size:24px}
}

/* Reithalle Buchung v1.10: Kurzbuchungen 15/30 Minuten besser lesbar */
.calendar-event.event-compact{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  column-gap:6px;
  row-gap:0;
  padding:3px 34px 3px 7px;
  min-height:28px;
  overflow:hidden;
}
.calendar-event.event-compact .event-time{
  grid-column:1;
  grid-row:1 / 3;
  margin:0;
  padding:1px 5px;
  font-size:9.5px;
  line-height:1.15;
  max-width:none;
}
.calendar-event.event-compact strong{
  grid-column:2;
  grid-row:1;
  display:block;
  min-width:0;
  font-size:11.8px;
  line-height:1.05;
}
.calendar-event.event-compact .event-sub{
  grid-column:2;
  grid-row:2;
  display:block;
  min-width:0;
  margin:0;
  font-size:10.6px;
  line-height:1.05;
  opacity:.98;
}
.calendar-event.event-compact .booking-actions{
  right:5px;
  top:50%;
  transform:translateY(-50%);
}
.calendar-event.event-compact .booking-actions .btn{
  width:24px;
  height:24px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0;
  line-height:1;
  border-radius:999px;
}
.calendar-event.event-compact .booking-actions .btn::before{
  content:'×';
  font-size:17px;
  font-weight:900;
  line-height:1;
}
@media(max-width:760px){
  .calendar-event.event-compact{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(0,1fr) minmax(0,1fr);
    padding:3px 30px 3px 6px;
    column-gap:0;
    min-height:28px;
  }
  .calendar-event.event-compact .event-time{display:none}
  .calendar-event.event-compact strong{
    grid-column:1;
    grid-row:1;
    font-size:11.5px;
  }
  .calendar-event.event-compact .event-sub{
    grid-column:1;
    grid-row:2;
    font-size:10.5px;
  }
  .calendar-event.event-compact .booking-actions .btn{
    width:23px;
    height:23px;
  }
}


/* Reithalle Buchung v1.11: bessere Darstellung dichter/kurzer Termine */
.calendar-event{
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.16);
}
.calendar-event.event-compact,
.calendar-event.event-micro{
  z-index:8;
  box-shadow:0 5px 12px rgba(15,23,42,.14);
}
.calendar-event.block.event-compact,
.calendar-event.block.event-micro{
  z-index:9;
}
.calendar-event.event-micro{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  padding:2px 31px 2px 7px;
  min-height:20px;
  border-radius:10px;
  line-height:1;
  overflow:hidden;
}
.calendar-event.event-micro.lane-both{
  padding-right:58px;
}
.calendar-event.event-micro .event-line{
  display:block;
  min-width:0;
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:10.7px;
  line-height:1.12;
  font-weight:850;
  color:#fff;
}
.calendar-event.event-micro .booking-actions{
  right:4px;
  top:50%;
  transform:translateY(-50%);
}
.calendar-event.event-micro .booking-actions .btn{
  width:22px;
  height:22px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0;
  line-height:1;
  border-radius:999px;
}
.calendar-event.event-micro .booking-actions .btn::before{
  content:'×';
  font-size:16px;
  font-weight:900;
  line-height:1;
}
.calendar-event:hover,
.calendar-event:focus-within{
  z-index:30;
  outline:2px solid rgba(255,255,255,.68);
  outline-offset:-2px;
}
@media(max-width:760px){
  .calendar-event.event-micro{
    padding:2px 29px 2px 6px;
    min-height:20px;
    border-radius:9px;
  }
  .calendar-event.event-micro.lane-both{
    padding-right:50px;
  }
  .calendar-event.event-micro .event-line{
    font-size:10.2px;
    letter-spacing:-.1px;
  }
  .calendar-event.event-micro .booking-actions .btn{
    width:21px;
    height:21px;
  }
}

/* Reithalle Buchung v1.12: Außenplatz */
.card-map{margin:12px 0 16px}
.area-map{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px}
.area-map-cell{border:1px solid var(--line);background:#f8fafc;border-radius:18px;padding:18px 16px;text-align:left;cursor:pointer;transition:.18s ease;box-shadow:0 6px 16px rgba(15,23,42,.05)}
.area-map-cell strong{display:block;font-size:20px;line-height:1.1;color:#1f2937;margin-bottom:6px}
.area-map-cell span{display:block;color:#64748b;font-size:13px;font-weight:700}
.area-map-cell:hover,.area-map-cell:focus-visible,.area-map-cell.active{border-color:#93c5fd;background:#eff6ff;box-shadow:0 10px 24px rgba(37,99,235,.12)}
.area-map-a{grid-row:1 / span 2;min-height:180px;display:flex;flex-direction:column;justify-content:center}
.area-map-b,.area-map-c{min-height:85px;display:flex;flex-direction:column;justify-content:center}
.outdoor-head{grid-template-columns:72px 1.4fr 1fr 1fr}
.outdoor-body{grid-template-columns:72px minmax(0,1fr)}
.outdoor-lanes{background:
  linear-gradient(90deg,
    transparent calc(42% - .5px), #eef2f7 calc(42% - .5px), #eef2f7 calc(42% + .5px), transparent calc(42% + .5px),
    transparent calc(71% - .5px), #eef2f7 calc(71% - .5px), #eef2f7 calc(71% + .5px), transparent calc(71% + .5px)
  )}
.slot-hit.lane-out-a{left:8px;width:calc(42% - 14px)}
.slot-hit.lane-out-b{left:calc(42% + 6px);width:calc(29% - 12px)}
.slot-hit.lane-out-c{left:calc(71% + 6px);width:calc(29% - 14px)}
.calendar-event.lane-out-a{left:8px;width:calc(42% - 14px)}
.calendar-event.lane-out-b{left:calc(42% + 6px);width:calc(29% - 12px)}
.calendar-event.lane-out-c{left:calc(71% + 6px);width:calc(29% - 14px)}
@media(max-width:760px){
  .area-map{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .area-map-a{grid-column:1 / span 2;grid-row:auto;min-height:110px}
  .area-map-b,.area-map-c{min-height:78px}
  .area-map-cell strong{font-size:18px}
  .outdoor-head{grid-template-columns:52px minmax(130px,1.4fr) minmax(112px,1fr) minmax(112px,1fr)}
  .outdoor-body{grid-template-columns:52px minmax(354px,1fr);overflow-x:auto}
  .outdoor-lanes{min-width:354px}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:6px;width:calc(42% - 10px)}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(42% + 4px);width:calc(29% - 8px)}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(71% + 4px);width:calc(29% - 10px)}
}


/* Reithalle Buchung v1.13: Außenplatz korrigiert */
.outdoor-calendar{overflow-x:auto}
.outdoor-head{grid-template-columns:72px minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)!important}
.outdoor-head>div{white-space:nowrap}
.outdoor-body{grid-template-columns:72px minmax(520px,1fr)!important}
.outdoor-lanes{min-width:520px;background:
  linear-gradient(90deg,
    transparent calc(50% - .5px), #eef2f7 calc(50% - .5px), #eef2f7 calc(50% + .5px), transparent calc(50% + .5px),
    transparent calc(75% - .5px), #eef2f7 calc(75% - .5px), #eef2f7 calc(75% + .5px), transparent calc(75% + .5px)
  )!important}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:8px;width:calc(50% - 14px)!important}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(50% + 6px);width:calc(25% - 12px)!important}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(75% + 6px);width:calc(25% - 14px)!important}
.area-map{grid-template-columns:2fr 1fr!important;grid-template-rows:1fr 1fr!important;gap:12px!important}
.area-map-a{grid-column:1;grid-row:1 / span 2;min-height:172px!important}
.area-map-b{grid-column:2;grid-row:1}
.area-map-c{grid-column:2;grid-row:2}
.area-map-cell{padding:18px 16px!important}
.area-map-cell strong{font-size:22px!important}
.area-map-cell span{font-size:14px!important}
@media(max-width:980px){
  .outdoor-head{grid-template-columns:52px minmax(180px,2fr) minmax(110px,1fr) minmax(110px,1fr)!important}
  .outdoor-body{grid-template-columns:52px minmax(400px,1fr)!important}
  .outdoor-lanes{min-width:400px}
}
@media(max-width:760px){
  .area-map{grid-template-columns:1fr 1fr!important;grid-template-rows:auto auto!important}
  .area-map-a{grid-column:1 / span 2;grid-row:1;min-height:110px!important}
  .area-map-b{grid-column:1;grid-row:2}
  .area-map-c{grid-column:2;grid-row:2}
  .outdoor-head{grid-template-columns:52px minmax(170px,2fr) minmax(100px,1fr) minmax(100px,1fr)!important}
  .outdoor-body{grid-template-columns:52px minmax(370px,1fr)!important}
  .outdoor-lanes{min-width:370px}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:6px;width:calc(50% - 10px)!important}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(50% + 4px);width:calc(25% - 8px)!important}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(75% + 4px);width:calc(25% - 10px)!important}
}


/* Reithalle Buchung v1.14: Platzregeln Außenplatz */
.place-rules{
  margin:14px 0 18px;
  border:1px solid #bfdbfe;
  border-radius:18px;
  background:#f8fbff;
  box-shadow:0 8px 18px rgba(37,99,235,.06);
  overflow:hidden;
}
.place-rules>summary{
  cursor:pointer;
  list-style:none;
  padding:13px 15px;
  font-weight:900;
  color:#1e3a8a;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.place-rules>summary::-webkit-details-marker{display:none}
.place-rules>summary:after{
  content:'anzeigen';
  font-size:12px;
  color:#2563eb;
  background:#dbeafe;
  border-radius:999px;
  padding:4px 9px;
}
.place-rules[open]>summary:after{content:'ausblenden'}
.place-rules-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:0 15px 15px;
}
.place-rule{
  border:1px solid #e0ecff;
  border-radius:14px;
  background:#fff;
  padding:11px 12px;
}
.place-rule strong{
  display:block;
  color:#111827;
  font-size:14px;
  margin-bottom:4px;
}
.place-rule p{
  margin:0;
  color:#4b5563;
  font-size:13px;
  line-height:1.35;
}
@media(max-width:760px){
  .place-rules-grid{grid-template-columns:1fr;padding:0 12px 12px}
  .place-rules>summary{padding:12px}
  .place-rule{padding:10px}
}

/* Reithalle Buchung v1.16: PWA / App-Installation */
.install-app-btn{border:0;border-radius:999px;padding:7px 11px;background:#eef2ff;color:#1f2937;font:inherit;font-weight:800;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line)}
.install-app-btn:hover{background:#e0e7ff;color:#1d4ed8}
@media(display-mode:standalone){.install-app-btn{display:none!important}.topbar{padding-top:max(14px,env(safe-area-inset-top))}.container{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(22px,env(safe-area-inset-bottom))}}

/* Reithalle Buchung v1.17: Außenplatz stabilisiert und Fläche C immer sichtbar */
.outdoor-calendar{
  overflow-x:hidden !important;
}
.outdoor-head{
  display:grid !important;
  grid-template-columns:56px 2fr 1fr 1fr !important;
  width:100% !important;
  min-width:0 !important;
}
.outdoor-head>div{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
}
.outdoor-body{
  display:grid !important;
  grid-template-columns:56px minmax(0,1fr) !important;
  width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
}
.outdoor-lanes{
  width:100% !important;
  min-width:0 !important;
  background:
    linear-gradient(90deg,
      transparent calc(50% - .5px), #dbe3ef calc(50% - .5px), #dbe3ef calc(50% + .5px), transparent calc(50% + .5px),
      transparent calc(75% - .5px), #dbe3ef calc(75% - .5px), #dbe3ef calc(75% + .5px), transparent calc(75% + .5px)
    ) !important;
}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:6px !important;width:calc(50% - 10px) !important}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(50% + 4px) !important;width:calc(25% - 8px) !important}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(75% + 4px) !important;width:calc(25% - 10px) !important}
.area-map{
  grid-template-columns:2fr 1fr !important;
  grid-template-rows:1fr 1fr !important;
}
.area-map-a{grid-column:1 !important;grid-row:1 / span 2 !important;min-height:160px !important}
.area-map-b{grid-column:2 !important;grid-row:1 !important;min-height:74px !important}
.area-map-c{grid-column:2 !important;grid-row:2 !important;min-height:74px !important}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:44px 2fr 1fr 1fr !important}
  .outdoor-body{grid-template-columns:44px minmax(0,1fr) !important}
  .outdoor-head>div{font-size:11px;padding:8px 5px;text-align:center}
  .outdoor-head>div:first-child{text-align:left}
  .outdoor-times span,.calendar-times span{right:5px;font-size:10px}
  .outdoor-lanes{min-width:0 !important}
  .calendar-event.lane-out-b strong,.calendar-event.lane-out-c strong,
  .calendar-event.lane-out-b span,.calendar-event.lane-out-c span{
    font-size:10px;
  }
  .calendar-event.lane-out-b,.calendar-event.lane-out-c{
    padding-left:5px;
    padding-right:24px;
  }
  .area-map{grid-template-columns:2fr 1fr !important;grid-template-rows:1fr 1fr !important;gap:8px !important}
  .area-map-a{grid-column:1 !important;grid-row:1 / span 2 !important;min-height:120px !important}
  .area-map-b{grid-column:2 !important;grid-row:1 !important;min-height:56px !important}
  .area-map-c{grid-column:2 !important;grid-row:2 !important;min-height:56px !important}
  .area-map-cell{padding:10px 9px !important;border-radius:14px !important}
  .area-map-cell strong{font-size:15px !important;margin-bottom:3px !important}
  .area-map-cell span{font-size:10.5px !important;line-height:1.15 !important}
}

/* Reithalle Buchung v1.18: Fläche B/C besser erkennbar und mobil stabil */
.outdoor-head>div:nth-child(3),
.outdoor-head>div:nth-child(4){
  background:#f1f5f9;
}
.outdoor-head>div:nth-child(4){
  box-shadow:inset 3px 0 0 #cbd5e1;
}
.outdoor-lanes{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,0) 0%, rgba(255,255,255,0) 50%,
      rgba(248,250,252,.68) 50%, rgba(248,250,252,.68) 75%,
      rgba(241,245,249,.88) 75%, rgba(241,245,249,.88) 100%
    ),
    linear-gradient(90deg,
      transparent calc(50% - .5px), #94a3b8 calc(50% - .5px), #94a3b8 calc(50% + .5px), transparent calc(50% + .5px),
      transparent calc(75% - 1px), #64748b calc(75% - 1px), #64748b calc(75% + 1px), transparent calc(75% + 1px)
    ) !important;
}
.calendar-event.lane-out-c{
  outline:2px solid rgba(255,255,255,.55);
  outline-offset:-2px;
}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:38px 2fr 1fr 1fr !important}
  .outdoor-body{grid-template-columns:38px minmax(0,1fr) !important}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:4px !important;width:calc(50% - 7px) !important}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(50% + 3px) !important;width:calc(25% - 6px) !important}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(75% + 3px) !important;width:calc(25% - 7px) !important}
  .calendar-event.lane-out-b,.calendar-event.lane-out-c{padding-left:4px;padding-right:18px;min-width:0}
}


/* Reithalle Buchung v1.20: aktuelle Uhrzeit im Kalender */
.calendar-past-shade{position:absolute;left:0;right:0;top:0;background:rgba(100,116,139,.13);z-index:3;pointer-events:none;border-bottom:1px solid rgba(100,116,139,.18)}
.calendar-now-line{position:absolute;left:0;right:0;height:0;border-top:2px solid #dc2626;z-index:7;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(127,29,29,.22))}
.calendar-now-line::before{content:"";position:absolute;left:-1px;top:-5px;width:9px;height:9px;border-radius:999px;background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.16)}
.calendar-now-line span{position:absolute;right:8px;top:-13px;background:#dc2626;color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:850;line-height:1;box-shadow:0 4px 12px rgba(220,38,38,.20);white-space:nowrap}
.calendar-now-end{border-top-style:dashed;opacity:.8}
.slot-hit{z-index:4}.calendar-hour-line{z-index:2}.calendar-event{z-index:8}
@media(max-width:760px){.calendar-now-line span{right:5px;font-size:10px;padding:3px 6px}.calendar-now-line::before{left:0}}


/* Reithalle Buchung v1.21: Vergangenheitsbereich dezenter und Jetzt-Linie wie gewünscht */
.calendar-past-shade{
  left:0;
  right:0;
  top:0;
  background:rgba(107,114,128,.20) !important;
  border-bottom:0 !important;
  z-index:3;
  pointer-events:none;
}
.calendar-now-line{
  left:0;
  right:0;
  border-top:3px solid #dc2626 !important;
  z-index:7;
  filter:none !important;
}
.calendar-now-line::before{
  display:none !important;
}
.calendar-now-line span{
  left:10px !important;
  right:auto !important;
  top:2px !important;
  background:rgba(255,255,255,.88) !important;
  color:#374151 !important;
  border-radius:6px !important;
  padding:1px 6px !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  box-shadow:none !important;
}
.calendar-now-end{
  border-top-style:solid !important;
  opacity:.9;
}
@media(max-width:760px){
  .calendar-now-line span{
    left:6px !important;
    top:2px !important;
    font-size:11px !important;
    padding:1px 5px !important;
  }
}


/* Reithalle Buchung v1.22: Jetzt-Linie und abgelaufene Zeit klar sichtbar */
.calendar-past-shade{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  background:rgba(148,163,184,.30) !important;
  z-index:6 !important;
  pointer-events:none !important;
  border-bottom:0 !important;
  mix-blend-mode:multiply;
}
.calendar-now-line{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  height:3px !important;
  background:#dc2626 !important;
  border:0 !important;
  z-index:30 !important;
  pointer-events:none !important;
  filter:none !important;
  transform:translateY(-1px);
}
.calendar-now-line::before{
  display:none !important;
}
.calendar-now-line span{
  position:absolute !important;
  left:8px !important;
  right:auto !important;
  top:4px !important;
  background:rgba(255,255,255,.92) !important;
  color:#111827 !important;
  border-radius:5px !important;
  padding:1px 5px !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  box-shadow:none !important;
  white-space:nowrap !important;
}
.calendar-hour-line{z-index:2 !important}
.slot-hit{z-index:4 !important}
.calendar-event{z-index:20 !important}
.calendar-event:hover,.calendar-event:focus-within{z-index:35 !important}
@media(max-width:760px){
  .calendar-now-line{height:3px !important}
  .calendar-now-line span{left:6px !important;top:4px !important;font-size:11px !important}
  .calendar-past-shade{background:rgba(148,163,184,.28) !important}
}


/* Reithalle Buchung v1.25: Aktuell-Linie und vergangener Bereich - cache-busting aktiv */
.calendar-lanes{
  overflow:hidden !important;
}
.calendar-past-shade{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  display:block !important;
  min-height:0 !important;
  background:rgba(148,163,184,.30) !important;
  border:0 !important;
  z-index:6 !important;
  pointer-events:none !important;
}
.calendar-now-line{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  display:block !important;
  height:4px !important;
  min-height:4px !important;
  max-height:4px !important;
  border:0 !important;
  background:#dc2626 !important;
  z-index:7 !important;
  pointer-events:none !important;
  filter:none !important;
  box-shadow:0 1px 3px rgba(127,29,29,.20) !important;
}
.calendar-now-line::before{
  display:none !important;
  content:none !important;
}
.calendar-now-line span{
  position:absolute !important;
  left:10px !important;
  right:auto !important;
  top:5px !important;
  display:inline-flex !important;
  align-items:center !important;
  height:auto !important;
  background:rgba(255,255,255,.92) !important;
  color:#991b1b !important;
  border:1px solid rgba(220,38,38,.28) !important;
  border-radius:999px !important;
  padding:2px 8px !important;
  font-size:11px !important;
  font-weight:850 !important;
  line-height:1.2 !important;
  box-shadow:0 2px 7px rgba(15,23,42,.10) !important;
  white-space:nowrap !important;
}
.calendar-hour-line{z-index:2 !important;}
.slot-hit{z-index:4 !important;}
.calendar-event{z-index:8 !important;}
@media(max-width:760px){
  .calendar-past-shade{background:rgba(148,163,184,.34) !important;}
  .calendar-now-line{height:4px !important;min-height:4px !important;}
  .calendar-now-line span{left:6px !important;top:5px !important;font-size:10.5px !important;padding:2px 7px !important;}
}


/* Reithalle Buchung v1.25: Backup fuer aktuelle Zeit, Hauptstil liegt inline in PHP */
.calendar-now-line{background:#dc2626 !important;height:4px !important;min-height:4px !important;border:0 !important;display:block !important;}
.calendar-past-shade{background:rgba(148,163,184,.26) !important;display:block !important;}

/* Reithalle Buchung v1.26: Außenplatz-Hinweise kompakter */
.place-rules-compact{
  margin:10px 0 14px;
  padding:0;
}
.place-rules-grid-compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
  padding:12px;
}
.booking-hints{
  margin-top:14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fafc;
}
.booking-hints p{
  margin:0 0 8px;
  color:#64748b;
  font-size:13px;
  line-height:1.35;
}
.booking-hints p:last-child{margin-bottom:0}
.booking-hints strong{color:#111827}
@media(max-width:760px){
  .place-rules-grid-compact{grid-template-columns:1fr;padding:12px}
}


/* Reithalle Buchung v1.27: Außenplatz mobil lesbarer, ohne horizontales Scrollen */
.outdoor-booking-event .event-sub{
  font-weight:800;
}
.outdoor-booking-event .event-activity{
  display:block;
  margin-top:1px;
  font-size:10.8px;
  line-height:1.05;
  font-weight:700;
  opacity:.92;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:900px){
  .outdoor-calendar{overflow:hidden !important;}
  .outdoor-head{
    grid-template-columns:42px repeat(3,minmax(0,1fr)) !important;
  }
  .outdoor-body{
    grid-template-columns:42px minmax(0,1fr) !important;
    overflow:visible !important;
  }
  .outdoor-lanes{
    min-width:0 !important;
    width:100% !important;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,0) 0%, rgba(255,255,255,0) 33.333%,
        rgba(248,250,252,.70) 33.333%, rgba(248,250,252,.70) 66.666%,
        rgba(241,245,249,.86) 66.666%, rgba(241,245,249,.86) 100%
      ),
      linear-gradient(90deg,
        transparent calc(33.333% - .5px), #94a3b8 calc(33.333% - .5px), #94a3b8 calc(33.333% + .5px), transparent calc(33.333% + .5px),
        transparent calc(66.666% - .5px), #64748b calc(66.666% - .5px), #64748b calc(66.666% + .5px), transparent calc(66.666% + .5px)
      ) !important;
  }
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:5px !important;width:calc(33.333% - 8px) !important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 4px) !important;width:calc(33.333% - 8px) !important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 4px) !important;width:calc(33.333% - 9px) !important;}
  .outdoor-head>div{font-size:11px;padding:8px 4px;text-align:center;}
  .outdoor-head>div:first-child{text-align:left;}
  .outdoor-booking-event{
    padding:5px 26px 5px 6px !important;
    border-radius:11px !important;
    line-height:1.05 !important;
    min-height:34px !important;
  }
  .outdoor-booking-event .event-time{
    display:block !important;
    width:max-content !important;
    max-width:100% !important;
    margin:0 0 2px 0 !important;
    padding:1px 4px !important;
    font-size:9.4px !important;
    line-height:1.1 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .outdoor-booking-event strong{
    display:block !important;
    font-size:11.1px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .outdoor-booking-event .event-sub{
    display:block !important;
    margin-top:1px !important;
    font-size:10.2px !important;
    line-height:1.05 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .outdoor-booking-event .event-activity{
    display:block !important;
    font-size:9.8px !important;
    line-height:1.05 !important;
    font-weight:700 !important;
  }
  .outdoor-booking-event .booking-actions{
    right:3px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
  }
  .outdoor-booking-event .booking-actions .btn{
    width:22px !important;
    height:22px !important;
    padding:0 !important;
    font-size:0 !important;
    border-radius:999px !important;
  }
  .outdoor-booking-event .booking-actions .btn::before{
    content:'×';
    font-size:16px;
    font-weight:900;
    line-height:1;
  }
}
@media(max-width:430px){
  .outdoor-head{grid-template-columns:38px repeat(3,minmax(0,1fr)) !important;}
  .outdoor-body{grid-template-columns:38px minmax(0,1fr) !important;}
  .calendar-times span{right:4px !important;font-size:10px !important;}
  .outdoor-booking-event{padding:4px 23px 4px 5px !important;}
  .outdoor-booking-event .event-time{font-size:8.8px !important;padding:1px 3px !important;}
  .outdoor-booking-event strong{font-size:10.5px !important;}
  .outdoor-booking-event .event-sub{font-size:9.8px !important;}
  .outdoor-booking-event .event-activity{font-size:9.2px !important;}
}

/* Reithalle Buchung v1.28: Außenplatz-Buchungen als lesbare Tagesliste + reduzierte Mobil-Kalenderchips */
.outdoor-agenda{
  margin:14px 0 16px;
  padding:14px;
  border:1px solid #dbe3ee;
  border-radius:18px;
  background:#f8fafc;
}
.outdoor-agenda-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.outdoor-agenda-head h2{
  margin:0;
  font-size:16px;
  line-height:1.2;
}
.outdoor-agenda-head span{
  flex:0 0 auto;
  font-size:12px;
  font-weight:800;
  color:#64748b;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:4px 9px;
}
.outdoor-agenda-empty{
  margin:0;
  color:#64748b;
  font-size:13px;
  line-height:1.35;
}
.outdoor-agenda-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}
.outdoor-agenda-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:10px 11px;
  border-radius:15px;
  background:#fff;
  border:1px solid #dbeafe;
  box-shadow:0 4px 12px rgba(15,23,42,.05);
  border-left:5px solid #2563eb;
}
.outdoor-agenda-item.area-b{border-left-color:#1d4ed8}
.outdoor-agenda-item.area-c{border-left-color:#1e40af}
.outdoor-agenda-item.is-past{
  opacity:.72;
  background:#f1f5f9;
  border-color:#e2e8f0;
}
.outdoor-agenda-main{min-width:0;flex:1 1 auto}
.outdoor-agenda-top{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.outdoor-agenda-area,
.outdoor-agenda-time{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:2px 7px;
  font-size:11px;
  line-height:1.2;
  font-weight:900;
  white-space:nowrap;
}
.outdoor-agenda-area{background:#dbeafe;color:#1e40af}
.outdoor-agenda-time{background:#eef2ff;color:#3730a3}
.outdoor-agenda-main strong{
  display:block;
  color:#0f172a;
  font-size:14px;
  line-height:1.18;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.outdoor-agenda-main>span:last-child{
  display:block;
  margin-top:2px;
  color:#475569;
  font-size:12px;
  line-height:1.2;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.outdoor-agenda-delete{flex:0 0 auto;margin:0}
.outdoor-agenda-delete .btn{
  width:28px;
  height:28px;
  padding:0;
  border-radius:999px;
  font-size:18px;
  line-height:1;
  font-weight:900;
}
@media(max-width:900px){
  .outdoor-agenda{
    margin:12px 0 14px;
    padding:12px;
    border-radius:16px;
  }
  .outdoor-agenda-head h2{font-size:15px}
  .outdoor-agenda-list{
    display:flex;
    overflow-x:auto;
    gap:9px;
    padding:1px 1px 6px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .outdoor-agenda-item{
    min-width:225px;
    max-width:260px;
    scroll-snap-align:start;
    padding:10px;
  }
  .outdoor-agenda-list::-webkit-scrollbar{height:5px}
  .outdoor-agenda-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}

  /* Im Kalender selbst nur kurze Chips anzeigen; die vollständigen Angaben stehen lesbar in der Tagesliste. */
  .outdoor-booking-event{
    padding:4px 22px 4px 5px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow:hidden !important;
    min-height:24px !important;
  }
  .outdoor-booking-event>.event-time,
  .outdoor-booking-event>strong,
  .outdoor-booking-event>.event-sub,
  .outdoor-booking-event>.event-activity,
  .outdoor-booking-event>.event-line{
    display:none !important;
  }
  .outdoor-booking-event::before{
    content:attr(data-short);
    display:block;
    min-width:0;
    color:#fff;
    font-size:10.8px;
    line-height:1.08;
    font-weight:900;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .outdoor-booking-event.event-micro::before,
  .outdoor-booking-event.event-compact::before{
    font-size:10px;
  }
  .outdoor-booking-event .booking-actions{
    right:2px !important;
  }
  .outdoor-booking-event .booking-actions .btn{
    width:20px !important;
    height:20px !important;
  }
}
@media(max-width:430px){
  .outdoor-agenda-item{
    min-width:205px;
    max-width:230px;
  }
  .outdoor-agenda-area,
  .outdoor-agenda-time{font-size:10px;padding:2px 6px}
  .outdoor-agenda-main strong{font-size:13px}
  .outdoor-agenda-main>span:last-child{font-size:11px}
  .outdoor-booking-event::before{font-size:9.8px}
}


/* Reithalle Buchung v1.29: Außenplatz mobil wieder direkt im Kalender lesbar, ohne zusätzliche Tagesliste */
.outdoor-agenda{display:none !important;}
@media(max-width:900px){
  .outdoor-calendar{overflow:hidden !important;}
  .outdoor-head{grid-template-columns:46px repeat(3,minmax(0,1fr)) !important;}
  .outdoor-body{grid-template-columns:46px minmax(0,1fr) !important;overflow:visible !important;}
  .outdoor-lanes{min-width:0 !important;width:100% !important;}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:4px !important;width:calc(33.333% - 7px) !important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 3px) !important;width:calc(33.333% - 7px) !important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 3px) !important;width:calc(33.333% - 7px) !important;}
  .outdoor-head>div{font-size:11px !important;padding:8px 3px !important;text-align:center !important;}
  .outdoor-head>div:first-child{text-align:left !important;}
  .calendar-times span{right:5px !important;font-size:10.5px !important;}

  .outdoor-booking-event,
  .outdoor-booking-event.event-compact,
  .outdoor-booking-event.event-micro{
    min-height:56px !important;
    padding:5px 24px 5px 6px !important;
    border-radius:10px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:1px !important;
    overflow:hidden !important;
    line-height:1.05 !important;
  }
  .outdoor-booking-event::before,
  .outdoor-booking-event.event-compact::before,
  .outdoor-booking-event.event-micro::before{
    content:none !important;
    display:none !important;
  }
  .outdoor-booking-event>.event-time,
  .outdoor-booking-event.event-compact>.event-time,
  .outdoor-booking-event.event-micro>.event-time,
  .outdoor-booking-event>strong,
  .outdoor-booking-event.event-compact>strong,
  .outdoor-booking-event.event-micro>strong,
  .outdoor-booking-event>.event-sub,
  .outdoor-booking-event.event-compact>.event-sub,
  .outdoor-booking-event.event-micro>.event-sub,
  .outdoor-booking-event>.event-activity,
  .outdoor-booking-event.event-compact>.event-activity,
  .outdoor-booking-event.event-micro>.event-activity{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .outdoor-booking-event>.event-time,
  .outdoor-booking-event.event-compact>.event-time,
  .outdoor-booking-event.event-micro>.event-time{
    margin:0 0 1px 0 !important;
    padding:1px 4px !important;
    width:auto !important;
    max-width:100% !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.20) !important;
    font-size:9.3px !important;
    line-height:1.1 !important;
    font-weight:900 !important;
  }
  .outdoor-booking-event>strong,
  .outdoor-booking-event.event-compact>strong,
  .outdoor-booking-event.event-micro>strong{
    font-size:11.3px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
  }
  .outdoor-booking-event>.event-sub,
  .outdoor-booking-event.event-compact>.event-sub,
  .outdoor-booking-event.event-micro>.event-sub{
    font-size:10px !important;
    line-height:1.05 !important;
    font-weight:800 !important;
    opacity:.98 !important;
  }
  .outdoor-booking-event>.event-activity,
  .outdoor-booking-event.event-compact>.event-activity,
  .outdoor-booking-event.event-micro>.event-activity{
    font-size:9.5px !important;
    line-height:1.05 !important;
    font-weight:750 !important;
    opacity:.92 !important;
  }
  .outdoor-booking-event .booking-actions{right:2px !important;top:3px !important;transform:none !important;margin:0 !important;}
  .outdoor-booking-event .booking-actions .btn{width:20px !important;height:20px !important;padding:0 !important;font-size:0 !important;border-radius:999px !important;}
  .outdoor-booking-event .booking-actions .btn::before{content:'×';font-size:15px;font-weight:900;line-height:1;}
}
@media(max-width:430px){
  .outdoor-head{grid-template-columns:42px repeat(3,minmax(0,1fr)) !important;}
  .outdoor-body{grid-template-columns:42px minmax(0,1fr) !important;}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:3px !important;width:calc(33.333% - 5px) !important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 2px) !important;width:calc(33.333% - 5px) !important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 2px) !important;width:calc(33.333% - 5px) !important;}
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{min-height:54px !important;padding:4px 22px 4px 5px !important;}
  .outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{font-size:8.8px !important;padding:1px 3px !important;}
  .outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:10.5px !important;}
  .outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:9.5px !important;}
  .outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{font-size:9px !important;}
}


/* Reithalle Buchung v1.63: Außenplatz-Spalten konsequent gleich breit und Termine direkt lesbar */
.outdoor-calendar{
  overflow:hidden !important;
}
.outdoor-head{
  grid-template-columns:72px repeat(3,minmax(0,1fr)) !important;
}
.outdoor-body{
  grid-template-columns:72px minmax(0,1fr) !important;
  overflow:visible !important;
}
.outdoor-lanes{
  min-width:0 !important;
  width:100% !important;
  background:
    linear-gradient(90deg,
      transparent calc(33.333% - .5px), #eef2f7 calc(33.333% - .5px), #eef2f7 calc(33.333% + .5px), transparent calc(33.333% + .5px),
      transparent calc(66.666% - .5px), #eef2f7 calc(66.666% - .5px), #eef2f7 calc(66.666% + .5px), transparent calc(66.666% + .5px)
    ) !important;
}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:8px !important;width:calc(33.333% - 14px) !important;}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 7px) !important;width:calc(33.333% - 14px) !important;}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 7px) !important;width:calc(33.333% - 15px) !important;}
.outdoor-booking-event,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  min-height:62px !important;
  padding:5px 8px !important;
  border-radius:13px !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:1px !important;
  overflow:hidden !important;
  line-height:1.08 !important;
}
.outdoor-booking-event::before,
.outdoor-booking-event.event-compact::before,
.outdoor-booking-event.event-micro::before{content:none !important;display:none !important;}
.outdoor-booking-event>.event-line{display:none !important;}
.outdoor-booking-event>.event-time,
.outdoor-booking-event.event-compact>.event-time,
.outdoor-booking-event.event-micro>.event-time,
.outdoor-booking-event>strong,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-micro>strong,
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>.event-sub,
.outdoor-booking-event>.event-activity,
.outdoor-booking-event.event-compact>.event-activity,
.outdoor-booking-event.event-micro>.event-activity{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.outdoor-booking-event>.event-time,
.outdoor-booking-event.event-compact>.event-time,
.outdoor-booking-event.event-micro>.event-time{
  width:auto !important;
  max-width:100% !important;
  margin:0 0 1px 0 !important;
  padding:1px 6px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.22) !important;
  font-size:11px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
}
.outdoor-booking-event>strong,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-micro>strong{
  font-size:13px !important;
  line-height:1.1 !important;
  font-weight:900 !important;
}
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>.event-sub{
  font-size:12px !important;
  line-height:1.08 !important;
  font-weight:800 !important;
  opacity:.98 !important;
}
.outdoor-booking-event>.event-activity,
.outdoor-booking-event.event-compact>.event-activity,
.outdoor-booking-event.event-micro>.event-activity{
  font-size:11px !important;
  line-height:1.08 !important;
  font-weight:800 !important;
  opacity:.94 !important;
}
.outdoor-booking-event .booking-actions{right:5px !important;top:5px !important;margin:0 !important;transform:none !important;}
.outdoor-booking-event .booking-actions .btn{width:22px !important;height:22px !important;padding:0 !important;font-size:0 !important;border-radius:999px !important;}
.outdoor-booking-event .booking-actions .btn::before{content:'×';font-size:16px;font-weight:900;line-height:1;}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:50px repeat(3,minmax(0,1fr)) !important;}
  .outdoor-body{grid-template-columns:50px minmax(0,1fr) !important;overflow:visible !important;}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:5px !important;width:calc(33.333% - 9px) !important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 4px) !important;width:calc(33.333% - 9px) !important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 4px) !important;width:calc(33.333% - 9px) !important;}
  .outdoor-head>div{font-size:11px !important;padding:8px 3px !important;text-align:center !important;}
  .outdoor-head>div:first-child{text-align:left !important;}
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{min-height:58px !important;padding:4px 7px !important;border-radius:11px !important;}
  .outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{font-size:9.5px !important;padding:1px 4px !important;}
  .outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:11px !important;}
  .outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:10px !important;}
  .outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{font-size:9.6px !important;}
}
@media(max-width:430px){
  .outdoor-head{grid-template-columns:42px repeat(3,minmax(0,1fr)) !important;}
  .outdoor-body{grid-template-columns:42px minmax(0,1fr) !important;}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:3px !important;width:calc(33.333% - 5px) !important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(33.333% + 2px) !important;width:calc(33.333% - 5px) !important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(66.666% + 2px) !important;width:calc(33.333% - 5px) !important;}
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{min-height:54px !important;padding:4px 5px !important;}
  .outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{font-size:8.6px !important;padding:1px 3px !important;}
  .outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:10px !important;}
  .outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:9px !important;}
  .outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{font-size:8.7px !important;}
}


/* Reithalle Buchung v1.63: Außenplatz stabilisiert nach v1.31-Fehler, echte Gleichbreite + Nutzungskürzel */
.outdoor-calendar{overflow:visible!important;}
.outdoor-head{grid-template-columns:72px repeat(3,minmax(0,1fr))!important;}
.outdoor-body{grid-template-columns:72px minmax(0,1fr)!important;overflow:visible!important;}
.outdoor-lanes{
  min-width:0!important;
  width:100%!important;
  background:
    linear-gradient(90deg,
      transparent calc(33.333333% - .5px), #e2e8f0 calc(33.333333% - .5px), #e2e8f0 calc(33.333333% + .5px), transparent calc(33.333333% + .5px),
      transparent calc(66.666666% - .5px), #e2e8f0 calc(66.666666% - .5px), #e2e8f0 calc(66.666666% + .5px), transparent calc(66.666666% + .5px)
    )!important;
}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:6px!important;width:calc((100% - 24px) / 3)!important;}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(6px + ((100% - 24px) / 3) + 6px)!important;width:calc((100% - 24px) / 3)!important;}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(6px + (((100% - 24px) / 3) * 2) + 12px)!important;width:calc((100% - 24px) / 3)!important;}
.outdoor-booking-event,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto auto!important;
  align-content:start!important;
  gap:1px 6px!important;
  min-height:58px!important;
  padding:7px 9px!important;
  border-radius:13px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  line-height:1.08!important;
}
.outdoor-booking-event::before,
.outdoor-booking-event.event-compact::before,
.outdoor-booking-event.event-micro::before{content:none!important;display:none!important;}
.outdoor-booking-event>.event-line{display:none!important;}
.outdoor-booking-event>.event-time,
.outdoor-booking-event.event-compact>.event-time,
.outdoor-booking-event.event-micro>.event-time{
  grid-column:1/2!important;
  width:max-content!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:1px 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.22)!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1.15!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.outdoor-booking-event>strong,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-micro>strong,
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>.event-sub{
  grid-column:1/2!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:block!important;
  color:#fff!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  line-height:1.12!important;
}
.outdoor-booking-event>strong,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-micro>strong{font-size:13px!important;font-weight:900!important;}
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>.event-sub{font-size:12px!important;font-weight:800!important;opacity:.98!important;}
.outdoor-booking-event>.event-activity,
.outdoor-booking-event.event-compact>.event-activity,
.outdoor-booking-event.event-micro>.event-activity{
  grid-column:2/3!important;
  grid-row:1/4!important;
  align-self:start!important;
  justify-self:end!important;
  width:auto!important;
  min-width:28px!important;
  max-width:52px!important;
  height:28px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 7px!important;
  background:rgba(255,255,255,.22)!important;
  color:#fff!important;
  font-weight:900!important;
  font-size:12px!important;
  line-height:1!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)!important;
  white-space:nowrap!important;
}
.outdoor-booking-event.activity-r{background:#2563eb!important;}
.outdoor-booking-event.activity-l{background:#7c3aed!important;}
.outdoor-booking-event.activity-fl{background:#059669!important;}
.outdoor-booking-event.activity-auslauf{background:#2563eb!important;}
.outdoor-booking-event .booking-actions{right:4px!important;top:4px!important;margin:0!important;transform:none!important;}
.outdoor-booking-event .booking-actions .btn{width:22px!important;height:22px!important;padding:0!important;font-size:0!important;border-radius:999px!important;}
.outdoor-booking-event .booking-actions .btn::before{content:'×';font-size:16px;font-weight:900;line-height:1;}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:46px repeat(3,minmax(0,1fr))!important;}
  .outdoor-body{grid-template-columns:46px minmax(0,1fr)!important;overflow:visible!important;}
  .slot-hit.lane-out-a,.calendar-event.lane-out-a{left:4px!important;width:calc((100% - 16px) / 3)!important;}
  .slot-hit.lane-out-b,.calendar-event.lane-out-b{left:calc(4px + ((100% - 16px) / 3) + 4px)!important;width:calc((100% - 16px) / 3)!important;}
  .slot-hit.lane-out-c,.calendar-event.lane-out-c{left:calc(4px + (((100% - 16px) / 3) * 2) + 8px)!important;width:calc((100% - 16px) / 3)!important;}
  .outdoor-head>div{font-size:11px!important;padding:8px 2px!important;text-align:center!important;}
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{min-height:54px!important;padding:5px 5px!important;gap:0 3px!important;}
  .outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{font-size:9px!important;padding:1px 3px!important;}
  .outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:10.5px!important;}
  .outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:9.5px!important;}
  .outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{min-width:22px!important;height:22px!important;padding:0 4px!important;font-size:9.5px!important;}
}



/* Reithalle Buchung v1.63: Außenplatz überprüft - echte Drittelspalten, kompakte Kürzel und Legende */
.outdoor-legend{display:flex!important;flex-wrap:wrap!important;gap:8px!important;justify-content:flex-end!important;align-items:center!important}
.outdoor-legend span{font-size:13px!important;font-weight:800!important;white-space:nowrap!important}
.outdoor-legend i{width:10px!important;height:10px!important;border-radius:999px!important;display:inline-block!important;margin-right:5px!important}
.outdoor-calendar{overflow:hidden!important}
.outdoor-head{grid-template-columns:72px repeat(3,minmax(0,1fr))!important}
.outdoor-body{grid-template-columns:72px minmax(0,1fr)!important;overflow:visible!important}
.outdoor-lanes{min-width:0!important;width:100%!important;overflow:visible!important;background:
  linear-gradient(90deg,
    transparent calc(33.333333% - .5px), #dbe3ee calc(33.333333% - .5px), #dbe3ee calc(33.333333% + .5px), transparent calc(33.333333% + .5px),
    transparent calc(66.666666% - .5px), #dbe3ee calc(66.666666% - .5px), #dbe3ee calc(66.666666% + .5px), transparent calc(66.666666% + .5px)
  )!important}
.outdoor-head>div:nth-child(2),.outdoor-head>div:nth-child(3),.outdoor-head>div:nth-child(4){text-align:center!important;padding-left:4px!important;padding-right:4px!important}
/* Außenplatz-Positionen werden zusätzlich inline mit !important gesetzt. Diese Regeln sind nur Fallback. */
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:0!important;width:33.333333%!important}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:33.333333%!important;width:33.333333%!important}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:66.666666%!important;width:33.333333%!important}
.outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto auto!important;
  align-content:start!important;
  gap:1px 6px!important;
  min-height:58px!important;
  padding:6px 8px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  line-height:1.08!important;
  box-shadow:0 8px 18px rgba(15,23,42,.16)!important;
}
.outdoor-booking-event::before,.outdoor-booking-event.event-compact::before,.outdoor-booking-event.event-micro::before{content:none!important;display:none!important}
.outdoor-booking-event>.event-line{display:none!important}
.outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{
  grid-column:1/2!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0!important;
  padding:1px 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.24)!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1.15!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong,
.outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{
  grid-column:1/2!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  color:#fff!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:13px!important;line-height:1.12!important;font-weight:900!important}
.outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:12px!important;line-height:1.12!important;font-weight:800!important;opacity:.98!important}
.outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{
  grid-column:2/3!important;
  grid-row:1/4!important;
  align-self:start!important;
  justify-self:end!important;
  min-width:26px!important;
  height:26px!important;
  padding:0 6px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(255,255,255,.22)!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:900!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)!important;
  white-space:nowrap!important;
}
.outdoor-booking-event.activity-r{background:#2563eb!important}
.outdoor-booking-event.activity-l{background:#7c3aed!important}
.outdoor-booking-event.activity-fl{background:#059669!important}
.outdoor-booking-event.activity-auslauf{background:#2563eb!important}
.outdoor-booking-event .booking-actions{right:4px!important;top:4px!important;margin:0!important;transform:none!important}
.outdoor-booking-event .booking-actions .btn{width:22px!important;height:22px!important;padding:0!important;font-size:0!important;border-radius:999px!important}
.outdoor-booking-event .booking-actions .btn::before{content:'×';font-size:16px;font-weight:900;line-height:1}
@media(max-width:760px){
  .outdoor-legend{justify-content:flex-start!important;gap:6px!important;margin-top:6px!important}
  .outdoor-legend span{font-size:11px!important}
  .outdoor-head{grid-template-columns:42px repeat(3,minmax(0,1fr))!important}
  .outdoor-body{grid-template-columns:42px minmax(0,1fr)!important;overflow:visible!important}
  .outdoor-head>div{font-size:11px!important;padding:8px 2px!important;text-align:center!important}
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{min-height:52px!important;padding:5px 5px!important;gap:0 3px!important;border-radius:11px!important}
  .outdoor-booking-event>.event-time,.outdoor-booking-event.event-compact>.event-time,.outdoor-booking-event.event-micro>.event-time{font-size:8.8px!important;padding:1px 3px!important}
  .outdoor-booking-event>strong,.outdoor-booking-event.event-compact>strong,.outdoor-booking-event.event-micro>strong{font-size:10.4px!important}
  .outdoor-booking-event>.event-sub,.outdoor-booking-event.event-compact>.event-sub,.outdoor-booking-event.event-micro>.event-sub{font-size:9.4px!important}
  .outdoor-booking-event>.event-activity,.outdoor-booking-event.event-compact>.event-activity,.outdoor-booking-event.event-micro>.event-activity{min-width:21px!important;height:21px!important;padding:0 4px!important;font-size:9px!important}
}


/* Reithalle Buchung v1.63: Außenplatz Korrektur - sichtbare Drittelspalten und lesbare Kurztermine */
.outdoor-calendar{overflow:hidden!important;}
.outdoor-head{grid-template-columns:72px repeat(3,minmax(0,1fr))!important;}
.outdoor-body{grid-template-columns:72px minmax(0,1fr)!important;overflow:visible!important;}
.outdoor-lanes{min-width:0!important;width:100%!important;overflow:visible!important;background:linear-gradient(90deg,transparent calc(33.333333% - .5px),#dbe3ee calc(33.333333% - .5px),#dbe3ee calc(33.333333% + .5px),transparent calc(33.333333% + .5px),transparent calc(66.666666% - .5px),#dbe3ee calc(66.666666% - .5px),#dbe3ee calc(66.666666% + .5px),transparent calc(66.666666% + .5px))!important;}
.outdoor-lanes .calendar-hour-line{z-index:1!important;}
.outdoor-col-line{display:block!important;}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:0!important;width:33.333333%!important;}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:33.333333%!important;width:33.333333%!important;}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:66.666666%!important;width:33.333334%!important;}
.outdoor-booking-event{box-sizing:border-box!important;margin:0!important;border:3px solid rgba(255,255,255,.70)!important;z-index:18!important;}
.outdoor-booking-event:not(.outdoor-short){display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;align-content:start!important;gap:1px 6px!important;padding:6px 8px!important;overflow:hidden!important;}
.outdoor-booking-event.outdoor-short{display:flex!important;align-items:center!important;justify-content:flex-start!important;padding:0 8px!important;overflow:hidden!important;min-height:30px!important;height:30px!important;border-radius:999px!important;}
.outdoor-booking-event.outdoor-short>.event-line{display:block!important;width:100%!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#fff!important;font-size:12px!important;font-weight:900!important;line-height:1!important;text-align:left!important;opacity:1!important;}
.outdoor-booking-event.outdoor-short>.event-time,.outdoor-booking-event.outdoor-short>strong,.outdoor-booking-event.outdoor-short>.event-sub,.outdoor-booking-event.outdoor-short>.event-activity{display:none!important;}
.outdoor-booking-event:not(.outdoor-short)>.event-line{display:none!important;}
.outdoor-booking-event:not(.outdoor-short)>.event-time{grid-column:1/2!important;display:inline-flex!important;width:max-content!important;max-width:100%!important;padding:1px 6px!important;border-radius:999px!important;background:rgba(255,255,255,.24)!important;color:#fff!important;font-size:11px!important;font-weight:900!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.outdoor-booking-event:not(.outdoor-short)>strong,.outdoor-booking-event:not(.outdoor-short)>.event-sub{grid-column:1/2!important;display:block!important;min-width:0!important;width:100%!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#fff!important;}
.outdoor-booking-event:not(.outdoor-short)>strong{font-size:13px!important;font-weight:900!important;line-height:1.12!important;}
.outdoor-booking-event:not(.outdoor-short)>.event-sub{font-size:12px!important;font-weight:800!important;line-height:1.12!important;opacity:.98!important;}
.outdoor-booking-event:not(.outdoor-short)>.event-activity{grid-column:2/3!important;grid-row:1/4!important;align-self:start!important;justify-self:end!important;min-width:26px!important;height:26px!important;padding:0 6px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:rgba(255,255,255,.22)!important;color:#fff!important;font-size:11px!important;font-weight:900!important;line-height:1!important;}
.outdoor-booking-event.activity-r{background:#2563eb!important;}
.outdoor-booking-event.activity-l{background:#7c3aed!important;}
.outdoor-booking-event.activity-fl{background:#059669!important;}
.outdoor-booking-event.activity-auslauf{background:#2563eb!important;}
.outdoor-booking-event .booking-actions{right:4px!important;top:4px!important;margin:0!important;transform:none!important;}
.outdoor-booking-event.outdoor-short .booking-actions{right:3px!important;top:50%!important;transform:translateY(-50%)!important;}
.outdoor-booking-event .booking-actions .btn{width:22px!important;height:22px!important;padding:0!important;font-size:0!important;border-radius:999px!important;}
.outdoor-booking-event .booking-actions .btn::before{content:'×'!important;font-size:16px!important;font-weight:900!important;line-height:1!important;}
.outdoor-legend{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;justify-content:flex-end!important;}
.outdoor-legend span{font-size:13px!important;font-weight:800!important;white-space:nowrap!important;}
.outdoor-legend i{width:10px!important;height:10px!important;border-radius:999px!important;display:inline-block!important;margin-right:5px!important;}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:52px repeat(3,minmax(0,1fr))!important;}
  .outdoor-body{grid-template-columns:52px minmax(0,1fr)!important;}
  .outdoor-head>div{font-size:11px!important;padding:8px 2px!important;text-align:center!important;}
  .outdoor-booking-event{border-width:2px!important;}
  .outdoor-booking-event.outdoor-short{min-height:28px!important;height:28px!important;padding:0 5px!important;}
  .outdoor-booking-event.outdoor-short>.event-line{font-size:10px!important;}
  .outdoor-booking-event:not(.outdoor-short){padding:5px 5px!important;gap:0 3px!important;min-height:52px!important;}
  .outdoor-booking-event:not(.outdoor-short)>.event-time{font-size:8.8px!important;padding:1px 3px!important;}
  .outdoor-booking-event:not(.outdoor-short)>strong{font-size:10.4px!important;}
  .outdoor-booking-event:not(.outdoor-short)>.event-sub{font-size:9.4px!important;}
  .outdoor-booking-event:not(.outdoor-short)>.event-activity{min-width:21px!important;height:21px!important;padding:0 4px!important;font-size:9px!important;}
  .outdoor-legend{justify-content:flex-start!important;gap:6px!important;}
  .outdoor-legend span{font-size:11px!important;}
}



/* Reithalle Buchung v1.63: Außenplatz lesbar, echte Drittel und farbige Nutzung */
.outdoor-calendar{overflow:hidden!important;}
.outdoor-head{grid-template-columns:72px repeat(3,minmax(0,1fr))!important;}
.outdoor-body{grid-template-columns:72px minmax(0,1fr)!important;overflow:visible!important;}
.outdoor-lanes{min-width:0!important;width:100%!important;overflow:hidden!important;position:relative!important;background:linear-gradient(90deg,transparent calc(33.333333% - .5px),#cbd5e1 calc(33.333333% - .5px),#cbd5e1 calc(33.333333% + .5px),transparent calc(33.333333% + .5px),transparent calc(66.666666% - .5px),#cbd5e1 calc(66.666666% - .5px),#cbd5e1 calc(66.666666% + .5px),transparent calc(66.666666% + .5px))!important;}
.slot-hit.lane-out-a,.calendar-event.lane-out-a{left:0!important;width:33.333333%!important;max-width:33.333333%!important;}
.slot-hit.lane-out-b,.calendar-event.lane-out-b{left:33.333333%!important;width:33.333333%!important;max-width:33.333333%!important;}
.slot-hit.lane-out-c,.calendar-event.lane-out-c{left:66.666666%!important;width:33.333334%!important;max-width:33.333334%!important;}
.outdoor-booking-event,
.outdoor-booking-event.outdoor-short,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  box-sizing:border-box!important;
  margin:0!important;
  border:3px solid rgba(255,255,255,.72)!important;
  border-radius:14px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto auto!important;
  align-content:center!important;
  gap:1px 6px!important;
  padding:7px 8px!important;
  min-height:66px!important;
  height:auto!important;
  overflow:hidden!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(15,23,42,.18)!important;
}
.outdoor-booking-event>.event-line,
.outdoor-booking-event.outdoor-short>.event-line{display:none!important;}
.outdoor-booking-event>.event-time,
.outdoor-booking-event.outdoor-short>.event-time,
.outdoor-booking-event.event-compact>.event-time,
.outdoor-booking-event.event-micro>.event-time{
  grid-column:1/2!important;
  display:inline-flex!important;
  width:max-content!important;
  max-width:100%!important;
  padding:1px 6px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.24)!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.outdoor-booking-event>strong,
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.outdoor-short>strong,
.outdoor-booking-event.outdoor-short>.event-sub,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>strong,
.outdoor-booking-event.event-micro>.event-sub{
  grid-column:1/2!important;
  display:block!important;
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  color:#fff!important;
}
.outdoor-booking-event>strong,
.outdoor-booking-event.outdoor-short>strong,
.outdoor-booking-event.event-compact>strong,
.outdoor-booking-event.event-micro>strong{font-size:13px!important;font-weight:900!important;line-height:1.12!important;}
.outdoor-booking-event>.event-sub,
.outdoor-booking-event.outdoor-short>.event-sub,
.outdoor-booking-event.event-compact>.event-sub,
.outdoor-booking-event.event-micro>.event-sub{font-size:12px!important;font-weight:800!important;line-height:1.12!important;opacity:.98!important;}
.outdoor-booking-event>.event-activity,
.outdoor-booking-event.outdoor-short>.event-activity,
.outdoor-booking-event.event-compact>.event-activity,
.outdoor-booking-event.event-micro>.event-activity{
  grid-column:2/3!important;
  grid-row:1/4!important;
  align-self:center!important;
  justify-self:end!important;
  min-width:28px!important;
  height:28px!important;
  padding:0 7px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(255,255,255,.26)!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)!important;
}
.outdoor-booking-event.activity-r{background:#2563eb!important;}
.outdoor-booking-event.activity-l{background:#7c3aed!important;}
.outdoor-booking-event.activity-fl{background:#059669!important;}
.outdoor-booking-event.activity-auslauf{background:#2563eb!important;}
.outdoor-booking-event .booking-actions{right:4px!important;top:4px!important;margin:0!important;transform:none!important;}
.outdoor-booking-event .booking-actions .btn{width:22px!important;height:22px!important;padding:0!important;font-size:0!important;border-radius:999px!important;}
.outdoor-booking-event .booking-actions .btn::before{content:'×'!important;font-size:16px!important;font-weight:900!important;line-height:1!important;}
.outdoor-legend{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;justify-content:flex-end!important;}
.outdoor-legend span{font-size:13px!important;font-weight:800!important;white-space:nowrap!important;}
.outdoor-legend i{width:10px!important;height:10px!important;border-radius:999px!important;display:inline-block!important;margin-right:5px!important;}
@media(max-width:760px){
  .outdoor-head{grid-template-columns:52px repeat(3,minmax(0,1fr))!important;}
  .outdoor-body{grid-template-columns:52px minmax(0,1fr)!important;}
  .outdoor-head>div{font-size:11px!important;padding:8px 2px!important;text-align:center!important;}
  .outdoor-booking-event,
  .outdoor-booking-event.outdoor-short,
  .outdoor-booking-event.event-compact,
  .outdoor-booking-event.event-micro{
    border-width:2px!important;
    min-height:62px!important;
    padding:5px 5px!important;
    gap:0 3px!important;
    border-radius:12px!important;
  }
  .outdoor-booking-event>.event-time,
  .outdoor-booking-event.outdoor-short>.event-time,
  .outdoor-booking-event.event-compact>.event-time,
  .outdoor-booking-event.event-micro>.event-time{font-size:9.2px!important;padding:1px 3px!important;}
  .outdoor-booking-event>strong,
  .outdoor-booking-event.outdoor-short>strong,
  .outdoor-booking-event.event-compact>strong,
  .outdoor-booking-event.event-micro>strong{font-size:10.8px!important;line-height:1.08!important;}
  .outdoor-booking-event>.event-sub,
  .outdoor-booking-event.outdoor-short>.event-sub,
  .outdoor-booking-event.event-compact>.event-sub,
  .outdoor-booking-event.event-micro>.event-sub{font-size:9.7px!important;line-height:1.08!important;}
  .outdoor-booking-event>.event-activity,
  .outdoor-booking-event.outdoor-short>.event-activity,
  .outdoor-booking-event.event-compact>.event-activity,
  .outdoor-booking-event.event-micro>.event-activity{min-width:22px!important;height:22px!important;padding:0 4px!important;font-size:9.2px!important;}
  .outdoor-legend{justify-content:flex-start!important;gap:6px!important;}
  .outdoor-legend span{font-size:11px!important;}
}


/* Reithalle Buchung v1.63: Lesbare reduzierte Terminanzeige */
.outdoor-legend{margin-top:-4px;margin-bottom:10px;}
.outdoor-booking-event,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  gap:1px!important;
  padding:3px 5px!important;
  overflow:hidden!important;
  text-align:left!important;
}
.outdoor-booking-event>.event-time,
.outdoor-booking-event>strong,
.outdoor-booking-event>.event-sub,
.outdoor-booking-event>.event-activity,
.outdoor-booking-event>.event-line{display:none!important;}
.outdoor-booking-event>.event-topline,
.outdoor-booking-event>.event-bottomline{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  color:#fff!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  text-align:left!important;
}
.outdoor-booking-event>.event-topline{font-size:10.5px!important;font-weight:900!important;line-height:1.05!important;}
.outdoor-booking-event>.event-bottomline{font-size:11px!important;font-weight:800!important;line-height:1.08!important;}
.outdoor-booking-event .booking-actions{position:absolute!important;top:2px!important;right:2px!important;z-index:20!important;}
.outdoor-booking-event .booking-actions .btn.small.danger{padding:1px 5px!important;font-size:9px!important;border-radius:999px!important;}
@media(max-width:760px){
  .outdoor-booking-event,.outdoor-booking-event.event-compact,.outdoor-booking-event.event-micro{padding:2px 4px!important;gap:0!important;}
  .outdoor-booking-event>.event-topline{font-size:8.7px!important;line-height:1!important;}
  .outdoor-booking-event>.event-bottomline{font-size:9.2px!important;line-height:1.03!important;}
}
/* Besitzer im Kalender nicht mehr dauerhaft anzeigen; Details stehen im Titel/Antippen bei Außenplatz. */
.calendar-event.booking .event-sub,.calendar-event.freejump .event-sub{display:none!important;}


/* Reithalle Buchung v1.63: Außenplatz 2-Zeilen-Anzeige + mobile Detailansicht */
.outdoor-booking-event,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  gap:1px!important;
  padding:3px 5px!important;
  overflow:hidden!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}
.outdoor-booking-event>.event-line,
.outdoor-booking-event>.event-time,
.outdoor-booking-event>strong,
.outdoor-booking-event>.event-sub,
.outdoor-booking-event>.event-activity{
  display:none!important;
}
.outdoor-booking-event>.event-topline,
.outdoor-booking-event>.event-bottomline{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  color:#fff!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  text-align:left!important;
}
.outdoor-booking-event>.event-topline{
  font-size:10.8px!important;
  font-weight:900!important;
  line-height:1.05!important;
}
.outdoor-booking-event>.event-bottomline{
  font-size:11.3px!important;
  font-weight:850!important;
  line-height:1.08!important;
}
@media(max-width:760px){
  .outdoor-booking-event,
  .outdoor-booking-event.event-compact,
  .outdoor-booking-event.event-micro{padding:2px 4px!important;gap:1px!important;}
  .outdoor-booking-event>.event-topline{font-size:9.2px!important;line-height:1.02!important;}
  .outdoor-booking-event>.event-bottomline{font-size:9.8px!important;line-height:1.04!important;}
}
.calendar-event[data-detail]{cursor:pointer;touch-action:manipulation;}
.booking-detail-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(15,23,42,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.booking-detail-backdrop[hidden]{display:none!important;}
.booking-detail-card{
  width:min(420px,100%);
  background:#fff;
  color:#0f172a;
  border-radius:18px;
  box-shadow:0 22px 50px rgba(15,23,42,.28);
  padding:18px;
  position:relative;
}
.booking-detail-card h3{margin:0 34px 12px 0;font-size:20px;line-height:1.2;}
.booking-detail-text{white-space:pre-line;font-size:15px;line-height:1.45;color:#334155;font-weight:650;}
.booking-detail-close{
  position:absolute;
  right:12px;
  top:10px;
  width:32px;
  height:32px;
  border:0;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:22px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}


/* Reithalle Buchung v1.63: Außenplatz-Zeilen final lesbar + Popup-Fix */
.outdoor-booking-event,
.outdoor-booking-event.event-compact,
.outdoor-booking-event.event-micro{
  padding:4px 6px !important;
  gap:2px !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
}
.outdoor-booking-event>.event-topline,
.outdoor-booking-event>.event-bottomline{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  color:#fff !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  text-align:center !important;
  margin:0 !important;
  padding:0 !important;
}
.outdoor-booking-event>.event-topline{
  font-size:10.4px !important;
  font-weight:950 !important;
  line-height:1.08 !important;
  letter-spacing:-.03em !important;
}
.outdoor-booking-event>.event-bottomline{
  font-size:11px !important;
  font-weight:850 !important;
  line-height:1.08 !important;
  letter-spacing:-.015em !important;
}
@media(max-width:760px){
  .outdoor-booking-event,
  .outdoor-booking-event.event-compact,
  .outdoor-booking-event.event-micro{
    padding:4px 4px !important;
    gap:2px !important;
    border-width:2px !important;
  }
  .outdoor-booking-event>.event-topline{
    font-size:8.7px !important;
    line-height:1.05 !important;
    letter-spacing:-.045em !important;
  }
  .outdoor-booking-event>.event-bottomline{
    font-size:9.4px !important;
    line-height:1.06 !important;
    letter-spacing:-.025em !important;
  }
}
.booking-detail-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483000 !important;
  background:rgba(15,23,42,.48) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:20px !important;
}
.booking-detail-backdrop[hidden]{display:none !important;}
.booking-detail-card{max-height:80vh !important;overflow:auto !important;}


/* Reithalle Buchung v1.63: stabile mobile Details per Hash-Tooltip/Modal und Außenplatz-A-Korrektur */
.calendar-event{position:absolute!important;}
.event-detail-link{position:absolute!important;inset:0!important;z-index:3!important;border-radius:inherit!important;text-decoration:none!important;color:inherit!important;background:transparent!important;cursor:pointer!important;touch-action:manipulation!important;}
.calendar-event>span,.calendar-event>strong{position:relative!important;z-index:4!important;pointer-events:none!important;}
.calendar-event .booking-actions{z-index:25!important;position:absolute!important;}
.outdoor-booking-event.lane-out-a{left:8px!important;width:calc(33.333333% - 12px)!important;max-width:calc(33.333333% - 12px)!important;padding-left:5px!important;padding-right:5px!important;}
.outdoor-booking-event.lane-out-a>.event-topline{font-size:8.2px!important;letter-spacing:-.065em!important;text-align:center!important;transform:scaleX(.94)!important;transform-origin:center!important;overflow:visible!important;text-overflow:clip!important;}
.outdoor-booking-event.lane-out-a>.event-bottomline{font-size:9.2px!important;letter-spacing:-.035em!important;text-align:center!important;}
@media(max-width:760px){
  .outdoor-booking-event.lane-out-a{left:7px!important;width:calc(33.333333% - 10px)!important;max-width:calc(33.333333% - 10px)!important;padding-left:4px!important;padding-right:4px!important;}
  .outdoor-booking-event.lane-out-a>.event-topline{font-size:7.6px!important;letter-spacing:-.075em!important;transform:scaleX(.91)!important;}
  .outdoor-booking-event.lane-out-a>.event-bottomline{font-size:8.8px!important;letter-spacing:-.04em!important;}
}
.booking-hash-modal{display:none;position:fixed;inset:0;z-index:2147483200;align-items:center;justify-content:center;padding:18px;}
.booking-hash-modal:target{display:flex;}
.booking-hash-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);text-decoration:none;}
.booking-hash-card{position:relative;z-index:1;width:min(440px,100%);max-height:84vh;overflow:auto;background:#fff;color:#0f172a;border-radius:18px;box-shadow:0 24px 60px rgba(15,23,42,.30);padding:18px 18px 16px;}
.booking-hash-card h3{margin:0 42px 14px 0;font-size:20px;line-height:1.18;}
.booking-hash-close{position:absolute;right:12px;top:10px;width:32px;height:32px;border-radius:999px;background:#ef4444;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;line-height:1;}
.booking-detail-list{margin:0;display:grid;gap:9px;}
.booking-detail-list div{display:grid;grid-template-columns:128px minmax(0,1fr);gap:10px;align-items:start;border-bottom:1px solid #eef2f7;padding-bottom:8px;}
.booking-detail-list div:last-child{border-bottom:0;padding-bottom:0;}
.booking-detail-list dt{font-size:12px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.03em;}
.booking-detail-list dd{margin:0;font-size:15px;font-weight:750;color:#0f172a;word-break:break-word;}
@media(max-width:480px){.booking-detail-list div{grid-template-columns:1fr;gap:2px}.booking-hash-card{padding:16px}.booking-detail-list dd{font-size:16px}}


/* Reithalle Buchung v1.63: finale Detailanzeige + Fläche-A-Abstand */
.booking-hash-modals,
.booking-hash-modal{
  display:none !important;
  visibility:hidden !important;
}
.calendar-event[data-detail-window]{cursor:pointer !important;touch-action:manipulation !important;}
.calendar-event[data-detail-window][title]{pointer-events:auto !important;}
.event-detail-link{position:absolute!important;inset:0!important;z-index:6!important;border-radius:inherit!important;text-decoration:none!important;background:transparent!important;color:inherit!important;}
.calendar-event>span,.calendar-event>strong{position:relative!important;z-index:7!important;pointer-events:none!important;}
.calendar-event .booking-actions{position:absolute!important;z-index:25!important;}
.outdoor-booking-event.lane-out-a{
  left:12px !important;
  width:calc(33.333333% - 18px) !important;
  max-width:calc(33.333333% - 18px) !important;
  padding-left:6px !important;
  padding-right:6px !important;
}
.outdoor-booking-event.lane-out-a>.event-topline,
.outdoor-booking-event.lane-out-a>.event-bottomline{
  text-align:center !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  transform:none !important;
}
.outdoor-booking-event.lane-out-a>.event-topline{
  font-size:8.9px !important;
  letter-spacing:-.04em !important;
}
.outdoor-booking-event.lane-out-a>.event-bottomline{
  font-size:9.4px !important;
  letter-spacing:-.025em !important;
}
.booking-detail-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483600 !important;
  background:rgba(15,23,42,.52) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:20px !important;
}
.booking-detail-backdrop[hidden]{display:none !important;}
.booking-detail-card{
  width:min(460px,100%) !important;
  max-height:84vh !important;
  overflow:auto !important;
  background:#fff !important;
  color:#0f172a !important;
  border-radius:18px !important;
  box-shadow:0 24px 60px rgba(15,23,42,.30) !important;
  padding:18px !important;
  position:relative !important;
}
.booking-detail-card h3{margin:0 42px 14px 0 !important;font-size:20px !important;line-height:1.18 !important;color:#0f172a !important;}
.booking-detail-close{position:absolute!important;right:12px!important;top:10px!important;width:32px!important;height:32px!important;border:0!important;border-radius:999px!important;background:#ef4444!important;color:#fff!important;font-size:24px!important;font-weight:900!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;}
.booking-detail-list{margin:0!important;display:grid!important;gap:9px!important;}
.booking-detail-list div{display:grid!important;grid-template-columns:132px minmax(0,1fr)!important;gap:10px!important;align-items:start!important;border-bottom:1px solid #eef2f7!important;padding-bottom:8px!important;}
.booking-detail-list div:last-child{border-bottom:0!important;padding-bottom:0!important;}
.booking-detail-list dt{font-size:12px!important;font-weight:900!important;color:#64748b!important;text-transform:uppercase!important;letter-spacing:.03em!important;}
.booking-detail-list dd{margin:0!important;font-size:15px!important;font-weight:750!important;color:#0f172a!important;word-break:break-word!important;}
@media(max-width:760px){
  .outdoor-booking-event.lane-out-a{
    left:10px !important;
    width:calc(33.333333% - 15px) !important;
    max-width:calc(33.333333% - 15px) !important;
    padding-left:5px !important;
    padding-right:5px !important;
  }
  .outdoor-booking-event.lane-out-a>.event-topline{font-size:8.1px !important;letter-spacing:-.055em !important;}
  .outdoor-booking-event.lane-out-a>.event-bottomline{font-size:8.9px !important;letter-spacing:-.035em !important;}
  .booking-detail-card{width:100%!important;padding:16px!important;border-radius:16px!important;}
  .booking-detail-list div{grid-template-columns:1fr!important;gap:2px!important;}
  .booking-detail-list dd{font-size:16px!important;}
}


/* Reithalle Buchung v1.63: finale Korrektur Details + Fläche A Lesbarkeit */
/* Detail-Link füllt den Termin, Delete-Button bleibt darüber. */
.calendar-event[data-detail-window]{cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(37,99,235,.22)!important;}
.event-detail-link{position:absolute!important;inset:0!important;z-index:12!important;border-radius:inherit!important;background:transparent!important;text-decoration:none!important;color:inherit!important;}
.calendar-event>span,.calendar-event>strong{position:relative!important;z-index:14!important;pointer-events:none!important;}
.calendar-event .booking-actions{position:absolute!important;z-index:30!important;pointer-events:auto!important;}
/* Browser-Hash-Fallback: nicht unten sichtbar, nur als Overlay wenn gezielt angesprungen. */
.booking-hash-modals{display:block!important;visibility:visible!important;position:static!important;height:0!important;overflow:visible!important;}
.booking-hash-modal{display:none!important;visibility:visible!important;position:fixed!important;inset:0!important;z-index:2147483200!important;align-items:center!important;justify-content:center!important;padding:18px!important;}
.booking-hash-modal:target{display:flex!important;}
.booking-hash-backdrop{position:absolute!important;inset:0!important;background:rgba(15,23,42,.52)!important;text-decoration:none!important;}
.booking-hash-card{position:relative!important;z-index:1!important;width:min(460px,100%)!important;max-height:84vh!important;overflow:auto!important;background:#fff!important;color:#0f172a!important;border-radius:18px!important;box-shadow:0 24px 60px rgba(15,23,42,.30)!important;padding:18px!important;}
.booking-hash-close{position:absolute!important;right:12px!important;top:10px!important;width:32px!important;height:32px!important;border-radius:999px!important;background:#ef4444!important;color:#fff!important;text-decoration:none!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:24px!important;font-weight:900!important;line-height:1!important;}
/* JavaScript-Modal: immer über allem und sauber formatiert. */
.booking-detail-backdrop{position:fixed!important;inset:0!important;z-index:2147483600!important;background:rgba(15,23,42,.52)!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:20px!important;}
.booking-detail-backdrop[hidden]{display:none!important;}
.booking-detail-card{width:min(460px,100%)!important;max-height:84vh!important;overflow:auto!important;background:#fff!important;color:#0f172a!important;border-radius:18px!important;box-shadow:0 24px 60px rgba(15,23,42,.30)!important;padding:18px!important;position:relative!important;}
.booking-detail-card h3{margin:0 42px 14px 0!important;font-size:20px!important;line-height:1.18!important;color:#0f172a!important;}
.booking-detail-close{position:absolute!important;right:12px!important;top:10px!important;width:32px!important;height:32px!important;border:0!important;border-radius:999px!important;background:#ef4444!important;color:#fff!important;font-size:24px!important;font-weight:900!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;}
.booking-detail-list{margin:0!important;display:grid!important;gap:9px!important;}
.booking-detail-list div{display:grid!important;grid-template-columns:132px minmax(0,1fr)!important;gap:10px!important;align-items:start!important;border-bottom:1px solid #eef2f7!important;padding-bottom:8px!important;}
.booking-detail-list div:last-child{border-bottom:0!important;padding-bottom:0!important;}
.booking-detail-list dt{font-size:12px!important;font-weight:900!important;color:#64748b!important;text-transform:uppercase!important;letter-spacing:.03em!important;}
.booking-detail-list dd{margin:0!important;font-size:15px!important;font-weight:750!important;color:#0f172a!important;word-break:break-word!important;}
/* Fläche A wird bewusst etwas nach rechts gesetzt, damit die erste Ziffer nicht von der Sticky-Zeitspalte/Radius abgeschnitten wird. */
.outdoor-booking-event.lane-out-a{left:18px!important;width:calc(33.333333% - 24px)!important;max-width:calc(33.333333% - 24px)!important;padding-left:3px!important;padding-right:3px!important;box-sizing:border-box!important;}
.outdoor-booking-event.lane-out-a>.event-topline,
.outdoor-booking-event.lane-out-a>.event-bottomline{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;transform:none!important;letter-spacing:0!important;padding:0 1px!important;}
.outdoor-booking-event.lane-out-a>.event-topline{font-size:8.2px!important;line-height:1.05!important;font-weight:950!important;}
.outdoor-booking-event.lane-out-a>.event-bottomline{font-size:8.9px!important;line-height:1.07!important;font-weight:850!important;}
@media(max-width:760px){
  .outdoor-booking-event.lane-out-a{left:16px!important;width:calc(33.333333% - 21px)!important;max-width:calc(33.333333% - 21px)!important;padding-left:2px!important;padding-right:2px!important;}
  .outdoor-booking-event.lane-out-a>.event-topline{font-size:7.4px!important;line-height:1.03!important;letter-spacing:0!important;}
  .outdoor-booking-event.lane-out-a>.event-bottomline{font-size:8.4px!important;line-height:1.05!important;letter-spacing:0!important;}
  .booking-detail-card,.booking-hash-card{width:100%!important;padding:16px!important;border-radius:16px!important;}
  .booking-detail-list div{grid-template-columns:1fr!important;gap:2px!important;}
  .booking-detail-list dd{font-size:16px!important;}
}


/* Reithalle Buchung v1.63: Außenplatz oben kompakter, Fläche A lesbar, Detailseite statt fragiler Popups */
.area-map.card-map,
.place-rules.place-rules-compact,
.outdoor-calendar ~ .booking-hash-modals,
.booking-hash-modals,
.booking-hash-modal{
  display:none !important;
}
.card.wide .area-map + .place-rules{display:none !important;}
.card.wide .calendar-help{display:none !important;}
.outdoor-calendar{margin-top:8px !important;}
.outdoor-legend{margin:4px 0 6px !important;}
.outdoor-legend span{font-size:12px !important;}
.outdoor-legend i{width:9px !important;height:9px !important;}
.outdoor-booking-event{position:absolute !important;}
.event-detail-link{
  position:absolute !important;
  inset:0 !important;
  z-index:25 !important;
  display:block !important;
  border-radius:inherit !important;
  background:transparent !important;
  color:transparent !important;
  text-decoration:none !important;
  cursor:pointer !important;
  touch-action:manipulation !important;
}
.outdoor-booking-event .booking-actions{z-index:40 !important;}
/* Die erste Außenplatz-Spalte erhält bewusst mehr Innenabstand, damit die Uhrzeit am Handy nicht angeschnitten wird. */
.outdoor-booking-event.lane-out-a,
.slot-hit.lane-out-a{
  left:18px !important;
  width:calc(33.333333% - 26px) !important;
  max-width:calc(33.333333% - 26px) !important;
}
.outdoor-booking-event.lane-out-a>.event-topline,
.outdoor-booking-event.lane-out-a>.event-bottomline{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 2px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  letter-spacing:0 !important;
  transform:none !important;
}
.outdoor-booking-event.lane-out-a>.event-topline{font-size:8.2px !important;line-height:1.06 !important;font-weight:950 !important;}
.outdoor-booking-event.lane-out-a>.event-bottomline{font-size:9px !important;line-height:1.08 !important;font-weight:850 !important;}
.booking-detail-page{max-width:720px;margin:0 auto;}
.detail-page-header{align-items:flex-start;margin-bottom:14px;}
.detail-page-list{margin-top:8px !important;}
.detail-page-list div{grid-template-columns:180px minmax(0,1fr) !important;}
@media(max-width:760px){
  .grid.two.booking-layout{gap:12px !important;}
  .card.wide>.split{gap:6px !important;margin-bottom:4px !important;}
  .card.wide h1{font-size:24px !important;margin-bottom:4px !important;}
  .card.wide .muted{font-size:13px !important;margin:2px 0 !important;}
  .outdoor-legend{gap:5px !important;margin:4px 0 5px !important;}
  .outdoor-legend span{font-size:10.5px !important;}
  .outdoor-booking-event.lane-out-a,
  .slot-hit.lane-out-a{
    left:16px !important;
    width:calc(33.333333% - 22px) !important;
    max-width:calc(33.333333% - 22px) !important;
  }
  .outdoor-booking-event.lane-out-a>.event-topline{font-size:7.4px !important;line-height:1.03 !important;}
  .outdoor-booking-event.lane-out-a>.event-bottomline{font-size:8.4px !important;line-height:1.05 !important;}
  .detail-page-header{display:grid !important;gap:10px !important;}
  .detail-page-list div{grid-template-columns:1fr !important;gap:2px !important;}
  .detail-page-list dd{font-size:17px !important;}
}


/* Reithalle Buchung v1.63: finaler Außenplatz-Reset – klare Drittel, kompakter Kopf, zuverlässige Details */
.outdoor-calendar-final{margin-top:6px!important;overflow:hidden!important;}
.outdoor-calendar-final .outdoor-head{grid-template-columns:64px repeat(3,minmax(0,1fr))!important;}
.outdoor-calendar-final .outdoor-body{grid-template-columns:64px minmax(0,1fr)!important;overflow:visible!important;}
.outdoor-calendar-final .outdoor-lanes{min-width:0!important;width:100%!important;overflow:visible!important;background:
  linear-gradient(90deg,
    transparent calc(33.333333% - .5px), #cbd5e1 calc(33.333333% - .5px), #cbd5e1 calc(33.333333% + .5px), transparent calc(33.333333% + .5px),
    transparent calc(66.666666% - .5px), #cbd5e1 calc(66.666666% - .5px), #cbd5e1 calc(66.666666% + .5px), transparent calc(66.666666% + .5px)
  )!important;}
.outdoor-calendar-final .slot-hit.lane-out-a,
.outdoor-calendar-final .calendar-event.lane-out-a{left:4px!important;width:calc(33.333333% - 8px)!important;max-width:calc(33.333333% - 8px)!important;right:auto!important;}
.outdoor-calendar-final .slot-hit.lane-out-b,
.outdoor-calendar-final .calendar-event.lane-out-b{left:calc(33.333333% + 4px)!important;width:calc(33.333333% - 8px)!important;max-width:calc(33.333333% - 8px)!important;right:auto!important;}
.outdoor-calendar-final .slot-hit.lane-out-c,
.outdoor-calendar-final .calendar-event.lane-out-c{left:calc(66.666666% + 4px)!important;width:calc(33.333334% - 8px)!important;max-width:calc(33.333334% - 8px)!important;right:auto!important;}
.outdoor-calendar-final .outdoor-booking-event,
.outdoor-calendar-final .outdoor-booking-event.event-compact,
.outdoor-calendar-final .outdoor-booking-event.event-micro{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:auto auto!important;
  align-content:center!important;
  justify-items:center!important;
  gap:1px!important;
  padding:4px 7px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  color:#fff!important;
  min-height:0!important;
  line-height:1!important;
  text-align:center!important;
  box-shadow:0 8px 18px rgba(15,23,42,.18)!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}
.outdoor-calendar-final .outdoor-booking-event>.event-topline,
.outdoor-calendar-final .outdoor-booking-event>.event-bottomline{
  all:unset!important;
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  color:#fff!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  pointer-events:none!important;
  position:relative!important;
  z-index:3!important;
}
.outdoor-calendar-final .outdoor-booking-event>.event-topline{font-size:11px!important;font-weight:950!important;line-height:1.08!important;letter-spacing:-.01em!important;padding:0 4px!important;}
.outdoor-calendar-final .outdoor-booking-event>.event-bottomline{font-size:11px!important;font-weight:850!important;line-height:1.08!important;letter-spacing:-.01em!important;padding:0 4px!important;}
/* Fläche A bekommt nur innen mehr Textabstand – der Block selbst füllt trotzdem das ganze Drittel. */
.outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-topline,
.outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-bottomline{padding-left:10px!important;padding-right:4px!important;}
.outdoor-calendar-final .outdoor-booking-event>.event-time,
.outdoor-calendar-final .outdoor-booking-event>strong,
.outdoor-calendar-final .outdoor-booking-event>.event-sub,
.outdoor-calendar-final .outdoor-booking-event>.event-activity,
.outdoor-calendar-final .outdoor-booking-event>.event-line{display:none!important;}
.outdoor-calendar-final .event-detail-link{position:absolute!important;inset:0!important;z-index:2!important;display:block!important;background:transparent!important;color:transparent!important;text-decoration:none!important;border-radius:inherit!important;}
.outdoor-calendar-final .outdoor-booking-event .booking-actions{position:absolute!important;right:4px!important;top:4px!important;z-index:10!important;pointer-events:auto!important;}
.outdoor-calendar-final .outdoor-booking-event .booking-actions .btn{width:22px!important;height:22px!important;padding:0!important;border-radius:999px!important;font-size:0!important;line-height:1!important;}
.outdoor-calendar-final .outdoor-booking-event .booking-actions .btn::before{content:'×';font-size:16px;font-weight:900;}
.card.wide>.split{margin-bottom:8px!important;}
.card.wide>.split h1{margin-bottom:4px!important;}
.card.wide>.split .muted{margin:0!important;}
.outdoor-legend{margin:2px 0 8px!important;gap:7px!important;}
.outdoor-legend span{font-size:12px!important;}
.booking-detail-page{max-width:720px!important;margin:0 auto!important;}
.detail-page-list div{grid-template-columns:180px minmax(0,1fr)!important;}
@media(max-width:760px){
  .outdoor-calendar-final .outdoor-head{grid-template-columns:50px repeat(3,minmax(0,1fr))!important;}
  .outdoor-calendar-final .outdoor-body{grid-template-columns:50px minmax(0,1fr)!important;overflow:visible!important;}
  .outdoor-calendar-final .outdoor-head>div{font-size:11px!important;padding:8px 2px!important;text-align:center!important;}
  .outdoor-calendar-final .outdoor-head>div:first-child{text-align:left!important;}
  .outdoor-calendar-final .calendar-times span{right:5px!important;font-size:10.5px!important;}
  .outdoor-calendar-final .outdoor-booking-event,
  .outdoor-calendar-final .outdoor-booking-event.event-compact,
  .outdoor-calendar-final .outdoor-booking-event.event-micro{padding:3px 5px!important;border-radius:10px!important;gap:1px!important;}
  .outdoor-calendar-final .outdoor-booking-event>.event-topline{font-size:10px!important;line-height:1.05!important;letter-spacing:-.015em!important;padding-left:3px!important;padding-right:3px!important;}
  .outdoor-calendar-final .outdoor-booking-event>.event-bottomline{font-size:10px!important;line-height:1.05!important;letter-spacing:-.015em!important;padding-left:3px!important;padding-right:3px!important;}
  .outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-topline,
  .outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-bottomline{padding-left:9px!important;padding-right:2px!important;}
  .card.wide>.split{display:grid!important;gap:4px!important;margin-bottom:4px!important;}
  .card.wide>.split h1{font-size:23px!important;margin-bottom:2px!important;}
  .card.wide>.split .muted{font-size:12.5px!important;line-height:1.25!important;}
  .outdoor-legend{justify-content:flex-start!important;margin:4px 0 6px!important;gap:5px!important;}
  .outdoor-legend span{font-size:10.5px!important;}
  .detail-page-header{display:grid!important;gap:10px!important;}
  .detail-page-list div{grid-template-columns:1fr!important;gap:2px!important;}
  .detail-page-list dd{font-size:17px!important;}
}


/* Reithalle Buchung v1.63: Außenplatz-Kopf wieder mit kompakter A/B/C-Grafik + saubere volle Drittelspalten */
.outdoor-area-map-compact.area-map.card-map{
  display:grid !important;
  grid-template-columns:2fr 1fr !important;
  grid-template-rows:1fr 1fr !important;
  gap:8px !important;
  margin:6px 0 10px !important;
  max-width:100% !important;
}
.outdoor-area-map-compact .area-map-cell{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  min-width:0 !important;
  border:1px solid #dbe3ee !important;
  background:#f8fafc !important;
  border-radius:14px !important;
  padding:11px 12px !important;
  box-shadow:0 4px 12px rgba(15,23,42,.045) !important;
  cursor:pointer !important;
  text-align:left !important;
}
.outdoor-area-map-compact .area-map-cell.active,
.outdoor-area-map-compact .area-map-cell:hover,
.outdoor-area-map-compact .area-map-cell:focus-visible{
  border-color:#93c5fd !important;
  background:#eff6ff !important;
}
.outdoor-area-map-compact .area-map-a{grid-column:1 !important;grid-row:1 / span 2 !important;min-height:92px !important;}
.outdoor-area-map-compact .area-map-b{grid-column:2 !important;grid-row:1 !important;min-height:42px !important;}
.outdoor-area-map-compact .area-map-c{grid-column:2 !important;grid-row:2 !important;min-height:42px !important;}
.outdoor-area-map-compact .area-map-cell strong{display:block !important;font-size:15px !important;line-height:1.1 !important;margin:0 0 3px !important;color:#0f172a !important;}
.outdoor-area-map-compact .area-map-cell span{display:block !important;font-size:11px !important;line-height:1.18 !important;font-weight:750 !important;color:#64748b !important;}
/* Keine alten Regelboxen einblenden. Nur die optische Flächen-Grafik bleibt sichtbar. */
.place-rules.place-rules-compact{display:none !important;}

/* Außenplatz-Kalender: A/B/C füllen jeweils das ganze Drittel mit nur minimalem Rand. */
.outdoor-calendar-final .slot-hit.lane-out-a,
.outdoor-calendar-final .calendar-event.lane-out-a{
  left:2px !important;
  width:calc(33.333333% - 4px) !important;
  max-width:calc(33.333333% - 4px) !important;
  right:auto !important;
}
.outdoor-calendar-final .slot-hit.lane-out-b,
.outdoor-calendar-final .calendar-event.lane-out-b{
  left:calc(33.333333% + 2px) !important;
  width:calc(33.333333% - 4px) !important;
  max-width:calc(33.333333% - 4px) !important;
  right:auto !important;
}
.outdoor-calendar-final .slot-hit.lane-out-c,
.outdoor-calendar-final .calendar-event.lane-out-c{
  left:calc(66.666666% + 2px) !important;
  width:calc(33.333334% - 4px) !important;
  max-width:calc(33.333334% - 4px) !important;
  right:auto !important;
}
.outdoor-calendar-final .outdoor-booking-event>.event-topline,
.outdoor-calendar-final .outdoor-booking-event>.event-bottomline,
.outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-topline,
.outdoor-calendar-final .outdoor-booking-event.lane-out-a>.event-bottomline{
  text-align:center !important;
  justify-self:center !important;
  padding-left:1px !important;
  padding-right:1px !important;
  margin:0 !important;
  transform:none !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.outdoor-calendar-final .outdoor-booking-event>.event-topline{font-size:10.3px !important;letter-spacing:-.02em !important;}
.outdoor-calendar-final .outdoor-booking-event>.event-bottomline{font-size:10.6px !important;letter-spacing:-.015em !important;}
/* Der Detail-Link liegt wirklich über dem Block; Löschen bleibt darüber. */
.outdoor-calendar-final .event-detail-link,
.calendar-event .event-detail-link{
  position:absolute !important;
  inset:0 !important;
  z-index:45 !important;
  display:block !important;
  background:transparent !important;
  border-radius:inherit !important;
  text-decoration:none !important;
  color:transparent !important;
  touch-action:manipulation !important;
}
.outdoor-calendar-final .outdoor-booking-event .booking-actions,
.calendar-event .booking-actions{z-index:60 !important;}

@media(max-width:760px){
  .outdoor-area-map-compact.area-map.card-map{gap:6px !important;margin:5px 0 8px !important;}
  .outdoor-area-map-compact .area-map-cell{border-radius:12px !important;padding:8px 9px !important;}
  .outdoor-area-map-compact .area-map-a{min-height:72px !important;}
  .outdoor-area-map-compact .area-map-b,
  .outdoor-area-map-compact .area-map-c{min-height:34px !important;}
  .outdoor-area-map-compact .area-map-cell strong{font-size:13px !important;margin-bottom:2px !important;}
  .outdoor-area-map-compact .area-map-cell span{font-size:9.6px !important;line-height:1.12 !important;}
  .outdoor-calendar-final .outdoor-booking-event>.event-topline{font-size:9.4px !important;letter-spacing:-.025em !important;}
  .outdoor-calendar-final .outdoor-booking-event>.event-bottomline{font-size:9.6px !important;letter-spacing:-.02em !important;}
}


/* Reithalle Buchung v1.63: Außenplatz-Regeln rechts wiederhergestellt und kompakt */
.outdoor-rules-right{
  display:block !important;
  margin-top:16px !important;
  padding:14px 14px !important;
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  background:#f8fafc !important;
}
.outdoor-rules-right h3{
  margin:0 0 10px !important;
  font-size:16px !important;
  line-height:1.2 !important;
}
.outdoor-rules-right p{
  margin:0 0 8px !important;
  color:#64748b !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.outdoor-rules-right p:last-child{margin-bottom:0 !important;}


/* Reithalle Buchung v1.63: Adminbereich kompakter, Statusuebersicht, eingeklappte Oeffnungszeiten */
.admin-status-card{padding:18px 22px !important;}
.admin-status-card h1{margin:0 0 10px !important;font-size:24px !important;}
.admin-status-grid{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.admin-season-details{border:1px solid #e2e8f0;border-radius:14px;margin:10px 0;background:#f8fafc;overflow:hidden;}
.admin-season-details>summary{cursor:pointer;font-weight:800;padding:12px 14px;list-style:none;}
.admin-season-details>summary::-webkit-details-marker{display:none;}
.admin-season-details>summary::after{content:' öffnen';float:right;font-size:12px;color:#4f46e5;background:#eef2ff;border-radius:999px;padding:2px 8px;}
.admin-season-details[open]>summary::after{content:' schließen';}
.admin-season-details .opening-grid{margin:0;border-top:1px solid #e2e8f0;border-radius:0;background:#fff;}
.admin-user-list-compact{display:flex;flex-direction:column;gap:8px !important;}
.v148-user-card{padding:10px 12px !important;border-radius:14px !important;box-shadow:none !important;margin:0 !important;}
.v148-user-card .party-card-header{gap:10px !important;align-items:center !important;}
.v148-user-card .party-color-dot{width:18px !important;height:18px !important;min-width:18px !important;}
.v148-user-card .party-title strong{font-size:15px !important;line-height:1.15 !important;}
.v148-user-card .party-title span{font-size:12px !important;line-height:1.2 !important;}
.v148-user-card .party-service-count{font-size:12px !important;padding:4px 8px !important;}
.v148-user-card .compact-horse-list{margin:6px 0 0 !important;gap:4px !important;}
.v148-user-card .horse-pill{font-size:12px !important;padding:3px 7px !important;}
.v148-user-card .user-details{margin-top:6px !important;border-radius:10px !important;}
.v148-user-card .user-details>summary{padding:7px 10px !important;font-size:13px !important;}
.v148-user-card .party-edit-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;gap:8px !important;}
.v148-user-card .party-edit-form label{font-size:12px !important;}
.v148-user-card .party-edit-form input,
.v148-user-card .party-edit-form select{padding:8px 9px !important;}
.delete-user-form{display:flex;justify-content:flex-end;}
.statistics-reset-card{border-color:#fecaca !important;background:#fffafa !important;}
.statistics-reset-card summary{cursor:pointer;font-weight:800;color:#991b1b;}
.statistics-reset-card .btn.danger{background:#dc2626;color:#fff;border-color:#dc2626;}
@media(max-width:760px){
  .admin-status-card{padding:14px !important;}
  .admin-status-grid{gap:6px;}
  .v148-user-card{padding:8px 10px !important;}
  .v148-user-card .party-title span{display:block;}
  .v148-user-card .horse-pill{font-size:11px !important;}
}


/* Reithalle Buchung v1.63: Benutzerfarben entfernt, Benutzerverwaltung noch kompakter */
.v150-user-card{padding:7px 10px !important;border-radius:12px !important;}
.v150-user-card .party-card-header{margin-bottom:4px !important;gap:8px !important;}
.v150-user-card .party-color-dot{display:none !important;}
.v150-party-header{display:grid !important;grid-template-columns:minmax(0,1fr) auto auto !important;align-items:center !important;}
.v150-user-card .party-title strong{font-size:14px !important;line-height:1.1 !important;}
.v150-user-card .party-title span{font-size:11.5px !important;line-height:1.15 !important;}
.v150-user-card .party-service-count{font-size:11.5px !important;padding:3px 7px !important;}
.v150-user-card .compact-horse-list{margin:3px 0 0 !important;gap:3px !important;}
.v150-user-card .horse-pill{font-size:11.5px !important;padding:2px 6px !important;}
.v150-user-card .user-details{margin-top:4px !important;}
.v150-user-card .user-details>summary{padding:5px 9px !important;font-size:12.5px !important;}
.delete-user-inline{margin:0 !important;display:flex !important;align-items:center !important;}
.delete-user-inline .btn{padding:4px 8px !important;font-size:11px !important;border-radius:999px !important;}
@media(max-width:760px){
  .v150-party-header{grid-template-columns:minmax(0,1fr) auto !important;}
  .delete-user-inline{grid-column:1 / -1;justify-content:flex-end;margin-top:3px !important;}
}


/* Reithalle Buchung v1.63: sehr kompakte Benutzerverwaltung als Tabellenzeile */
.admin-user-table{display:grid !important;gap:4px !important;}
.admin-user-table-head,
.admin-user-row-summary{
  display:grid !important;
  grid-template-columns:32px minmax(140px,1.1fr) minmax(190px,1.4fr) 86px 150px 90px 86px !important;
  align-items:center !important;
  gap:8px !important;
}
.admin-user-table-head{
  padding:0 10px 4px 10px !important;
  color:#64748b !important;
  font-size:11px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.03em !important;
}
.admin-user-row{
  border:1px solid #dbe4f0 !important;
  border-radius:10px !important;
  background:#fff !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  box-shadow:none !important;
}
.admin-user-row[hidden]{display:none !important;}
.admin-user-row-summary{
  list-style:none !important;
  cursor:pointer !important;
  padding:6px 10px !important;
  min-height:42px !important;
}
.admin-user-row-summary::-webkit-details-marker{display:none !important;}
.admin-user-row[open] .admin-user-plus{transform:rotate(45deg);background:#dbeafe;color:#1d4ed8;}
.admin-user-plus{
  width:22px;height:22px;border-radius:999px;background:#eef2ff;color:#2563eb;
  display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;line-height:1;
  transition:.15s ease;
}
.admin-user-main-name strong{font-size:13.5px !important;line-height:1.1 !important;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.admin-user-main-name em{font-style:normal;color:#b45309;font-size:11px;margin-left:4px;white-space:nowrap;}
.admin-user-email{font-size:12px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-pill{font-size:11px !important;padding:2px 7px !important;line-height:1.35 !important;white-space:nowrap !important;}
.success-soft{background:#ecfdf5 !important;color:#047857 !important;border-color:#bbf7d0 !important;}
.muted-soft{background:#f8fafc !important;color:#94a3b8 !important;border-color:#e2e8f0 !important;}
.admin-user-horse-count,.admin-user-role,.admin-user-special{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-user-delete-cell{display:flex;justify-content:flex-end;align-items:center;min-width:0;}
.admin-user-delete-cell .btn.small{padding:4px 8px !important;font-size:11.5px !important;}
.admin-user-row-details{
  border-top:1px solid #e2e8f0 !important;
  background:#f8fafc !important;
  padding:10px !important;
  display:grid !important;
  gap:10px !important;
}
.admin-user-row-details .party-edit-form{margin-top:0 !important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;gap:8px !important;}
.admin-user-row-details .party-edit-form label{font-size:12px !important;}
.admin-user-row-details .party-edit-form input,
.admin-user-row-details .party-edit-form select{padding:7px 9px !important;font-size:13px !important;}
.admin-user-horses-panel{border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px 10px;}
.admin-user-horses-panel h3{font-size:13px !important;margin:0 0 4px !important;}
.admin-user-horses-panel .horse-list{margin-top:4px !important;gap:4px !important;}
.admin-user-horses-panel .horse-pill{font-size:12px !important;padding:3px 7px !important;}
.admin-user-horses-panel .inline{padding:0 !important;margin-top:8px !important;}
@media(max-width:980px){
  .admin-user-table-head{display:none !important;}
  .admin-user-row-summary{grid-template-columns:28px minmax(120px,1fr) 76px 74px !important;grid-template-areas:'plus name horses delete' 'plus email special delete' !important;gap:3px 8px !important;min-height:50px !important;padding:7px 9px !important;}
  .admin-user-plus{grid-area:plus;}
  .admin-user-main-name{grid-area:name;}
  .admin-user-email{grid-area:email;}
  .admin-user-role{display:none !important;}
  .admin-user-special{grid-area:special;}
  .admin-user-horse-count{grid-area:horses;text-align:right;}
  .admin-user-delete-cell{grid-area:delete;}
  .admin-user-special .mini-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis;}
}
@media(max-width:620px){
  .admin-user-row-summary{grid-template-columns:26px 1fr 68px !important;grid-template-areas:'plus name delete' 'plus email delete' 'plus horses delete' !important;}
  .admin-user-special{display:none !important;}
  .admin-user-horse-count{text-align:left;}
  .admin-user-delete-cell .btn.small{padding:4px 7px !important;font-size:11px !important;}
}


/* Reithalle Buchung v1.63: Benutzerverwaltung als echte kompakte Vollzeile */
.admin-user-table{
  gap:3px !important;
}
.admin-user-table-head,
.admin-user-row-summary{
  display:grid !important;
  grid-template-columns:36px minmax(170px,1.15fr) minmax(230px,1.45fr) 72px 148px 78px 48px !important;
  align-items:center !important;
  gap:7px !important;
  width:100% !important;
}
.admin-user-table-head{
  padding:0 8px 3px 8px !important;
  font-size:10.5px !important;
}
.admin-user-row{
  border-radius:8px !important;
  box-shadow:none !important;
}
.admin-user-row-summary{
  min-height:34px !important;
  padding:4px 8px !important;
  cursor:default !important;
}
.admin-user-row-summary > *{
  min-width:0 !important;
}
.admin-user-expand-button,
.admin-user-plus{
  width:26px !important;
  height:24px !important;
  border-radius:8px !important;
  border:1px solid #bfdbfe !important;
  background:#eff6ff !important;
  color:#1d4ed8 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:900 !important;
  font-size:18px !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:0 !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.admin-user-expand-button:hover,
.admin-user-expand-button:focus-visible{
  background:#dbeafe !important;
  border-color:#93c5fd !important;
  outline:2px solid rgba(37,99,235,.20) !important;
  outline-offset:1px !important;
}
.admin-user-row[open] .admin-user-expand-button,
.admin-user-row[open] .admin-user-plus{
  transform:none !important;
  background:#dbeafe !important;
  color:#1d4ed8 !important;
}
.admin-user-row[open] .admin-user-expand-button::before{content:'−';}
.admin-user-row[open] .admin-user-expand-button{font-size:0 !important;}
.admin-user-row[open] .admin-user-expand-button::before{font-size:18px !important;line-height:1 !important;}
.admin-user-main-name strong{
  font-size:13px !important;
  line-height:1.05 !important;
}
.admin-user-email{
  font-size:11.5px !important;
  line-height:1.05 !important;
}
.admin-user-role .mini-pill,
.admin-user-special .mini-pill,
.admin-user-horse-count .mini-pill{
  font-size:10.5px !important;
  line-height:1.15 !important;
  padding:2px 6px !important;
}
.admin-user-delete-cell{
  justify-content:flex-end !important;
}
.delete-user-inline{
  width:100% !important;
  display:flex !important;
  justify-content:flex-end !important;
  margin:0 !important;
}
.admin-user-delete-button{
  width:30px !important;
  height:28px !important;
  min-width:30px !important;
  padding:0 !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:20px !important;
  font-weight:900 !important;
  line-height:1 !important;
  background:#dc2626 !important;
  color:#fff !important;
  border:1px solid #b91c1c !important;
  box-shadow:0 3px 8px rgba(220,38,38,.18) !important;
}
.admin-user-delete-button:hover,
.admin-user-delete-button:focus-visible{
  background:#b91c1c !important;
  outline:2px solid rgba(220,38,38,.22) !important;
  outline-offset:1px !important;
}
.admin-user-delete-placeholder{
  color:#94a3b8 !important;
  font-weight:800 !important;
  display:inline-flex !important;
  justify-content:center !important;
  width:30px !important;
}
.admin-user-row-details{
  padding:8px !important;
  gap:8px !important;
}
@media(max-width:980px){
  .admin-user-table-head{display:none !important;}
  .admin-user-row-summary{
    grid-template-columns:32px minmax(120px,1fr) minmax(80px,.7fr) 44px !important;
    grid-template-areas:'plus name horses delete' 'plus email special delete' !important;
    min-height:42px !important;
    padding:5px 7px !important;
    gap:3px 7px !important;
  }
  .admin-user-plus,.admin-user-expand-button{grid-area:plus !important;}
  .admin-user-main-name{grid-area:name !important;}
  .admin-user-email{grid-area:email !important;}
  .admin-user-role{display:none !important;}
  .admin-user-special{grid-area:special !important;}
  .admin-user-horse-count{grid-area:horses !important;text-align:right !important;}
  .admin-user-delete-cell{grid-area:delete !important;}
  .admin-user-delete-button{width:28px !important;height:26px !important;min-width:28px !important;font-size:18px !important;}
}
@media(max-width:620px){
  .admin-user-row-summary{
    grid-template-columns:30px minmax(0,1fr) 38px !important;
    grid-template-areas:'plus name delete' 'plus email delete' 'plus horses delete' !important;
  }
  .admin-user-special{display:none !important;}
  .admin-user-horse-count{text-align:left !important;}
}


/* Reithalle Buchung v1.63: Benutzerverwaltung - Aktionen rechts, klare Einzeilen */
.admin-user-table{
  gap:0 !important;
  border:1px solid #e2e8f0 !important;
  border-radius:12px !important;
  overflow:hidden !important;
  background:#fff !important;
}
.admin-user-table-head,
.admin-user-row-summary{
  display:grid !important;
  grid-template-columns:minmax(180px,1.25fr) minmax(230px,1.5fr) 76px 158px 88px 78px !important;
  align-items:center !important;
  gap:8px !important;
  width:100% !important;
}
.admin-user-table-head{
  padding:8px 12px 6px !important;
  background:#f8fafc !important;
  border-bottom:1px solid #e2e8f0 !important;
  color:#64748b !important;
  font-size:11px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:.025em !important;
}
.admin-user-row{
  border:0 !important;
  border-radius:0 !important;
  border-bottom:1px solid #e5e7eb !important;
  background:#fff !important;
  box-shadow:none !important;
  margin:0 !important;
  overflow:visible !important;
}
.admin-user-row:last-child{border-bottom:0 !important;}
.admin-user-row-summary{
  list-style:none !important;
  cursor:default !important;
  min-height:38px !important;
  padding:5px 12px !important;
}
.admin-user-row-summary::marker{content:'' !important;display:none !important;}
.admin-user-row-summary::-webkit-details-marker{display:none !important;}
.admin-user-main-name{min-width:0 !important;}
.admin-user-main-name strong{
  font-size:13.5px !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  display:block !important;
}
.admin-user-main-name em{font-size:11px !important;color:#b45309 !important;font-style:normal !important;}
.admin-user-email{
  font-size:12.5px !important;
  color:#475569 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.admin-user-role,.admin-user-special,.admin-user-horse-count{min-width:0 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.admin-user-actions-cell{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
  min-width:0 !important;
}
.admin-user-delete-cell{display:none !important;}
.admin-user-expand-button,
.admin-user-plus{
  width:30px !important;
  height:28px !important;
  min-width:30px !important;
  border-radius:9px !important;
  border:1px solid #93c5fd !important;
  background:#dbeafe !important;
  color:#1d4ed8 !important;
  font-size:22px !important;
  font-weight:950 !important;
  line-height:1 !important;
  box-shadow:0 2px 5px rgba(37,99,235,.12) !important;
}
.admin-user-expand-button:hover,.admin-user-expand-button:focus-visible{background:#bfdbfe !important;border-color:#60a5fa !important;outline:2px solid rgba(37,99,235,.18) !important;outline-offset:1px !important;}
.admin-user-row[open] .admin-user-expand-button,.admin-user-row[open] .admin-user-plus{background:#bfdbfe !important;transform:none !important;}
.admin-user-row[open] .admin-user-expand-button::before{content:'−' !important;}
.admin-user-row[open] .admin-user-expand-button{font-size:0 !important;}
.admin-user-row[open] .admin-user-expand-button::before{font-size:22px !important;line-height:1 !important;}
.delete-user-inline{width:auto !important;display:flex !important;justify-content:center !important;margin:0 !important;}
.admin-user-delete-button{
  width:30px !important;
  height:28px !important;
  min-width:30px !important;
  border-radius:9px !important;
  padding:0 !important;
  font-size:21px !important;
  font-weight:950 !important;
  line-height:1 !important;
  background:#dc2626 !important;
  color:#fff !important;
  border:1px solid #b91c1c !important;
  box-shadow:0 2px 5px rgba(220,38,38,.16) !important;
}
.admin-user-delete-placeholder{width:30px !important;min-width:30px !important;text-align:center !important;color:#cbd5e1 !important;font-weight:900 !important;}
.admin-user-row-details{border-top:1px solid #e2e8f0 !important;background:#f8fafc !important;padding:9px 12px !important;}
@media(max-width:980px){
  .admin-user-table-head{display:none !important;}
  .admin-user-row-summary{
    grid-template-columns:minmax(0,1fr) minmax(74px,.35fr) 68px !important;
    grid-template-areas:'name horses actions' 'email special actions' !important;
    min-height:46px !important;
    padding:6px 9px !important;
    gap:3px 8px !important;
  }
  .admin-user-main-name{grid-area:name !important;}
  .admin-user-email{grid-area:email !important;}
  .admin-user-role{display:none !important;}
  .admin-user-special{grid-area:special !important;}
  .admin-user-horse-count{grid-area:horses !important;text-align:right !important;}
  .admin-user-actions-cell{grid-area:actions !important;}
}
@media(max-width:620px){
  .admin-user-row-summary{grid-template-columns:minmax(0,1fr) 68px !important;grid-template-areas:'name actions' 'email actions' 'horses actions' !important;}
  .admin-user-special{display:none !important;}
  .admin-user-horse-count{text-align:left !important;}
}


/* Reithalle Buchung v1.63: finale kompakte Benutzerverwaltung mit Aktionen rechts und Pagination */
.admin-user-table{
  display:block !important;
  border:1px solid #e2e8f0 !important;
  border-radius:12px !important;
  overflow:hidden !important;
  background:#fff !important;
}
.admin-user-table-head,
.admin-user-row-summary{
  display:grid !important;
  grid-template-columns:minmax(180px,1.2fr) minmax(240px,1.45fr) 80px 165px 88px 78px !important;
  align-items:center !important;
  gap:10px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.admin-user-table-head{
  padding:7px 12px !important;
  background:#f8fafc !important;
  border-bottom:1px solid #e2e8f0 !important;
  color:#64748b !important;
  font-size:11px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:.025em !important;
}
.admin-user-row,
.v154-user-row{
  display:block !important;
  border:0 !important;
  border-radius:0 !important;
  border-bottom:1px solid #e5e7eb !important;
  background:#fff !important;
  box-shadow:none !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.admin-user-row:last-child{border-bottom:0 !important;}
.admin-user-row[hidden]{display:none !important;}
.admin-user-row-summary{
  min-height:36px !important;
  padding:4px 12px !important;
  cursor:default !important;
}
.admin-user-row-summary::marker,
.admin-user-row-summary::-webkit-details-marker{display:none !important;content:'' !important;}
.admin-user-main-name,
.admin-user-email,
.admin-user-role,
.admin-user-special,
.admin-user-horse-count,
.admin-user-actions-cell{min-width:0 !important;}
.admin-user-main-name strong{
  display:block !important;
  font-size:13.5px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.admin-user-main-name em{font-style:normal !important;color:#b45309 !important;font-size:11px !important;}
.admin-user-email{
  font-size:12.5px !important;
  color:#475569 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.admin-user-role,.admin-user-special,.admin-user-horse-count{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
.admin-user-role .mini-pill,
.admin-user-special .mini-pill,
.admin-user-horse-count .mini-pill{
  font-size:10.5px !important;
  line-height:1.15 !important;
  padding:2px 7px !important;
}
.admin-user-actions-cell{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:7px !important;
}
.admin-user-expand-button,
.admin-user-plus{
  width:30px !important;
  height:28px !important;
  min-width:30px !important;
  border-radius:9px !important;
  border:1px solid #93c5fd !important;
  background:#dbeafe !important;
  color:#1d4ed8 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  font-size:22px !important;
  font-weight:950 !important;
  line-height:1 !important;
  box-shadow:0 2px 5px rgba(37,99,235,.12) !important;
  cursor:pointer !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.admin-user-expand-button:hover,.admin-user-expand-button:focus-visible{
  background:#bfdbfe !important;
  border-color:#60a5fa !important;
  outline:2px solid rgba(37,99,235,.18) !important;
  outline-offset:1px !important;
}
.admin-user-row.is-open .admin-user-expand-button{background:#bfdbfe !important;}
.delete-user-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
}
.admin-user-delete-button{
  width:30px !important;
  height:28px !important;
  min-width:30px !important;
  border-radius:9px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:21px !important;
  font-weight:950 !important;
  line-height:1 !important;
  background:#dc2626 !important;
  color:#fff !important;
  border:1px solid #b91c1c !important;
  box-shadow:0 2px 5px rgba(220,38,38,.16) !important;
}
.admin-user-delete-button:hover,.admin-user-delete-button:focus-visible{
  background:#b91c1c !important;
  outline:2px solid rgba(220,38,38,.22) !important;
  outline-offset:1px !important;
}
.admin-user-delete-placeholder{
  width:30px !important;
  min-width:30px !important;
  height:28px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#cbd5e1 !important;
  font-weight:900 !important;
}
.admin-user-row-details{
  border-top:1px solid #e2e8f0 !important;
  background:#f8fafc !important;
  padding:9px 12px !important;
  display:grid !important;
  gap:8px !important;
}
.admin-user-row-details[hidden]{display:none !important;}
.admin-user-row-details .party-edit-form{margin-top:0 !important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;gap:8px !important;}
.admin-user-pagination{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-top:10px !important;
}
.admin-user-pagination[hidden]{display:none !important;}
.admin-user-pagination button:disabled{opacity:.45 !important;cursor:not-allowed !important;}
@media(max-width:980px){
  .admin-user-table-head{display:none !important;}
  .admin-user-row-summary{
    grid-template-columns:minmax(0,1fr) minmax(72px,.35fr) 72px !important;
    grid-template-areas:'name horses actions' 'email special actions' !important;
    min-height:45px !important;
    padding:6px 9px !important;
    gap:3px 8px !important;
  }
  .admin-user-main-name{grid-area:name !important;}
  .admin-user-email{grid-area:email !important;}
  .admin-user-role{display:none !important;}
  .admin-user-special{grid-area:special !important;}
  .admin-user-horse-count{grid-area:horses !important;text-align:right !important;}
  .admin-user-actions-cell{grid-area:actions !important;}
}
@media(max-width:620px){
  .admin-user-row-summary{
    grid-template-columns:minmax(0,1fr) 72px !important;
    grid-template-areas:'name actions' 'email actions' 'horses actions' !important;
  }
  .admin-user-special{display:none !important;}
  .admin-user-horse-count{text-align:left !important;}
}


/* v1.63: Passwortfeld mit Auge-Symbol */
.password-field{
  position:relative;
  display:block;
}
.password-field input[type="password"],
.password-field input[type="text"]{
  width:100%;
  padding-right:48px !important;
}
.password-toggle{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#f8fafc;
  color:#334155;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:16px;
  line-height:1;
  padding:0;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  background:#e0f2fe;
  border-color:#7dd3fc;
  outline:none;
}
.password-toggle.is-visible{
  background:#dbeafe;
  border-color:#60a5fa;
}


/* v1.63: Passwort-Auge robuster klickbar */
.password-toggle{
  z-index:5;
  user-select:none;
  -webkit-user-select:none;
  touch-action:manipulation;
}
.password-field input::-ms-reveal,
.password-field input::-ms-clear{
  display:none;
}


/* Reithalle Buchung v1.66: sichtbarer App-installieren-Link und Hilfeseite */
.install-nav-link{background:#eef2ff;border:1px solid #dbeafe;border-radius:999px;padding:4px 9px;color:#1d4ed8!important;font-weight:800!important;white-space:nowrap}
.install-nav-link:hover{background:#dbeafe;color:#1e40af!important}
.app-install-card hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.app-install-primary{width:100%;margin:8px 0 8px}
.install-steps{margin:0 0 16px 18px;padding:0;color:#374151}
.install-steps li{margin:6px 0}
.pwa-install-status.success{color:#166534}.pwa-install-status.warning{color:#92400e}.pwa-install-status.muted{color:var(--muted)}
@media(display-mode:standalone){.install-nav-link{display:none!important}}

/* === Statistik: Heatmap und Tageszusammenfassungen === */
.today-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 12px 0;padding:10px 12px;border:1px solid #dbeafe;border-radius:16px;background:#eff6ff;color:#1e3a8a}
.heatmap-wrap{overflow:auto;border:1px solid #dbe3ef;border-radius:16px;background:#fff;margin-top:8px}
.heatmap{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}
.heatmap th,.heatmap td{border:1px solid #e5eaf3;padding:7px;text-align:center;min-width:34px}
.heatmap thead th,.heatmap tbody th{background:#f8fafc;color:#475569;font-weight:850;position:sticky;left:0;z-index:1}
.heatmap td{font-weight:850;color:#0f172a;background:#f8fafc}
.heatmap .heat-level-0{background:#f8fafc;color:#94a3b8}
.heatmap .heat-level-1{background:#dbeafe}
.heatmap .heat-level-2{background:#bfdbfe}
.heatmap .heat-level-3{background:#93c5fd}
.heatmap .heat-level-4{background:#60a5fa;color:#fff}
.heatmap .heat-level-5{background:#2563eb;color:#fff}

/* Reithalle Buchung v1.72: getrennte Wartungsmodus-Karten */
.soft-card{border:1px solid var(--line);background:#f8fafc;border-radius:18px;padding:14px}
.soft-card h3{margin-top:0}


/* Reithalle Buchung v1.72: robuste PWA-Installationsseite */
.install-direct-box{border:1px solid #dbeafe;background:#eff6ff;border-radius:18px;padding:12px;margin:12px 0 8px}
.app-install-primary.is-ready{background:#16a34a;border-color:#16a34a}
.install-note{border:1px solid #fde68a;background:#fffbeb;border-radius:16px;padding:10px 12px;margin-top:12px;color:#374151}
.install-note p{margin:4px 0}
.install-nav-link{display:inline-flex;align-items:center;gap:4px}
.install-nav-link::before{content:'↧';font-weight:950}

/* Reithalle Buchung v1.72: iOS-feste Löschmöglichkeiten */
.today-summary-actions{align-items:stretch!important;gap:8px!important;}
.summary-booking-pill{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 5px 4px 9px;border:1px solid #bfdbfe;background:#fff;border-radius:999px;font-size:13px;font-weight:750;color:#1e3a8a;box-shadow:0 1px 4px rgba(15,23,42,.05);}
.summary-booking-pill a{display:inline-block;color:#1e3a8a;text-decoration:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.summary-booking-delete{display:inline-flex!important;margin:0!important;padding:0!important;flex:0 0 auto!important;}
.summary-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;min-height:24px;padding:0;border:0;border-radius:999px;background:#dc2626;color:#fff;font-size:18px;line-height:1;font-weight:950;box-shadow:0 2px 6px rgba(220,38,38,.25);cursor:pointer;-webkit-appearance:none;appearance:none;}
.summary-delete-btn:focus-visible{outline:3px solid rgba(220,38,38,.28);outline-offset:2px;}
.detail-delete-form{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.calendar-event .booking-actions{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;}
.calendar-event .booking-actions .btn.danger,.calendar-event .booking-actions .btn.small.danger{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;-webkit-appearance:none!important;appearance:none!important;}
@media(max-width:760px){
  .today-summary-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;}
  .summary-booking-pill{width:100%;box-sizing:border-box;justify-content:space-between;border-radius:14px;padding:7px 8px 7px 10px;}
  .summary-booking-pill a{min-width:0;flex:1 1 auto;}
  .calendar-event .booking-actions{right:4px!important;top:4px!important;z-index:80!important;}
  .calendar-event .booking-actions .btn.danger,.calendar-event .booking-actions .btn.small.danger{min-width:24px!important;min-height:24px!important;}
}

/* === Statistik Zeitraumfilter v1.76 === */
.stat-filter-panel{border:1px solid var(--line);border-radius:14px;background:#fbfdff;padding:12px}.inline-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-form label{min-width:170px}.inline-form input[type=date]{min-width:160px}.pill.highlight{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}@media(max-width:700px){.inline-form{align-items:stretch}.inline-form label,.inline-form input[type=date],.inline-form .btn{width:100%;min-width:0}}


/* Reithalle Buchung v1.78: Sonderbuchungen farblich getrennt von normalen Buchungen. */
.calendar-event.freejump,.booking-chip.freejump{background:#7c3aed!important;color:#fff!important;}
