.map-teleport-toolbar{position:absolute;z-index:18;left:50%;bottom:calc(var(--realm-chat-height,44px) + 8px);transform:translateX(-50%);width:min(420px,calc(100% - 24px));max-height:calc(100% - var(--realm-chat-height,44px) - 24px);overflow-y:auto;overscroll-behavior:contain;border:10px solid transparent;border-image:url('./art-web/map-context-frame-v1-70efba9c0b.webp') 48 fill / 16px / 0 stretch;background:#f0e1c5;background-clip:padding-box;box-shadow:0 5px 18px #10190f88;color:var(--antique-ink);text-shadow:none}
.map-teleport-toolbar[hidden]{display:none}
.teleport-compact{padding:8px;overflow:hidden;font:13px/1.35 var(--sans)}
.teleport-compact-heading{display:flex;align-items:center;gap:8px}
.teleport-compact-heading .teleport-item-art{width:52px;height:52px;flex:none;margin:0}
.teleport-compact-heading h3{margin:0 0 4px;font:700 23px/1.05 var(--serif);color:var(--antique-ink)}
.teleport-compact-heading .teleport-coordinates{font-size:16px;font-family:var(--serif);font-weight:700}
.teleport-compact-meta,.teleport-compact-base{display:flex;justify-content:space-between;gap:8px;margin-block:4px;font-size:12px}
.teleport-compact-status{min-height:18px;margin:6px 0;color:#614c2f;overflow-wrap:anywhere}
.teleport-compact-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.teleport-compact-actions button{min-width:0;min-height:44px;flex:1 1 144px;font-size:18px;padding:6px 32px;white-space:normal;overflow-wrap:anywhere}
.teleport-compact .room-form{margin:4px 0}
.teleport-compact select{width:100%;min-height:44px;font-size:13px}
.map-teleport-toolbar :focus-visible{outline:3px solid #315d40;outline-offset:2px}
.game-modal[data-variant='teleport-confirm']{width:min(92vw,380px);max-height:65dvh;border:10px solid transparent;border-image:url('./art-web/map-context-frame-v1-70efba9c0b.webp') 48 fill / 16px / 0 stretch;border-radius:0;background:#f0e1c5;background-clip:padding-box;color:var(--antique-ink)}
.game-modal[data-variant='teleport-confirm']::backdrop{background:#00181050;backdrop-filter:none}
.game-modal[data-variant='teleport-confirm'] #modal-content{padding:12px;overflow:hidden}
#modal[data-variant='teleport-confirm'] .council-heading{min-height:64px;margin:0 0 12px;padding:8px 44px 12px 8px;background:none;border-bottom:1px solid #9b7b4577}
#modal[data-variant='teleport-confirm'] .council-heading::before{display:none}
#modal[data-variant='teleport-confirm'] .modal-close{position:absolute;z-index:2;top:12px;right:12px;float:none;margin:0}
#modal[data-variant='teleport-confirm'] .modal-title{font:700 27px/1.05 var(--serif);margin:0}
.game-modal[data-variant='teleport-confirm'] .modal-title{font-size:28px;line-height:1.05;margin:8px 0 16px}
.game-modal[data-variant='teleport-confirm'] .modal-close{width:44px;min-width:44px;height:44px;min-height:44px;margin:-8px -8px 0 0}
.game-modal[data-variant='teleport-confirm'] .button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.game-modal[data-variant='teleport-confirm'] .button-row button{flex:1 1 120px;min-width:0;min-height:44px;padding-inline:32px;font-size:18px;white-space:normal;overflow-wrap:anywhere}
.teleport-confirm-coordinates{font:700 21px var(--serif);text-align:center}
@media(forced-colors:active){.map-teleport-toolbar,.game-modal[data-variant='teleport-confirm']{border:2px solid CanvasText;border-image:none;background:Canvas;color:CanvasText;box-shadow:none}.teleport-compact-heading h3,.teleport-compact-status{color:CanvasText}.map-teleport-toolbar :focus-visible{outline-color:Highlight}}
/* Nine-sliced painted surfaces preserve the reference's metal corners while
   live text, artwork and 44px controls retain their compact, responsive layout. */
.map-context-menu{position:absolute;z-index:15;isolation:isolate;width:328px;max-width:calc(100% - var(--space)*2);max-height:var(--map-context-available-height,calc(100% - var(--realm-chat-height,0px) - 16px));border:10px solid transparent;border-image:url('./art-web/map-context-frame-v1-70efba9c0b.webp') 48 fill / 16px / 0 stretch;border-radius:0;background:#f0e1c5;background-clip:padding-box;box-shadow:0 5px 18px #10190f88;color:var(--antique-ink);font:14px/1.35 var(--sans);text-shadow:none;touch-action:pan-y;pointer-events:auto}
.map-context-menu::after{content:'';position:absolute;z-index:-1;width:14px;height:14px;background:#f0e1c5;border:2px solid #765122;box-shadow:1px 1px 0 #30200e;transform:rotate(45deg);pointer-events:none}
.map-context-menu[data-placement='above']::after{left:calc(var(--map-context-anchor-x) - 17px);bottom:-15px;border-left:0;border-top:0}
.map-context-menu[data-placement='below']::after{left:calc(var(--map-context-anchor-x) - 17px);top:-15px;border-right:0;border-bottom:0}
.map-context-menu[data-placement='left']::after{right:-15px;top:calc(var(--map-context-anchor-y) - 17px);border-left:0;border-bottom:0}
.map-context-menu[data-placement='right']::after{left:-15px;top:calc(var(--map-context-anchor-y) - 17px);border-right:0;border-top:0}
.map-context-menu-content{min-width:0;max-height:calc(var(--map-context-available-height,100vh) - 20px);padding:0 var(--space) var(--space);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8a7961 var(--paper)}
.map-context-menu-heading{position:relative;display:flex;align-items:center;gap:var(--space);min-height:44px;margin:0 0 var(--space);border-bottom:1px solid #9b7b4577}
.map-context-menu-heading::after{content:'◆';position:absolute;left:50%;bottom:-6px;font-size:9px;line-height:12px;color:#8b5c2e;text-shadow:0 1px var(--paper);pointer-events:none}
.map-context-menu-heading h3{flex:1;min-width:0;margin:0;padding-block:calc(var(--space)/2);font:700 24px/1.05 var(--serif);overflow-wrap:anywhere;color:var(--antique-ink)}
.map-context-menu-close{display:grid;place-items:center;flex:none;align-self:start;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:0;border:1px solid #93724088;border-radius:50%;background:#aa7d2910;box-shadow:inset 0 0 0 2px #e8d2a72b;color:#664725;font:32px/1 var(--sans)}
.map-context-menu-body{display:grid;min-width:0;gap:var(--space);align-items:center}
.map-context-menu-body.has-art{grid-template-columns:72px minmax(0,1fr);min-height:64px}
.map-context-menu-body:not(.has-art):has(.map-context-menu-copy:empty){display:none}
.map-context-menu-art{display:grid;place-items:center;align-self:center;width:72px;height:72px;min-width:0;pointer-events:none}
.map-context-menu-art :is(img,.building-sprite,.world-site-sprite,.site-sprite,.map-location-object-art,.objective-world-art){display:block;position:relative;inset:auto;transform:none;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 1px #26311926)}
.map-context-menu-art .world-site-sprite{height:auto;aspect-ratio:3/2}
.map-context-menu .map-context-menu-art:has(>img[data-player-castle-avatar]){overflow:hidden;border:2px solid var(--antique-gold);box-shadow:0 1px 2px #4c351b66}
.map-context-menu .map-context-menu-art>img[data-player-castle-avatar]{width:100%;height:inherit;min-height:0;min-width:0;max-height:100%;object-fit:cover;object-position:center 24%}
.map-context-menu-art>.icon{width:44px;height:44px;color:#82602e}
.map-context-menu-copy{min-width:0;overflow-wrap:anywhere}
.map-context-menu-copy p{margin:0;padding:0;font:600 16px/1.3 var(--serif);color:var(--antique-ink)}
.map-context-menu-copy p+p{margin-top:calc(var(--space)/2)}
.map-context-menu-copy :is(small,.muted,.reason){font:12px/1.4 var(--sans);color:var(--antique-muted)}
.map-context-menu-copy .icon{width:18px;height:18px;vertical-align:middle;color:#694a26}
.map-context-menu .map-location-coordinate-strip[data-map-location-card]{gap:var(--space);margin:0;padding:calc(var(--space)/2) 0;border:0;border-radius:0;background:none}
.map-context-menu .map-location-coordinate-copy{gap:0}
.map-context-menu .map-location-coordinate-copy>small{display:none}
.map-context-menu .map-location-coordinate-copy>strong{font:600 18px/1.2 var(--serif);color:var(--antique-ink)}
.map-context-menu .map-location-tools{gap:calc(var(--space)/2);margin:0}
.map-context-menu .map-location-tools button,.map-context-menu .game-info-button{min-width:44px;min-height:44px}
.map-context-menu-status{margin:calc(var(--space)/2) 0;font:12px/1.4 var(--sans);overflow-wrap:anywhere;color:var(--antique-muted)}
.map-context-menu-status[role='alert']{color:#8f3835}
.map-context-menu-actions{display:flex;flex-wrap:wrap;gap:var(--space);margin-top:var(--space)}
.map-context-menu-actions>button,.map-context-menu-actions>div{flex:1 1 calc(50% - var(--space));min-width:0}
.map-context-menu-actions>button:first-child,.map-context-menu-actions>.map-player-castle-military-actions{flex-basis:100%}
.map-context-menu-actions .map-player-castle-military-actions{display:flex;flex-wrap:wrap;gap:var(--space)}
.map-context-menu-actions .map-player-castle-military-actions>button{flex:1 1 calc(50% - var(--space));min-width:0}
.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button){display:flex;align-items:center;justify-content:center;gap:calc(var(--space)/2);min-width:0;min-height:44px;padding:var(--space) 19px;font:700 17px/1.15 var(--serif);white-space:normal;overflow-wrap:anywhere;--button-surface:var(--ornate-primary);--button-overhang:-7px}
.map-context-menu-actions .secondary-button{--button-surface:var(--ornate-secondary)}
.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button)::before{border-width:18px;border-image:var(--button-surface) 40% 13% fill / 18px 24px / 0 stretch}
.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button)::after{content:'';position:absolute;z-index:-2;inset:var(--space) 10px;background:#073c2c;clip-path:polygon(0 50%,12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%);pointer-events:none}
.map-context-menu-actions .secondary-button::after{background:#2b1b10}
.map-context-menu-actions .icon{width:21px;height:21px}
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) :is(.primary-button,.secondary-button,.danger-button){--button-surface:url('./art-web/map-context-primary-v1-8abbdacbff.webp');--button-overhang:0px;padding-inline:32px}
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) .secondary-button{--button-surface:url('./art-web/map-context-secondary-v1-61dea711e4.webp')}
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) :is(.primary-button,.secondary-button,.danger-button)::before{border-width:6px 32px;border-image:var(--button-surface) 18 80 fill / 6px 32px / 0 stretch}
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) .secondary-button::before{border-image-slice:18 96 fill}
/* The solid inset keeps labels readable before the optional artwork is cached. */
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) :is(.primary-button,.secondary-button,.danger-button)::after{content:'';position:absolute;z-index:-2;inset:3px 6px;background:#073c2c;clip-path:polygon(0 50%,12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%);pointer-events:none}
:is(.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) .secondary-button::after{background:#2b1b10}
@media(forced-colors:active){:is(.map-context-menu-actions,.teleport-compact-actions,.game-modal[data-variant='teleport-confirm'] .button-row) :is(.primary-button,.secondary-button,.danger-button)::after{display:none}}
.map-context-menu :focus-visible{outline:2px solid var(--green);outline-offset:2px}
.map-context-menu [disabled]{opacity:.57;cursor:default}
.map-context-menu .map-location-combat-stats{position:relative;margin:0}
.map-context-menu .map-location-combat-stats>.game-info-button{position:static;float:right;list-style:none}
.map-context-menu .map-location-combat-stats>.game-info-button::-webkit-details-marker{display:none}
.map-context-menu .map-location-combat-stats[open]>.map-location-combat-stats-body{clear:both;padding:var(--space) 0;font-size:12px}
.map-context-menu .metric-line{gap:var(--space);min-width:0;padding:calc(var(--space)/2) 0;font-size:12px}
.map-context-menu .metric-line strong{min-width:0;text-align:right;overflow-wrap:anywhere}
.map-context-menu-actions>[data-location-gathering-status]{flex-basis:100%;margin:0}
.map-context-menu-actions>.map-context-gathering-progress{flex-basis:100%;display:grid;min-width:0;padding-block:calc(var(--space)/2);border-block:1px solid #9b7b4533}
.map-context-gathering-progress>.metric-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:baseline;line-height:1.35}
.map-context-gathering-progress>.metric-line>span{min-width:0;overflow-wrap:anywhere}
.map-context-gathering-progress strong{font-variant-numeric:tabular-nums}
.map-context-menu-actions .map-context-gathering-progress .icon{width:16px;height:16px;vertical-align:-.2em}
.map-context-menu-actions>.map-context-gathering-return{flex-basis:100%;width:100%;min-height:44px;margin:4px 0 0;padding-block:6px;font-size:16px;--button-overhang:-5px}
.map-context-menu-actions>.map-player-castle-compact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space);flex-basis:100%}
.map-player-castle-compact-actions.is-allied>button,.map-player-castle-compact-actions>[data-location-attack],.map-player-castle-compact-actions>button:only-child,.map-player-castle-compact-actions>[data-location-attack]+[data-location-details]:last-child{grid-column:1/-1}
.map-context-menu-layout.is-wildlife{position:relative;display:grid;grid-template-columns:calc(var(--space)*12) minmax(0,1fr);grid-template-rows:minmax(44px,auto) 44px auto;column-gap:var(--space);align-items:center}
.map-context-menu-layout.is-wildlife :is(.map-context-menu-body,.map-context-menu-copy,.map-context-menu-heading,.map-context-menu-location){display:contents}
.map-context-menu-layout.is-wildlife .map-context-menu-heading::after{display:none}
.map-context-menu-layout.is-wildlife .map-context-menu-heading h3{grid-column:2;grid-row:1;align-self:stretch;display:flex;align-items:center;min-height:44px;margin-bottom:var(--space);padding:calc(var(--space)/2) 44px calc(var(--space)/2) 0;border-bottom:1px solid #9b7b4577;font-size:20px}
.map-context-menu-layout.is-wildlife .map-context-menu-close{position:absolute;top:0;right:0}
.map-context-menu-layout.is-wildlife .map-context-menu-art{grid-column:1;grid-row:1/span 2;width:calc(var(--space)*12);height:calc(var(--space)*11);align-self:center}
.map-context-menu-layout.is-wildlife .map-location-coordinate-strip[data-map-location-card]{display:contents}
.map-context-menu-layout.is-wildlife .map-location-coordinate-copy{grid-column:1/-1;grid-row:3;padding-top:calc(var(--space)/2)}
.map-context-menu-layout.is-wildlife .map-location-tools{grid-column:2;grid-row:2;justify-self:end;align-self:center;display:flex;flex-wrap:nowrap;gap:calc(var(--space)/2);margin:0}
.map-context-menu-layout.is-wildlife .map-location-tools .game-info-button{position:static;flex:none;width:44px;height:44px;margin:0;padding:0}
.map-context-menu-layout.is-wildlife :is(.map-context-menu-summary,.map-context-menu-status,.map-context-menu-actions){grid-column:1/-1;min-width:0}
/* Small map windows keep location names above the quieter identity/status copy.
   Full names may wrap naturally; closing and action hit areas stay unchanged. */
@media(max-width:699px){
 .map-context-menu-heading h3{font-size:20px;line-height:1.15}
 .map-context-menu-copy p{font-size:13px;line-height:1.35}
 .map-context-menu-copy .map-context-alliance-identity{font:13px/1.35 var(--sans);color:var(--antique-muted)}
 .map-context-menu .map-location-coordinate-copy>strong{font-size:16px}
 .teleport-compact-heading h3{font-size:20px;line-height:1.15}
 #modal[data-variant='teleport-confirm'] .modal-title{font-size:22px;line-height:1.15}
 .map-context-menu-layout.is-wildlife{grid-template-columns:calc(var(--space)*9) minmax(0,1fr)}
 .map-context-menu-layout.is-wildlife .map-context-menu-heading h3{font-size:18px}
 .map-context-menu-layout.is-wildlife .map-context-menu-art{width:calc(var(--space)*9);height:calc(var(--space)*9)}
}
@media(forced-colors:active){.map-context-menu-copy .map-context-alliance-identity{color:CanvasText}}
@media(min-width:700px){.map-context-menu{width:360px}.map-context-menu-body.has-art{grid-template-columns:80px minmax(0,1fr)}.map-context-menu-art{width:80px;height:80px}.map-context-menu-heading h3{font-size:26px}}
@media(min-width:1150px){.map-context-menu{width:376px}}
@media(max-width:359px){.map-context-menu{width:304px}.map-context-menu-content{padding-inline:calc(var(--space)/2)}.map-context-menu .map-location-coordinate-copy>strong{font-size:16px}.map-context-menu-body.has-art{grid-template-columns:64px minmax(0,1fr)}.map-context-menu-art{width:64px;height:64px}.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button){font-size:16px;padding-inline:var(--space)}}
@media(forced-colors:active){.map-context-menu{border:2px solid CanvasText;border-image:none;background:Canvas;color:CanvasText;box-shadow:none}.map-context-menu::after{border-color:CanvasText;background:Canvas;box-shadow:none}.map-context-menu-heading,.map-context-menu-close{border-color:CanvasText}.map-context-menu-heading h3,.map-context-menu-copy p,.map-context-menu-copy :is(small,.muted,.reason),.map-context-menu-status,.map-context-menu-status[role='alert'],.map-context-menu-close,.map-context-menu .map-location-coordinate-copy>strong{color:CanvasText}.map-context-menu :focus-visible{outline-color:Highlight}.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button){border:1px solid ButtonText;background:ButtonFace;color:ButtonText;text-shadow:none}.map-context-menu-actions :is(.primary-button,.secondary-button,.danger-button)::before{display:none}}

/* Scouting shares the existing textured action surface; tint only the artwork. */
.map-location-spy::before{filter:hue-rotate(65deg)}
.map-location-spy::after{background:#143c48}
.map-player-castle-compact-actions.has-spy>[data-location-attack]{grid-column:auto}
.map-location-spy-info,.map-location-spy-reason{grid-column:1/-1;flex-basis:100%;display:flex;align-items:center;gap:calc(var(--space)/2);margin:0;font:12px/1.35 var(--sans)}
.map-location-spy-info .icon{width:16px;height:16px;flex:none}
.map-location-spy-reason{color:var(--red)}

@media(max-width:350px){
 .teleport-compact{padding:calc(var(--space)/2);font-size:12px}
 .teleport-compact-heading .teleport-item-art{width:36px;height:36px}
 .teleport-compact-heading h3{font-size:18px;margin-bottom:2px}
 .teleport-compact-heading .teleport-coordinates{font-size:14px}
 .teleport-compact-meta{font-size:11px}
 .teleport-compact-status{min-height:16px;margin-block:4px}
 .teleport-compact-recall{display:none}
 .teleport-compact-actions{flex-wrap:nowrap;gap:calc(var(--space)/2)}
 #map-teleport-toolbar .teleport-compact-actions :is(.primary-button,.secondary-button){flex:1 1 0;font-size:14px;padding-inline:20px}
 #map-teleport-toolbar .teleport-compact-actions :is(.primary-button,.secondary-button)::before{border-inline-width:20px;border-image-width:6px 20px}
}
