/* Compact high-resolution map viewer; zoom/pan stays strictly inside its frame. */
.printed-map-host,.printed-map-host *{box-sizing:border-box}
.printed-map-switcher{width:100%;color:#173b2b;font:inherit}
.printed-map-tabs{display:flex;gap:6px;margin:9px 0 11px;padding:4px;background:#edf3ee;border:1px solid #ccdcd1;border-radius:12px}
.printed-map-tab{flex:1 1 0;min-width:0;min-height:44px;border:0;border-radius:9px;background:transparent;color:#335848;font:750 14px/1.25 system-ui,sans-serif;padding:8px 6px;cursor:pointer}
.printed-map-tab.active{background:#fff;color:#19492f;box-shadow:0 1px 5px #18372724}
.printed-map-tab:focus-visible{outline:3px solid #367b5c;outline-offset:2px}
.printed-map-frame{position:relative;isolation:isolate;width:100%;height:clamp(270px,47dvh,530px);overflow:hidden;background:#f6f8f7;border:1px solid #c7d9ce;border-radius:12px;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;cursor:zoom-in}
.printed-map-frame.is-zoomed{cursor:grab}
.printed-map-frame.is-zoomed:active{cursor:grabbing}
.printed-map-picture{display:block!important;position:absolute!important;inset:0;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;transform-origin:center center;will-change:transform;pointer-events:none;backface-visibility:hidden}
.printed-map-zoom-controls{position:absolute;top:10px;right:10px;z-index:2;display:flex;align-items:center;gap:5px;background:#ffffffeb;box-shadow:0 2px 10px #102c1b2b;padding:5px;border:1px solid #c5d5ca;border-radius:12px}
.printed-map-zoom-btn{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;margin:0;padding:0 8px;border:0;border-radius:8px;background:#fff;color:#225840;font:750 23px/1 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.printed-map-zoom-btn:hover:not(:disabled){background:#e7f2eb}
.printed-map-zoom-btn:disabled{opacity:.3;cursor:default}
.printed-map-zoom-reset{font-size:12px;min-width:62px;border-left:1px solid #d4e2d8;border-radius:0 8px 8px 0}
.printed-map-zoom-level{position:absolute;left:10px;bottom:10px;z-index:2;display:block;padding:4px 8px;background:#ffffffec;border:1px solid #d6e3db;border-radius:8px;color:#23533c;font:700 12px/1.4 system-ui,sans-serif}
.printed-map-instructions,.printed-map-notice{margin:7px 0 3px;text-align:center;color:#667e70;font:12px/1.45 system-ui,sans-serif}
.printed-map-notice{color:#476754}
.printed-map-notice:empty{display:none}
.printed-map-hide-current{display:none!important}
.printed-map-host [hidden]{display:none!important}
@media(min-width:780px){.printed-map-frame{height:min(66dvh,680px)}.printed-map-tab{font-size:15px}.printed-map-zoom-btn{min-width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.printed-map-picture{will-change:auto}}
@media print{.printed-map-host{display:none!important}}

/* v2: the regular map remains fully contained at 1x. The expand control
   temporarily moves its frame above the modal to avoid iOS clipping. */
.printed-map-frame{background:#fff}
.printed-map-fullscreen{min-width:42px;font-size:27px;line-height:1}
.printed-map-frame-fullscreen{
 position:fixed!important;
 z-index:2147483646!important;
 top:0!important;left:0!important;right:0!important;bottom:0!important;
 width:100vw!important;height:100vh!important;height:100dvh!important;
 max-width:none!important;max-height:none!important;
 border:0!important;border-radius:0!important;
 overflow:hidden!important;background:#fff!important;
}
.printed-map-frame-fullscreen .printed-map-zoom-controls{
 top:max(12px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));
}
.printed-map-frame-fullscreen .printed-map-zoom-level{
 bottom:max(12px,env(safe-area-inset-bottom));left:max(10px,env(safe-area-inset-left));
}
@media(max-width:700px){
 .printed-map-frame:not(.printed-map-frame-fullscreen){height:clamp(250px,66vw,420px)}
 .printed-map-zoom-controls{gap:2px;padding:4px}
 .printed-map-zoom-btn{min-width:38px;height:39px}
 .printed-map-zoom-reset{min-width:59px}
}

/* v4: Minimal map controls. Only fullscreen stays; pinch/double-tap still zoom. */
.printed-map-zoom-controls{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;gap:0!important;top:10px!important;right:10px!important}
.printed-map-zoom-controls .printed-map-fullscreen{min-width:42px!important;width:42px!important;height:42px!important;background:rgba(255,255,255,.94)!important;border:1px solid #c4d5cb!important;border-radius:12px!important;box-shadow:0 1px 6px #102c1b22!important;font-size:26px!important}
.printed-map-frame-fullscreen .printed-map-zoom-controls{top:max(12px,env(safe-area-inset-top))!important;right:max(10px,env(safe-area-inset-right))!important}
/* Better downsampling when maps are viewed at a normal zoom; fixed images still have finite detail. */
.printed-map-picture{image-rendering:auto!important}

/* Individual native PDF viewers for all mapped territories. */
.printed-map-pdf-sample{width:100%;min-width:0}
.printed-map-pdf-iframe{display:block;width:100%;height:clamp(270px,66vw,440px);border:1px solid #c7d9ce;border-radius:12px;background:#fff;overflow:auto;touch-action:auto;overscroll-behavior:contain}
.printed-map-pdf-open{display:block;width:max-content;max-width:100%;margin:10px auto 2px;border:1px solid #a4c3ae;border-radius:10px;padding:10px 14px;color:#20573c;background:#fff;text-decoration:none;font:700 13px/1.3 system-ui,sans-serif;text-align:center}
.printed-map-pdf-open:hover{background:#f0f8f1}
.printed-map-pdf-sample[hidden],.printed-map-frame[hidden]{display:none!important}
@media (min-width:780px){.printed-map-pdf-iframe{height:min(70dvh,650px)}}

/* PDF canvas pinch is confined to its map box, never Safari's page viewport. */
.printed-map-google-frame{
  position:relative;
  width:100%;
  overflow:hidden!important;
  touch-action:none!important;
  overscroll-behavior:contain!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}
.printed-map-google-frame .printed-map-picture{
  pointer-events:none!important;
  max-width:none;
  image-rendering:auto;
}
.printed-map-google-frame .printed-map-zoom-controls{
  touch-action:manipulation!important;
}
.printed-map-pdf-sample{overflow:hidden;max-width:100%}
