/* نقشهٔ تعاملی — سبک نقشه‌های راهنمای مال‌های بزرگ: کف روشن، فروشگاه‌های رنگی ملایم با لوگو، فهرست کنار نقشه، پین موقعیت */
.tmap{--c-brand:var(--brand,#C71F25);--c-line:var(--line,#E6D3AE);--c-panel:var(--panel,#fff);--c-text:var(--text,#201A0F);--c-muted:var(--muted,#745E39);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:min(82vh,780px);min-height:520px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:16px;overflow:hidden;box-shadow:0 14px 40px rgba(60,40,10,.1);font-family:inherit;color:var(--c-text)}
.tmap *{box-sizing:border-box}
.tm-main{position:relative;background:#f3efe6;min-width:0}
.tm-levels{position:absolute;inset-inline-end:14px;top:14px;z-index:6;display:flex;flex-direction:column;gap:4px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:14px;padding:5px;box-shadow:0 6px 18px rgba(0,0,0,.12);max-height:calc(100% - 28px);overflow:auto}
.tm-levels button{border:0;background:transparent;color:var(--c-text);min-width:92px;padding:8px 12px;border-radius:9px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:center}
.tm-levels button:hover{background:rgba(0,0,0,.05)}.tm-levels button.on{background:var(--c-brand);color:#fff}
.tmap .mapctl{position:absolute;inset-inline-start:14px;top:14px;z-index:6;display:flex;flex-direction:column;background:var(--c-panel);border:1px solid var(--c-line);border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.tmap .mapctl button{width:40px;height:40px;border:0;border-bottom:1px solid var(--c-line);background:transparent;color:var(--c-text);font-size:18px;cursor:pointer}.tmap .mapctl button:last-child{border:0}.tmap .mapctl button:hover{background:rgba(0,0,0,.05)}
.tmap .mapsvg{position:absolute;inset:0;display:block;overflow:hidden;touch-action:none;cursor:grab;padding:20px 70px 20px 150px;background:radial-gradient(circle at 50% 40%,#fffdf8,#ebe5d6)}
.tmap .mapsvg.drag{cursor:grabbing}.tmap .mapsvg svg{width:100%;height:100%;display:block}
.mapsvg svg .plate{filter:drop-shadow(0 8px 14px rgba(70,50,20,.22))}
.mapsvg svg #units{stroke:none}.mapsvg svg #numbers,[data-unit-map] svg #numbers{display:none}
.mapsvg svg .depth{opacity:.95}.mapsvg .ico{text-anchor:middle;dominant-baseline:central;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}
.tm-lv{font-size:11px;color:var(--c-muted);text-align:center;padding:2px 0 4px;letter-spacing:.5px}
.mapsvg .unit{stroke:#fff;stroke-width:1.6px;stroke-linejoin:round;cursor:pointer;transition:fill .15s,opacity .15s,filter .15s}
.mapsvg .unit.pub{stroke:var(--c);stroke-width:1.8px}
.tmap .mapsvg .unit:hover{filter:brightness(.93) drop-shadow(0 3px 5px rgba(0,0,0,.25))}
.mapsvg .unit.sel{fill:var(--brand,#C71F25)!important;stroke:#fff;stroke-width:2.4px;filter:drop-shadow(0 4px 8px rgba(199,31,37,.5))}
.mapsvg .unit.dim{opacity:.22}
.mapsvg .lbl{font-family:inherit;font-weight:700;fill:#2b2418;text-anchor:middle;dominant-baseline:central;pointer-events:none;paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:2.6px;stroke-linejoin:round}
.mapsvg .lbl.num{font-weight:400;fill:#9a917d}.mapsvg .lbl.on{fill:#fff;stroke:rgba(0,0,0,.4)}.mapsvg .lbl.dim{opacity:.2}
.mapsvg .pin{pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.4));animation:drop .35s ease-out}
@keyframes drop{from{opacity:0;transform:translateY(-12px)}}
.tmap .mapinfo{position:absolute;inset-inline-start:14px;bottom:14px;z-index:6;width:min(340px,calc(100% - 28px));background:var(--c-panel);border:1px solid var(--c-line);border-radius:16px;padding:16px 18px;box-shadow:0 14px 34px rgba(0,0,0,.2);display:none}
.tmap .mapinfo.on{display:block}
.mi-x{position:absolute;inset-inline-end:10px;top:8px;border:0;background:none;font-size:16px;cursor:pointer;color:var(--c-muted)}
.mi-top{display:flex;gap:12px;align-items:center}.mi-top img,.mi-ph{width:62px;height:62px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--c-line);padding:6px;flex:none}
.mi-ph{display:grid;place-items:center;font-size:26px;font-weight:800;color:var(--c-brand)}
.mi-top h3{margin:0 0 2px;font-size:18px}.mi-top .muted{margin:0;color:var(--c-muted);font-size:13px}.mi-ex{margin:10px 0 0;font-size:13.5px;color:var(--c-text);line-height:1.9}
.tmap .tbtn{display:inline-block;background:var(--c-brand);color:#fff;border-radius:10px;padding:9px 20px;text-decoration:none;font-size:14px;font-weight:700;margin:12px 0 0}.tmap .tbtn.alt{background:#1565c0}
[data-unit-map]{background:radial-gradient(circle at 50% 40%,#faf7f0,#ede8db);border:1px solid var(--line,#E6D3AE);border-radius:12px;padding:6px;overflow:hidden}
[data-unit-map] svg{width:100%;height:auto;display:block;max-height:300px}
@media(max-width:900px){
 .tmap{grid-template-columns:1fr;height:auto;min-height:0}
 .tm-main{order:-1;height:62vh;min-height:380px} .tm-levels{flex-direction:row;inset-inline:14px;top:auto;bottom:14px;max-width:none;overflow-x:auto;justify-content:flex-start}.tm-levels button{min-width:auto;white-space:nowrap}
 .tmap .mapinfo{bottom:70px}
}
@media(max-width:900px){.tmap .mapsvg{padding:8px 8px 64px}}
.tmap .mapsvg svg{overflow:visible}

.mapsvg .unit.empty{cursor:default;pointer-events:none}
