/* 2D venue scheme (dark premium). SVG user units are decimetres, so a 10px font is 1 m tall. */
body[data-view=stands] #viewport,body[data-view=stands] #labels,body[data-view=stands] .map-caption,body[data-view=stands] .map-controls,
body[data-view=stands] .map-footer,body[data-view=stands] #detail,body[data-view=stands] #tooltip,body[data-view=stands] #mobile-card-actions,
body[data-view=stands] .labels-control,body[data-view=stands] .layers{display:none!important}
#stand-plan:not([hidden]){position:absolute;inset:180px 22px 20px calc(var(--sidebar) + 44px);z-index:4;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;
 border-radius:28px;background:var(--glass-strong);border:var(--glass-rim);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:18px 18px 16px;color:var(--ink);overflow:hidden}
.sp-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.sp-head h2{font-family:Onest,Inter,sans-serif;font-size:21px;font-weight:600;margin:6px 0 4px;color:#f1f6ee;letter-spacing:-.5px}
.sp-head p{margin:0;font-size:11px;color:#b9c9b4;max-width:620px;line-height:1.5}
.sp-legend{display:flex;flex-wrap:wrap;gap:8px}
.sp-legend span{display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:20px;background:#ffffff12;border:1px solid #ffffff24;font-size:11px;color:var(--ink-2)}
.sp-legend i{width:12px;height:9px;border-radius:2px;border:1.5px solid}
.sp-legend .free i{border-color:#6fd0a0;background:#6fd0a02e}.sp-legend .hold i{border-color:#e3c07a;background:#e3c07a33}
.sp-legend .booked i{border-color:#cfe6c6;background:#3f7ab0}.sp-legend .proposed i{border-color:#cfe6c6;border-style:dashed;background:transparent}
.sp-stage{position:relative;min-height:0;border-radius:20px;background:radial-gradient(ellipse at 50% 45%,#2b3b30,#1c2921 78%);border:1px solid #ffffff1a;overflow:hidden;touch-action:none}
/* The global icon rule (svg{stroke:currentColor}) must not outline the plan's text. */
#sp-svg{width:100%;height:100%;display:block;cursor:grab;user-select:none;stroke:none;stroke-width:0;fill:none}
#sp-svg:active{cursor:grabbing}
.sp-room{fill:#26352c;stroke:#ffffff38;stroke-width:1.2}.sp-room.hall{fill:#2c3e33;stroke:#ffffff66;stroke-width:1.6}
.sp-core{fill:#1c2921;stroke:#ffffff40;stroke-width:1}
.sp-stair rect{fill:#1c2921;stroke:#ffffff40;stroke-width:0.8}.sp-stair line{stroke:#ffffff26;stroke-width:0.6}
/* Zones follow the organiser's scheme: gold programme, blue checkups, green zones, grey service rooms, orange navigation. */
.sp-zone{stroke-width:1}
.sp-zone.program{fill:#e0b8721f;stroke:#e0b872b3}.sp-zone.program.solid{fill:#e0b872d9;stroke:#f1d69c}
.sp-zone.checkup{fill:#7fb4de14;stroke:#7fb4de99}
.sp-zone.green{fill:#6fd0a01a;stroke:#6fd0a0a6}
.sp-zone.service{fill:#ffffff12;stroke:#cfd8d24d}
.sp-zone.nav{fill:#e39a6233;stroke:#e39a62cc}.sp-zone.nav.solid{fill:#e39a62;stroke:#f3c29c}
.sp-zone.gold{fill:#d9b25f12;stroke:#d9b25fcc;stroke-width:1.4}.sp-zone.gold.solid{fill:#d9b25fd9;stroke:#f0d79a}
.sp-zone.podcast{fill:#c9a6d614;stroke:#c9a6d6b3;stroke-dasharray:5 3}
.sp-zone.breathe{fill:#9870cf2e;stroke:#b79be0cc}
.sp-canvas{stroke:#e39a62;stroke-width:1.6;stroke-dasharray:5 2.5}
.sp-frame{fill:#ffffff1f;stroke:#cfd8d2b3;stroke-width:0.8}
.sp-nav-dot{fill:#e39a62cc;stroke:#f3c29c;stroke-width:0.8}
.sp-speaker{fill:#33260f;stroke:#f1d69c;stroke-width:0.6}
.sp-partition{stroke:#9fc8e8;stroke-width:1.8;stroke-linecap:round;pointer-events:none}
.sp-screen{stroke:#aab5ae;stroke-width:3;stroke-linecap:butt}
.sp-wall{stroke:#dce8d6;stroke-width:3.4;stroke-linecap:round}
.sp-doors{stroke:#9fbf98;stroke-width:1.4;stroke-dasharray:9 4.5}
.sp-cols circle,.sp-cols rect,.sp-cols polygon{fill:#2c4232;stroke:#cfe6c680;stroke-width:0.6}
.sp-cap{font-family:Onest,Inter,system-ui,sans-serif;font-size:8.6px;font-weight:600;fill:#b9c9b4;text-anchor:middle;dominant-baseline:middle;pointer-events:none;letter-spacing:0.5px}
.sp-cap.big{font-size:12px;letter-spacing:0.8px}.sp-cap.small{font-size:6.6px;fill:#9fb39a}.sp-cap.tiny{font-size:4.6px;fill:#9fb39a;letter-spacing:0.3px}
.sp-cap.left{text-anchor:start}
.sp-cap.program{fill:#ecd29a}.sp-cap.checkup{fill:#a9cfee}.sp-cap.green{fill:#93dbb4}.sp-cap.gold{fill:#e6c983}.sp-cap.nav{fill:#f0b185}
.sp-cap.podcast{fill:#d9c0e3}.sp-cap.breathe{fill:#c9b3ea}.sp-cap.ink{fill:#33260f}
.sp-cap.entrance{font-size:8px;fill:#cfe6c6}
.sp-stand{cursor:pointer;outline:none}
.sp-cell{stroke-width:1.2;transition:fill .15s,stroke .15s}
.sp-back{stroke-width:3;stroke-linecap:round}
.sp-stand.free .sp-cell{fill:#6fd0a024;stroke:#6fd0a0}.sp-stand.free .sp-back{stroke:#6fd0a0}
.sp-stand.hold .sp-cell{fill:#e3c07a2e;stroke:#e3c07a}.sp-stand.hold .sp-back{stroke:#e3c07a}
.sp-stand.booked .sp-cell{fill:var(--brand);fill-opacity:.85;stroke:#ffffffb0}.sp-stand.booked .sp-back{stroke:#ffffff}
.sp-stand.proposed .sp-cell{fill:#cfe6c608;stroke:#cfe6c6;stroke-dasharray:3.5 2.2}.sp-stand.proposed .sp-back{stroke:#cfe6c6aa}
.sp-stand:hover .sp-cell,.sp-stand:focus-visible .sp-cell{fill-opacity:1;stroke-width:2}
.sp-stand.free:hover .sp-cell,.sp-stand.free:focus-visible .sp-cell{fill:#6fd0a055}
.sp-stand.selected .sp-cell{stroke:#ffffff;stroke-width:2.6;filter:drop-shadow(0 0 3.5px #cfe6c6)}
.sp-stand.in-group .sp-cell{fill:#6fd0a066;stroke:#ffffff;stroke-width:2;stroke-dasharray:none}
.sp-id{font-family:Onest,Inter,sans-serif;font-size:7.8px;font-weight:700;fill:#eef5ea;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.sp-stand.booked .sp-id{fill:#ffffff}.sp-id.long{font-size:5.6px}.sp-id.tiny{font-size:4.4px}.sp-firm{font-family:Inter,sans-serif;font-size:4.6px;fill:#ffffffd9;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
/* Checkup zone (12.10.2026): its places are not for sale — cells in the colour of the zone with the name inside. */
.sp-stand.station .sp-cell{fill:#7fb4de33;stroke:#9fc8e8;stroke-width:.9}
.sp-stand.station .sp-back{stroke:#a9d18e;stroke-width:1.6}
.sp-stand.station.kiosk .sp-cell{fill:#5fae9a4d;stroke:#8fd6c0}
.sp-stand.station.brand .sp-cell{fill:#e39a6240;stroke:#f0b185}
/* Zone of a partner: its floor in the colour of the company, under the cells of its doctors. */
.sp-stand.station.zone .sp-cell{fill:color-mix(in srgb,var(--zone) 30%,transparent);stroke:color-mix(in srgb,var(--zone) 70%,#ffffff);stroke-width:1.1}
.sp-stand.station.zone .sp-back{stroke:#cfe6c6aa;stroke-width:1}
.sp-stand.station.zone:hover .sp-cell,.sp-stand.station.zone:focus-visible .sp-cell{fill:color-mix(in srgb,var(--zone) 46%,transparent)}
.sp-stand.station:hover .sp-cell,.sp-stand.station:focus-visible .sp-cell{fill:#7fb4de73}
.sp-stand.station.kiosk:hover .sp-cell,.sp-stand.station.kiosk:focus-visible .sp-cell{fill:#5fae9a8c}
.sp-stand.station.brand:hover .sp-cell,.sp-stand.station.brand:focus-visible .sp-cell{fill:#e39a6280}
.sp-desk{fill:#eef5ea;fill-opacity:.38;pointer-events:none}
.sp-logo{pointer-events:none}.sp-logo rect{fill:#ffffff}.sp-logo-name{font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:3px;fill:#0f6f7e;dominant-baseline:central}
/* Closed service rooms: hatched a little darker than a room a guest can enter. */
.sp-zone.service.closed{fill:#ffffff1c;stroke:#cfd8d266;stroke-dasharray:4 2.5}
.sp-id.station{font-family:Inter,sans-serif;font-weight:600;font-size:4.4px;paint-order:stroke;stroke:#0d1f14b3;stroke-width:.7px}
.sp-scale line{stroke:#cfe6c6;stroke-width:1.4}
.sp-zoom{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px}
.sp-zoom button{width:42px;height:42px;border-radius:50%;border:var(--glass-rim);background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--ink);font-size:18px;cursor:pointer}
.sp-zoom button:hover{background:#ffffff26}
.sp-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;min-height:0}
.sp-card{position:relative;width:330px;overflow:auto;z-index:2;padding:20px 18px 18px;border-radius:24px;
 background:var(--glass-strong);border:var(--glass-rim);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.sp-card h3{font-family:Onest,Inter,sans-serif;font-size:22px;margin:10px 0 4px;color:#f1f6ee;letter-spacing:-.5px}
.sp-card p{font-size:12px;line-height:1.6;color:#b9c9b4;margin:6px 0}.sp-where{color:#dfe9da!important}.sp-size{font-size:11px!important;color:#8fa38a!important}
.sp-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;border:1px solid #cfe6c62e;background:#ffffff0d;color:#e7efe3;font-size:18px;cursor:pointer}
.sp-status{display:inline-block;padding:5px 10px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}
.sp-status.free{background:#6fd0a026;color:#8fd3aa}.sp-status.hold{background:#e3c07a2e;color:#e3c07a}.sp-status.booked{background:#ffffff1a;color:#e7efe3}.sp-status.proposed{background:#cfe6c61a;color:#cfe6c6;border:1px dashed #cfe6c666}
.sp-company{display:flex;align-items:center;gap:12px;margin:12px 0;padding:12px;border-radius:14px;background:#f4f8f2;color:#173e32}
.sp-company img{max-width:120px;max-height:44px;object-fit:contain}.sp-company strong{font-size:14px}
.sp-services{margin:8px 0 10px;padding-left:18px;font-size:12px;line-height:1.6;color:#b9c9b4}.sp-services strong{color:#eef5ea;font-weight:600}
.sp-note{padding:10px 12px;border-radius:12px;background:#e3c07a14;border:1px solid #e3c07a40;color:#e9dcc0!important}
.sp-packages{border:0;margin:14px 0 6px;padding:0;display:grid;gap:8px}
.sp-packages legend{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#8fab89;margin-bottom:8px}
.sp-packages label{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:14px;border:1px solid #cfe6c61f;background:#ffffff08;cursor:pointer}
.sp-packages label:has(input:checked){border-color:#8fab89;background:#8fab891f}
.sp-packages label.disabled{opacity:.45;cursor:not-allowed}
.sp-packages input{accent-color:#8fab89;margin-top:3px}
.sp-packages strong{display:block;font-size:13px;color:#eef5ea;font-weight:600}.sp-packages small{display:block;font-size:11px;color:#9fb39a;margin-top:3px}
.sp-run{font-size:12px!important}.sp-run b{color:#cfe6c6}
.sp-primary,.sp-secondary{width:100%;min-height:44px;border-radius:30px;font-size:13px;font-weight:600;cursor:pointer;margin-top:8px}
.sp-primary{border:0;background:var(--pill);color:var(--pill-ink)}.sp-primary:hover{background:#fff}.sp-primary:disabled{opacity:.4;cursor:not-allowed}
.sp-secondary{border:1px solid #cfe6c633;background:transparent;color:#e7efe3}.sp-secondary:hover{background:#ffffff0f}
@media(max-width:1100px) and (min-width:701px){#stand-plan:not([hidden]){top:236px}.sp-card{width:300px}}
@media(max-width:700px){
 #stand-plan:not([hidden]){inset:calc(max(8px,env(safe-area-inset-top)) + 128px) 10px calc(82px + env(safe-area-inset-bottom)) 10px;padding:14px 12px 12px;border-radius:22px;gap:8px}
 .sp-head h2{font-size:17px}.sp-head p{display:none}.sp-legend{gap:5px}.sp-legend span{padding:5px 8px;font-size:10px}
 .sp-body{grid-template-columns:minmax(0,1fr)}
 .sp-card{position:absolute;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:62%;border-radius:20px}
}
@media print{
 body *{visibility:hidden}#stand-plan,#stand-plan *{visibility:visible}
 #stand-plan{position:fixed!important;inset:0!important;background:#fff!important;color:#000}.sp-zoom,.sp-card{display:none!important}
}
/* Legend and the lounge arrangement switch share the right side of the head. */
.sp-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.sp-variants{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--ink-2)}
.sp-variants[hidden]{display:none}
.sp-variants span{margin-right:4px}
.sp-variants em{font-style:normal;color:#b9c9b4;margin-left:6px}
.sp-variants button{min-width:34px;height:30px;padding:0 10px;border-radius:16px;border:1px solid #ffffff24;background:#ffffff12;color:inherit;font:inherit;font-weight:600;cursor:pointer}
.sp-variants button:hover{background:#ffffff22}
.sp-variants button.active{background:#f1f6ee;color:#1d2a20;border-color:#f1f6ee}
@media(max-width:700px){.sp-side{align-items:flex-start}.sp-variants em{display:none}}
/* Public map: the application link looks like the primary button; the package contents are a compact list. */
a.sp-primary{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
.sp-includes{margin:8px 0 10px;padding-left:18px;font-size:11.5px;line-height:1.5;color:var(--ink-2);max-height:190px;overflow:auto}
/* The scheme inside a page of the site: no header, list or view switch — the floor switch and the scheme only. */
html.map-embed .app-header,html.map-embed .sidebar,html.map-embed .mobile-dock,html.map-embed .view-switch,html.map-embed #mobile-settings,html.map-embed .map-settings{display:none!important}
html.map-embed .map-top{position:absolute;top:10px;left:10px;right:auto;z-index:6}
html.map-embed #stand-plan:not([hidden]){inset:64px 8px 8px 8px}
@media(max-width:700px){html.map-embed #stand-plan:not([hidden]){inset:60px 4px 4px 4px}}
/* The map for guests (/program/map): no sale statuses; a place without a company looks neutral. */
html.map-guest .sp-legend{display:none}
html.map-guest .sp-stand.free .sp-cell,html.map-guest .sp-stand.hold .sp-cell{fill:#ffffff12;stroke:#cfe6c699}
html.map-guest .sp-stand.free .sp-back,html.map-guest .sp-stand.hold .sp-back{stroke:#cfe6c6}
html.map-guest .sp-stand.free:hover .sp-cell,html.map-guest .sp-stand.free:focus-visible .sp-cell{fill:#ffffff26}
.guest-back{display:none}
/* Phone: the scheme takes the screen. The header goes, the floor switch and the view switch stay in one row
   with a small way back to the site; the title, legend and description of the scheme are hidden. */
@media(max-width:700px){
 html.map-guest .app-header{display:none!important}
 html.map-guest .map-top{top:max(8px,env(safe-area-inset-top))!important}
 html.map-guest .guest-back{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#26352c;border:1px solid #ffffff2e;color:var(--ink);font-size:18px;text-decoration:none}
 html.map-guest #stand-plan:not([hidden]){inset:calc(max(8px,env(safe-area-inset-top)) + 58px) 6px calc(74px + env(safe-area-inset-bottom)) 6px;padding:4px;border-radius:18px;gap:0}
 html.map-guest .sp-head{display:none}
 html.map-guest #stand-plan:not([hidden]){grid-template-rows:minmax(0,1fr)}
 html.map-guest #mobile-settings{display:none!important}
 html.map-guest .sp-card{max-height:46%}
}
.sp-site{display:inline-block;margin:6px 0 4px;font-size:12px;font-weight:600;color:#cfe6c6;text-decoration:underline;text-underline-offset:2px}.sp-site:hover{color:#fff}
.sp-partner{margin:8px 0 6px;padding:9px 11px;border-radius:12px;background:#8fc2e626;border:1px solid #8fc2e655;color:#d6ebf7!important}.sp-partner b{color:#fff}
/* Public map (classes set by the site before the first paint): no role switch, no requests, no arrangement switch, no drawings. */
html.map-public .role-control label,html.map-public #map-role,html.map-public #my-requests,html.map-public #mobile-requests,html.map-public .variant-control,html.map-public .layers{display:none!important}
/* The map under the header of the site (?site=1): no header of its own, the map takes the whole frame. */
html.map-in-site .app-header,html.map-in-site .guest-back{display:none!important}
@media(min-width:701px){
 html.map-in-site .sidebar,html.map-in-site .map-top{top:20px}
 html.map-in-site #detail{top:86px}
 html.map-in-site #stand-plan:not([hidden]){top:86px}
}
