.site-map,.map-editor{--map-green:#247464;--map-line:#d8e5df;min-width:0}.site-map{background:#fff;border:1px solid var(--map-line);border-radius:22px;padding:clamp(14px,3vw,28px);margin:20px 0}.map-tabs,.map-toolbar,.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0 18px}.map-toolbar label{margin:0;min-width:100px;flex:1}.map-toolbar input[type=range]{min-height:32px}.map-toolbar button{align-self:end}.map-legend{font-size:12px;color:#465c54}.map-legend span{padding:6px 10px;background:#f0f5f2;border-radius:20px}.map-legend .available{color:#1b614b;background:#e4f4eb}.map-scroll{overflow:hidden;border:1px solid var(--map-line);border-radius:16px;background:#f2f5ef}.map-stage{position:relative;width:100%;min-width:0;aspect-ratio:1.5;background-position:center;background-size:100% 100%;background-repeat:no-repeat;isolation:isolate;transition:width .2s ease}.map-stage:empty{display:none}.map-shape{position:absolute;display:grid;place-items:center;border:2px solid #456a60;border-radius:5px;background:#e3eae5cc;color:#24473c;font:700 clamp(8px,1vw,13px)/1.15 system-ui;min-height:0;padding:2px;overflow:visible;cursor:pointer;word-break:break-word;text-align:center}.map-shape.map-free{background:#b9e9cde6;border-color:#24744f;color:#123f2a}.map-shape.map-blocked{background:repeating-linear-gradient(45deg,#d3d7d5df,#d3d7d5df 6px,#eff0efdf 6px,#eff0efdf 12px);color:#53625b;border-color:#7f8c85}.map-shape.map-unsuitable{background:#f3e5c9dd;color:#694e1a;border-color:#b39c68}.map-shape.map-match{box-shadow:0 0 0 3px #dcba6a}.map-shape.map-current{outline:4px solid #0f766e;outline-offset:2px;z-index:5;background:#0f766ee8;color:#fff}.map-shape.map-desired{outline:4px solid #d1952f;outline-offset:2px;z-index:4}.map-shape.map-selected{outline:4px solid #155ab5;outline-offset:2px;z-index:6}.map-shape.map-category-muted,.map-unit-card.map-category-muted{opacity:.34;filter:saturate(.45)}.map-shape:focus-visible{outline:4px solid #155ab5;z-index:7}.map-unit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:16px;max-height:270px;overflow:auto}.map-unit-card{min-height:78px;aspect-ratio:1.35;text-align:left;border:1px solid var(--map-line);background:#f9fbf9;border-radius:10px;padding:10px;color:#1c3e34;font:inherit;cursor:pointer;transition:opacity .15s ease,transform .15s ease;overflow:hidden}.map-unit-card strong,.map-unit-card small{display:block}.map-unit-card strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-unit-card small{margin-top:5px;color:#566c61;font-size:9px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-unit-card.map-current{border:2px solid #0f766e;background:#e8f5ef}.map-unit-card.map-desired{border:2px solid #d1952f}.map-unit-card.map-selected{border:2px solid #155ab5}.map-detail:empty{display:none}.map-detail{margin-top:18px;padding:18px;border-radius:16px;background:#eef6f2}.map-detail h3{margin:0 0 6px}.map-detail dl{display:grid;grid-template-columns:1fr auto;gap:8px}.map-detail dd{font-weight:700;text-align:right}.map-detail ul{padding-left:20px}.map-detail button{margin-top:12px}.map-editor .map-stage{touch-action:none;min-height:260px}.map-editor .map-scroll{overflow:auto;max-height:75vh}.map-resize{position:absolute;right:-7px;bottom:-7px;width:18px;height:18px;background:#155ab5;border:3px solid white;border-radius:5px;cursor:nwse-resize}.map-editor [data-prop]{max-width:130px}.map-editor .map-toolbar{align-items:end}.map-drawing{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-editor .map-stage.drawing{cursor:crosshair}.site-map [hidden],.map-editor [hidden]{display:none!important}
.map-range-form{margin:14px 0 18px}.map-range-trigger{width:min(100%,520px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 15px;border:1px solid var(--map-line);border-radius:14px;background:#fff;color:#17352e;text-align:left;cursor:pointer}.map-range-trigger span,.map-range-trigger small{font-size:10px;color:#61736b}.map-range-trigger strong{text-align:center;font-size:14px}.map-range-dialog,.map-action-dialog{width:min(920px,calc(100vw - 24px));border:0;border-radius:22px;padding:0;box-shadow:0 28px 90px #10282055}.map-range-dialog::backdrop,.map-action-dialog::backdrop{background:#10282088;backdrop-filter:blur(3px)}.map-range-dialog{padding:20px}.map-range-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.map-range-months{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:18px 0}.map-range-month h3{text-align:center;text-transform:capitalize}.map-range-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.map-range-weekday{text-align:center;font-size:10px;color:#718078;padding:5px}.map-range-day{aspect-ratio:1;border:0;border-radius:9px;background:transparent;color:#17352e;cursor:pointer}.map-range-day:hover{background:#e9f2ec}.map-range-day.is-between{border-radius:0;background:#e2efe9}.map-range-day.is-start,.map-range-day.is-end{background:#247464;color:#fff;font-weight:800}.map-range-day:disabled{opacity:.28;cursor:not-allowed}.map-action-card{padding:24px}.map-action-head{position:relative}.map-action-head h3{margin:7px 42px 5px 0}.map-action-head p{color:#64756d}.map-dialog-close{position:absolute;right:0;top:0;width:38px;height:38px;border:1px solid var(--map-line);border-radius:50%;background:#fff;font-size:22px;cursor:pointer}.map-action-price{padding:14px;border-radius:12px;background:#eef6f2;font-weight:750}.map-action-buttons{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.map-block-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--map-line)}.map-block-form label{margin:0}.map-block-form[hidden]{display:none}.booking-embedded-map .site-map{margin:10px 0 0;padding:14px;border-radius:16px}.booking-embedded-map .map-unit-list{max-height:210px}
.map-action-dialog{width:min(780px,calc(100vw - 24px))}.map-action-arrival{min-width:0;margin:20px 0 0;padding:18px;border:1px solid var(--map-line);border-radius:16px;background:#f7faf8}.map-action-arrival legend{padding:0 7px;font-weight:800;color:#17352e}.map-action-hint{margin:0 0 12px;color:#64756d}.map-action-arrival .arrival-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.map-action-arrival .arrival-profile-card{min-height:68px;padding:10px 12px;background:#fff;align-items:center}.map-action-arrival .arrival-profile-card>span{width:32px;height:32px}.map-action-arrival .arrival-profile-card>strong{font-size:11px;line-height:1.25}.map-action-error{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#fff1dc;color:#754d13;font-weight:700}.map-action-error[hidden]{display:none}
@media(max-width:650px){.map-toolbar{gap:8px}.map-toolbar label{flex-basis:40%}.map-detail dl{grid-template-columns:1fr}.map-detail dd{text-align:left}.map-tabs a{flex:1;text-align:center}.map-stage{min-width:0}.map-editor .map-stage{min-width:500px}.map-editor .form-card{padding:14px}.map-range-months{grid-template-columns:1fr}.map-range-month:nth-child(2){display:none}.map-range-trigger{grid-template-columns:1fr auto}.map-range-trigger span{grid-column:1/-1}.map-range-trigger strong{text-align:left}.map-block-form{grid-template-columns:1fr}.map-action-buttons{display:grid}.map-action-buttons .button{text-align:center}.map-action-arrival .arrival-profile-grid{grid-template-columns:1fr 1fr}.map-unit-list{grid-template-columns:repeat(3,minmax(88px,1fr));max-height:250px}.map-unit-card{min-height:72px;aspect-ratio:1.2}}

/* Die allgemeinen Label-Regeln stehen auf flex-direction:column und geben Labels
   einen unteren Abstand. Der Lageplan setzt seine Dialog-Kacheln explizit. */
.map-action-arrival .arrival-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0 0}
.map-action-arrival .arrival-profile-card{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;column-gap:9px;min-width:0;width:100%;height:auto;min-height:70px;margin:0;padding:10px 12px}
.map-action-arrival .arrival-profile-card>span{width:32px;height:32px}
.map-action-arrival .arrival-profile-card>strong{min-width:0;line-height:1.35;overflow-wrap:anywhere;hyphens:auto}
.map-action-dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.map-action-dialog .map-action-card{min-width:0}
@media(max-width:650px){
  .map-action-dialog{width:calc(100vw - 24px);border-radius:18px}
  .map-action-dialog .map-action-card{padding:18px}
  .map-action-arrival{margin-top:16px;padding:14px}
  .map-action-arrival .arrival-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .map-action-arrival .arrival-profile-card{grid-template-columns:26px minmax(0,1fr);column-gap:7px;min-height:78px;padding:9px}
  .map-action-arrival .arrival-profile-card>span{width:26px;height:26px;font-size:18px}
  .map-action-arrival .arrival-profile-card>strong{font-size:12px}
  .site-map .map-unit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:300px}
  .site-map .map-unit-card{display:block;min-width:0;width:100%;min-height:88px;max-height:112px;aspect-ratio:1.2;margin:0;padding:10px}
  .site-map .map-shape{font-size:clamp(6px,1.8vw,9px);line-height:1;word-break:normal;white-space:nowrap;overflow:hidden;border-width:1px;padding:0;touch-action:manipulation}
}
