/* Reader-first overlays for the established map; no image or coordinate inventions. */
.dmz-adaptive-status{font-size:.77rem;font-weight:750;line-height:1.35;color:#d9e1f1;max-width:260px}
.dmz-auto-details[aria-pressed=true]{background:#53447b!important;color:#fff!important;border-color:#bba2fc!important}
.dmz-auto-details{min-width:140px;min-height:44px}
.dmz-search-row{position:relative;flex-wrap:wrap;align-items:center}
.dmz-search-row #dmzSearch{border-radius:10px;font-size:1rem;padding:13px 16px;min-height:50px}
.dmz-search-row #dmzSearch:focus-visible{outline:3px solid #a98bff;outline-offset:2px}
.dmz-search-suggestions{position:relative;z-index:4;flex:0 0 100%;width:100%;order:3;border:1px solid #67748f;border-radius:10px;background:#141b29;box-shadow:0 18px 35px #000b;max-height:min(380px,57vh);overflow:auto;padding:6px}
.dmz-search-suggestions[hidden]{display:none}
.dmz-search-suggestions>p{padding:14px 16px;color:#d2dae9;line-height:1.5}
.dmz-search-suggestion{display:flex;justify-content:space-between;gap:14px;align-items:center;width:100%;text-align:left;cursor:pointer;color:#fff;background:transparent;border:0;border-radius:7px;padding:12px 13px;min-height:49px;font:inherit}
.dmz-search-suggestion strong{font-size:.92rem;font-weight:750;line-height:1.4}
.dmz-search-suggestion span{font-size:.75rem;color:#abbfd9;text-align:right;max-width:42%}
.dmz-search-suggestion:hover,.dmz-search-suggestion:focus-visible{background:#2b3850;outline:2px solid #bd9dff;outline-offset:-2px}
.dmz-key-context{padding:12px;margin:14px 0;border-left:3px solid #d8c0fc;background:#ffffff0c;line-height:1.55}
.dmz-key-context a{color:#d2b7ff;text-underline-offset:3px}
.dmz-sheet-close{display:none}
.dmz-map-viewport:not(.dmz-zoom-labels) .dmz-extra-point:not([hidden]):after{display:none}
.dmz-map-viewport:not(.dmz-zoom-labels) .dmz-extra-point:is(:hover,:focus-visible,.is-selected):after{display:block}
.dmz-map-viewport.dmz-zoom-close .dmz-extra-point{width:21px;height:21px;border-width:2px}
.dmz-map-viewport.dmz-zoom-labels .dmz-extra-point:not([hidden]):after{display:block}
.dmz-map-viewport.dmz-zoom-close .dmz-marker:not(.is-selected):not(:hover):not(:focus-visible) .dmz-marker-label{display:none}
.dmz-extra-point[data-kind=fortress]{rotate:0deg!important;border-radius:5px!important}
.dmz-extra-point[data-kind=fortress]:after{rotate:0deg!important}
.dmz-map-stage .dmz-detail{scroll-margin-top:100px}
/* Major area markers must remain tappable when the fortress reference layer overlaps them. */
.dmz-map-viewport .dmz-markers{z-index:5}
.dmz-map-viewport .dmz-extra-layer{z-index:4}
.dmz-map-viewport .dmz-my-pins{z-index:6}
@media(max-width:900px){
 .dmz-adaptive-status{flex-basis:100%;max-width:none}
 .dmz-search-suggestion{align-items:flex-start;flex-direction:column;gap:4px}
 .dmz-search-suggestion span{text-align:left;max-width:none}
}
@media(max-width:760px){
 .dmz-map-stage .dmz-detail.dmz-sheet-open{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:1002;background:#111a2b;border:1px solid #ab8bfb;border-radius:17px 17px 0 0;max-height:min(40dvh,420px);overflow-y:auto;overscroll-behavior:contain;padding:18px 18px max(20px,env(safe-area-inset-bottom));box-shadow:0 -12px 46px #000b}
 .dmz-map-stage .dmz-detail.dmz-sheet-open .dmz-sheet-close{display:block;position:sticky;top:0;margin:-9px -7px 12px auto;border:1px solid #647495;border-radius:8px;background:#27334a;color:white;padding:10px 14px;min-height:44px;font:inherit;cursor:pointer;z-index:2}
 .dmz-map-stage .dmz-detail.dmz-sheet-open:before{content:'';display:block;height:4px;width:46px;border-radius:10px;background:#9caed0;margin:-9px auto 16px}
 .dmz-map-stage .dmz-zoom-row .dmz-auto-details{width:auto;flex:1 1 125px}
 .dmz-map-stage .dmz-zoom-row .dmz-adaptive-status{width:100%}
 .dmz-search-row #dmzSearch{min-width:0}
}
@media(prefers-reduced-motion:reduce){
 .dmz-map-viewport .dmz-extra-point{transition:none}
 .dmz-map-stage .dmz-detail.dmz-sheet-open{scroll-behavior:auto}
}
/* The most-used reset action stays visible outside advanced filters. */
.dmz-search-row .dmz-search-reset{border:1px solid #64758e;background:#242e40;color:#edf0fa;border-radius:8px;min-height:45px;padding:9px 13px;cursor:pointer;font:inherit}
.dmz-search-row .dmz-search-reset:focus-visible{outline:3px solid #bc9dff;outline-offset:2px}
@media(max-width:520px){.dmz-search-row .dmz-search-reset{min-width:100px}}

/* Unified, image-led Hājīn search. Actual publisher area photographs, never a
   synthetic key/loot image. Local SVG category glyphs are used as fallback. */
.dmz-search-suggestions{padding:10px;max-height:min(500px,66dvh)}
.dmz-suggestion-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 8px;border-bottom:1px solid #ffffff20;padding:0 0 9px}
.dmz-suggestion-filter{border:1px solid #68758a;border-radius:7px;background:#202a3b;color:#dbe4f4;padding:8px 12px;min-height:42px;font:700 .78rem/1.3 system-ui,sans-serif;cursor:pointer}
.dmz-suggestion-filter[aria-pressed="true"]{background:#433554;color:#fff;border-color:#c2a4ee}
.dmz-suggestion-filter:hover,.dmz-suggestion-filter:focus-visible{border-color:#d0b4ff;outline:2px solid #c9a9fd;outline-offset:1px}
.dmz-suggestion-count{margin:4px 8px 9px;color:#bac9dd;font-size:.73rem;line-height:1.45}
.dmz-search-suggestions .dmz-suggestion-empty{margin:4px;padding:11px;color:#cbd8e7;font-size:.84rem}
.dmz-search-suggestions .dmz-search-suggestion{
 display:flex;flex-direction:row;justify-content:flex-start;gap:12px;align-items:center;
 padding:9px;min-height:68px;border:1px solid transparent
}
.dmz-search-suggestions .dmz-search-media{
 display:grid;place-items:center;flex:0 0 84px;width:84px;height:55px;
 background:#263345;border:1px solid #62758a;border-radius:6px;overflow:hidden
}
.dmz-search-suggestions .dmz-search-media img{display:block;object-fit:cover}
.dmz-search-suggestions .dmz-search-media .dmz-search-photo{width:84px;height:55px}
.dmz-search-suggestions .dmz-search-media .dmz-search-icon{width:23px;height:23px;object-fit:contain}
.dmz-search-suggestions .dmz-search-suggestion-copy{
 display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;flex:1;
 max-width:none;text-align:left;color:#fff
}
.dmz-search-suggestions .dmz-search-suggestion-copy strong{
 font-size:.91rem;line-height:1.3;overflow-wrap:anywhere
}
.dmz-search-suggestions .dmz-search-suggestion-copy .dmz-search-suggestion-kind{
 color:#bac9de;text-align:left;max-width:none;font-size:.73rem;line-height:1.4
}
.dmz-search-suggestions .dmz-search-suggestion:hover,
.dmz-search-suggestions .dmz-search-suggestion:focus-visible{
 border-color:#a690cc;background:#242e41;outline:2px solid #bba1ec;outline-offset:-2px
}
@media(max-width:900px){
 .dmz-search-suggestions .dmz-search-suggestion{align-items:center;flex-direction:row;gap:9px}
 .dmz-search-suggestions .dmz-search-suggestion-copy{align-items:flex-start;flex-direction:column}
 .dmz-search-suggestions .dmz-search-suggestion-copy span{max-width:none}
}
@media(max-width:500px){
 .dmz-search-suggestions{max-height:min(470px,54dvh);padding:7px}
 .dmz-suggestion-filters{gap:5px}
 .dmz-suggestion-filter{padding:7px 8px;font-size:.72rem;flex:1 1 auto}
 .dmz-search-suggestions .dmz-search-media{width:67px;height:47px;flex-basis:67px}
 .dmz-search-suggestions .dmz-search-media .dmz-search-photo{width:67px;height:47px}
 .dmz-search-suggestions .dmz-search-suggestion{min-height:62px;padding:7px}
 .dmz-search-suggestions .dmz-search-suggestion-copy strong{font-size:.85rem}
 .dmz-search-suggestions .dmz-search-suggestion-copy .dmz-search-suggestion-kind{font-size:.7rem}
}

/* Source-backed facility results share the actual map symbol, not a stock icon. */
.dmz-search-suggestions .dmz-search-media .dmz-search-facility-icon{
 width:23px;height:23px;display:block;stroke:currentColor;fill:none;
 stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
 color:#bddfd3;
}
.dmz-search-suggestions .dmz-search-suggestion-copy{
 min-width:0;overflow-wrap:anywhere;
}


/* Hājīn map workspace: independent navigation that stays visible while the
   document scrolls. Controls are outside the transformed terrain canvas. */
#dmzViewport{position:relative;isolation:isolate}
body .dmz-workspace-dock{
 position:fixed;top:12px;right:12px;z-index:8500;
 display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;
 max-width:min(95%,480px);padding:6px;border:1px solid #a2bdb0a1;
 border-radius:10px;background:#0b1718ee;
 box-shadow:0 5px 24px #000b;backdrop-filter:blur(8px);
}
body .dmz-workspace-action{
 min-height:39px;min-width:41px;padding:7px 10px;
 background:#1c3530;color:#f3f9f5;border:1px solid #597a70;
 border-radius:6px;font:700 .78rem/1.25 system-ui,sans-serif;
 cursor:pointer;white-space:nowrap;
}
body .dmz-workspace-action[aria-expanded="true"],
body .dmz-workspace-action[aria-pressed="true"]{
 background:#426b56;border-color:#d7dbad;color:#fff;
}
body .dmz-workspace-action:disabled{opacity:.45;cursor:not-allowed}
body .dmz-workspace-action:is(:hover,:focus-visible){
 outline:2px solid #e0c693;outline-offset:2px;
}
body .dmz-workspace-context{
 position:absolute;bottom:11px;left:11px;z-index:110;
 max-width:calc(100% - 24px);padding:6px 9px;
 border-radius:6px;background:#0b1919df;border:1px solid #526e63;
 color:#f5f1df;font:650 .69rem/1.35 system-ui,sans-serif;
 pointer-events:none;text-shadow:0 1px 2px #000;
}
body .dmz-workspace-popover{
 position:fixed;top:68px;right:12px;z-index:8501;
 width:min(430px,calc(100% - 24px));max-height:min(68%,510px);
 overflow:auto;overscroll-behavior:contain;box-sizing:border-box;
 border-radius:12px;border:1px solid #a6c3ad;
 background:#102023f7;color:#f7faf6;box-shadow:0 18px 50px #000c;
}
body .dmz-workspace-popover[hidden]{display:none!important}
body .dmz-workspace-pop-top{
 display:flex;align-items:center;justify-content:space-between;gap:8px;
 padding:11px 13px;border-bottom:1px solid #60807080;
}
body .dmz-workspace-pop-top strong{font:800 .86rem/1.3 system-ui,sans-serif;color:#fff}
body .dmz-workspace-pop-top button{
 background:#2b463f;color:#f6f7f1;border:1px solid #8bb9a0;
 border-radius:7px;padding:7px 11px;min-height:36px;cursor:pointer;
}
body .dmz-workspace-pop-body{padding:10px;display:grid;gap:6px}
body .dmz-workspace-pop-body .dmz-search-row{display:flex;width:100%;gap:6px;flex-wrap:wrap}
body .dmz-workspace-pop-body .dmz-search-row input{
 flex:1 1 100%;min-width:0;width:100%;
}
body .dmz-workspace-pop-body .dmz-search-suggestions{
 flex-basis:100%;width:100%;max-height:260px;z-index:1;
}
body .dmz-workspace-layer{
 min-height:41px;padding:9px 12px;text-align:left;cursor:pointer;
 border-radius:7px;background:#1b3030;color:#e3eae4;
 border:1px solid #526e64;font:650 .79rem/1.35 system-ui,sans-serif;
}
body .dmz-workspace-layer[aria-pressed="true"]{
 background:#376348;color:#fff;border-color:#b1d4ae;
}
body .dmz-workspace-layer:is(:hover,:focus-visible),
body .dmz-workspace-pop-top button:is(:hover,:focus-visible){
 outline:2px solid #f0d39a;outline-offset:2px;
}
body .dmz-workspace-help{
 margin:3px 2px 6px!important;color:#cbdad2;
 font:500 .74rem/1.5 system-ui,sans-serif;
}
/* Focus mode is an actual map workspace, not a second duplicate image.
   The ordinary map and its existing saved markers are simply re-laid out. */
body.dmz-workspace-body{overflow:hidden!important}
body .dmz-map-stage.shell.dmz-workspace-focus{
 position:fixed!important;inset:0!important;z-index:8000!important;
 box-sizing:border-box!important;margin:0!important;padding:10px 16px!important;
 width:100%!important;max-width:none!important;height:100dvh!important;
 display:grid!important;grid-template-columns:minmax(0,1fr) minmax(290px,360px)!important;
 grid-template-rows:auto minmax(0,1fr)!important;
 gap:10px 14px!important;align-items:start!important;
 background:#081112!important;overflow:auto!important;
}
body .dmz-map-stage.dmz-workspace-focus>.dmz-zoom-row{
 grid-column:1/-1!important;grid-row:1!important;
 position:relative!important;top:auto!important;z-index:5;
 max-height:84px;overflow:auto;
}
body .dmz-map-stage.dmz-workspace-focus>#dmzViewport{
 grid-column:1!important;grid-row:2!important;justify-self:center!important;
 width:min(100%,calc(100dvh - 110px))!important;
 max-width:none!important;height:auto!important;max-height:calc(100dvh - 110px)!important;
 aspect-ratio:1/1!important;min-height:0!important;margin:0!important;
}
body .dmz-map-stage.dmz-workspace-focus>.dmz-side{
 grid-column:2!important;grid-row:2!important;position:relative!important;
 top:auto!important;align-self:stretch!important;
 max-height:calc(100dvh - 115px)!important;overflow:auto!important;
 padding:13px!important;background:#101d1e!important;
}
@media(max-width:860px){
 body .dmz-map-stage.shell.dmz-workspace-focus{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;gap:7px!important;padding:7px!important;
 }
 body .dmz-map-stage.dmz-workspace-focus>#dmzViewport{
  grid-column:1!important;grid-row:2!important;
  width:min(100%,calc(100dvh - 105px))!important;max-height:none!important;
 }
 body .dmz-map-stage.dmz-workspace-focus>.dmz-side{
  grid-column:1!important;grid-row:3!important;position:relative!important;
  max-height:260px!important;overflow:auto!important;
 }
}
@media(max-width:580px){
 body .dmz-workspace-dock{top:7px;right:7px;left:7px;max-width:none;justify-content:center;gap:3px;padding:4px}
 body .dmz-workspace-action{min-height:37px;min-width:34px;padding:6px;font-size:.68rem}
 body .dmz-workspace-popover{top:58px;right:7px;width:calc(100% - 14px);max-height:65%}
 body .dmz-workspace-context{font-size:.62rem;max-width:calc(100% - 14px)}
 body .dmz-map-stage.dmz-workspace-focus>.dmz-zoom-row{max-height:76px}
}
@media(prefers-reduced-motion:reduce){
 body .dmz-workspace-dock,body .dmz-workspace-popover{animation:none;transition:none}
}

/* The publication's central article shell must not constrain the tactical
   map to a narrow column on a wide gaming monitor. Break out symmetrically
   without changing the surrounding articles or the masthead. */
@media(min-width:861px){
 body.dmz-v2 .dmz-map-stage.shell:not(.dmz-workspace-focus){
  position:relative;left:50%;transform:translateX(-50%);
  width:min(calc(100vw - 32px),1740px)!important;
  max-width:none!important;margin-left:0!important;margin-right:0!important;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px)!important;
  gap:14px!important;
 }
}
body .dmz-map-stage.shell.dmz-workspace-focus{
 left:0!important;transform:none!important;
}

/* Dock is only visible over the actual map, not across the rest of the
   publication. JS positions it beneath the sticky masthead as the page moves. */
body .dmz-workspace-dock[hidden]{display:none!important}
@media(min-width:861px){
 body.dmz-v2 .dmz-map-stage.shell:not(.dmz-workspace-focus)>.dmz-side{
  position:sticky!important;
  top:var(--dmz-map-header-bottom,188px)!important;
  max-height:calc(100dvh - var(--dmz-map-header-bottom,188px) - 12px)!important;
  overflow:auto!important;
  scrollbar-width:thin;
 }
}
@media(max-width:580px){
 body .dmz-workspace-dock{left:auto;max-width:calc(100vw - 14px);}
 body .dmz-workspace-action{font-size:.71rem;min-height:42px;}
 body .dmz-workspace-popover{left:7px;max-width:calc(100vw - 14px);}
}
