/* Shared marked plan previews and accessible viewer. No photo pixels are changed. */
.av-plan-preview{display:flex;align-items:center;gap:14px;width:100%;min-width:0;text-align:left;padding:10px 14px;border:1px solid var(--linie,#d9dee6);border-radius:12px;background:var(--karte2,#f3f5f8);color:var(--text,#202633);font:inherit;cursor:pointer}
.av-plan-preview:hover{border-color:var(--blau,#40679f)}
.av-plan-preview:focus-visible,.av-plan-dialog button:focus-visible,.av-plan-viewport:focus-visible{outline:3px solid var(--blau,#40679f);outline-offset:3px}
.av-plan-snapshot{position:relative;display:block;flex:none;width:90px;border:1px solid #9998;box-shadow:0 3px 9px #0002;background:#fff;line-height:0}
.av-plan-snapshot img{display:block;width:100%;height:auto}
.av-plan-mark{position:absolute;box-sizing:border-box;border:2px solid #ff1d58;border-radius:2px;background:#ff1d584d;box-shadow:0 0 0 2px #fff9,0 0 0 4px #ff1d5866;pointer-events:none}
.av-plan-caption{display:grid;gap:4px;min-width:0;line-height:1.4}
.av-plan-caption b{font-size:13px}
.av-plan-caption span,.av-plan-caption small{font-size:11px;color:var(--dim,#596273)}
.av-plan-caption strong{font-size:12px;color:var(--blau,#40679f);margin-top:5px}
.av-plan-compact .av-plan-snapshot{width:54px}
.av-plan-compact{gap:12px;padding:9px 12px}
.av-plan-compact .av-plan-caption small{display:none}
.av-plan-preview.is-broken .av-plan-snapshot{display:none}
.av-plan-preview [hidden]{display:none!important}
.av-plan-preview.is-broken [data-av-plan-error]{display:block;color:var(--rot,#a32939)}
.av-plan-dialog,.av-workspace dialog.av-plan-dialog{box-sizing:border-box;width:min(1000px,96vw);height:92dvh;max-height:92dvh;max-width:96vw;padding:0;border:1px solid var(--linie,#d9dee6);border-radius:18px;background:var(--karte,#fff);color:var(--text,#202633);font:inherit;box-shadow:0 22px 80px #0005;overflow:hidden}
.av-plan-dialog::backdrop{background:#0c1016a8;backdrop-filter:blur(3px)}
.av-plan-window{height:100%;display:flex;flex-direction:column;min-height:0}
.av-plan-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--linie,#d9dee6);flex:none}
.av-plan-head h2{font-size:22px;line-height:1.25;margin:0;overflow-wrap:anywhere}
.av-plan-head p{font-size:12px;color:var(--dim,#596273);margin:5px 0 0}
.av-plan-dialog button{font:inherit;min-height:42px;border:1px solid var(--linie,#d9dee6);border-radius:9px;padding:8px 12px;background:var(--karte2,#f3f5f8);color:inherit;cursor:pointer}
.av-plan-head button{font-size:24px;width:44px;flex:none}
.av-plan-tools{display:flex;flex-wrap:wrap;gap:8px;padding:10px 18px;flex:none}
.av-plan-viewport{position:relative;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--karte2,#eef1f5);padding:12px;scrollbar-gutter:stable}
.av-plan-scene{position:relative;width:100%;max-width:800px;margin:0 auto;background:white;line-height:0}
.av-plan-scene img{display:block;width:100%;height:auto}
.av-plan-scene .av-plan-mark{border-width:4px;border-radius:4px;box-shadow:0 0 0 5px #ff1d584d,0 0 22px 6px #ff1d5880}
.av-plan-dialog.is-zoomed .av-plan-scene{width:160%;max-width:none;margin:0}
.av-plan-note{font-size:12px;line-height:1.45;color:var(--dim,#596273);padding:12px 18px;margin:0;border-top:1px solid var(--linie,#d9dee6);flex:none}
.av-plan-pulse{animation:av-room-pulse .62s ease-in-out 8 alternate}
@keyframes av-room-pulse{from{background:#ff1d581f;box-shadow:0 0 0 3px #ff1d5833,0 0 10px 2px #ff1d5840;transform:scale(1)}to{background:#ff1d588c;box-shadow:0 0 0 11px #ff1d5847,0 0 34px 10px #ff1d58b3;transform:scale(1.09)}}
@media(prefers-reduced-motion:reduce){.av-plan-pulse{animation:none}}
@media(max-width:560px){.av-plan-dialog,.av-workspace dialog.av-plan-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}.av-plan-head{padding:12px}.av-plan-head h2{font-size:20px}.av-plan-tools{padding:8px 12px}.av-plan-note{padding:10px 12px}.av-plan-snapshot{width:78px}.av-plan-compact .av-plan-snapshot{width:50px}}
/* Placements preserve the existing entry button; previews are separate controls. */
.av-workspace .room-card>.av-plan-preview{width:calc(100% - 28px);margin:0 14px 12px}
.av-workspace .room-detail>.av-plan-preview{max-width:500px;margin:14px 0}
.av-workspace .room-summary-row>.av-plan-preview{width:calc(100% - 28px);margin:0 14px 12px}
.av-workspace .entry-card{min-width:0;border:1px solid var(--linie);border-radius:13px;background:var(--karte);overflow:hidden}
.av-workspace .entry-card>.entry{border:0!important;border-radius:0!important}
.av-workspace .entry-card>.av-plan-preview{border-width:1px 0 0;border-radius:0}
.av-workspace .entry-plan-preview{grid-column:1/-1}
.av-workspace .room-ticket-history>.av-plan-preview{margin:4px 0 10px}
.av-workspace .stock-card>.av-plan-preview{margin-bottom:14px}
.raum-echo>.av-plan-preview{flex-basis:100%;margin-top:10px}
.raum-echo:has(>.av-plan-preview){flex-wrap:wrap}

.raum-echo .av-plan-snapshot{flex:none}

/* Raum am Plan suchen: antippbare Raumflächen über dem unveränderten Foto. */
.av-plan-picker .av-plan-head p{font-size:12px;line-height:1.45;color:var(--dim,#596273)}
.av-plan-floors{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.av-plan-dialog .av-plan-floors button{flex:none}
.av-plan-dialog .av-plan-floors button.is-active,.av-workspace dialog.av-plan-dialog .av-plan-floors button.is-active{background:var(--blau,#40679f);border-color:var(--blau,#40679f);color:#fff;font-weight:650}
.av-plan-dialog .av-plan-floors [data-av-pick-zoom]{margin-left:auto;position:sticky;right:0;background:var(--karte,#fff);box-shadow:-10px 0 10px 2px var(--karte,#fff)}
.av-plan-picker .av-plan-area,.av-workspace .av-plan-picker .av-plan-area{position:absolute;min-height:0;padding:0;border:2px solid color-mix(in srgb,var(--blau,#40679f) 55%,transparent);border-radius:4px;background:color-mix(in srgb,var(--blau,#40679f) 12%,transparent);cursor:pointer}
/* Trefferfläche über den Rahmen hinaus: die Kästchen im Plan sind kleiner als eine Fingerkuppe. */
.av-plan-picker .av-plan-area::after{content:"";position:absolute;inset:-12px}
.av-plan-picker .av-plan-area.is-class,.av-workspace .av-plan-picker .av-plan-area.is-class{border-color:var(--blau,#40679f);background:color-mix(in srgb,var(--blau,#40679f) 24%,transparent)}
.av-plan-picker .av-plan-area:hover,.av-plan-picker .av-plan-area:focus-visible,.av-workspace .av-plan-picker .av-plan-area:hover,.av-workspace .av-plan-picker .av-plan-area:focus-visible{background:color-mix(in srgb,var(--violett,#7b5ea7) 45%,transparent);border-color:var(--violett,#7b5ea7)}

/* Raumwahl aus der Werkstatt: die Flaeche traegt die Farbe des Raumzustands. */
.av-workspace .av-plan-picker .av-plan-area[class*="health-"]{border-color:var(--health-color,var(--blau,#40679f));background:color-mix(in srgb,var(--health-color,var(--blau,#40679f)) 26%,transparent)}
.av-workspace .av-plan-picker .av-plan-area[class*="health-"]:hover,.av-workspace .av-plan-picker .av-plan-area[class*="health-"]:focus-visible{background:color-mix(in srgb,var(--health-color,var(--blau,#40679f)) 55%,transparent)}

/* Ausgeblendete Räume im Plan: sichtbar durchgestrichen, nicht verschwunden. */
.av-plan-picker .av-plan-area.is-hidden,.av-workspace .av-plan-picker .av-plan-area.is-hidden{border-style:dashed;border-color:var(--dim,#5c6675);background:repeating-linear-gradient(45deg,#5c667559,#5c667559 3px,#ffffff59 3px,#ffffff59 7px)}
.av-plan-picker .av-plan-area.is-hidden:hover,.av-workspace .av-plan-picker .av-plan-area.is-hidden:hover{border-color:var(--violett,#7b5ea7)}
