/* Shared media plane in the focused building explorer; no additional font or engine. */
.gp-media-nav{display:flex;flex-wrap:wrap;gap:4px;min-width:0;padding:4px;border:0;border-radius:14px;background:var(--gp-bg-alt);font-family:var(--gp-font)}
.gp-media-nav button,.gp-building-media button{box-sizing:border-box;min-width:44px;min-height:44px;padding:9px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--gp-navy);font:inherit;font-size:14px;line-height:1.35;font-weight:600;cursor:pointer;touch-action:manipulation}
/* The tabs carry the flat's icons (app-shell.css), the same as the map's footer; the
   chosen one is a raised white tab and the others recede. */
.gp-media-nav button{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;color:var(--gp-muted);transition:background-color .15s,color .15s,box-shadow .15s}
.gp-media-nav button::before{content:'';flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:var(--gp-icon-3d) center/contain no-repeat;mask:var(--gp-icon-3d) center/contain no-repeat}
.gp-media-nav button[data-media-view=plan]::before{-webkit-mask-image:var(--gp-icon-plan);mask-image:var(--gp-icon-plan)}
.gp-media-nav button[data-media-view=photos]::before{-webkit-mask-image:var(--gp-icon-photos);mask-image:var(--gp-icon-photos)}
.gp-media-nav button[aria-pressed=true]{background:#fff;border-color:transparent;color:var(--gp-primary);box-shadow:0 1px 2px rgba(12,51,47,.08),0 3px 10px rgba(12,51,47,.1)}
/* Hover only where a pointer hovers: on a phone the tapped tab stayed tinted. */
@media(hover:hover){.gp-media-nav button:hover:not([aria-pressed=true]){background:rgba(255,255,255,.6);color:var(--gp-primary-dark)}.gp-building-media button:hover:not(:disabled){background:var(--gp-tint-2)}}
.gp-media-nav :focus-visible,.gp-building-media :focus-visible{outline:3px solid var(--gp-primary);outline-offset:2px}
.gp-media-nav [hidden],.gp-building-media[hidden],.gp-building-media [hidden]{display:none!important}
.gp-building-media{position:absolute;z-index:10;inset:0;display:grid;grid-template-rows:auto minmax(min(220px,45dvh),1fr) auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--gp-bg);color:var(--gp-ink);font-family:var(--gp-font)}
.gp-building-media *{box-sizing:border-box}
.gp-media-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--gp-line);background:var(--gp-card)}
.gp-media-heading{min-width:0}
.gp-media-title{display:block;font-size:15px;line-height:1.4;color:var(--gp-navy);overflow-wrap:anywhere}
.gp-media-caption{margin:3px 0 0;font-size:13px;line-height:1.45;color:var(--gp-muted);overflow-wrap:anywhere}
.gp-media-level{display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;font-size:12px;line-height:1.35;color:var(--gp-muted)}
.gp-media-level select{width:auto;min-width:88px;max-width:160px;min-height:44px;padding:8px;border:1px solid var(--gp-line);border-radius:8px;background:var(--gp-card);color:var(--gp-navy);font:inherit;font-size:16px}
.gp-media-viewport{position:relative;min-width:0;min-height:min(220px,45dvh);overflow:hidden;touch-action:none;outline-offset:-4px!important;cursor:grab}
.gp-media-viewport:active{cursor:grabbing}
.gp-media-scene{position:absolute;top:50%;left:50%;transform-origin:center;user-select:none}
.gp-media-image{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:fill;pointer-events:none}
.gp-media-selection{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.gp-media-selection polygon{fill:rgba(34,211,238,.12);stroke:#0891b2;stroke-width:2.5;stroke-linejoin:round}
.gp-media-feedback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center;cursor:default}
.gp-media-feedback p{max-width:34em;margin:0;font-size:14px;line-height:1.5;color:var(--gp-muted)}
.gp-media-feedback button{border-color:var(--gp-line);background:var(--gp-card);color:var(--gp-primary)}
.gp-media-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 20px;padding:8px 12px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--gp-line);background:var(--gp-card)}
.gp-media-tools,.gp-media-photo-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;min-width:0}
.gp-media-tools button{background:var(--gp-bg)}
.gp-building-media button:disabled{opacity:.4;cursor:default}
.gp-building-media button[aria-disabled=true]{opacity:.65;cursor:wait}
.gp-media-zoom,.gp-media-count{min-width:44px;font-size:12px;line-height:1.4;color:var(--gp-muted);text-align:center;font-variant-numeric:tabular-nums}
.gp-media-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:600px){
 .gp-media-nav button{padding:9px 8px;font-size:13px}
 .gp-media-header{align-items:flex-start;flex-wrap:wrap;gap:8px;padding:10px 12px}
 .gp-media-heading{flex:1 1 190px}
 .gp-media-level{flex-wrap:wrap;gap:4px}
 .gp-media-level select{max-width:130px}
 .gp-media-footer{gap:4px;padding:6px 8px max(6px,env(safe-area-inset-bottom))}
 .gp-building-media button{padding-inline:10px}
 .gp-media-caption{font-size:12px}
}
@media(max-height:500px) and (min-width:480px){
 .gp-media-header{padding:6px 12px}
 .gp-media-footer{padding-block:4px}
 .gp-media-title{font-size:14px}
 .gp-media-caption{font-size:12px}
}
