/* Space — Interactive maps. Uses tokens from assets/tokens.css. */
.imap{--imap-height:min(78vh,760px);position:relative;font-family:var(--space-font-ar);color:var(--space-color-text);margin-block:1.5rem 3rem}
.imap *{box-sizing:border-box}

/* toolbar */
.imap__toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:.9rem}
.imap__search{position:relative;flex:1 1 280px;max-width:420px;display:flex;align-items:center}
.imap__search svg{position:absolute;inset-inline-start:.9rem;width:18px;height:18px;fill:none;stroke:var(--space-color-text-muted);stroke-width:1.8;stroke-linecap:round;pointer-events:none}
.imap__search input{width:100%;min-height:46px;padding:.55rem 2.6rem .55rem 1rem;border:1px solid var(--space-color-border);border-radius:999px;background:var(--space-white);font:inherit;font-size:.95rem;color:inherit}
.imap__search input:focus{outline:none;border-color:var(--space-color-primary);box-shadow:0 0 0 3px var(--space-color-primary-soft)}
.imap__results{position:absolute;top:calc(100% + 6px);inset-inline:0;z-index:30;list-style:none;margin:0;padding:.35rem;background:var(--space-white);border:1px solid var(--space-color-border);border-radius:var(--space-radius);box-shadow:var(--space-shadow);max-height:320px;overflow:auto}
.imap__results button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .7rem;border:0;border-radius:.6rem;background:none;font:inherit;font-size:.92rem;text-align:start;color:inherit;cursor:pointer}
.imap__results button:hover,.imap__results button:focus-visible{background:var(--space-color-surface-alt);outline:none}
.imap__empty{padding:.6rem .8rem;color:var(--space-color-text-muted);font-size:.9rem}

.imap__filters{display:flex;flex-wrap:wrap;gap:.45rem}
.imap__chip{display:inline-flex;align-items:center;gap:.45rem;min-height:38px;padding:.3rem .85rem;border:1px solid var(--space-color-border);border-radius:999px;background:var(--space-white);font:inherit;font-size:.86rem;font-weight:600;color:var(--space-color-text);cursor:pointer;transition:background-color .15s,border-color .15s,opacity .15s}
.imap__chip small{font-size:.75rem;color:var(--space-color-text-muted);font-weight:600}
.imap__chip[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,white)}
.imap__chip[aria-pressed=false]{opacity:.55}
.imap__chip[aria-pressed=false] .imap__dot{background:transparent}
.imap__chip:focus-visible{outline:2px solid var(--space-color-primary);outline-offset:2px}
.imap__dot{width:.7rem;height:.7rem;flex:none;border-radius:50%;background:var(--c);border:2px solid var(--c)}

/* stage */
.imap__stage{position:relative;aspect-ratio:1900/1370;max-height:var(--imap-height);width:100%;min-height:380px;border-radius:var(--space-radius-lg);overflow:hidden;background:#e9eee4;border:1px solid var(--space-color-border);box-shadow:var(--space-shadow)}
.imap__viewport{position:absolute;inset:0;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.imap__viewport:focus-visible{outline:3px solid var(--space-color-primary);outline-offset:-3px}
.imap.is-dragging .imap__viewport{cursor:grabbing}
.imap__svg{display:block;width:100%;height:100%}
.imap__svg image{image-rendering:auto}

/* zones */
.imap__zone{fill:var(--c);fill-opacity:0;stroke:var(--c);stroke-opacity:.0;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill-opacity .18s,stroke-opacity .18s}
.imap__zone--phase{stroke:#fff;stroke-opacity:.9;stroke-width:2.5;stroke-dasharray:7 5}
.imap__zone:hover{fill-opacity:.2;stroke-opacity:1}
.imap__zone--phase:hover{stroke:var(--c);stroke-dasharray:none}
.imap__zone.is-active{fill-opacity:.26;stroke:var(--c);stroke-opacity:1;stroke-width:3.5;stroke-dasharray:none}
.imap.is-dragging .imap__zone{pointer-events:none}

.imap__label{cursor:pointer}
.imap__label circle{fill:var(--space-color-primary);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 3px rgb(0 0 0 / .3))}
.imap__label text{fill:#fff;font:800 15px/1 var(--space-font-ar);pointer-events:none}
.imap__label:hover circle,.imap__label.is-active circle{fill:var(--space-color-accent)}

/* pins */
.imap__poi{cursor:pointer}
.imap__pin{fill:var(--c);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 3px rgb(0 0 0 / .35));transition:r .15s}
.imap__icon{fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.imap__poi[data-layer=leisure] .imap__icon{fill:#fff;stroke:none}
.imap__gate-no{fill:#fff;font:800 11.5px/1 var(--space-font-ar);pointer-events:none}
.imap__poi:hover .imap__pin,.imap__poi.is-active .imap__pin{r:15.5}
.imap__poi.is-active .imap__pin{stroke:var(--space-color-accent);stroke-width:3.5}
.imap__svg.is-animating{transition:none}

/* layer toggles */
.imap__svg .is-hidden{display:none}

/* zoom controls */
.imap__zoom{position:absolute;inset-inline-end:1rem;top:1rem;display:flex;flex-direction:column;border-radius:.8rem;overflow:hidden;background:var(--space-white);box-shadow:var(--space-shadow);border:1px solid var(--space-color-border);z-index:5}
.imap__zoom button{width:42px;height:42px;display:grid;place-items:center;border:0;border-bottom:1px solid var(--space-color-border);background:none;font:600 1.35rem/1 Arial,sans-serif;color:var(--space-color-primary-dark);cursor:pointer}
.imap__zoom button:last-child{border-bottom:0}
.imap__zoom button:hover{background:var(--space-color-primary-soft)}
.imap__zoom button:focus-visible{outline:2px solid var(--space-color-primary);outline-offset:-2px}
.imap__zoom svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}

.imap__hint{position:absolute;bottom:1rem;inset-inline-start:50%;transform:translateX(50%);margin:0;padding:.45rem 1rem;border-radius:999px;background:rgb(48 39 47 / .82);color:#fff;font-size:.85rem;white-space:nowrap;pointer-events:none;z-index:4}

/* detail panel */
.imap__panel{position:absolute;top:1rem;inset-inline-start:1rem;z-index:6;width:min(340px,calc(100% - 5.5rem));padding:1.25rem 1.25rem 1.1rem;background:var(--space-white);border-radius:var(--space-radius);border-top:5px solid var(--c,var(--space-color-primary));box-shadow:0 14px 40px rgb(48 39 47 / .18);animation:imap-in .18s ease-out}
.imap__panel[hidden]{display:none}
.imap__panel h3{margin:.1rem 0 .3rem;font-size:1.3rem;color:var(--space-color-primary-dark)}
.imap__panel p{margin:0 0 .6rem;font-size:.93rem;line-height:1.7}
.imap__eyebrow{display:inline-block;margin:0 0 .35rem!important;padding:.1rem .65rem;border-radius:999px;background:color-mix(in srgb,var(--c,#A63D92) 12%,white);color:var(--c,var(--space-color-primary));font-size:.78rem!important;font-weight:700}
.imap__meta{color:var(--space-color-text-muted);font-weight:600;font-size:.87rem!important;white-space:pre-line}
.imap__meta:empty{display:none}
.imap__close{position:absolute;top:.5rem;inset-inline-end:.5rem;width:36px;height:36px;border:0;border-radius:50%;background:none;font:400 1.6rem/1 Arial,sans-serif;color:var(--space-color-text-muted);cursor:pointer}
.imap__close:hover{background:var(--space-color-surface-alt)}
.imap__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.imap__actions:empty{display:none}
.imap__actions .space-button{min-height:42px;padding:.5rem 1rem;font-size:.9rem}
.imap__wa{background:#1F8F4E!important}
.imap__wa:hover{background:#17703C!important}
@keyframes imap-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.imap__notice{margin:.75rem 0 0;padding:.65rem 1rem;border-radius:var(--space-radius-sm);background:var(--space-warning-soft);color:var(--space-warning);font-size:.88rem}

/* accessible list */
.imap__list{margin-top:1rem;border:1px solid var(--space-color-border);border-radius:var(--space-radius);background:var(--space-white)}
.imap__list summary{padding:.9rem 1.2rem;font-weight:700;color:var(--space-color-primary-dark);cursor:pointer}
.imap__list[open] summary{border-bottom:1px solid var(--space-color-border)}
.imap__list h4{margin:1rem 1.2rem .4rem;font-size:1rem}
.imap__list ul{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 1.2rem 1rem;padding:0;list-style:none}
.imap__list button{padding:.3rem .8rem;border:1px solid var(--space-color-border);border-radius:999px;background:var(--space-color-surface-alt);font:inherit;font-size:.85rem;color:inherit;cursor:pointer}
.imap__list button:hover{border-color:var(--space-color-primary);color:var(--space-color-primary-dark)}

/* page wrapper for /rehab-map/ */
.imap-page{padding-block:2rem 1rem}
.imap-page__head{max-width:760px;margin-bottom:1.25rem}
.imap-page__eyebrow{margin:0;color:var(--space-color-accent-accessible);font-weight:700;font-size:.85rem;letter-spacing:.04em}
.imap-page__head h1{margin:.2rem 0 .5rem;font-size:clamp(1.8rem,4vw,2.6rem)}
.imap-page__head p:last-child{margin:0;color:var(--space-color-text-muted)}
.space-imap-page .ast-container{max-width:none;display:block}

/* mobile: panel becomes a bottom sheet */
@media (max-width:700px){
 .imap{--imap-height:68vh}
 .imap__toolbar{gap:.6rem}
 .imap__search{max-width:none}
 .imap__filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;margin-inline:-1rem;padding-inline:1rem;scrollbar-width:none}
 .imap__filters::-webkit-scrollbar{display:none}
 .imap__chip{flex:none}
 .imap__stage{border-radius:var(--space-radius);aspect-ratio:auto;height:var(--imap-height);max-height:none}
 .imap__panel{top:auto;bottom:0;inset-inline:0;width:auto;border-radius:var(--space-radius) var(--space-radius) 0 0;max-height:60%;overflow:auto}
 .imap__zoom{top:.75rem;inset-inline-end:.75rem}
 .imap__hint{font-size:.78rem}
}
@media (prefers-reduced-motion:reduce){.imap__panel{animation:none}.imap__zone,.imap__pin{transition:none}}

/* index of interactive maps */
.imap-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin:1.5rem 0 3rem;padding:0;list-style:none}
.imap-card{display:flex;flex-direction:column;height:100%;border:1px solid var(--space-color-border);border-radius:var(--space-radius-lg);overflow:hidden;background:var(--space-white);box-shadow:var(--space-shadow);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.imap-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgb(83 32 74 / 14%)}
.imap-card:focus-visible{outline:3px solid var(--space-color-primary);outline-offset:3px}
.imap-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#e9eee4}
.imap-card__body{padding:1.1rem 1.25rem 1.3rem}
.imap-card h2{margin:0 0 .3rem;font-size:1.3rem}
.imap-card p{margin:0 0 .8rem;color:var(--space-color-text-muted);font-size:.92rem}
.imap-card__cta{color:var(--space-color-accent-accessible);font-weight:700;font-size:.92rem}
.imap-page__crumbs{margin-bottom:.75rem;font-size:.88rem;color:var(--space-color-text-muted)}
.imap-page__crumbs a{color:var(--space-color-primary);text-decoration:none}
.imap-page__crumbs a:hover{text-decoration:underline}

/* =====================================================================
   Professional layer (data.pro) — Al Rehab. Premium, minimal, RTL.
   ===================================================================== */
.imap__i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.imap__mk{cursor:pointer;outline:none}
.imap__mk .imap__pin{fill:var(--c);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 4px rgb(48 39 47 / .28))}
.imap__mk .imap__icon{fill:none;stroke:#fff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.imap__mk-no{fill:#fff;font:800 11.5px/1 var(--space-font-ar);pointer-events:none}
.imap__mk:hover .imap__pin,.imap__mk:focus-visible .imap__pin{r:15}
.imap__mk.is-active .imap__pin{r:16.5;stroke:#30272F;stroke-width:3;filter:drop-shadow(0 3px 8px rgb(48 39 47 / .4))}
.imap__mk.is-active{outline:none}
.imap__svg .is-off{opacity:0;pointer-events:none}
.imap__svg .imap__mk,.imap__svg .imap__label{transition:opacity .18s ease}
.imap__count rect{fill:#B7791F;stroke:#fff;stroke-width:2}
.imap__count text{fill:#fff;font:800 11px/1 var(--space-font-ar);pointer-events:none}
.imap__count--sm text{font-size:9.5px}
.imap__body{display:block}
.imap .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.imap__label:focus,.imap__mk:focus{outline:none}
.imap__label:focus-visible circle,.imap__mk:focus-visible .imap__pin{stroke:#30272F;stroke-width:3.5}

.imap--pro{margin-block:.75rem 2rem}
.imap--pro .imap__zone--phase{fill-opacity:.0;stroke:#fff;stroke-opacity:.75;stroke-width:1.6;stroke-dasharray:none}
.imap--pro .imap__zone--phase:hover{fill-opacity:.12;stroke:var(--c);stroke-opacity:1}
.imap--pro .imap__zone--phase.is-active{fill-opacity:.16;stroke:var(--c);stroke-width:3}
.imap--pro.has-selection .imap__zone--phase:not(.is-active){fill:#30272F;fill-opacity:.12}
.imap--pro[data-mode=buildings] .imap__zone--phase,.imap--pro[data-mode=listings] .imap__zone--phase{stroke-opacity:.5}
.imap--pro .imap__zone:not(.imap__zone--phase){display:none}
.imap--pro .imap__zone.is-shown{display:inline;fill-opacity:.1;stroke-opacity:.6}
.imap--pro .imap__label circle{r:14;fill:#A63D92;stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 5px rgb(83 32 74 / .35))}
.imap--pro .imap__label text{font-size:14px}
.imap--pro .imap__label.is-active circle{fill:#53204A}

/* top bar: modes + search, compact */
.imap__bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem}
.imap__modes{display:flex;gap:.25rem;padding:.25rem;border-radius:999px;background:var(--space-white);border:1px solid var(--space-color-border);box-shadow:0 2px 10px rgb(83 32 74 / 5%);overflow-x:auto;scrollbar-width:none;max-width:100%}
.imap__modes::-webkit-scrollbar{display:none}
.imap__mode{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:.35rem .95rem;border:0;border-radius:999px;background:none;font:700 .9rem/1 var(--space-font-ar);color:var(--space-color-text-muted);white-space:nowrap;cursor:pointer;transition:background .15s,color .15s}
.imap__mode:hover{color:var(--space-color-primary-dark);background:var(--space-color-surface-alt)}
.imap__mode[aria-selected=true]{background:var(--space-color-primary);color:#fff}
.imap__mode small{font-size:.72rem;font-weight:700;padding:.1rem .45rem;border-radius:99px;background:color-mix(in srgb,currentColor 16%,transparent)}
.imap__mode:focus-visible{outline:2px solid var(--space-color-primary);outline-offset:2px}
.imap--pro .imap__search{flex:1 1 260px;max-width:none}
.imap--pro .imap__search input{min-height:44px}

/* stage gets the room */
.imap--pro .imap__stage{--imap-height:min(82vh,820px);aspect-ratio:auto;height:var(--imap-height);max-height:none;border-radius:20px;background:#eef1ea;box-shadow:0 10px 34px rgb(48 39 47 / 10%)}
.imap--pro .imap__zoom{border-radius:14px;box-shadow:0 6px 20px rgb(48 39 47 / 12%)}
.imap--pro .imap__zoom button{width:40px;height:40px}
.imap--pro .imap__hint{bottom:1rem;background:rgb(48 39 47 / .78);backdrop-filter:blur(4px)}
.imap--pro.has-panel .imap__hint{display:none}

/* layer control */
.imap__layers{position:absolute;top:1rem;inset-inline-end:4.1rem;z-index:7}
.imap__ctl{display:inline-flex;align-items:center;gap:.45rem;min-height:40px;padding:.35rem .85rem;border:1px solid var(--space-color-border);border-radius:12px;background:rgb(255 255 255 / .96);font:700 .86rem/1 var(--space-font-ar);color:var(--space-color-text);box-shadow:0 6px 20px rgb(48 39 47 / 12%);cursor:pointer}
.imap__ctl small{min-width:1.3rem;padding:.12rem .35rem;border-radius:99px;background:var(--space-color-primary);color:#fff;font-size:.72rem}
.imap__ctl[aria-expanded=true]{border-color:var(--space-color-primary)}
.imap__pop{position:absolute;top:calc(100% + .4rem);inset-inline-end:0;width:290px;max-height:min(60vh,420px);overflow:auto;padding:.5rem;border-radius:14px;background:#fff;border:1px solid var(--space-color-border);box-shadow:0 18px 44px rgb(48 39 47 / 18%)}
.imap__pop hr{border:0;border-top:1px solid var(--space-color-border);margin:.4rem 0}
.imap__opt{display:grid;grid-template-columns:auto auto 1fr;grid-template-areas:"c d t" "c d s";align-items:center;column-gap:.55rem;padding:.5rem .55rem;border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:700}
.imap__opt:hover{background:var(--space-color-surface-alt)}
.imap__opt input{grid-area:c;width:18px;height:18px;accent-color:var(--space-color-primary)}
.imap__optdot{grid-area:d;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff}
.imap__optdot .imap__i{width:15px;height:15px}
.imap__opt>span:nth-of-type(2){grid-area:t}
.imap__opt small{grid-area:s;font-size:.74rem;font-weight:600;color:var(--space-color-text-muted)}

/* listing filters (mode D) */
.imap__filters-bar{position:absolute;top:1rem;inset-inline-start:1rem;inset-inline-end:16rem;z-index:6;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.4rem;border-radius:14px;background:rgb(255 255 255 / .96);border:1px solid var(--space-color-border);box-shadow:0 6px 20px rgb(48 39 47 / 12%)}
.imap__filters-bar[hidden]{display:none}
.imap__seg{display:inline-flex;padding:.15rem;border-radius:10px;background:var(--space-color-surface-alt)}
.imap__seg button{min-height:32px;padding:.2rem .7rem;border:0;border-radius:8px;background:none;font:700 .82rem/1 var(--space-font-ar);color:var(--space-color-text-muted);cursor:pointer}
.imap__seg button[aria-pressed=true]{background:#fff;color:var(--space-color-primary-dark);box-shadow:0 1px 4px rgb(48 39 47 / 15%)}
.imap__sel{min-height:34px;max-width:170px;padding:.2rem .5rem;border:1px solid var(--space-color-border);border-radius:9px;background:#fff;font:600 .82rem var(--space-font-ar);color:inherit}
.imap__sel:disabled{opacity:.55}
.imap__more{position:relative}
.imap__more summary{min-height:34px;display:flex;align-items:center;padding:.2rem .7rem;border:1px solid var(--space-color-border);border-radius:9px;font-weight:700;font-size:.82rem;cursor:pointer;list-style:none}
.imap__more summary::-webkit-details-marker{display:none}
.imap__more[open]{display:flex;flex-wrap:wrap;gap:.35rem}
.imap__more input{width:120px;min-height:34px;padding:.2rem .5rem;border:1px solid var(--space-color-border);border-radius:9px;font:600 .82rem var(--space-font-ar)}
.imap__reset{border:0;background:none;color:var(--space-color-accent-accessible);font:700 .82rem var(--space-font-ar);cursor:pointer;padding:.3rem .5rem}
.imap__total{position:absolute;bottom:1rem;inset-inline-end:1rem;z-index:6;min-height:42px;padding:.45rem 1rem;border:0;border-radius:999px;background:#30272F;color:#fff;font:700 .88rem var(--space-font-ar);box-shadow:0 8px 24px rgb(48 39 47 / 25%);cursor:pointer}
.imap__total b{color:#F6C97A}
.imap--pro.has-panel .imap__total{inset-inline-end:auto;inset-inline-start:calc(380px + 2rem)}

/* contextual panel — compact side card on desktop */
.imap--pro .imap__panel{top:1rem;bottom:1rem;inset-inline-start:1rem;width:min(380px,calc(100% - 2rem));padding:0;border-top:0;border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgb(48 39 47 / 22%);animation:imap-slide .22s ease-out}
.imap--pro[data-mode=listings] .imap__panel{top:4.6rem}
.imap--pro .imap__panel[hidden]{display:none}
.imap--pro .imap__body{flex:1;overflow:auto;padding:1.1rem 1.15rem 1.25rem;overscroll-behavior:contain}
.imap--pro .imap__close{top:.7rem;inset-inline-end:.7rem;z-index:2;display:grid;place-items:center;width:34px;height:34px;background:var(--space-color-surface-alt)}
.imap--pro .imap__close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.imap__grip{display:none}
.imap__ph{display:flex;gap:.75rem;align-items:flex-start;padding-inline-end:2.4rem;margin-bottom:.8rem}
.imap__ph-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--c) 13%,white);color:var(--c)}
.imap__ph h3{margin:.15rem 0 .1rem;font-size:1.2rem;line-height:1.35;color:var(--space-color-text)}
.imap--pro .imap__eyebrow{margin:0!important;padding:0;background:none;color:var(--c);font-size:.78rem!important}
.imap--pro .imap__meta{margin:0!important}
.imap__desc{font-size:.92rem;line-height:1.75;color:var(--space-color-text);margin:.2rem 0 .7rem}
.imap__en{margin:-.4rem 0 .6rem!important;color:var(--space-color-text-muted);font-family:var(--space-font);font-size:.9rem!important;text-align:end}
.imap__note{margin:.5rem 0!important;padding:.5rem .7rem;border-radius:10px;background:var(--space-color-surface-alt);color:var(--space-color-text-muted);font-size:.83rem!important}
.imap__note--warn{background:var(--space-warning-soft);color:var(--space-warning)}
.imap__credit{font-size:.74rem!important;color:var(--space-color-text-muted)}
.imap__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:.4rem 0 .2rem}
.imap__stat{padding:.55rem .4rem;border-radius:12px;background:var(--space-color-surface-alt);text-align:center}
.imap__stat b{display:block;font-size:1.2rem;line-height:1.2;color:var(--space-color-text)}
.imap__stat span{font-size:.76rem;color:var(--space-color-text-muted);font-weight:600}
.imap__stat--gold{background:#FBF3E4}
.imap__stat--gold b{color:#8A5A12}
.imap__sec{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--space-color-border)}
.imap__sec h4{margin:0 0 .55rem;font-size:.95rem;color:var(--space-color-primary-dark)}
.imap__sub{margin:.3rem 0 .35rem!important;font-size:.8rem!important;color:var(--space-color-text-muted);font-weight:700}
.imap__chips{display:flex;flex-wrap:wrap;gap:.35rem}
.imap__pill{display:inline-flex;align-items:center;gap:.35rem;min-height:34px;padding:.25rem .7rem;border:1px solid color-mix(in srgb,#1D4ED8 25%,white);border-radius:999px;background:color-mix(in srgb,#1D4ED8 6%,white);font:700 .82rem var(--space-font-ar);color:#1E3A8A;cursor:pointer}
.imap__pill.is-villa{border-color:color-mix(in srgb,#15803D 30%,white);background:color-mix(in srgb,#15803D 6%,white);color:#14532D}
.imap__pill small{padding:.05rem .4rem;border-radius:99px;background:#B7791F;color:#fff;font-size:.7rem}
.imap__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0 .2rem}
.imap__actions--grid{display:grid;grid-template-columns:1fr 1fr}
.imap__actions--grid .imap__act--primary{grid-column:1/-1}
.imap__act{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:42px;padding:.45rem .9rem;border-radius:12px;border:1px solid var(--space-color-border);background:#fff;font:700 .86rem var(--space-font-ar);color:var(--space-color-text);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}
.imap__act:hover{border-color:var(--space-color-primary);color:var(--space-color-primary-dark)}
.imap__act--primary{background:var(--space-color-primary);border-color:var(--space-color-primary);color:#fff}
.imap__act--primary:hover{background:var(--space-color-primary-dark);color:#fff}
.imap__act--ghost{border-style:dashed}
.imap__act--wa{background:#1F8F4E;border-color:#1F8F4E;color:#fff}
.imap__act--wa:hover{background:#17703C;color:#fff}
.imap__act:focus-visible{outline:2px solid var(--space-color-primary);outline-offset:2px}
.imap__cards,.imap__models,.imap__plist{list-style:none;margin:0;padding:0}
.imap__card{display:flex;gap:.65rem;width:100%;padding:.45rem;margin-bottom:.4rem;border:1px solid var(--space-color-border);border-radius:14px;background:#fff;text-align:start;font:inherit;color:inherit;cursor:pointer}
.imap__card:hover{border-color:#B7791F;box-shadow:0 4px 14px rgb(48 39 47 / 8%)}
.imap__card-img{flex:0 0 92px;height:76px;border-radius:10px;background:var(--space-color-surface-alt);overflow:hidden;display:grid;place-items:center;color:var(--space-color-text-muted)}
.imap__card-img img{width:100%;height:100%;object-fit:cover}
.imap__card-tx{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.imap__card-tx strong{font-size:.86rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.imap__card-tx small{font-size:.75rem;color:var(--space-color-text-muted)}
.imap__price{font-weight:800;color:#8A5A12;font-size:.88rem}
.imap__price--lg{font-size:1.3rem!important;margin:.4rem 0 .3rem!important}
.imap__tag{align-self:flex-start;display:inline-block;padding:.08rem .5rem;border-radius:99px;background:var(--space-color-surface-alt);font-size:.72rem;font-weight:700;color:var(--space-color-text-muted)}
.imap__tag--sale{background:#FBF3E4;color:#8A5A12}
.imap__tag--rent{background:#E8F1FB;color:#1E3A8A}
.imap__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}
.imap__models{display:grid;grid-template-columns:repeat(2,1fr);gap:.45rem}
.imap__model{display:flex;flex-direction:column;gap:.2rem;width:100%;padding:.4rem;border:1px solid var(--space-color-border);border-radius:14px;background:#fff;text-align:start;font:inherit;color:inherit;cursor:pointer}
.imap__model:hover{border-color:#1D4ED8}
.imap__model-img{display:grid;place-items:center;aspect-ratio:4/3;border-radius:10px;background:#F1F5FB;overflow:hidden}
.imap__model-img img{width:100%;height:100%;object-fit:contain}
.imap__model-code{font:800 1.5rem var(--space-font);color:#1D4ED8}
.imap__model strong{font-size:.82rem}
.imap__model small{font-size:.72rem;color:var(--space-color-text-muted)}
.imap__plist button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .4rem;border:0;border-radius:10px;background:none;font:600 .87rem var(--space-font-ar);color:inherit;text-align:start;cursor:pointer}
.imap__plist button:hover{background:var(--space-color-surface-alt)}
.imap__plist .imap__i{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--c);color:#fff}
.imap__plist small{margin-inline-start:auto;font-size:.72rem;color:var(--space-color-text-muted)}
.imap__facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;margin:.6rem 0;font-size:.87rem}
.imap__facts dt{color:var(--space-color-text-muted);font-weight:600}
.imap__facts dd{margin:0;font-weight:700}
.imap__hero{margin:0 0 .5rem;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:var(--space-color-surface-alt)}
.imap__hero img{width:100%;height:100%;object-fit:cover;display:block}
.imap__thumbs{display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.2rem}
.imap__thumbs button{flex:0 0 60px;height:46px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:none;cursor:pointer}
.imap__thumbs button.is-on{border-color:var(--c)}
.imap__thumbs img{width:100%;height:100%;object-fit:cover}
.imap__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;aspect-ratio:16/9;margin-bottom:.6rem;border-radius:14px;background:linear-gradient(135deg,#F6ECF4,#FEF4EB);color:#8C7B88;font-weight:700;font-size:.86rem}
.imap__placeholder .imap__i{width:30px;height:30px}
.imap__plan{margin:.4rem 0;padding:.5rem;border:1px solid var(--space-color-border);border-radius:14px;background:#fff}
.imap__plan img{width:100%;max-height:300px;object-fit:contain;display:block}
.imap__plan figcaption{margin-top:.3rem;font-size:.74rem;color:var(--space-color-text-muted);text-align:center}
.imap__empty-state{padding:.8rem;border-radius:12px;background:var(--space-color-surface-alt);color:var(--space-color-text-muted);font-size:.88rem;text-align:center}
.imap__back{display:inline-flex;align-items:center;gap:.3rem;margin-top:.8rem;border:0;background:none;font:700 .85rem var(--space-font-ar);color:var(--space-color-primary);cursor:pointer}
.imap__back .imap__i{transform:scaleX(-1)}
.imap__toast{position:absolute;bottom:4.5rem;left:50%;transform:translateX(-50%);z-index:20;padding:.5rem 1rem;border-radius:999px;background:#30272F;color:#fff;font-size:.85rem}
.imap__admin{margin:.6rem 0 0;font-size:.85rem}
.imap__admin a{color:var(--space-color-primary);font-weight:700}
.imap.is-full,.imap.is-pseudo-full{background:var(--space-color-background);padding:.75rem;margin:0}
.imap.is-full .imap__stage,.imap.is-pseudo-full .imap__stage{height:calc(100vh - 5rem)}
.imap.is-pseudo-full{position:fixed;inset:0;z-index:99999;overflow:auto}
.space-imap-page .imap-page{padding-block:1rem .5rem}
.space-imap-page .imap-page__head{margin-bottom:.5rem}
.space-imap-page .imap-page__head h1{font-size:clamp(1.5rem,3vw,2.1rem);margin:.1rem 0 .25rem}
@keyframes imap-slide{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@media (min-width:701px) and (max-width:1100px){
 .imap__filters-bar{inset-inline-end:1rem;top:4.2rem}
 .imap--pro[data-mode=listings] .imap__panel{top:9rem}
}

/* mobile: responsive bottom sheet; map controls stay reachable */
@media (max-width:700px){
 .imap--pro .imap__stage{--imap-height:72vh;border-radius:16px}
 .imap__bar{gap:.45rem}
 .imap__modes{width:100%;display:grid;grid-template-columns:repeat(4,1fr);border-radius:16px}
 .imap__mode{flex-direction:column;gap:.2rem;min-height:52px;padding:.35rem .15rem;border-radius:12px;font-size:.72rem;white-space:normal;text-align:center;line-height:1.2}
 .imap__mode small{display:none}
 .imap__layers{top:.6rem;inset-inline-end:3.6rem}
 .imap__ctl span{display:none}
 .imap__pop{width:min(290px,calc(100vw - 2.5rem))}
 .imap--pro .imap__zoom{top:.6rem;inset-inline-end:.6rem}
 .imap__filters-bar{top:auto;bottom:4rem;inset-inline:.5rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
 .imap__filters-bar::-webkit-scrollbar{display:none}
 .imap__seg,.imap__sel,.imap__more,.imap__reset{flex:none}
 .imap__total{bottom:.6rem;inset-inline-end:50%;transform:translateX(50%)}
 .imap--pro.has-panel .imap__total,.imap--pro.has-panel .imap__filters-bar{display:none}
 .imap--pro .imap__panel,.imap--pro[data-mode=listings] .imap__panel{top:auto;bottom:0;inset-inline:0;width:auto;max-height:62%;border-radius:20px 20px 0 0;animation:imap-up .22s ease-out}
 .imap__grip{display:block;width:44px;height:5px;margin:.5rem auto 0;border-radius:9px;background:var(--space-color-border)}
 .imap__actions--grid{grid-template-columns:1fr 1fr}
 .imap__act{min-height:46px}
}
@keyframes imap-up{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.imap--pro .imap__panel{animation:none}.imap__svg .imap__mk{transition:none}}

/* Services directory & facility cards (photo-first; category tile when no photo is uploaded yet) */
.imap__thumb{position:relative;display:grid;place-items:center;flex:0 0 76px;width:76px;height:64px;border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--c) 14%,white);color:var(--c)}
.imap__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.imap__thumb.is-empty{background:linear-gradient(140deg,color-mix(in srgb,var(--c) 18%,white),color-mix(in srgb,var(--c) 6%,white))}
.imap__thumb.is-empty .imap__i{width:30px;height:30px;stroke-width:1.7}
.imap__thumb--hero{display:flex;flex-direction:column;gap:.4rem;width:100%;height:auto;aspect-ratio:16/9;margin:0 0 .6rem;border-radius:16px}
.imap__thumb--hero.is-empty .imap__i{width:54px;height:54px;stroke-width:1.4}
.imap__thumb--hero small{font-size:.8rem;font-weight:700;color:color-mix(in srgb,var(--c) 70%,#30272F)}
.imap__svcs{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.5rem}
.imap__svc{display:flex;flex-direction:column;border:1px solid var(--space-color-border);border-radius:16px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.imap__svc:hover{border-color:var(--c);box-shadow:0 6px 18px rgb(48 39 47 / 8%)}
.imap__svc-main{display:flex;gap:.7rem;align-items:center;width:100%;padding:.55rem;border:0;background:none;text-align:start;font:inherit;color:inherit;cursor:pointer}
.imap__svc-tx{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.imap__svc-tx strong{font-size:.92rem;line-height:1.35}
.imap__svc-en{font:500 .76rem var(--space-font);color:var(--space-color-text-muted);text-align:end}
.imap__svc-meta{display:flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:700;color:color-mix(in srgb,var(--c) 75%,#30272F)}
.imap__svc-meta .imap__i{width:14px;height:14px}
.imap__svc-pin{align-self:flex-start;padding:.05rem .45rem;border-radius:99px;background:#EAF5EE;color:#246B43;font-size:.68rem;font-weight:700}
.imap__svc-acts{display:flex;gap:.35rem;padding:0 .55rem .55rem}
.imap__mini{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;flex:1;min-height:36px;padding:.25rem .6rem;border:1px solid var(--space-color-border);border-radius:10px;background:#fff;font:700 .8rem var(--space-font-ar);color:var(--space-color-text);text-decoration:none;cursor:pointer}
.imap__mini:hover{border-color:var(--c);color:var(--c)}
.imap__mini--dir{background:color-mix(in srgb,var(--c) 10%,white);border-color:transparent;color:color-mix(in srgb,var(--c) 80%,#30272F)}
.imap__mini .imap__i{width:15px;height:15px}
.imap__svcs.is-compact .imap__thumb{flex-basis:64px;width:64px;height:54px}
.imap__chips--cats{margin:.2rem 0 .8rem;gap:.35rem}
.imap__cat{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.25rem .7rem;border:1px solid var(--space-color-border);border-radius:999px;background:#fff;font:700 .8rem var(--space-font-ar);color:var(--space-color-text);cursor:pointer}
.imap__cat .imap__i{width:15px;height:15px;color:var(--c)}
.imap__cat small{font-size:.7rem;color:var(--space-color-text-muted)}
.imap__cat.is-on{background:var(--c);border-color:var(--c);color:#fff}
.imap__cat.is-on .imap__i,.imap__cat.is-on small{color:#fff}
.imap__tag--cat{display:inline-flex;align-items:center;gap:.25rem;background:color-mix(in srgb,var(--c) 12%,white);color:color-mix(in srgb,var(--c) 80%,#30272F)}
.imap__tag--cat .imap__i{width:13px;height:13px}
.imap__legacy{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--space-color-border);font-size:.82rem;color:var(--space-color-text-muted);cursor:pointer}
.imap__legacy input{width:17px;height:17px;accent-color:var(--space-color-primary)}
.imap--pro.is-directory .imap__ctl{border-color:#30272F;background:#30272F;color:#fff}
@media (max-width:700px){.imap__svc-tx strong{font-size:.95rem}.imap__mini{min-height:42px}}
.imap__chips--cats{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.35rem;margin-inline:-1.15rem;padding-inline:1.15rem;scrollbar-width:thin}
.imap__chips--cats .imap__cat{flex:none}

/* Coloured category guide (top filter row) */
.imap__cats{display:flex;gap:.4rem;margin:0 0 .6rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}
.imap__cats::-webkit-scrollbar{display:none}
.imap__chip--cat{flex:none;min-height:38px;padding:.25rem .75rem .25rem .55rem;gap:.4rem;background:#fff;box-shadow:0 1px 4px rgb(48 39 47 / 5%)}
.imap__chip--cat .imap__chipdot{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--c) 14%,white);color:var(--c);transition:background .15s,color .15s}
.imap__chip--cat .imap__chipdot .imap__i{width:14px;height:14px}
.imap__chip--cat small{padding:.05rem .4rem;border-radius:99px;background:var(--space-color-surface-alt)}
.imap__chip--cat[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,white);color:var(--space-color-text)}
.imap__chip--cat[aria-pressed=true] .imap__chipdot{background:var(--c);color:#fff}
.imap__chip--cat[aria-pressed=false]{opacity:1}
.imap__chip--cat[aria-pressed=false] small{color:var(--space-color-text-muted)}
.imap--pro.hide-phase-lines .imap__zone--phase:not(.is-active){stroke-opacity:0}
.imap--pro .imap__poi:not(.imap__poi--gate) .imap__pin{r:12}
.imap__shared{margin-top:1.1rem;padding:.2rem .7rem .7rem;border-radius:14px;background:var(--space-color-surface-alt)}
.imap__shared-title{margin:.7rem 0 0;font-size:.95rem;color:var(--space-color-text)}
.imap__shared .imap__sec{border-top:0;margin-top:.5rem;padding-top:.2rem}
.imap__shared .imap__sec h4{font-size:.85rem;color:var(--space-color-text-muted)}
.imap__groups{margin-top:.6rem}
.imap__groups summary{cursor:pointer;font-weight:700;font-size:.84rem;color:var(--space-color-primary-dark);padding:.35rem 0}
.imap__groups .imap__chips{margin-top:.35rem}
